/
worldmap.h
77 lines (69 loc) · 1.32 KB
/
worldmap.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <nds.h>
typedef struct path
{
u8 endingNodeId;
u8 animationId;
u8 settings;
u8 unk;
} path;
typedef struct node
{
path *paths; // As many paths as you want. Last path should be FF 00 00 00
u8 areaId;
u8 unk0; // Allways 0?
u8 unk1; // Mostly 0. I only saw 0xB in W1. Is this for the blue mushroom house?
u8 icon;
u8 settings;
u8 unk2[3]; // Allways 0? Probably padding
} node;
typedef struct pathBehavior
{
u8 animationId;
u8 starcoinCost;
u8 visibility;
u8 unk; // Allways 0? Probably padding
} pathBehavior;
typedef struct sprites
{
u8 sprite1StartNode;
u8 sprite1Type;
u8 sprite2StartNode;
u8 sprite2Type;
} sprites;
typedef struct visibleNode
{
u8 unlockedPaths[4];
u8 unlockedpathsSecret[4];
u16 cameraLocation;
u16 cameraLocationSecret;
s32 x;
s32 y;
s32 z;
} visibleNode;
typedef struct mapObject
{
u8 animationId;
u8 pad[3];
s32 x;
s32 y;
s32 z;
} mapObject;
typedef struct bowserJrNode
{
u8 animationId;
u8 behavior;
} bowserJrNode;
typedef struct world
{
node *nodes;
pathBehavior *pathBehaviors;
sprites *mapObjs;
visibleNode *visibleNode;
mapObject *starcoinSigns; // As many as you want. Last one should be zeroed
mapObject *strongholds; // ^
mapObject *mushroomHouses; // ^
bowserJrNode **bowserJrPaths;
u16 nodeCount;
u16 pathCount;
u32 unk1; // allways 0
} world;