Compare commits
2 Commits
dd2aeeb66d
...
bcf7013cdb
Author | SHA1 | Date |
---|---|---|
Jarrod Doyle | bcf7013cdb | |
Jarrod Doyle | f0de440e06 |
|
@ -26,11 +26,13 @@
|
|||
#include "db_files/chunks/FLOW_TEX.hexpat"
|
||||
#include "db_files/chunks/FOGZONEVAR.hexpat"
|
||||
#include "db_files/chunks/HotRegions.hexpat"
|
||||
#include "db_files/chunks/L$_.hexpat"
|
||||
#include "db_files/chunks/MAPISRC.hexpat"
|
||||
#include "db_files/chunks/Mission_GameSysEAX.hexpat"
|
||||
#include "db_files/chunks/MultiBrush.hexpat"
|
||||
#include "db_files/chunks/OBJ_MAP.hexpat"
|
||||
#include "db_files/chunks/P$_.hexpat"
|
||||
#include "db_files/chunks/Relations.hexpat"
|
||||
#include "db_files/chunks/RENDPARAMS.hexpat"
|
||||
#include "db_files/chunks/ROOM_DB.hexpat"
|
||||
#include "db_files/chunks/ROOM_EAX.hexpat"
|
||||
|
|
|
@ -70,6 +70,7 @@ struct TOCEntry {
|
|||
("MissionEAX"): Chunk<AccousticsProperty> mission_eax @ offset;
|
||||
("MultiBrush"): Chunk<MultiBrush> multibrush @ offset;
|
||||
("OBJ_MAP"): Chunk<ObjMap> obj_map @ offset;
|
||||
("Relations"): Chunk<Relations> relations @ offset;
|
||||
("RENDPARAMS"): Chunk<RendParams> rend_params @ offset;
|
||||
("ROOM_DB"): Chunk<RoomDb> room_db @ offset;
|
||||
("ROOM_EAX"): Chunk<RoomEax> room_eax @ offset;
|
||||
|
@ -88,6 +89,13 @@ struct TOCEntry {
|
|||
if (std::string::starts_with(name, "P$")) {
|
||||
Chunk<PropertyMap> property_chunk @ offset [[name(name)]];
|
||||
}
|
||||
// if (std::string::starts_with(name, "LD$")) {
|
||||
// std::print("LD: {}", name);
|
||||
// }
|
||||
if (std::string::starts_with(name, "L$")) {
|
||||
Chunk<LinkMap> link_chunk @ offset [[name(name)]];
|
||||
// std::print("L: {}", name);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
#pragma once
|
||||
|
||||
#include "Common.hexpat"
|
||||
|
||||
bitfield LinkId {
|
||||
id: 16;
|
||||
concrete: 4;
|
||||
relation: 12;
|
||||
};
|
||||
|
||||
struct Link {
|
||||
LinkId id;
|
||||
s32 source;
|
||||
s32 destination;
|
||||
u16 relation;
|
||||
// if (source > 0 || destination > 0) {
|
||||
// std::print("Link: {}, Id: {}, Src: {}, Dest: {}, Flavor: {}", parent.parent.parent.name, id, source, destination, relation);
|
||||
// }
|
||||
};
|
||||
|
||||
struct LinkMap {
|
||||
u32 max = parent.parent.data_end;
|
||||
Link links[while($ < max)];
|
||||
};
|
|
@ -0,0 +1,13 @@
|
|||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
|
||||
struct RelationString {
|
||||
char name[];
|
||||
$ = $ + 32 - std::string::length(name);
|
||||
};
|
||||
|
||||
struct Relations {
|
||||
u32 max = parent.parent.data_end;
|
||||
RelationString relations[while($ < max)];
|
||||
};
|
Loading…
Reference in New Issue