NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
d_cd_data.hpp
1#pragma once
2
3#include <types.h>
4#include <game/bases/d_actor_data.hpp>
5#include <game/mLib/m_vec.hpp>
6
7#define CD_BLOCK_COUNT 14
8
9// @unofficial
10struct sBlockInfo {
11 u32 mOffset;
12 u32 mSize;
13};
14
15/// @unofficial
17 char mTileset0[32];
18 char mTileset1[32];
19 char mTileset2[32];
20 char mTileset3[32];
21};
22
23/// @unofficial
25public:
26 enum FLAG_e {
27 WRAP_AROUND_EDGES = BIT_FLAG(0),
28 };
29
30 char mPad1[0x8];
31 u16 mFlags;
32 char mPad2[0x6];
33 u8 mInitialNextGotoID;
34 char mPad3[0x2];
35};
36
37/// @unofficial
39 u8 mPad1[0x10];
40 u16 mID;
41 u8 mPad2[0x6];
42};
43
44/// @unofficial
46 u8 mPad[0x8];
47};
48
49/// @unofficial
50struct sBgData {
51 u16 mID;
52 u8 mPad[0x16];
53};
54
55/// @unofficial
56enum NextGotoType_e {
57 NEXT_GOTO_TYPE_LEVEL_ENTRANCE,
58 NEXT_GOTO_TYPE_1,
59 NEXT_GOTO_TYPE_DOOR_EXIT,
60 NEXT_GOTO_TYPE_PIPE_U,
61 NEXT_GOTO_TYPE_PIPE_D,
62 NEXT_GOTO_TYPE_PIPE_L,
63 NEXT_GOTO_TYPE_PIPE_R,
64 NEXT_GOTO_TYPE_FALL,
65 NEXT_GOTO_TYPE_GROUND_POUND,
66 NEXT_GOTO_TYPE_SLIDE,
67 NEXT_GOTO_TYPE_SWIM,
68 NEXT_GOTO_TYPE_11,
69 NEXT_GOTO_TYPE_12,
70 NEXT_GOTO_TYPE_13,
71 NEXT_GOTO_TYPE_14,
72 NEXT_GOTO_TYPE_15,
73 NEXT_GOTO_TYPE_MINI_PIPE_U,
74 NEXT_GOTO_TYPE_MINI_PIPE_D,
75 NEXT_GOTO_TYPE_MINI_PIPE_L,
76 NEXT_GOTO_TYPE_MINI_PIPE_R,
77 NEXT_GOTO_TYPE_JUMP_R,
78 NEXT_GOTO_TYPE_CLIMB,
79 NEXT_GOTO_TYPE_WATER_TANK,
80 NEXT_GOTO_TYPE_BOSS,
81 NEXT_GOTO_TYPE_JUMP_L,
82 NEXT_GOTO_TYPE_BOSS_JUMP_R,
83 NEXT_GOTO_TYPE_BOSS_FALL,
84 NEXT_GOTO_TYPE_DOOR_ENTER
85};
86
87/// @unofficial
88enum NextGotoFlags_e {
89 NEXT_GOTO_FLAG_RAIL_REVERSE = BIT_FLAG(0),
90 NEXT_GOTO_FLAG_WATER_TANK = BIT_FLAG(2),
91 NEXT_GOTO_FLAG_RAIL = BIT_FLAG(3),
92 NEXT_GOTO_FLAG_ONLY_EXIT = BIT_FLAG(7)
93};
94
95/// @unofficial
96// [Needs it like this (the inner struct) so that struct copies are done correctly]
98 struct {
99 u16 mX, mY;
100 u8 mPad1[0x4];
101 u8 mID;
102 u8 mDestFile; ///< 0 = same file, others are 1-indexed.
103 u8 mDestID;
104 u8 mType; ///< See NextGotoType_e.
105 u8 m_0c;
106 u8 mArea;
107 u8 mLayer;
108 u8 mRailID;
109 u16 mFlags; ///< See NextGotoFlags_e.
110 bool mIsLevelExit;
111 u8 m_13;
112 };
113 u8 mData[20];
114};
115
116/// @unofficial
118
119 ProfileName getProfileName() {
120 return dActorData_c::getMapActorInfo(mMapActorID)->mProfileName;
121 }
122
123 u16 mMapActorID;
124 u16 mX, mY;
125 u8 mEventNums[2];
126 u32 mParam;
127 u8 mAreaNo;
128 u8 mLayer;
129};
130
131/// @unofficial
133 u8 mPad[4];
134};
135
137 u16 mX, mY;
138 u16 mWidth, mHeight;
139};
140
142 u8 mID;
143 u8 mPad[2];
144};
145
146/// @unofficial
147struct sAreaData {
148 sRangePosSize mRangeData;
149 u16 mColorObj, mColorBG;
150 u8 mID;
151 u8 mScroll;
152 u8 mZoomType, mZoomID, mZoomChange;
153 u8 mMaskNo;
154 u8 mBg2, mBg3;
155 u8 mDirection;
156 u8 m_15;
157 u8 mAreaBgm, mBgmMode;
158};
159
160/// @unofficial
162 u8 mPad[0x14];
163};
164
165/// @unofficial
167 u8 mID;
168 u16 mNodeIdx, mCount;
169 u16 mFlags;
170};
171
172/// @unofficial
174 short mX, mY;
175 float mSpeed;
176 float mAccel;
177 short mDelay;
178 u16 mFlags;
179};
u16 ProfileName
The name of a profile. Value is a fProfile::PROFILE_NAME_e.
Definition f_profile.hpp:32
u8 mType
See NextGotoType_e.
u16 mFlags
See NextGotoFlags_e.
u8 mDestFile
0 = same file, others are 1-indexed.