metaforce/DataSpec/DNACommon/MAPU.hpp

46 lines
1.1 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
2017-03-20 05:09:53 +00:00
#include <cstdint>
#include "DataSpec/DNACommon/DNACommon.hpp"
namespace hecl {
class ProjectPath;
}
namespace hecl::blender {
class Connection;
struct MapUniverse;
} // namespce hecl::blender
2017-03-20 05:09:53 +00:00
2018-12-08 05:30:43 +00:00
namespace DataSpec::DNAMAPU {
struct MAPU : BigDNA {
AT_DECL_DNA
Value<uint32_t> magic;
Value<uint32_t> version;
UniqueID32 hexMapa;
Value<uint32_t> worldCount;
struct Transform : BigDNA {
2018-02-22 07:24:51 +00:00
AT_DECL_DNA
2018-12-08 05:30:43 +00:00
Value<atVec4f> xf[3];
};
struct World : BigDNA {
AT_DECL_DNA
String<-1> name;
UniqueID32 mlvl;
Transform transform;
Value<uint32_t> hexCount;
Vector<Transform, AT_DNA_COUNT(hexCount)> hexTransforms;
DNAColor hexColor;
};
Vector<World, AT_DNA_COUNT(worldCount)> worlds;
2017-03-20 05:09:53 +00:00
2018-12-08 05:30:43 +00:00
static bool Cook(const hecl::blender::MapUniverse& mapu, const hecl::ProjectPath& out);
2017-03-20 05:09:53 +00:00
};
template <typename PAKRouter>
2018-12-08 05:30:43 +00:00
bool ReadMAPUToBlender(hecl::blender::Connection& conn, const MAPU& mapu, const hecl::ProjectPath& outPath,
PAKRouter& pakRouter, const typename PAKRouter::EntryType& entry, bool force);
2017-03-20 05:09:53 +00:00
2018-12-08 05:30:43 +00:00
} // namespace DataSpec::DNAMAPU