2015-09-24 07:47:30 +00:00
|
|
|
#ifndef _DNAMP1_SCAN_HPP_
|
|
|
|
#define _DNAMP1_SCAN_HPP_
|
|
|
|
|
|
|
|
#include "../DNACommon/DNACommon.hpp"
|
|
|
|
#include "DNAMP1.hpp"
|
|
|
|
|
|
|
|
namespace Retro
|
|
|
|
{
|
|
|
|
namespace DNAMP1
|
|
|
|
{
|
|
|
|
struct SCAN : BigYAML
|
|
|
|
{
|
|
|
|
DECL_YAML
|
|
|
|
Value<atUint32> version;
|
|
|
|
Value<atUint32> magic;
|
|
|
|
UniqueID32 frame;
|
|
|
|
UniqueID32 string;
|
|
|
|
|
|
|
|
enum ScanSpeed
|
|
|
|
{ Normal, Slow };
|
|
|
|
Value<ScanSpeed> scanSpeed;
|
|
|
|
|
|
|
|
enum Category
|
|
|
|
{
|
|
|
|
None,
|
|
|
|
SpacePirateData,
|
|
|
|
ChozoLore,
|
|
|
|
Creatures,
|
|
|
|
Research
|
|
|
|
};
|
|
|
|
|
|
|
|
Value<Category> category;
|
|
|
|
|
|
|
|
Value<bool> isImportant;
|
|
|
|
|
|
|
|
struct Texture : BigYAML
|
|
|
|
{
|
|
|
|
DECL_YAML
|
|
|
|
UniqueID32 texture;
|
|
|
|
Value<float> appearanceRange;
|
|
|
|
enum Position
|
|
|
|
{
|
|
|
|
Pane0,
|
|
|
|
Pane1,
|
|
|
|
Pane2,
|
|
|
|
Pane3,
|
|
|
|
Pane01,
|
|
|
|
Pane12,
|
|
|
|
Pane23,
|
|
|
|
Pane012,
|
|
|
|
Pane123,
|
|
|
|
Pane0123,
|
|
|
|
Pane4,
|
|
|
|
Pane5,
|
|
|
|
Pane6,
|
|
|
|
Pane7,
|
|
|
|
Pane45,
|
|
|
|
Pane56,
|
|
|
|
Pane67,
|
|
|
|
Pane456,
|
|
|
|
Pane567,
|
2015-10-15 23:42:39 +00:00
|
|
|
Pane4567,
|
|
|
|
Invalid = -1
|
2015-09-24 07:47:30 +00:00
|
|
|
};
|
|
|
|
Value<Position> position;
|
2015-10-15 23:42:39 +00:00
|
|
|
Value<atUint32> width; // width of animation cell
|
|
|
|
Value<atUint32> height; // height of animation cell
|
|
|
|
Value<float> interval; // 0.0 - 1.0
|
|
|
|
Value<float> fadeDuration; // 0.0 - 1.0
|
2015-09-24 07:47:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
Texture textures[4];
|
|
|
|
|
|
|
|
static bool Extract(PAKEntryReadStream& rs, const HECL::ProjectPath& outPath)
|
|
|
|
{
|
|
|
|
SCAN scan;
|
|
|
|
scan.read(rs);
|
|
|
|
FILE* fp = HECL::Fopen(outPath.getAbsolutePath().c_str(), _S("wb"));
|
|
|
|
scan.toYAMLFile(fp);
|
|
|
|
fclose(fp);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|