2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-08-04 06:15:35 +00:00
2016-07-23 18:53:02 -07:00

65 lines
1.6 KiB
C++

#ifndef __DNAMP3_SAVW_HPP__
#define __DNAMP3_SAVW_HPP__
#include "../DNACommon/SAVWCommon.hpp"
#include "DNAMP3.hpp"
namespace DataSpec
{
namespace DNAMP3
{
struct Scan : BigYAML
{
DECL_YAML
UniqueID64 scanId;
Value<SAVWCommon::EScanCategory> category;
};
struct SavedState : BigYAML
{
DECL_YAML
struct ID : BigYAML
{
DECL_YAML
Value<atUint64> id[2];
};
ID id;
Value<atUint32> instance;
};
struct SAVW : BigYAML
{
DECL_YAML
SAVWCommon::Header header;
Value<atUint32> skippableCutsceneCount;
Vector<SavedState, DNA_COUNT(skippableCutsceneCount)> skippableCutscenes;
Value<atUint32> relayCount;
Vector<SavedState, DNA_COUNT(relayCount)> relays;
Value<atUint32> layerCount;
Vector<SAVWCommon::Layer, DNA_COUNT(layerCount)> layers;
Value<atUint32> doorCount;
Vector<SavedState, DNA_COUNT(doorCount)> doors;
Value<atUint32> scanCount;
Vector<Scan, DNA_COUNT(scanCount)> scans;
Value<atUint32> systemVarCount;
Vector<SAVWCommon::EnvironmentVariable, DNA_COUNT(systemVarCount)> systemVars;
Value<atUint32> gameVarCount;
Vector<SAVWCommon::EnvironmentVariable, DNA_COUNT(gameVarCount)> gameVars;
Value<atUint32> gameObjectCount;
Vector<SavedState, DNA_COUNT(gameObjectCount)> gameObjects;
};
static bool ExtractSAVW(PAKEntryReadStream& rs, const hecl::ProjectPath& outPath)
{
SAVW savw;
savw.read(rs);
FILE* fp = hecl::Fopen(outPath.getAbsolutePath().c_str(), _S("wb"));
savw.toYAMLFile(fp);
fclose(fp);
return true;
}
}
}
#endif // __DNAMP3_SAVW_HPP__