mirror of https://github.com/AxioDL/metaforce.git
parent
592c4484e7
commit
1c07a90dd2
|
@ -1,6 +1,7 @@
|
||||||
make_dnalist(liblist
|
make_dnalist(liblist
|
||||||
PAK
|
PAK
|
||||||
MLVL
|
MLVL
|
||||||
|
MAPA
|
||||||
CMDL
|
CMDL
|
||||||
CMDLMaterials)
|
CMDLMaterials)
|
||||||
add_library(DNAMP1
|
add_library(DNAMP1
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
#ifndef __DNAMP1_MAPA_HPP__
|
||||||
|
#define __DNAMP1_MAPA_HPP__
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "../DNACommon/DNACommon.hpp"
|
||||||
|
|
||||||
|
namespace Retro
|
||||||
|
{
|
||||||
|
namespace DNAMP1
|
||||||
|
{
|
||||||
|
struct MAPA : BigDNA
|
||||||
|
{
|
||||||
|
DECL_DNA
|
||||||
|
Value<atUint32> magic;
|
||||||
|
Value<atUint32> version;
|
||||||
|
Value<atUint32> unknown1;
|
||||||
|
Value<atUint32> unknown2;
|
||||||
|
Value<atVec3f> aabbMin;
|
||||||
|
Value<atVec3f> aabbMax;
|
||||||
|
Value<atUint32> mappableObjectCount;
|
||||||
|
Value<atUint32> vertexCount;
|
||||||
|
Value<atUint32> surfaceCount;
|
||||||
|
|
||||||
|
struct MappableObject : BigDNA
|
||||||
|
{
|
||||||
|
DECL_DNA
|
||||||
|
Value<atUint32> type;
|
||||||
|
Value<atUint32> unknown1;
|
||||||
|
Value<atUint16> unknown2;
|
||||||
|
Value<atUint16> id;
|
||||||
|
Seek<DNA_COUNT(4), Athena::Current> seek1;
|
||||||
|
Value<atVec4f> transform1;
|
||||||
|
Value<atVec4f> transform2;
|
||||||
|
Value<atVec4f> transform3;
|
||||||
|
Seek<DNA_COUNT(0x10), Athena::Current> seek2;
|
||||||
|
};
|
||||||
|
Vector<MappableObject, DNA_COUNT(mappableObjectCount)> mappableObjects;
|
||||||
|
Vector<atVec3f, DNA_COUNT(vertexCount)> vertices;
|
||||||
|
|
||||||
|
struct SurfaceHeader : BigDNA
|
||||||
|
{
|
||||||
|
DECL_DNA
|
||||||
|
Value<atVec3f> unkFloats1;
|
||||||
|
Value<atVec3f> unkFloats2;
|
||||||
|
Value<atUint32> start;
|
||||||
|
Value<atUint32> end;
|
||||||
|
};
|
||||||
|
|
||||||
|
Vector<SurfaceHeader, DNA_COUNT(surfaceCount)> surfaceHeaders;
|
||||||
|
|
||||||
|
struct Surface : BigDNA
|
||||||
|
{
|
||||||
|
DECL_DNA
|
||||||
|
Value<atUint32> primitiveCount;
|
||||||
|
struct Primitive : BigDNA
|
||||||
|
{
|
||||||
|
DECL_DNA
|
||||||
|
Value<atUint32> type;
|
||||||
|
Value<atUint32> indexCount;
|
||||||
|
Vector<atUint32, DNA_COUNT(indexCount)> indices;
|
||||||
|
Align<4> align;
|
||||||
|
};
|
||||||
|
Vector<Primitive, DNA_COUNT(primitiveCount)> primitives;
|
||||||
|
Value<atUint32> borderCount;
|
||||||
|
struct Border : BigDNA
|
||||||
|
{
|
||||||
|
DECL_DNA
|
||||||
|
Value<atUint32> indexCount;
|
||||||
|
Vector<atUint32, DNA_COUNT(indexCount)> indices;
|
||||||
|
Align<4> align;
|
||||||
|
};
|
||||||
|
Vector<Border, DNA_COUNT(borderCount)> borders;
|
||||||
|
};
|
||||||
|
|
||||||
|
Vector<Surface, DNA_COUNT(surfaceCount)> surfaces;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -234,8 +234,9 @@ struct SpecMP1 : SpecBase
|
||||||
|
|
||||||
int compIdx = 4;
|
int compIdx = 4;
|
||||||
prog = 0;
|
prog = 0;
|
||||||
for (DNAMP1::PAKBridge& pak : m_paks)
|
for (std::pair<std::string, DNAMP1::PAKBridge*> pair : m_orderedPaks)
|
||||||
{
|
{
|
||||||
|
DNAMP1::PAKBridge& pak = *pair.second;
|
||||||
const std::string& name = pak.getName();
|
const std::string& name = pak.getName();
|
||||||
HECL::SystemStringView sysName(name);
|
HECL::SystemStringView sysName(name);
|
||||||
|
|
||||||
|
|
|
@ -230,8 +230,9 @@ struct SpecMP2 : SpecBase
|
||||||
|
|
||||||
int compIdx = 4;
|
int compIdx = 4;
|
||||||
prog = 0;
|
prog = 0;
|
||||||
for (DNAMP2::PAKBridge& pak : m_paks)
|
for (std::pair<std::string, DNAMP2::PAKBridge*> pair : m_orderedPaks)
|
||||||
{
|
{
|
||||||
|
DNAMP2::PAKBridge& pak = *pair.second;
|
||||||
const std::string& name = pak.getName();
|
const std::string& name = pak.getName();
|
||||||
HECL::SystemStringView sysName(name);
|
HECL::SystemStringView sysName(name);
|
||||||
|
|
||||||
|
|
|
@ -332,8 +332,9 @@ struct SpecMP3 : SpecBase
|
||||||
mp3CookPath.makeDir();
|
mp3CookPath.makeDir();
|
||||||
|
|
||||||
prog = 0;
|
prog = 0;
|
||||||
for (DNAMP3::PAKBridge& pak : m_paks)
|
for (std::pair<std::string, DNAMP3::PAKBridge*> pair : m_orderedPaks)
|
||||||
{
|
{
|
||||||
|
DNAMP3::PAKBridge& pak = *pair.second;
|
||||||
m_pakRouter.enterPAKBridge(pak);
|
m_pakRouter.enterPAKBridge(pak);
|
||||||
|
|
||||||
const std::string& name = pak.getName();
|
const std::string& name = pak.getName();
|
||||||
|
@ -373,8 +374,9 @@ struct SpecMP3 : SpecBase
|
||||||
m_feCookPath.makeDir();
|
m_feCookPath.makeDir();
|
||||||
|
|
||||||
prog = 0;
|
prog = 0;
|
||||||
for (DNAMP3::PAKBridge& pak : m_fePaks)
|
for (std::pair<std::string, DNAMP3::PAKBridge*> pair : m_feOrderedPaks)
|
||||||
{
|
{
|
||||||
|
DNAMP3::PAKBridge& pak = *pair.second;
|
||||||
const std::string& name = pak.getName();
|
const std::string& name = pak.getName();
|
||||||
HECL::SystemStringView sysName(name);
|
HECL::SystemStringView sysName(name);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue