summaryrefslogtreecommitdiff
path: root/src/koopatlas/mapdata.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/koopatlas/mapdata.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/koopatlas/mapdata.h b/src/koopatlas/mapdata.h
index bc0c599..a0beb4d 100644
--- a/src/koopatlas/mapdata.h
+++ b/src/koopatlas/mapdata.h
@@ -53,7 +53,7 @@ struct dKPPath_s;
struct dKPNode_s {
enum NodeTypes {
- PASS_THROUGH, STOP, LEVEL, CHANGE
+ PASS_THROUGH, STOP, LEVEL, CHANGE, WORLD_CHANGE
};
short x, y;
@@ -79,6 +79,7 @@ struct dKPNode_s {
union {
struct { u8 levelNumber[2]; bool hasSecret; };
struct { const char *destMap; u8 thisID, foreignID, transition, _; };
+ struct { u8 worldID, __[3]; };
};
dKPPath_s *getAnyExit() {
@@ -187,6 +188,18 @@ struct dKPLayer_s {
int findNodeID(dKPNode_s *node);
};
+struct dKPWorldDef_s {
+ const char *name;
+ GXColor fsTextColours[2];
+ GXColor fsHintColours[2];
+ GXColor hudTextColours[2];
+ u8 hudHintH;
+ s8 hudHintS, hudHintL;
+ u8 key, trackID;
+ u8 worldID;
+ u8 padding1, padding2;
+};
+
struct dKPMapFile_s {
u32 magic;
int version;
@@ -202,6 +215,9 @@ struct dKPMapFile_s {
dKPLayer_s::sector_s *sectors;
const char *backgroundName;
+
+ dKPWorldDef_s *worlds;
+ int worldCount;
};
class dKPMapData_c {
@@ -253,6 +269,8 @@ class dKPMapData_c {
dKPNodeExtra_c *levelNodeExtraArray;
+ const dKPWorldDef_s *findWorldDef(int id) const;
+
dKPMapData_c();
bool load(const char *filename);
~dKPMapData_c();