Add initial Link chunk parsing

This commit is contained in:
Jarrod Doyle 2024-08-23 15:20:26 +01:00
parent dd2aeeb66d
commit f0de440e06
Signed by: Jayrude
GPG Key ID: 38B57B16E7C0ADF7
3 changed files with 32 additions and 0 deletions

View File

@ -26,6 +26,7 @@
#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"

View File

@ -88,6 +88,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);
}
}
}
};

View File

@ -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)];
};