Merge pull request #438 from s4Ys369/revert-434-patch-1
[sm64pc.git] / include / object_fields.h
blob5ba0e1cb6a1d99e856e373cef13a1fa5fd9b9e47
1 #ifndef _OBJECT_FIELDS_H
2 #define _OBJECT_FIELDS_H
5 /**
6 * The array [0x88, 0x1C8) in struct Object consists of fields that can vary by
7 * object type. These macros provide access to these fields.
8 */
10 #ifdef OBJECT_FIELDS_INDEX_DIRECTLY
11 #define OBJECT_FIELD_U32(index) index
12 #define OBJECT_FIELD_S32(index) index
13 #define OBJECT_FIELD_S16(index, subIndex) index
14 #define OBJECT_FIELD_F32(index) index
15 #define OBJECT_FIELD_S16P(index) index
16 #define OBJECT_FIELD_S32P(index) index
17 #define OBJECT_FIELD_ANIMS(index) index
18 #define OBJECT_FIELD_WAYPOINT(index) index
19 #define OBJECT_FIELD_CHAIN_SEGMENT(index) index
20 #define OBJECT_FIELD_OBJ(index) index
21 #define OBJECT_FIELD_SURFACE(index) index
22 #define OBJECT_FIELD_VPTR(index) index
23 #define OBJECT_FIELD_CVPTR(index) index
24 #else
25 #define OBJECT_FIELD_U32(index) rawData.asU32[index]
26 #define OBJECT_FIELD_S32(index) rawData.asS32[index]
27 #define OBJECT_FIELD_S16(index, subIndex) rawData.asS16[index][subIndex]
28 #define OBJECT_FIELD_F32(index) rawData.asF32[index]
29 #if !IS_64_BIT
30 #define OBJECT_FIELD_S16P(index) rawData.asS16P[index]
31 #define OBJECT_FIELD_S32P(index) rawData.asS32P[index]
32 #define OBJECT_FIELD_ANIMS(index) rawData.asAnims[index]
33 #define OBJECT_FIELD_WAYPOINT(index) rawData.asWaypoint[index]
34 #define OBJECT_FIELD_CHAIN_SEGMENT(index) rawData.asChainSegment[index]
35 #define OBJECT_FIELD_OBJ(index) rawData.asObject[index]
36 #define OBJECT_FIELD_SURFACE(index) rawData.asSurface[index]
37 #define OBJECT_FIELD_VPTR(index) rawData.asVoidPtr[index]
38 #define OBJECT_FIELD_CVPTR(index) rawData.asConstVoidPtr[index]
39 #else
40 #define OBJECT_FIELD_S16P(index) ptrData.asS16P[index]
41 #define OBJECT_FIELD_S32P(index) ptrData.asS32P[index]
42 #define OBJECT_FIELD_ANIMS(index) ptrData.asAnims[index]
43 #define OBJECT_FIELD_WAYPOINT(index) ptrData.asWaypoint[index]
44 #define OBJECT_FIELD_CHAIN_SEGMENT(index) ptrData.asChainSegment[index]
45 #define OBJECT_FIELD_OBJ(index) ptrData.asObject[index]
46 #define OBJECT_FIELD_SURFACE(index) ptrData.asSurface[index]
47 #define OBJECT_FIELD_VPTR(index) ptrData.asVoidPtr[index]
48 #define OBJECT_FIELD_CVPTR(index) ptrData.asConstVoidPtr[index]
49 #endif
50 #endif
52 // 0x088 (0x00), the first field, is object-specific and defined below the common fields.
53 /* Common fields */
54 #define /*0x08C*/ oFlags OBJECT_FIELD_U32(0x01)
55 #define /*0x090*/ oDialogResponse OBJECT_FIELD_S16(0x02, 0)
56 #define /*0x092*/ oDialogState OBJECT_FIELD_S16(0x02, 1)
57 #define /*0x094*/ oUnk94 OBJECT_FIELD_U32(0x03)
58 // 0x98 unused/removed.
59 #define /*0x09C*/ oIntangibleTimer OBJECT_FIELD_S32(0x05)
60 #define /*0x0A0*/ O_POS_INDEX 0x06
61 #define /*0x0A0*/ oPosX OBJECT_FIELD_F32(O_POS_INDEX + 0)
62 #define /*0x0A4*/ oPosY OBJECT_FIELD_F32(O_POS_INDEX + 1)
63 #define /*0x0A8*/ oPosZ OBJECT_FIELD_F32(O_POS_INDEX + 2)
64 #define /*0x0AC*/ oVelX OBJECT_FIELD_F32(0x09)
65 #define /*0x0B0*/ oVelY OBJECT_FIELD_F32(0x0A)
66 #define /*0x0B4*/ oVelZ OBJECT_FIELD_F32(0x0B)
67 #define /*0x0B8*/ oForwardVel OBJECT_FIELD_F32(0x0C)
68 #define /*0x0B8*/ oForwardVelS32 OBJECT_FIELD_S32(0x0C)
69 #define /*0x0BC*/ oUnkBC OBJECT_FIELD_F32(0x0D)
70 #define /*0x0C0*/ oUnkC0 OBJECT_FIELD_F32(0x0E)
71 #define /*0x0C4*/ O_MOVE_ANGLE_INDEX 0x0F
72 #define /*0x0C4*/ O_MOVE_ANGLE_PITCH_INDEX (O_MOVE_ANGLE_INDEX + 0)
73 #define /*0x0C4*/ O_MOVE_ANGLE_YAW_INDEX (O_MOVE_ANGLE_INDEX + 1)
74 #define /*0x0C4*/ O_MOVE_ANGLE_ROLL_INDEX (O_MOVE_ANGLE_INDEX + 2)
75 #define /*0x0C4*/ oMoveAnglePitch OBJECT_FIELD_S32(O_MOVE_ANGLE_PITCH_INDEX)
76 #define /*0x0C8*/ oMoveAngleYaw OBJECT_FIELD_S32(O_MOVE_ANGLE_YAW_INDEX)
77 #define /*0x0CC*/ oMoveAngleRoll OBJECT_FIELD_S32(O_MOVE_ANGLE_ROLL_INDEX)
78 #define /*0x0D0*/ O_FACE_ANGLE_INDEX 0x12
79 #define /*0x0D0*/ O_FACE_ANGLE_PITCH_INDEX (O_FACE_ANGLE_INDEX + 0)
80 #define /*0x0D0*/ O_FACE_ANGLE_YAW_INDEX (O_FACE_ANGLE_INDEX + 1)
81 #define /*0x0D0*/ O_FACE_ANGLE_ROLL_INDEX (O_FACE_ANGLE_INDEX + 2)
82 #define /*0x0D0*/ oFaceAnglePitch OBJECT_FIELD_S32(O_FACE_ANGLE_PITCH_INDEX)
83 #define /*0x0D4*/ oFaceAngleYaw OBJECT_FIELD_S32(O_FACE_ANGLE_YAW_INDEX)
84 #define /*0x0D8*/ oFaceAngleRoll OBJECT_FIELD_S32(O_FACE_ANGLE_ROLL_INDEX)
85 #define /*0x0DC*/ oGraphYOffset OBJECT_FIELD_F32(0x15)
86 #define /*0x0E0*/ oActiveParticleFlags OBJECT_FIELD_U32(0x16)
87 #define /*0x0E4*/ oGravity OBJECT_FIELD_F32(0x17)
88 #define /*0x0E8*/ oFloorHeight OBJECT_FIELD_F32(0x18)
89 #define /*0x0EC*/ oMoveFlags OBJECT_FIELD_U32(0x19)
90 #define /*0x0F0*/ oAnimState OBJECT_FIELD_S32(0x1A)
91 // 0x0F4-0x110 (0x1B-0x22) are object specific and defined below the common fields.
92 #define /*0x114*/ oAngleVelPitch OBJECT_FIELD_S32(0x23)
93 #define /*0x118*/ oAngleVelYaw OBJECT_FIELD_S32(0x24)
94 #define /*0x11C*/ oAngleVelRoll OBJECT_FIELD_S32(0x25)
95 #define /*0x120*/ oAnimations OBJECT_FIELD_ANIMS(0x26)
96 #define /*0x124*/ oHeldState OBJECT_FIELD_U32(0x27)
97 #define /*0x128*/ oWallHitboxRadius OBJECT_FIELD_F32(0x28)
98 #define /*0x12C*/ oDragStrength OBJECT_FIELD_F32(0x29)
99 #define /*0x130*/ oInteractType OBJECT_FIELD_U32(0x2A)
100 #define /*0x134*/ oInteractStatus OBJECT_FIELD_S32(0x2B)
101 #define /*0x138*/ O_PARENT_RELATIVE_POS_INDEX 0x2C
102 #define /*0x138*/ oParentRelativePosX OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 0)
103 #define /*0x13C*/ oParentRelativePosY OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 1)
104 #define /*0x140*/ oParentRelativePosZ OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 2)
105 #define /*0x144*/ oBehParams2ndByte OBJECT_FIELD_S32(0x2F)
106 // 0x148 unused, possibly a third param byte.
107 #define /*0x14C*/ oAction OBJECT_FIELD_S32(0x31)
108 #define /*0x150*/ oSubAction OBJECT_FIELD_S32(0x32)
109 #define /*0x154*/ oTimer OBJECT_FIELD_S32(0x33)
110 #define /*0x158*/ oBounciness OBJECT_FIELD_F32(0x34)
111 #define /*0x15C*/ oDistanceToMario OBJECT_FIELD_F32(0x35)
112 #define /*0x160*/ oAngleToMario OBJECT_FIELD_S32(0x36)
113 #define /*0x164*/ oHomeX OBJECT_FIELD_F32(0x37)
114 #define /*0x168*/ oHomeY OBJECT_FIELD_F32(0x38)
115 #define /*0x16C*/ oHomeZ OBJECT_FIELD_F32(0x39)
116 #define /*0x170*/ oFriction OBJECT_FIELD_F32(0x3A)
117 #define /*0x174*/ oBuoyancy OBJECT_FIELD_F32(0x3B)
118 #define /*0x178*/ oSoundStateID OBJECT_FIELD_S32(0x3C)
119 #define /*0x17C*/ oOpacity OBJECT_FIELD_S32(0x3D)
120 #define /*0x180*/ oDamageOrCoinValue OBJECT_FIELD_S32(0x3E)
121 #define /*0x184*/ oHealth OBJECT_FIELD_S32(0x3F)
122 #define /*0x188*/ oBehParams OBJECT_FIELD_S32(0x40)
123 #define /*0x18C*/ oPrevAction OBJECT_FIELD_S32(0x41)
124 #define /*0x190*/ oInteractionSubtype OBJECT_FIELD_U32(0x42)
125 #define /*0x194*/ oCollisionDistance OBJECT_FIELD_F32(0x43)
126 #define /*0x198*/ oNumLootCoins OBJECT_FIELD_S32(0x44)
127 #define /*0x19C*/ oDrawingDistance OBJECT_FIELD_F32(0x45)
128 #define /*0x1A0*/ oRoom OBJECT_FIELD_S32(0x46)
129 // 0x1A4 is unused, possibly related to 0x1A8 in removed macro purposes.
130 #define /*0x1A8*/ oUnk1A8 OBJECT_FIELD_U32(0x48)
131 // 0x1AC-0x1B2 (0x48-0x4A) are object specific and defined below the common fields.
132 #define /*0x1B4*/ oWallAngle OBJECT_FIELD_S32(0x4B)
133 #define /*0x1B8*/ oFloorType OBJECT_FIELD_S16(0x4C, 0)
134 #define /*0x1BA*/ oFloorRoom OBJECT_FIELD_S16(0x4C, 1)
135 #define /*0x1BC*/ oAngleToHome OBJECT_FIELD_S32(0x4D)
136 #define /*0x1C0*/ oFloor OBJECT_FIELD_SURFACE(0x4E)
137 #define /*0x1C4*/ oDeathSound OBJECT_FIELD_S32(0x4F)
139 /* Pathed (see obj_follow_path) */
140 // TODO: These two 0x0FC fields need merged, one is data and one is a C struct.
141 #define /*0x0FC*/ oPathedWaypointsS16 OBJECT_FIELD_VPTR(0x1D)
142 #define /*0x0FC*/ oPathedStartWaypoint OBJECT_FIELD_WAYPOINT(0x1D)
143 #define /*0x100*/ oPathedPrevWaypoint OBJECT_FIELD_WAYPOINT(0x1E)
144 #define /*0x104*/ oPathedPrevWaypointFlags OBJECT_FIELD_S32(0x1F)
145 #define /*0x108*/ oPathedTargetPitch OBJECT_FIELD_S32(0x20)
146 #define /*0x10C*/ oPathedTargetYaw OBJECT_FIELD_S32(0x21)
148 /* Special Object Macro */
149 #define /*0x108*/ oMacroUnk108 OBJECT_FIELD_F32(0x20)
150 #define /*0x10C*/ oMacroUnk10C OBJECT_FIELD_F32(0x21)
151 #define /*0x110*/ oMacroUnk110 OBJECT_FIELD_F32(0x22)
153 /* Mario */
154 #define /*0x0F4*/ oMarioParticleFlags OBJECT_FIELD_S32(0x1B)
155 #define /*0x108*/ oMarioPoleUnk108 OBJECT_FIELD_S32(0x20)
156 #define /*0x108*/ oMarioReadingSignDYaw OBJECT_FIELD_S32(0x20)
157 #define /*0x10C*/ oMarioPoleYawVel OBJECT_FIELD_S32(0x21)
158 #define /*0x10C*/ oMarioCannonObjectYaw OBJECT_FIELD_S32(0x21)
159 #define /*0x10C*/ oMarioTornadoYawVel OBJECT_FIELD_S32(0x21)
160 #define /*0x10C*/ oMarioReadingSignDPosX OBJECT_FIELD_F32(0x21)
161 #define /*0x110*/ oMarioPolePos OBJECT_FIELD_F32(0x22)
162 #define /*0x110*/ oMarioCannonInputYaw OBJECT_FIELD_S32(0x22)
163 #define /*0x110*/ oMarioTornadoPosY OBJECT_FIELD_F32(0x22)
164 #define /*0x110*/ oMarioReadingSignDPosZ OBJECT_FIELD_F32(0x22)
165 #define /*0x110*/ oMarioWhirlpoolPosY OBJECT_FIELD_F32(0x22)
166 #define /*0x110*/ oMarioBurnTimer OBJECT_FIELD_S32(0x22)
167 #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22)
168 #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22)
169 #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22)
171 /* 1-Up Hidden */
172 #define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B)
174 /* Activated Back and Forth Platform */
175 #define /*0x0F4*/ oActivatedBackAndForthPlatformMaxOffset OBJECT_FIELD_F32(0x1B)
176 #define /*0x0F8*/ oActivatedBackAndForthPlatformOffset OBJECT_FIELD_F32(0x1C)
177 #define /*0x0FC*/ oActivatedBackAndForthPlatformVel OBJECT_FIELD_F32(0x1D)
178 #define /*0x100*/ oActivatedBackAndForthPlatformCountdown OBJECT_FIELD_S32(0x1E)
179 #define /*0x104*/ oActivatedBackAndForthPlatformStartYaw OBJECT_FIELD_S32(0x1F)
180 #define /*0x108*/ oActivatedBackAndForthPlatformVertical OBJECT_FIELD_S32(0x20)
181 #define /*0x10C*/ oActivatedBackAndForthPlatformFlipRotation OBJECT_FIELD_S32(0x21)
183 /* Amp */
184 #define /*0x0F4*/ oAmpRadiusOfRotation OBJECT_FIELD_F32(0x1B)
185 #define /*0x0F8*/ oAmpYPhase OBJECT_FIELD_S32(0x1C)
187 /* Homing Amp */
188 #define /*0x0F4*/ oHomingAmpLockedOn OBJECT_FIELD_S32(0x1B)
189 #define /*0x0FC*/ oHomingAmpAvgY OBJECT_FIELD_F32(0x1D)
191 /* Arrow Lift */
192 #define /*0x0F4*/ oArrowLiftDisplacement OBJECT_FIELD_F32(0x1B)
193 #define /*0x100*/ oArrowLiftUnk100 OBJECT_FIELD_S32(0x1E)
195 /* Back-and-Forth Platform */
196 #define /*0x0F4*/ oBackAndForthPlatformUnkF4 OBJECT_FIELD_F32(0x1B)
197 #define /*0x0F8*/ oBackAndForthPlatformUnkF8 OBJECT_FIELD_F32(0x1C)
198 #define /*0x0FC*/ oBackAndForthPlatformUnkFC OBJECT_FIELD_F32(0x1D)
199 #define /*0x100*/ oBackAndForthPlatformUnk100 OBJECT_FIELD_F32(0x1E)
201 /* Bird */
202 #define /*0x0F4*/ oBirdSpeed OBJECT_FIELD_F32(0x1B)
203 #define /*0x0F8*/ oBirdTargetPitch OBJECT_FIELD_S32(0x1C)
204 #define /*0x0FC*/ oBirdTargetYaw OBJECT_FIELD_S32(0x1D)
206 /* Bird Chirp Chirp */
207 #define /*0x0F4*/ oBirdChirpChirpUnkF4 OBJECT_FIELD_S32(0x1B)
209 /* End Birds */
210 #define /*0x104*/ oEndBirdUnk104 OBJECT_FIELD_F32(0x1F)
212 /* Hidden Blue Coin */
213 #define /*0x0F8*/ oHiddenBlueCoinSwitch OBJECT_FIELD_OBJ(0x1C)
215 /* Bob-omb */
216 #define /*0x0F4*/ oBobombBlinkTimer OBJECT_FIELD_S32(0x1B)
217 #define /*0x0F8*/ oBobombFuseLit OBJECT_FIELD_S32(0x1C)
218 #define /*0x0FC*/ oBobombFuseTimer OBJECT_FIELD_S32(0x1D)
220 /* Bob-omb Buddy */
221 #define /*0x0F4*/ oBobombBuddyBlinkTimer OBJECT_FIELD_S32(0x1B)
222 #define /*0x0F8*/ oBobombBuddyHasTalkedToMario OBJECT_FIELD_S32(0x1C)
223 #define /*0x0FC*/ oBobombBuddyRole OBJECT_FIELD_S32(0x1D)
224 #define /*0x100*/ oBobombBuddyCannonStatus OBJECT_FIELD_S32(0x1E)
225 #define /*0x108*/ oBobombBuddyPosXCopy OBJECT_FIELD_F32(0x20)
226 #define /*0x10C*/ oBobombBuddyPosYCopy OBJECT_FIELD_F32(0x21)
227 #define /*0x110*/ oBobombBuddyPosZCopy OBJECT_FIELD_F32(0x22)
229 /* Bob-omb Explosion Bubble */
230 #define /*0x0FC*/ oBobombExpBubGfxScaleFacX OBJECT_FIELD_S32(0x1D)
231 #define /*0x100*/ oBobombExpBubGfxScaleFacY OBJECT_FIELD_S32(0x1E)
232 #define /*0x104*/ oBobombExpBubGfxExpRateX OBJECT_FIELD_S32(0x1F)
233 #define /*0x108*/ oBobombExpBubGfxExpRateY OBJECT_FIELD_S32(0x20)
235 /* Bomp (Small) */
236 #define /*0x100*/ oSmallBompInitX OBJECT_FIELD_F32(0x1E)
238 /* Boo */
239 #define /*0x088*/ oBooDeathStatus OBJECT_FIELD_S32(0x00)
240 #define /*0x0F4*/ oBooTargetOpacity OBJECT_FIELD_S32(0x1B)
241 #define /*0x0F8*/ oBooBaseScale OBJECT_FIELD_F32(0x1C)
242 #define /*0x0FC*/ oBooOscillationTimer OBJECT_FIELD_S32(0x1D)
243 #define /*0x100*/ oBooMoveYawDuringHit OBJECT_FIELD_S32(0x1E)
244 #define /*0x104*/ oBooMoveYawBeforeHit OBJECT_FIELD_F32(0x1F)
245 #define /*0x108*/ oBooParentBigBoo OBJECT_FIELD_OBJ(0x20)
246 #define /*0x10C*/ oBooNegatedAggressiveness OBJECT_FIELD_F32(0x21)
247 #define /*0x110*/ oBooInitialMoveYaw OBJECT_FIELD_S32(0x22)
248 #define /*0x1B0*/ oBooTurningSpeed OBJECT_FIELD_S16(0x4A, 0)
250 /* Big Boo */
251 #define /*0x1AC*/ oBigBooNumMinionBoosKilled OBJECT_FIELD_S32(0x49)
253 /* Bookend */
254 #define /*0x0F4*/ oBookendUnkF4 OBJECT_FIELD_S32(0x1B)
255 #define /*0x0F8*/ oBookendUnkF8 OBJECT_FIELD_S32(0x1C)
257 /* Book Switch */
258 #define /*0x0F4*/ oBookSwitchUnkF4 OBJECT_FIELD_F32(0x1B)
260 /* Book Switch Manager */
261 #define /*0x0F4*/ oBookSwitchManagerUnkF4 OBJECT_FIELD_S32(0x1B)
262 #define /*0x0F8*/ oBookSwitchManagerUnkF8 OBJECT_FIELD_S32(0x1C)
264 /* Haunted Bookshelf */
265 #define /*0x088*/ oHauntedBookshelfShouldOpen OBJECT_FIELD_S32(0x00)
267 /* Bouncing FireBall */
268 #define /*0x0F4*/ oBouncingFireBallUnkF4 OBJECT_FIELD_S32(0x1B)
270 /* Bowling Ball */
271 #define /*0x0F4*/ oBowlingBallTargetYaw OBJECT_FIELD_S32(0x1B)
272 // 0x1D-0x21 reserved for pathing
274 /* Bowling Ball Spawner (Generic) */
275 #define /*0x0F4*/ oBBallSpawnerMaxSpawnDist OBJECT_FIELD_F32(0x1B)
276 #define /*0x0F8*/ oBBallSpawnerSpawnOdds OBJECT_FIELD_F32(0x1C)
277 #define /*0x0FC*/ oBBallSpawnerPeriodMinus1 OBJECT_FIELD_S32(0x1D)
279 /* Bowser */
280 #define /*0x088*/ oBowserUnk88 OBJECT_FIELD_S32(0x00)
281 #define /*0x0F4*/ oBowserUnkF4 OBJECT_FIELD_S32(0x1B)
282 #define /*0x0F8*/ oBowserUnkF8 OBJECT_FIELD_S32(0x1C)
283 #define /*0x0FC*/ oBowserDistToCentre OBJECT_FIELD_F32(0x1D)
284 #define /*0x106*/ oBowserUnk106 OBJECT_FIELD_S16(0x1F, 1)
285 #define /*0x108*/ oBowserUnk108 OBJECT_FIELD_S16(0x20, 0)
286 #define /*0x10A*/ oBowserHeldAnglePitch OBJECT_FIELD_S16(0x20, 1)
287 #define /*0x10D*/ oBowserHeldAngleVelYaw OBJECT_FIELD_S16(0x21, 0)
288 #define /*0x10E*/ oBowserUnk10E OBJECT_FIELD_S16(0x21, 1)
289 #define /*0x110*/ oBowserUnk110 OBJECT_FIELD_S16(0x22, 0)
290 #define /*0x112*/ oBowserAngleToCentre OBJECT_FIELD_S16(0x22, 1)
291 #define /*0x1AC*/ oBowserUnk1AC OBJECT_FIELD_S16(0x49, 0)
292 #define /*0x1AE*/ oBowserUnk1AE OBJECT_FIELD_S16(0x49, 1)
293 #define /*0x1B0*/ oBowserEyesShut OBJECT_FIELD_S16(0x4A, 0)
294 #define /*0x1B2*/ oBowserUnk1B2 OBJECT_FIELD_S16(0x4A, 1)
296 /* Bowser Shockwave */
297 #define /*0x0F4*/ oBowserShockWaveUnkF4 OBJECT_FIELD_F32(0x1B)
299 /* Black Smoke Bowser */
300 #define /*0x0F4*/ oBlackSmokeBowserUnkF4 OBJECT_FIELD_F32(0x1B)
302 /* Bowser Key Cutscene */
303 #define /*0x0F4*/ oBowserKeyScale OBJECT_FIELD_F32(0x1B)
305 /* Bowser Puzzle */
306 #define /*0x0F4*/ oBowserPuzzleCompletionFlags OBJECT_FIELD_S32(0x1B)
308 /* Bowser Puzzle Piece */
309 #define /*0x0FC*/ oBowserPuzzlePieceOffsetX OBJECT_FIELD_F32(0x1D)
310 #define /*0x100*/ oBowserPuzzlePieceOffsetY OBJECT_FIELD_F32(0x1E)
311 #define /*0x104*/ oBowserPuzzlePieceOffsetZ OBJECT_FIELD_F32(0x1F)
312 #define /*0x108*/ oBowserPuzzlePieceContinuePerformingAction OBJECT_FIELD_S32(0x20)
313 #define /*0x10C*/ oBowserPuzzlePieceActionList OBJECT_FIELD_VPTR(0x21)
314 #define /*0x110*/ oBowserPuzzlePieceNextAction OBJECT_FIELD_VPTR(0x22)
316 /* Bubba */
317 #define /*0x0F4*/ oBubbaUnkF4 OBJECT_FIELD_F32(0x1B)
318 #define /*0x0F8*/ oBubbaUnkF8 OBJECT_FIELD_S32(0x1C)
319 #define /*0x0FC*/ oBubbaUnkFC OBJECT_FIELD_S32(0x1D)
320 #define /*0x100*/ oBubbaUnk100 OBJECT_FIELD_S32(0x1E)
321 #define /*0x104*/ oBubbaUnk104 OBJECT_FIELD_S32(0x1F)
322 #define /*0x108*/ oBubbaUnk108 OBJECT_FIELD_F32(0x20)
323 #define /*0x10C*/ oBubbaUnk10C OBJECT_FIELD_F32(0x21)
324 #define /*0x1AC*/ oBubbaUnk1AC OBJECT_FIELD_S16(0x49, 0)
325 #define /*0x1AE*/ oBubbaUnk1AE OBJECT_FIELD_S16(0x49, + 1)
326 #define /*0x1B0*/ oBubbaUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
327 #define /*0x1B2*/ oBubbaUnk1B2 OBJECT_FIELD_S16(0x4A, + 1)
329 /* Bullet Bill */
330 #define /*0x0F8*/ oBulletBillUnkF8 OBJECT_FIELD_S32(0x1C)
332 /* Bully (all variants) */
333 #define /*0x0F4*/ oBullySubtype OBJECT_FIELD_S32(0x1B)
334 #define /*0x0F8*/ oBullyPrevX OBJECT_FIELD_F32(0x1C)
335 #define /*0x0FC*/ oBullyPrevY OBJECT_FIELD_F32(0x1D)
336 #define /*0x100*/ oBullyPrevZ OBJECT_FIELD_F32(0x1E)
337 #define /*0x104*/ oBullyKBTimerAndMinionKOCounter OBJECT_FIELD_S32(0x1F)
338 #define /*0x108*/ oBullyMarioCollisionAngle OBJECT_FIELD_S32(0x20)
340 /* Butterfly */
341 #define /*0x0F4*/ oButterflyYPhase OBJECT_FIELD_S32(0x1B)
343 /* Triplet Butterfly */
344 #define /*0x0F4*/ oTripletButterflyScale OBJECT_FIELD_F32(0x1B)
345 #define /*0x0F8*/ oTripletButterflySpeed OBJECT_FIELD_F32(0x1C)
346 #define /*0x0FC*/ oTripletButterflyBaseYaw OBJECT_FIELD_F32(0x1D)
347 #define /*0x100*/ oTripletButterflyTargetPitch OBJECT_FIELD_S32(0x1E)
348 #define /*0x104*/ oTripletButterflyTargetYaw OBJECT_FIELD_S32(0x1F)
349 #define /*0x108*/ oTripletButterflyType OBJECT_FIELD_S32(0x20)
350 #define /*0x10C*/ oTripletButterflyModel OBJECT_FIELD_S32(0x21)
351 #define /*0x110*/ oTripletButterflySelectedButterfly OBJECT_FIELD_S32(0x22)
352 #define /*0x1AC*/ oTripletButterflyScalePhase OBJECT_FIELD_S32(0x49)
354 /* Cannon */
355 #define /*0x0F4*/ oCannonUnkF4 OBJECT_FIELD_S32(0x1B)
356 #define /*0x0F8*/ oCannonUnkF8 OBJECT_FIELD_S32(0x1C)
357 #define /*0x10C*/ oCannonUnk10C OBJECT_FIELD_S32(0x21)
359 /* Cap */
360 #define /*0x0F4*/ oCapUnkF4 OBJECT_FIELD_S32(0x1B)
361 #define /*0x0F8*/ oCapUnkF8 OBJECT_FIELD_S32(0x1C)
363 /* Chain Chomp */
364 #define /*0x0F4*/ oChainChompSegments OBJECT_FIELD_CHAIN_SEGMENT(0x1B)
365 #define /*0x0F8*/ oChainChompMaxDistFromPivotPerChainPart OBJECT_FIELD_F32(0x1C)
366 #define /*0x0FC*/ oChainChompMaxDistBetweenChainParts OBJECT_FIELD_F32(0x1D)
367 #define /*0x100*/ oChainChompDistToPivot OBJECT_FIELD_F32(0x1E)
368 #define /*0x104*/ oChainChompUnk104 OBJECT_FIELD_F32(0x1F)
369 #define /*0x108*/ oChainChompRestrictedByChain OBJECT_FIELD_S32(0x20)
370 #define /*0x10C*/ oChainChompTargetPitch OBJECT_FIELD_S32(0x21)
371 #define /*0x110*/ oChainChompNumLunges OBJECT_FIELD_S32(0x22)
372 #define /*0x1AC*/ oChainChompReleaseStatus OBJECT_FIELD_S32(0x49)
373 #define /*0x1B0*/ oChainChompHitGate OBJECT_FIELD_S32(0x4A)
375 /* Checkerboard Platform */
376 #define /*0x0F8*/ oCheckerBoardPlatformUnkF8 OBJECT_FIELD_S32(0x1C) // oAction like
377 #define /*0x0FC*/ oCheckerBoardPlatformUnkFC OBJECT_FIELD_S32(0x1D)
378 #define /*0x1AC*/ oCheckerBoardPlatformUnk1AC OBJECT_FIELD_F32(0x49)
380 /* Cheep Cheep */
381 #define /*0x0F4*/ oCheepCheepUnkF4 OBJECT_FIELD_F32(0x1B)
382 #define /*0x0F8*/ oCheepCheepUnkF8 OBJECT_FIELD_F32(0x1C)
383 #define /*0x0FC*/ oCheepCheepUnkFC OBJECT_FIELD_F32(0x1D)
384 #define /*0x104*/ oCheepCheepUnk104 OBJECT_FIELD_F32(0x1F)
385 #define /*0x108*/ oCheepCheepUnk108 OBJECT_FIELD_F32(0x20)
387 /* Chuckya */
388 #define /*0x088*/ oChuckyaUnk88 OBJECT_FIELD_S32(0x00)
389 #define /*0x0F8*/ oChuckyaUnkF8 OBJECT_FIELD_S32(0x1C)
390 #define /*0x0FC*/ oChuckyaUnkFC OBJECT_FIELD_S32(0x1D)
391 #define /*0x100*/ oChuckyaUnk100 OBJECT_FIELD_S32(0x1E)
393 /* Clam */
394 #define /*0x0F4*/ oClamUnkF4 OBJECT_FIELD_S32(0x1B)
396 /* Cloud */
397 #define /*0x0F4*/ oCloudCenterX OBJECT_FIELD_F32(0x1B)
398 #define /*0x0F8*/ oCloudCenterY OBJECT_FIELD_F32(0x1C)
399 #define /*0x0FC*/ oCloudBlowing OBJECT_FIELD_S32(0x1D)
400 #define /*0x100*/ oCloudGrowSpeed OBJECT_FIELD_F32(0x1E)
401 #define /*0x1AC*/ oCloudFwooshMovementRadius OBJECT_FIELD_S16(0x49, 0)
403 /* Coin */
404 #define /*0x0F4*/ oCoinUnkF4 OBJECT_FIELD_S32(0x1B)
405 #define /*0x0F8*/ oCoinUnkF8 OBJECT_FIELD_S32(0x1C)
406 #define /*0x110*/ oCoinUnk110 OBJECT_FIELD_F32(0x22)
407 #ifndef VERSION_JP
408 #define /*0x1B0*/ oCoinUnk1B0 OBJECT_FIELD_S32(0x4A)
409 #endif
411 /* Collision Particle */
412 #define /*0x0F4*/ oCollisionParticleUnkF4 OBJECT_FIELD_F32(0x1B)
414 /* Controllable Platform */
415 #define /*0x0F8*/ oControllablePlatformUnkF8 OBJECT_FIELD_S32(0x1C)
416 #define /*0x0FC*/ oControllablePlatformUnkFC OBJECT_FIELD_F32(0x1D)
417 #define /*0x100*/ oControllablePlatformUnk100 OBJECT_FIELD_S32(0x1E)
419 /* Breakable Box Small (Small Cork Box) */
420 #define /*0x0F4*/ oBreakableBoxSmallReleased OBJECT_FIELD_S32(0x1B)
421 #define /*0x0FC*/ oBreakableBoxSmallFramesSinceReleased OBJECT_FIELD_S32(0x1D)
423 /* Jumping Box (Crazy Box) */
424 #define /*0x0F4*/ oJumpingBoxUnkF4 OBJECT_FIELD_S32(0x1B)
425 #define /*0x0F8*/ oJumpingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
427 /* RR Cruiser Wing */
428 #define /*0x0F4*/ oRRCruiserWingUnkF4 OBJECT_FIELD_S32(0x1B)
429 #define /*0x0F8*/ oRRCruiserWingUnkF8 OBJECT_FIELD_S32(0x1C)
431 /* Donut Platform Spawner */
432 #define /*0x0F4*/ oDonutPlatformSpawnerSpawnedPlatforms OBJECT_FIELD_S32(0x1B)
434 /* Door */
435 #define /*0x088*/ oDoorUnk88 OBJECT_FIELD_S32(0x00)
436 #define /*0x0F8*/ oDoorUnkF8 OBJECT_FIELD_S32(0x1C)
437 #define /*0x0FC*/ oDoorUnkFC OBJECT_FIELD_S32(0x1D)
438 #define /*0x100*/ oDoorUnk100 OBJECT_FIELD_S32(0x1E)
440 /* Dorrie */
441 #define /*0x0F4*/ oDorrieDistToHome OBJECT_FIELD_F32(0x1B)
442 #define /*0x0F8*/ oDorrieOffsetY OBJECT_FIELD_F32(0x1C)
443 #define /*0x0FC*/ oDorrieVelY OBJECT_FIELD_F32(0x1D)
444 #define /*0x100*/ oDorrieForwardDistToMario OBJECT_FIELD_F32(0x1E)
445 #define /*0x104*/ oDorrieYawVel OBJECT_FIELD_S32(0x1F)
446 #define /*0x10C*/ oDorrieLiftingMario OBJECT_FIELD_S32(0x21)
447 #define /*0x1AC*/ oDorrieGroundPounded OBJECT_FIELD_S16(0x49, 0)
448 #define /*0x1AE*/ oDorrieAngleToHome OBJECT_FIELD_S16(0x49, + 1)
449 #define /*0x1B0*/ oDorrieNeckAngle OBJECT_FIELD_S16(0x4A, 0)
450 #define /*0x1B2*/ oDorrieHeadRaiseSpeed OBJECT_FIELD_S16(0x4A, + 1)
452 /* Elevator */
453 #define /*0x0F4*/ oElevatorUnkF4 OBJECT_FIELD_F32(0x1B)
454 #define /*0x0F8*/ oElevatorUnkF8 OBJECT_FIELD_F32(0x1C)
455 #define /*0x0FC*/ oElevatorUnkFC OBJECT_FIELD_F32(0x1D)
456 #define /*0x100*/ oElevatorUnk100 OBJECT_FIELD_S32(0x1E)
458 /* Exclamation Box */
459 #define /*0x0F4*/ oExclamationBoxUnkF4 OBJECT_FIELD_F32(0x1B) // scale?
460 #define /*0x0F8*/ oExclamationBoxUnkF8 OBJECT_FIELD_F32(0x1C) // scale?
461 #define /*0x0FC*/ oExclamationBoxUnkFC OBJECT_FIELD_S32(0x1D) // angle?
463 /* Eyerok Boss */
464 #define /*0x0F8*/ oEyerokBossNumHands OBJECT_FIELD_S32(0x1C)
465 #define /*0x0FC*/ oEyerokBossUnkFC OBJECT_FIELD_S32(0x1D)
466 #define /*0x100*/ oEyerokBossActiveHand OBJECT_FIELD_S32(0x1E)
467 #define /*0x104*/ oEyerokBossUnk104 OBJECT_FIELD_S32(0x1F)
468 #define /*0x108*/ oEyerokBossUnk108 OBJECT_FIELD_F32(0x20)
469 #define /*0x10C*/ oEyerokBossUnk10C OBJECT_FIELD_F32(0x21)
470 #define /*0x110*/ oEyerokBossUnk110 OBJECT_FIELD_F32(0x22)
471 #define /*0x1AC*/ oEyerokBossUnk1AC OBJECT_FIELD_S32(0x49)
473 /* Eyerok Hand */
474 #define /*0x0F4*/ oEyerokHandWakeUpTimer OBJECT_FIELD_S32(0x1B)
475 #define /*0x0F8*/ oEyerokReceivedAttack OBJECT_FIELD_S32(0x1C)
476 #define /*0x0FC*/ oEyerokHandUnkFC OBJECT_FIELD_S32(0x1D)
477 #define /*0x100*/ oEyerokHandUnk100 OBJECT_FIELD_S32(0x1E)
479 /* Falling Pillar */
480 #define /*0x0F4*/ oFallingPillarPitchAcceleration OBJECT_FIELD_F32(0x1B)
482 /* Fire Spitter */
483 #define /*0x0F4*/ oFireSpitterScaleVel OBJECT_FIELD_F32(0x1B)
485 /* Blue Fish */
486 #define /*0x0F4*/ oBlueFishRandomVel OBJECT_FIELD_F32(0x1B)
487 #define /*0x0F8*/ oBlueFishRandomTime OBJECT_FIELD_S32(0x1C)
488 #define /*0x100*/ oBlueFishRandomAngle OBJECT_FIELD_F32(0x1E)
490 /* Fish Group */
491 #define /*0x0F4*/ oFishWaterLevel OBJECT_FIELD_F32(0x1B)
492 #define /*0x0F8*/ oFishPosY OBJECT_FIELD_F32(0x1C)
493 #define /*0x0FC*/ oFishRandomOffset OBJECT_FIELD_F32(0x1D)
494 #define /*0x100*/ oFishRandomSpeed OBJECT_FIELD_S32(0x1E)
495 #define /*0x104*/ oFishRespawnDistance OBJECT_FIELD_F32(0x1F)
496 #define /*0x108*/ oFishRandomVel OBJECT_FIELD_F32(0x20)
497 #define /*0x10C*/ oFishDepthDistance OBJECT_FIELD_F32(0x21)
498 #define /*0x110*/ oFishActiveDistance OBJECT_FIELD_F32(0x22)
500 /* Flame */
501 #define /*0x0F4*/ oFlameUnkF4 OBJECT_FIELD_F32(0x1B)
502 #define /*0x0F8*/ oFlameUnkF8 OBJECT_FIELD_S32(0x1C)
503 #define /*0x0FC*/ oFlameUnkFC OBJECT_FIELD_F32(0x1D)
504 #define /*0x100*/ oFlameUnk100 OBJECT_FIELD_OBJ(0x1E)
506 /* Blue Flame */
507 #define /*0x0F8*/ oBlueFlameUnkF8 OBJECT_FIELD_F32(0x1C)
509 /* Small Piranha Flame */
510 #define /*0x0F4*/ oSmallPiranhaFlameUnkF4 OBJECT_FIELD_F32(0x1B)
511 #define /*0x0F8*/ oSmallPiranhaFlameUnkF8 OBJECT_FIELD_F32(0x1C)
512 #define /*0x0FC*/ oSmallPiranhaFlameUnkFC OBJECT_FIELD_S32(0x1D)
513 #define /*0x100*/ oSmallPiranhaFlameUnk100 OBJECT_FIELD_S32(0x1E)
514 #define /*0x104*/ oSmallPiranhaFlameUnk104 OBJECT_FIELD_F32(0x1F)
516 /* Moving Flame */
517 #define /*0x0F4*/ oMovingFlameTimer OBJECT_FIELD_S32(0x1B)
519 /* Flamethrower Flame */
520 #define /*0x110*/ oFlameThowerFlameUnk110 OBJECT_FIELD_S32(0x22)
522 /* Flamethrower */
523 #define /*0x110*/ oFlameThowerUnk110 OBJECT_FIELD_S32(0x22)
525 /* Floating Platform */
526 #define /*0x0F4*/ oFloatingPlatformUnkF4 OBJECT_FIELD_S32(0x1B)
527 #define /*0x0F8*/ oFloatingPlatformUnkF8 OBJECT_FIELD_F32(0x1C)
528 #define /*0x0FC*/ oFloatingPlatformUnkFC OBJECT_FIELD_F32(0x1D)
529 #define /*0x100*/ oFloatingPlatformUnk100 OBJECT_FIELD_S32(0x1E)
531 /* Floor Switch Press Animation */
532 #define /*0x0F4*/ oFloorSwitchPressAnimationUnkF4 OBJECT_FIELD_S32(0x1B)
533 #define /*0x0F8*/ oFloorSwitchPressAnimationUnkF8 OBJECT_FIELD_S32(0x1C)
534 #define /*0x0FC*/ oFloorSwitchPressAnimationUnkFC OBJECT_FIELD_S32(0x1D)
535 #define /*0x100*/ oFloorSwitchPressAnimationUnk100 OBJECT_FIELD_S32(0x1E)
537 /* Fly Guy */
538 #define /*0x0F4*/ oFlyGuyIdleTimer OBJECT_FIELD_S32(0x1B)
539 #define /*0x0F8*/ oFlyGuyOscTimer OBJECT_FIELD_S32(0x1C)
540 #define /*0x0FC*/ oFlyGuyUnusedJitter OBJECT_FIELD_S32(0x1D)
541 #define /*0x100*/ oFlyGuyLungeYDecel OBJECT_FIELD_F32(0x1E)
542 #define /*0x104*/ oFlyGuyLungeTargetPitch OBJECT_FIELD_S32(0x1F)
543 #define /*0x108*/ oFlyGuyTargetRoll OBJECT_FIELD_S32(0x20)
544 #define /*0x10C*/ oFlyGuyScaleVel OBJECT_FIELD_F32(0x21)
546 /* Grand Star */
547 #define /*0x108*/ oGrandStarUnk108 OBJECT_FIELD_S32(0x20)
549 /* Horizontal Grindel */
550 #define /*0x0F4*/ oHorizontalGrindelTargetYaw OBJECT_FIELD_S32(0x1B)
551 #define /*0x0F8*/ oHorizontalGrindelDistToHome OBJECT_FIELD_F32(0x1C)
552 #define /*0x0FC*/ oHorizontalGrindelOnGround OBJECT_FIELD_S32(0x1D)
554 /* Goomba */
555 #define /*0x0F4*/ oGoombaSize OBJECT_FIELD_S32(0x1B)
556 #define /*0x0F8*/ oGoombaScale OBJECT_FIELD_F32(0x1C)
557 #define /*0x0FC*/ oGoombaWalkTimer OBJECT_FIELD_S32(0x1D)
558 #define /*0x100*/ oGoombaTargetYaw OBJECT_FIELD_S32(0x1E)
559 #define /*0x104*/ oGoombaBlinkTimer OBJECT_FIELD_S32(0x1F)
560 #define /*0x108*/ oGoombaTurningAwayFromWall OBJECT_FIELD_S32(0x20)
561 #define /*0x10C*/ oGoombaRelativeSpeed OBJECT_FIELD_F32(0x21)
563 /* Haunted Chair */
564 #define /*0x0F4*/ oHauntedChairUnkF4 OBJECT_FIELD_S32(0x1B)
565 #define /*0x0F8*/ oHauntedChairUnkF8 OBJECT_FIELD_F32(0x1C)
566 #define /*0x0FC*/ oHauntedChairUnkFC OBJECT_FIELD_F32(0x1D)
567 #define /*0x100*/ oHauntedChairUnk100 OBJECT_FIELD_S32P(0x1E)
568 #define /*0x104*/ oHauntedChairUnk104 OBJECT_FIELD_S32(0x1F)
570 /* Heave-Ho */
571 #define /*0x088*/ oHeaveHoUnk88 OBJECT_FIELD_S32(0x00)
572 #define /*0x0F4*/ oHeaveHoUnkF4 OBJECT_FIELD_F32(0x1B)
574 /* Hidden Object */
575 #define /*0x0F4*/ oHiddenObjectUnkF4 OBJECT_FIELD_OBJ(0x1B)
577 /* Hoot */
578 #define /*0x0F4*/ oHootAvailability OBJECT_FIELD_S32(0x1B)
579 #define /*0x110*/ oHootMarioReleaseTime OBJECT_FIELD_S32(0x22)
581 /* Horizontal Movement */
582 #define /*0x0F4*/ oHorizontalMovementUnkF4 OBJECT_FIELD_S32(0x1B)
583 #define /*0x0F8*/ oHorizontalMovementUnkF8 OBJECT_FIELD_S32(0x1C)
584 #define /*0x100*/ oHorizontalMovementUnk100 OBJECT_FIELD_F32(0x1E)
585 #define /*0x104*/ oHorizontalMovementUnk104 OBJECT_FIELD_S32(0x1F)
586 #define /*0x108*/ oHorizontalMovementUnk108 OBJECT_FIELD_F32(0x20)
588 /* Kickable Board */
589 #define /*0x0F4*/ oKickableBoardF4 OBJECT_FIELD_S32(0x1B)
590 #define /*0x0F8*/ oKickableBoardF8 OBJECT_FIELD_S32(0x1C)
592 /* King Bob-omb */
593 #define /*0x088*/ oKingBobombUnk88 OBJECT_FIELD_S32(0x00)
594 #define /*0x0F8*/ oKingBobombUnkF8 OBJECT_FIELD_S32(0x1C)
595 #define /*0x0FC*/ oKingBobombUnkFC OBJECT_FIELD_S32(0x1D)
596 #define /*0x100*/ oKingBobombUnk100 OBJECT_FIELD_S32(0x1E)
597 #define /*0x104*/ oKingBobombUnk104 OBJECT_FIELD_S32(0x1F)
598 #define /*0x108*/ oKingBobombUnk108 OBJECT_FIELD_S32(0x20)
600 /* Klepto */
601 #define /*0x0F4*/ oKleptoDistanceToTarget OBJECT_FIELD_F32(0x1B)
602 #define /*0x0F8*/ oKleptoUnkF8 OBJECT_FIELD_F32(0x1C)
603 #define /*0x0FC*/ oKleptoUnkFC OBJECT_FIELD_F32(0x1D)
604 #define /*0x100*/ oKleptoSpeed OBJECT_FIELD_F32(0x1E)
605 #define /*0x104*/ oKleptoStartPosX OBJECT_FIELD_F32(0x1F)
606 #define /*0x108*/ oKleptoStartPosY OBJECT_FIELD_F32(0x20)
607 #define /*0x10C*/ oKleptoStartPosZ OBJECT_FIELD_F32(0x21)
608 #define /*0x110*/ oKleptoTimeUntilTargetChange OBJECT_FIELD_S32(0x22)
609 #define /*0x1AC*/ oKleptoTargetNumber OBJECT_FIELD_S16(0x49, 0)
610 #define /*0x1AE*/ oKleptoUnk1AE OBJECT_FIELD_S16(0x49, + 1)
611 #define /*0x1B0*/ oKleptoUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
612 #define /*0x1B2*/ oKleptoYawToTarget OBJECT_FIELD_S16(0x4A, + 1)
614 /* Koopa */
615 #define /*0x0F4*/ oKoopaAgility OBJECT_FIELD_F32(0x1B)
616 #define /*0x0F8*/ oKoopaMovementType OBJECT_FIELD_S32(0x1C)
617 #define /*0x0FC*/ oKoopaTargetYaw OBJECT_FIELD_S32(0x1D)
618 #define /*0x100*/ oKoopaUnshelledTimeUntilTurn OBJECT_FIELD_S32(0x1E)
619 #define /*0x104*/ oKoopaTurningAwayFromWall OBJECT_FIELD_S32(0x1F)
620 #define /*0x108*/ oKoopaDistanceToMario OBJECT_FIELD_F32(0x20)
621 #define /*0x10C*/ oKoopaAngleToMario OBJECT_FIELD_S32(0x21)
622 #define /*0x110*/ oKoopaBlinkTimer OBJECT_FIELD_S32(0x22)
623 #define /*0x1AC*/ oKoopaCountdown OBJECT_FIELD_S16(0x49, 0)
624 #define /*0x1AE*/ oKoopaTheQuickRaceIndex OBJECT_FIELD_S16(0x49, 1)
625 #define /*0x1B0*/ oKoopaTheQuickInitTextboxCooldown OBJECT_FIELD_S16(0x4A, 0)
626 // 0x1D-0x21 for koopa the quick reserved for pathing
628 /* Koopa Race Endpoint */
629 #define /*0x0F4*/ oKoopaRaceEndpointRaceBegun OBJECT_FIELD_S32(0x1B)
630 #define /*0x0F8*/ oKoopaRaceEndpointKoopaFinished OBJECT_FIELD_S32(0x1C)
631 #define /*0x0FC*/ oKoopaRaceEndpointRaceStatus OBJECT_FIELD_S32(0x1D)
632 #define /*0x100*/ oKoopaRaceEndpointUnk100 OBJECT_FIELD_S32(0x1E)
633 #define /*0x104*/ oKoopaRaceEndpointRaceEnded OBJECT_FIELD_S32(0x1F)
635 /* Koopa Shell Flame */
636 #define /*0x0F4*/ oKoopaShellFlameUnkF4 OBJECT_FIELD_F32(0x1B)
637 #define /*0x0F8*/ oKoopaShellFlameUnkF8 OBJECT_FIELD_F32(0x1C)
639 /* Camera Lakitu */
640 #define /*0x0F4*/ oCameraLakituBlinkTimer OBJECT_FIELD_S32(0x1B)
641 #define /*0x0F8*/ oCameraLakituSpeed OBJECT_FIELD_F32(0x1C)
642 #define /*0x0FC*/ oCameraLakituCircleRadius OBJECT_FIELD_F32(0x1D)
643 #define /*0x100*/ oCameraLakituFinishedDialog OBJECT_FIELD_S32(0x1E)
644 #ifndef VERSION_JP
645 #define /*0x104*/ oCameraLakituUnk104 OBJECT_FIELD_S32(0x1F)
646 #endif
647 #define /*0x1AC*/ oCameraLakituPitchVel OBJECT_FIELD_S16(0x49, 0)
648 #define /*0x1AE*/ oCameraLakituYawVel OBJECT_FIELD_S16(0x49, + 1)
650 /* Evil Lakitu */
651 #define /*0x0F4*/ oEnemyLakituNumSpinies OBJECT_FIELD_S32(0x1B)
652 #define /*0x0F8*/ oEnemyLakituBlinkTimer OBJECT_FIELD_S32(0x1C)
653 #define /*0x0FC*/ oEnemyLakituSpinyCooldown OBJECT_FIELD_S32(0x1D)
654 #define /*0x100*/ oEnemyLakituFaceForwardCountdown OBJECT_FIELD_S32(0x1E)
656 /* Intro Cutscene Lakitu */
657 #define /*0x0F8*/ oIntroLakituSplineSegmentProgress OBJECT_FIELD_F32(0x1C)
658 #define /*0x0FC*/ oIntroLakituSplineSegment OBJECT_FIELD_F32(0x1D)
659 #define /*0x100*/ oIntroLakituUnk100 OBJECT_FIELD_F32(0x1E)
660 #define /*0x104*/ oIntroLakituUnk104 OBJECT_FIELD_F32(0x1F)
661 #define /*0x108*/ oIntroLakituUnk108 OBJECT_FIELD_F32(0x20)
662 #define /*0x10C*/ oIntroLakituUnk10C OBJECT_FIELD_F32(0x21)
663 #define /*0x110*/ oIntroLakituUnk110 OBJECT_FIELD_F32(0x22)
664 #define /*0x1AC*/ oIntroLakituCloud OBJECT_FIELD_OBJ(0x49)
666 /* Main Menu Button */
667 #define /*0x0F4*/ oMenuButtonState OBJECT_FIELD_S32(0x1B)
668 #define /*0x0F8*/ oMenuButtonTimer OBJECT_FIELD_S32(0x1C)
669 #define /*0x0FC*/ oMenuButtonOrigPosX OBJECT_FIELD_F32(0x1D)
670 #define /*0x100*/ oMenuButtonOrigPosY OBJECT_FIELD_F32(0x1E)
671 #define /*0x104*/ oMenuButtonOrigPosZ OBJECT_FIELD_F32(0x1F)
672 #define /*0x108*/ oMenuButtonScale OBJECT_FIELD_F32(0x20)
673 #define /*0x10C*/ oMenuButtonActionPhase OBJECT_FIELD_S32(0x21)
675 /* Manta Ray */
676 #define /*0x0F4*/ oMantaUnkF4 OBJECT_FIELD_S32(0x1B)
677 #define /*0x0F8*/ oMantaUnkF8 OBJECT_FIELD_S32(0x1C)
678 #define /*0x1AC*/ oMantaUnk1AC OBJECT_FIELD_S32(0x49)
680 /* Merry-Go-Round */
681 #define /*0x088*/ oMerryGoRoundStopped OBJECT_FIELD_S32(0x00)
682 #define /*0x0F8*/ oMerryGoRoundMusicShouldPlay OBJECT_FIELD_S32(0x1C)
683 #define /*0x0FC*/ oMerryGoRoundMarioIsOutside OBJECT_FIELD_S32(0x1D)
685 /* Merry-Go-Round Boo Manager */
686 #define /*0x088*/ oMerryGoRoundBooManagerNumBoosKilled OBJECT_FIELD_S32(0x00)
687 #define /*0x0FC*/ oMerryGoRoundBooManagerNumBoosSpawned OBJECT_FIELD_S32(0x1D)
689 /* Mips */
690 #define /*0x0F4*/ oMipsStarStatus OBJECT_FIELD_S32(0x1B)
691 #define /*0x0F8*/ oMipsStartWaypointIndex OBJECT_FIELD_S32(0x1C)
692 // 0x1D-0x21 reserved for pathing
693 #define /*0x1AC*/ oMipsForwardVelocity OBJECT_FIELD_F32(0x49)
695 /* Moneybag */
696 #define /*0x0F4*/ oMoneybagJumpState OBJECT_FIELD_S32(0x1B)
698 /* Monty Mole */
699 #define /*0x0F4*/ oMontyMoleCurrentHole OBJECT_FIELD_OBJ(0x1B)
700 #define /*0x0F8*/ oMontyMoleHeightRelativeToFloor OBJECT_FIELD_F32(0x1C)
702 /* Monty Mole Hole */
703 #define /*0x0F4*/ oMontyMoleHoleCooldown OBJECT_FIELD_S32(0x1B)
705 /* Mr. Blizzard */
706 #define /*0x0F4*/ oMrBlizzardUnkF4 OBJECT_FIELD_F32(0x1B)
707 #define /*0x0F8*/ oMrBlizzardUnkF8 OBJECT_FIELD_OBJ(0x1C)
708 #define /*0x0FC*/ oMrBlizzardUnkFC OBJECT_FIELD_F32(0x1D)
709 #define /*0x100*/ oMrBlizzardUnk100 OBJECT_FIELD_S32(0x1E)
710 #define /*0x104*/ oMrBlizzardUnk104 OBJECT_FIELD_F32(0x1F)
711 #define /*0x108*/ oMrBlizzardUnk108 OBJECT_FIELD_F32(0x20)
712 #define /*0x10C*/ oMrBlizzardUnk10C OBJECT_FIELD_F32(0x21)
713 #define /*0x110*/ oMrBlizzardUnk110 OBJECT_FIELD_S32(0x22)
714 #define /*0x1AC*/ oMrBlizzardUnk1AC OBJECT_FIELD_S32(0x49)
716 /* Mr. I */
717 #define /*0x0F4*/ oMrIUnkF4 OBJECT_FIELD_S32(0x1B)
718 #define /*0x0FC*/ oMrIUnkFC OBJECT_FIELD_S32(0x1D)
719 #define /*0x100*/ oMrIUnk100 OBJECT_FIELD_S32(0x1E)
720 #define /*0x104*/ oMrIUnk104 OBJECT_FIELD_S32(0x1F)
721 #define /*0x108*/ oMrIUnk108 OBJECT_FIELD_S32(0x20)
722 #define /*0x10C*/ oMrISize OBJECT_FIELD_F32(0x21)
723 #define /*0x110*/ oMrIUnk110 OBJECT_FIELD_S32(0x22)
725 /* Object Respawner */
726 #define /*0x0F4*/ oRespawnerModelToRespawn OBJECT_FIELD_S32(0x1B)
727 #define /*0x0F8*/ oRespawnerMinSpawnDist OBJECT_FIELD_F32(0x1C)
728 #define /*0x0FC*/ oRespawnerBehaviorToRespawn OBJECT_FIELD_CVPTR(0x1D)
730 /* Openable Grill */
731 #define /*0x088*/ oOpenableGrillUnk88 OBJECT_FIELD_S32(0x00)
732 #define /*0x0F4*/ oOpenableGrillUnkF4 OBJECT_FIELD_OBJ(0x1B)
734 /* Intro Cutscene Peach */
735 #define /*0x108*/ oIntroPeachYawFromFocus OBJECT_FIELD_F32(0x20)
736 #define /*0x10C*/ oIntroPeachPitchFromFocus OBJECT_FIELD_F32(0x21)
737 #define /*0x110*/ oIntroPeachDistToCamera OBJECT_FIELD_F32(0x22)
739 /* Racing Penguin */
740 #define /*0x0F4*/ oRacingPenguinInitTextCooldown OBJECT_FIELD_S32(0x1B)
741 // 0x1D-0x21 reserved for pathing
742 #define /*0x110*/ oRacingPenguinWeightedNewTargetSpeed OBJECT_FIELD_F32(0x22)
743 #define /*0x1AC*/ oRacingPenguinFinalTextbox OBJECT_FIELD_S16(0x49, 0)
744 #define /*0x1AE*/ oRacingPenguinMarioWon OBJECT_FIELD_S16(0x49, + 1)
745 #define /*0x1B0*/ oRacingPenguinReachedBottom OBJECT_FIELD_S16(0x4A, 0)
746 #define /*0x1B2*/ oRacingPenguinMarioCheated OBJECT_FIELD_S16(0x4A, + 1)
748 /* Small Penguin */
749 #define /*0x088*/ oSmallPenguinUnk88 OBJECT_FIELD_S32(0x00)
750 #define /*0x100*/ oSmallPenguinUnk100 OBJECT_FIELD_S32(0x1E) // angle?
751 #define /*0x104*/ oSmallPenguinUnk104 OBJECT_FIELD_F32(0x1F)
752 #define /*0x108*/ oSmallPenguinUnk108 OBJECT_FIELD_F32(0x20)
753 #define /*0x110*/ oSmallPenguinUnk110 OBJECT_FIELD_S32(0x22)
755 /* SL Walking Penguin */
756 #define /*0x100*/ oSLWalkingPenguinWindCollisionXPos OBJECT_FIELD_F32(0x1E)
757 #define /*0x104*/ oSLWalkingPenguinWindCollisionZPos OBJECT_FIELD_F32(0x1F)
758 #define /*0x10C*/ oSLWalkingPenguinCurStep OBJECT_FIELD_S32(0x21)
759 #define /*0x110*/ oSLWalkingPenguinCurStepTimer OBJECT_FIELD_S32(0x22)
761 /* Piranha Plant */
762 #define /*0x0F4*/ oPiranhaPlantSleepMusicState OBJECT_FIELD_S32(0x1B)
763 #define /*0x0F8*/ oPiranhaPlantScale OBJECT_FIELD_F32(0x1C)
765 /* Fire Piranha Plant */
766 #define /*0x0F4*/ oFirePiranhaPlantNeutralScale OBJECT_FIELD_F32(0x1B)
767 #define /*0x0F8*/ oFirePiranhaPlantScale OBJECT_FIELD_F32(0x1C) //Shared with above obj? Coincidence?
768 #define /*0x0FC*/ oFirePiranhaPlantActive OBJECT_FIELD_S32(0x1D)
769 #define /*0x100*/ oFirePiranhaPlantDeathSpinTimer OBJECT_FIELD_S32(0x1E)
770 #define /*0x104*/ oFirePiranhaPlantDeathSpinVel OBJECT_FIELD_F32(0x1F)
772 /* Pitoune */
773 #define /*0x0F4*/ oPitouneUnkF4 OBJECT_FIELD_F32(0x1B)
774 #define /*0x0F8*/ oPitouneUnkF8 OBJECT_FIELD_F32(0x1C)
775 #define /*0x0FC*/ oPitouneUnkFC OBJECT_FIELD_F32(0x1D)
777 /* Platform */
778 #define /*0x0F4*/ oPlatformTimer OBJECT_FIELD_S32(0x1B)
779 #define /*0x0F8*/ oPlatformUnkF8 OBJECT_FIELD_OBJ(0x1C)
780 #define /*0x0FC*/ oPlatformUnkFC OBJECT_FIELD_S32(0x1D)
781 #define /*0x10C*/ oPlatformUnk10C OBJECT_FIELD_F32(0x21)
782 #define /*0x110*/ oPlatformUnk110 OBJECT_FIELD_F32(0x22)
784 /* Platform on Tracks */
785 #define /*0x088*/ oPlatformOnTrackBaseBallIndex OBJECT_FIELD_S32(0x00)
786 #define /*0x0F4*/ oPlatformOnTrackDistMovedSinceLastBall OBJECT_FIELD_F32(0x1B)
787 #define /*0x0F8*/ oPlatformOnTrackSkiLiftRollVel OBJECT_FIELD_F32(0x1C)
788 #define /*0x0FC*/ oPlatformOnTrackStartWaypoint OBJECT_FIELD_WAYPOINT(0x1D)
789 #define /*0x100*/ oPlatformOnTrackPrevWaypoint OBJECT_FIELD_WAYPOINT(0x1E)
790 #define /*0x104*/ oPlatformOnTrackPrevWaypointFlags OBJECT_FIELD_S32(0x1F)
791 #define /*0x108*/ oPlatformOnTrackPitch OBJECT_FIELD_S32(0x20)
792 #define /*0x10C*/ oPlatformOnTrackYaw OBJECT_FIELD_S32(0x21)
793 #define /*0x110*/ oPlatformOnTrackOffsetY OBJECT_FIELD_F32(0x22)
794 #define /*0x1AC*/ oPlatformOnTrackIsNotSkiLift OBJECT_FIELD_S16(0x49, 0)
795 #define /*0x1AE*/ oPlatformOnTrackIsNotHMC OBJECT_FIELD_S16(0x49, + 1)
796 #define /*0x1B0*/ oPlatformOnTrackType OBJECT_FIELD_S16(0x4A, 0)
797 #define /*0x1B2*/ oPlatformOnTrackWasStoodOn OBJECT_FIELD_S16(0x4A, + 1)
799 /* Platform Spawner */
800 #define /*0x0F4*/ oPlatformSpawnerUnkF4 OBJECT_FIELD_S32(0x1B)
801 #define /*0x0F8*/ oPlatformSpawnerUnkF8 OBJECT_FIELD_S32(0x1C)
802 #define /*0x0FC*/ oPlatformSpawnerUnkFC OBJECT_FIELD_S32(0x1D)
803 #define /*0x100*/ oPlatformSpawnerUnk100 OBJECT_FIELD_F32(0x1E)
804 #define /*0x104*/ oPlatformSpawnerUnk104 OBJECT_FIELD_F32(0x1F)
805 #define /*0x108*/ oPlatformSpawnerUnk108 OBJECT_FIELD_F32(0x20)
807 /* Pokey */
808 #define /*0x0F4*/ oPokeyAliveBodyPartFlags OBJECT_FIELD_U32(0x1B)
809 #define /*0x0F8*/ oPokeyNumAliveBodyParts OBJECT_FIELD_S32(0x1C)
810 #define /*0x0FC*/ oPokeyBottomBodyPartSize OBJECT_FIELD_F32(0x1D)
811 #define /*0x100*/ oPokeyHeadWasKilled OBJECT_FIELD_S32(0x1E)
812 #define /*0x104*/ oPokeyTargetYaw OBJECT_FIELD_S32(0x1F)
813 #define /*0x108*/ oPokeyChangeTargetTimer OBJECT_FIELD_S32(0x20)
814 #define /*0x10C*/ oPokeyTurningAwayFromWall OBJECT_FIELD_S32(0x21)
816 /* Pokey Body Part */
817 #define /*0x0F8*/ oPokeyBodyPartDeathDelayAfterHeadKilled OBJECT_FIELD_S32(0x1C)
818 #define /*0x110*/ oPokeyBodyPartBlinkTimer OBJECT_FIELD_S32(0x22)
820 /* DDD Pole */
821 #define /*0x0F4*/ oDDDPoleVel OBJECT_FIELD_F32(0x1B)
822 #define /*0x0F8*/ oDDDPoleMaxOffset OBJECT_FIELD_F32(0x1C)
823 #define /*0x0FC*/ oDDDPoleOffset OBJECT_FIELD_F32(0x1D)
825 /* Pyramid Top */
826 #define /*0x0F4*/ oPyramidTopPillarsTouched OBJECT_FIELD_S32(0x1B)
828 /* Pyramid Top Explosion */
829 #define /*0x0F4*/ oPyramidTopFragmentsScale OBJECT_FIELD_F32(0x1B)
831 /* Rolling Log */
832 #define /*0x0F4*/ oRollingLogUnkF4 OBJECT_FIELD_F32(0x1B)
834 /* Lll Rotating Hex Flame */
835 #define /*0x0F4*/ oLllRotatingHexFlameUnkF4 OBJECT_FIELD_F32(0x1B)
836 #define /*0x0F8*/ oLllRotatingHexFlameUnkF8 OBJECT_FIELD_F32(0x1C)
837 #define /*0x0FC*/ oLllRotatingHexFlameUnkFC OBJECT_FIELD_F32(0x1D)
839 /* Scuttlebug */
840 #define /*0x0F4*/ oScuttlebugUnkF4 OBJECT_FIELD_S32(0x1B)
841 #define /*0x0F8*/ oScuttlebugUnkF8 OBJECT_FIELD_S32(0x1C)
842 #define /*0x0FC*/ oScuttlebugUnkFC OBJECT_FIELD_S32(0x1D)
844 /* Scuttlebug Spawner */
845 #define /*0x088*/ oScuttlebugSpawnerUnk88 OBJECT_FIELD_S32(0x00)
846 #define /*0x0F4*/ oScuttlebugSpawnerUnkF4 OBJECT_FIELD_S32(0x1B)
848 /* Seesaw Platform */
849 #define /*0x0F4*/ oSeesawPlatformPitchVel OBJECT_FIELD_F32(0x1B)
851 /* Ship Part 3 */
852 #define /*0x0F4*/ oShipPart3UnkF4 OBJECT_FIELD_S32(0x1B) // angle?
853 #define /*0x0F8*/ oShipPart3UnkF8 OBJECT_FIELD_S32(0x1C) // angle?
855 /* Sink When Stepped On */
856 #define /*0x104*/ oSinkWhenSteppedOnUnk104 OBJECT_FIELD_S32(0x1F)
857 #define /*0x108*/ oSinkWhenSteppedOnUnk108 OBJECT_FIELD_F32(0x20)
859 /* Skeeter */
860 #define /*0x0F4*/ oSkeeterTargetAngle OBJECT_FIELD_S32(0x1B)
861 #define /*0x0F8*/ oSkeeterUnkF8 OBJECT_FIELD_S32(0x1C)
862 #define /*0x0FC*/ oSkeeterUnkFC OBJECT_FIELD_F32(0x1D)
863 #define /*0x100*/ oSkeeterWaitTime OBJECT_FIELD_S32(0x1E)
864 #define /*0x1AC*/ oSkeeterUnk1AC OBJECT_FIELD_S16(0x49, 0)
866 /* Jrb Sliding Box */
867 #define /*0x0F4*/ oJrbSlidingBoxUnkF4 OBJECT_FIELD_OBJ(0x1B)
868 #define /*0x0F8*/ oJrbSlidingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
869 #define /*0x0FC*/ oJrbSlidingBoxUnkFC OBJECT_FIELD_F32(0x1D)
871 /* WF Sliding Brick Platform */
872 #define /*0x0F4*/ oWFSlidBrickPtfmMovVel OBJECT_FIELD_F32(0x1B)
874 /* Smoke */
875 #define /*0x0F4*/ oSmokeTimer OBJECT_FIELD_S32(0x1B)
877 /* Snowman's Bottom */
878 #define /*0x0F4*/ oSnowmansBottomUnkF4 OBJECT_FIELD_F32(0x1B)
879 #define /*0x0F8*/ oSnowmansBottomUnkF8 OBJECT_FIELD_S32(0x1C)
880 #define /*0x1AC*/ oSnowmansBottomUnk1AC OBJECT_FIELD_S32(0x49)
881 // 0x1D-0x21 reserved for pathing
883 /* Snowman's Head */
884 #define /*0x0F4*/ oSnowmansHeadUnkF4 OBJECT_FIELD_S32(0x1B)
886 /* Snowman Wind Blowing */
887 #define /*0x0F4*/ oSLSnowmanWindOriginalYaw OBJECT_FIELD_S32(0x1B)
889 /* Snufit */
890 #define /*0x0F4*/ oSnufitRecoil OBJECT_FIELD_S32(0x1B)
891 #define /*0x0F8*/ oSnufitScale OBJECT_FIELD_F32(0x1C)
892 #define /*0x100*/ oSnufitCircularPeriod OBJECT_FIELD_S32(0x1E)
893 #define /*0x104*/ oSnufitBodyScalePeriod OBJECT_FIELD_S32(0x1F)
894 #define /*0x108*/ oSnufitBodyBaseScale OBJECT_FIELD_S32(0x20)
895 #define /*0x10C*/ oSnufitBullets OBJECT_FIELD_S32(0x21)
896 #define /*0x1AC*/ oSnufitXOffset OBJECT_FIELD_S16(0x49, 0)
897 #define /*0x1AE*/ oSnufitYOffset OBJECT_FIELD_S16(0x49, + 1)
898 #define /*0x1B0*/ oSnufitZOffset OBJECT_FIELD_S16(0x4A, 0)
899 #define /*0x1B2*/ oSnufitBodyScale OBJECT_FIELD_S16(0x4A, + 1)
901 /* Spindel */
902 #define /*0x0F4*/ oSpindelUnkF4 OBJECT_FIELD_S32(0x1B)
903 #define /*0x0F8*/ oSpindelUnkF8 OBJECT_FIELD_S32(0x1C)
905 /* Spinning Heart */
906 #define /*0x0F4*/ oSpinningHeartTotalSpin OBJECT_FIELD_S32(0x1B)
907 #define /*0x0F8*/ oSpinningHeartPlayedSound OBJECT_FIELD_S32(0x1C)
909 /* Spiny */
910 #define /*0x0F4*/ oSpinyTimeUntilTurn OBJECT_FIELD_S32(0x1B)
911 #define /*0x0F8*/ oSpinyTargetYaw OBJECT_FIELD_S32(0x1C)
912 #define /*0x100*/ oSpinyTurningAwayFromWall OBJECT_FIELD_S32(0x1E)
914 /* Sound Effect */
915 #define /*0x0F4*/ oSoundEffectUnkF4 OBJECT_FIELD_S32(0x1B)
917 /* Star Spawn */
918 #define /*0x0F4*/ oStarSpawnDisFromHome OBJECT_FIELD_F32(0x1B)
919 #define /*0x0FC*/ oStarSpawnUnkFC OBJECT_FIELD_F32(0x1D)
921 /* Hidden Star */
922 // Secrets/Red Coins
923 #define /*0x0F4*/ oHiddenStarTriggerCounter OBJECT_FIELD_S32(0x1B)
925 // Overall very difficult to determine usage, mostly stubbed code.
926 /* Sparkle Spawn Star */
927 #define /*0x1B0*/ oSparkleSpawnUnk1B0 OBJECT_FIELD_S32(0x4A)
929 /* Sealed Door Star */
930 #define /*0x108*/ oUnlockDoorStarState OBJECT_FIELD_U32(0x20)
931 #define /*0x10C*/ oUnlockDoorStarTimer OBJECT_FIELD_S32(0x21)
932 #define /*0x110*/ oUnlockDoorStarYawVel OBJECT_FIELD_S32(0x22)
934 /* Celebration Star */
935 #define /*0x0F4*/ oCelebStarUnkF4 OBJECT_FIELD_S32(0x1B)
936 #define /*0x108*/ oCelebStarDiameterOfRotation OBJECT_FIELD_S32(0x20)
938 /* Star Selector */
939 #define /*0x0F4*/ oStarSelectorType OBJECT_FIELD_S32(0x1B)
940 #define /*0x0F8*/ oStarSelectorTimer OBJECT_FIELD_S32(0x1C)
941 #define /*0x108*/ oStarSelectorSize OBJECT_FIELD_F32(0x20)
943 /* Sushi Shark */
944 #define /*0x0F4*/ oSushiSharkUnkF4 OBJECT_FIELD_S32(0x1B) // angle?
946 /* Swing Platform */
947 #define /*0x0F4*/ oSwingPlatformAngle OBJECT_FIELD_F32(0x1B)
948 #define /*0x0F8*/ oSwingPlatformSpeed OBJECT_FIELD_F32(0x1C)
950 /* Swoop */
951 #define /*0x0F4*/ oSwoopBonkCountdown OBJECT_FIELD_S32(0x1B)
952 #define /*0x0F8*/ oSwoopTargetPitch OBJECT_FIELD_S32(0x1C)
953 #define /*0x0FC*/ oSwoopTargetYaw OBJECT_FIELD_S32(0x1D)
955 /* Thwomp */
956 #define /*0x0F4*/ oThwompUnkF4 OBJECT_FIELD_S32(0x1B)
958 /* Tilting Platform */
959 #define /*0x0F4*/ oTiltingPyramidNormalX OBJECT_FIELD_F32(0x1B)
960 #define /*0x0F8*/ oTiltingPyramidNormalY OBJECT_FIELD_F32(0x1C)
961 #define /*0x0FC*/ oTiltingPyramidNormalZ OBJECT_FIELD_F32(0x1D)
962 #define /*0x10C*/ oTiltingPyramidMarioOnPlatform OBJECT_FIELD_S32(0x21)
964 /* Toad Message */
965 #define /*0x108*/ oToadMessageDialogId OBJECT_FIELD_U32(0x20)
966 #define /*0x10C*/ oToadMessageRecentlyTalked OBJECT_FIELD_S32(0x21)
967 #define /*0x110*/ oToadMessageState OBJECT_FIELD_S32(0x22)
969 /* Tox Box */
970 #define /*0x1AC*/ oToxBoxUnk1AC OBJECT_FIELD_VPTR(0x49)
971 #define /*0x1B0*/ oToxBoxUnk1B0 OBJECT_FIELD_S32(0x4A)
973 /* TTC Rotating Solid */
974 #define /*0x0F4*/ oTTCRotatingSolidNumTurns OBJECT_FIELD_S32(0x1B)
975 #define /*0x0F8*/ oTTCRotatingSolidNumSides OBJECT_FIELD_S32(0x1C)
976 #define /*0x0FC*/ oTTCRotatingSolidRotationDelay OBJECT_FIELD_S32(0x1D)
977 #define /*0x100*/ oTTCRotatingSolidVelY OBJECT_FIELD_F32(0x1E)
978 #define /*0x104*/ oTTCRotatingSolidSoundTimer OBJECT_FIELD_S32(0x1F)
980 /* TTC Pendulum */
981 #define /*0x0F4*/ oTTCPendulumAccelDir OBJECT_FIELD_F32(0x1B)
982 #define /*0x0F8*/ oTTCPendulumAngle OBJECT_FIELD_F32(0x1C)
983 #define /*0x0FC*/ oTTCPendulumAngleVel OBJECT_FIELD_F32(0x1D)
984 #define /*0x100*/ oTTCPendulumAngleAccel OBJECT_FIELD_F32(0x1E)
985 #define /*0x104*/ oTTCPendulumDelay OBJECT_FIELD_S32(0x1F)
986 #define /*0x108*/ oTTCPendulumSoundTimer OBJECT_FIELD_S32(0x20)
988 /* TTC Treadmill */
989 #define /*0x0F4*/ oTTCTreadmillBigSurface OBJECT_FIELD_S16P(0x1B)
990 #define /*0x0F8*/ oTTCTreadmillSmallSurface OBJECT_FIELD_S16P(0x1C)
991 #define /*0x0FC*/ oTTCTreadmillSpeed OBJECT_FIELD_F32(0x1D)
992 #define /*0x100*/ oTTCTreadmillTargetSpeed OBJECT_FIELD_F32(0x1E)
993 #define /*0x104*/ oTTCTreadmillTimeUntilSwitch OBJECT_FIELD_S32(0x1F)
995 /* TTC Moving Bar */
996 #define /*0x0F4*/ oTTCMovingBarDelay OBJECT_FIELD_S32(0x1B)
997 #define /*0x0F8*/ oTTCMovingBarStoppedTimer OBJECT_FIELD_S32(0x1C)
998 #define /*0x0FC*/ oTTCMovingBarOffset OBJECT_FIELD_F32(0x1D)
999 #define /*0x100*/ oTTCMovingBarSpeed OBJECT_FIELD_F32(0x1E)
1000 #define /*0x104*/ oTTCMovingBarStartOffset OBJECT_FIELD_F32(0x1F)
1002 /* TTC Cog */
1003 #define /*0x0F4*/ oTTCCogDir OBJECT_FIELD_F32(0x1B)
1004 #define /*0x0F8*/ oTTCCogSpeed OBJECT_FIELD_F32(0x1C)
1005 #define /*0x0FC*/ oTTCCogTargetVel OBJECT_FIELD_F32(0x1D)
1007 /* TTC Pit Block */
1008 #define /*0x0F4*/ oTTCPitBlockPeakY OBJECT_FIELD_F32(0x1B)
1009 #define /*0x0F8*/ oTTCPitBlockDir OBJECT_FIELD_S32(0x1C)
1010 #define /*0x0FC*/ oTTCPitBlockWaitTime OBJECT_FIELD_S32(0x1D)
1012 /* TTC Elevator */
1013 #define /*0x0F4*/ oTTCElevatorDir OBJECT_FIELD_F32(0x1B)
1014 #define /*0x0F8*/ oTTCElevatorPeakY OBJECT_FIELD_F32(0x1C)
1015 #define /*0x0FC*/ oTTCElevatorMoveTime OBJECT_FIELD_S32(0x1D)
1017 /* TTC 2D Rotator */
1018 #define /*0x0F4*/ oTTC2DRotatorMinTimeUntilNextTurn OBJECT_FIELD_S32(0x1B)
1019 #define /*0x0F8*/ oTTC2DRotatorTargetYaw OBJECT_FIELD_S32(0x1C)
1020 #define /*0x0FC*/ oTTC2DRotatorIncrement OBJECT_FIELD_S32(0x1D)
1021 #define /*0x104*/ oTTC2DRotatorRandomDirTimer OBJECT_FIELD_S32(0x1F)
1022 #define /*0x108*/ oTTC2DRotatorSpeed OBJECT_FIELD_S32(0x20)
1024 /* TTC Spinner */
1025 #define /*0x0F4*/ oTTCSpinnerDir OBJECT_FIELD_S32(0x1B)
1026 #define /*0x0F8*/ oTTCChangeDirTimer OBJECT_FIELD_S32(0x1C)
1028 /* Beta Trampoline */
1029 #define /*0x110*/ oBetaTrampolineMarioOnTrampoline OBJECT_FIELD_S32(0x22)
1031 /* Treasure Chest */
1032 #define /*0x0F4*/ oTreasureChestUnkF4 OBJECT_FIELD_S32(0x1B)
1033 #define /*0x0F8*/ oTreasureChestUnkF8 OBJECT_FIELD_S32(0x1C)
1034 #define /*0x0FC*/ oTreasureChestUnkFC OBJECT_FIELD_S32(0x1D)
1036 /* Tree Snow Or Leaf */
1037 #define /*0x0F4*/ oTreeSnowOrLeafUnkF4 OBJECT_FIELD_S32(0x1B)
1038 #define /*0x0F8*/ oTreeSnowOrLeafUnkF8 OBJECT_FIELD_S32(0x1C)
1039 #define /*0x0FC*/ oTreeSnowOrLeafUnkFC OBJECT_FIELD_S32(0x1D)
1041 /* Tumbling Bridge */
1042 #define /*0x0F4*/ oTumblingBridgeUnkF4 OBJECT_FIELD_S32(0x1B)
1044 /* Tweester */
1045 #define /*0x0F4*/ oTweesterScaleTimer OBJECT_FIELD_S32(0x1B)
1046 #define /*0x0F8*/ oTweesterUnused OBJECT_FIELD_S32(0x1C)
1048 /* Ukiki */
1049 #define /*0x0F4*/ oUkikiTauntCounter OBJECT_FIELD_S16(0x1B, 0)
1050 #define /*0x0F6*/ oUkikiTauntsToBeDone OBJECT_FIELD_S16(0x1B, 1)
1051 // 0x1D-0x21 reserved for pathing
1052 #define /*0x110*/ oUkikiChaseFleeRange OBJECT_FIELD_F32(0x22)
1053 #define /*0x1AC*/ oUkikiTextState OBJECT_FIELD_S16(0x49, 0)
1054 #define /*0x1AE*/ oUkikiTextboxTimer OBJECT_FIELD_S16(0x49, 1)
1055 #define /*0x1B0*/ oUkikiCageSpinTimer OBJECT_FIELD_S16(0x4A, 0)
1056 #define /*0x1B2*/ oUkikiHasHat OBJECT_FIELD_S16(0x4A, 1)
1058 /* Ukiki Cage*/
1059 #define /*0x088*/ oUkikiCageNextAction OBJECT_FIELD_S32(0x00)
1061 /* Unagi */
1062 #define /*0x0F4*/ oUnagiUnkF4 OBJECT_FIELD_F32(0x1B)
1063 #define /*0x0F8*/ oUnagiUnkF8 OBJECT_FIELD_F32(0x1C)
1064 // 0x1D-0x21 reserved for pathing
1065 #define /*0x110*/ oUnagiUnk110 OBJECT_FIELD_F32(0x22)
1066 #define /*0x1AC*/ oUnagiUnk1AC OBJECT_FIELD_F32(0x49)
1067 #define /*0x1B0*/ oUnagiUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
1068 #define /*0x1B2*/ oUnagiUnk1B2 OBJECT_FIELD_S16(0x4A, + 1)
1070 /* Water Bomb */
1071 #define /*0x0F8*/ oWaterBombVerticalStretch OBJECT_FIELD_F32(0x1C)
1072 #define /*0x0FC*/ oWaterBombStretchSpeed OBJECT_FIELD_F32(0x1D)
1073 #define /*0x100*/ oWaterBombOnGround OBJECT_FIELD_S32(0x1E)
1074 #define /*0x104*/ oWaterBombNumBounces OBJECT_FIELD_F32(0x1F)
1076 /* Water Bomb Spawner */
1077 #define /*0x0F4*/ oWaterBombSpawnerBombActive OBJECT_FIELD_S32(0x1B)
1078 #define /*0x0F8*/ oWaterBombSpawnerTimeToSpawn OBJECT_FIELD_S32(0x1C)
1080 /* Water Bomb Cannon */
1081 #define /*0x0F4*/ oWaterCannonUnkF4 OBJECT_FIELD_S32(0x1B)
1082 #define /*0x0F8*/ oWaterCannonUnkF8 OBJECT_FIELD_S32(0x1C)
1083 #define /*0x0FC*/ oWaterCannonUnkFC OBJECT_FIELD_S32(0x1D)
1084 #define /*0x100*/ oWaterCannonUnk100 OBJECT_FIELD_S32(0x1E)
1086 /* Cannon Barrel Bubbles */
1087 #define /*0x0F4*/ oCannonBarrelBubblesUnkF4 OBJECT_FIELD_F32(0x1B)
1089 /* Water Level Pillar */
1090 #define /*0x0F8*/ oWaterLevelPillarUnkF8 OBJECT_FIELD_S32(0x1C)
1092 /* Water Level Trigger */
1093 #define /*0x0F4*/ oWaterLevelTriggerUnkF4 OBJECT_FIELD_S32(0x1B)
1094 #define /*0x0F8*/ oWaterLevelTriggerTargetWaterLevel OBJECT_FIELD_S32(0x1C)
1096 /* Water Objects */
1097 #define /*0x0F4*/ oWaterObjUnkF4 OBJECT_FIELD_S32(0x1B)
1098 #define /*0x0F8*/ oWaterObjUnkF8 OBJECT_FIELD_S32(0x1C)
1099 #define /*0x0FC*/ oWaterObjUnkFC OBJECT_FIELD_S32(0x1D)
1100 #define /*0x100*/ oWaterObjUnk100 OBJECT_FIELD_S32(0x1E)
1102 /* Water Ring (both variants) */
1103 #define /*0x0F4*/ oWaterRingScalePhaseX OBJECT_FIELD_S32(0x1B)
1104 #define /*0x0F8*/ oWaterRingScalePhaseY OBJECT_FIELD_S32(0x1C)
1105 #define /*0x0FC*/ oWaterRingScalePhaseZ OBJECT_FIELD_S32(0x1D)
1106 #define /*0x100*/ oWaterRingNormalX OBJECT_FIELD_F32(0x1E)
1107 #define /*0x104*/ oWaterRingNormalY OBJECT_FIELD_F32(0x1F)
1108 #define /*0x108*/ oWaterRingNormalZ OBJECT_FIELD_F32(0x20)
1109 #define /*0x10C*/ oWaterRingMarioDistInFront OBJECT_FIELD_F32(0x21)
1110 #define /*0x110*/ oWaterRingIndex OBJECT_FIELD_S32(0x22)
1111 #define /*0x1AC*/ oWaterRingAvgScale OBJECT_FIELD_F32(0x49)
1113 /* Water Ring Spawner (Jet Stream Ring Spawner and Manta Ray) */
1114 #define /*0x1AC*/ oWaterRingSpawnerRingsCollected OBJECT_FIELD_S32(0x49)
1116 /* Water Ring Manager (Jet Stream Ring Spawner and Manta Ray Ring Manager) */
1117 #define /*0x0F4*/ oWaterRingMgrNextRingIndex OBJECT_FIELD_S32(0x1B)
1118 #define /*0x0F8*/ oWaterRingMgrLastRingCollected OBJECT_FIELD_S32(0x1C)
1120 /* Wave Trail */
1121 #define /*0x0F8*/ oWaveTrailSize OBJECT_FIELD_F32(0x1C)
1123 /* Whirlpool */
1124 #define /*0x0F4*/ oWhirlpoolInitFacePitch OBJECT_FIELD_S32(0x1B)
1125 #define /*0x0F8*/ oWhirlpoolInitFaceRoll OBJECT_FIELD_S32(0x1C)
1127 /* White Puff Explode */
1128 #define /*0x0F4*/ oWhitePuffUnkF4 OBJECT_FIELD_F32(0x1B)
1129 #define /*0x0F8*/ oWhitePuffUnkF8 OBJECT_FIELD_S32(0x1C)
1130 #define /*0x0FC*/ oWhitePuffUnkFC OBJECT_FIELD_S32(0x1D)
1132 /* White Wind Particle */
1133 #define /*0x0F4*/ oStrongWindParticlePenguinObj OBJECT_FIELD_OBJ(0x1B)
1135 /* Whomp */
1136 #define /*0x0F8*/ oWhompUnkF8 OBJECT_FIELD_S32(0x1C)
1138 /* Wiggler */
1139 #define /*0x0F4*/ oWigglerFallThroughFloorsHeight OBJECT_FIELD_F32(0x1B)
1140 #define /*0x0F8*/ oWigglerSegments OBJECT_FIELD_CHAIN_SEGMENT(0x1C)
1141 #define /*0x0FC*/ oWigglerWalkAnimSpeed OBJECT_FIELD_F32(0x1D)
1142 #define /*0x104*/ oWigglerSquishSpeed OBJECT_FIELD_F32(0x1F)
1143 #define /*0x108*/ oWigglerTimeUntilRandomTurn OBJECT_FIELD_S32(0x20)
1144 #define /*0x10C*/ oWigglerTargetYaw OBJECT_FIELD_S32(0x21)
1145 #define /*0x110*/ oWigglerWalkAwayFromWallTimer OBJECT_FIELD_S32(0x22)
1146 #define /*0x1AC*/ oWigglerUnk1AC OBJECT_FIELD_S16(0x49, 0)
1147 #define /*0x1AE*/ oWigglerTextStatus OBJECT_FIELD_S16(0x49, + 1)
1149 /* Lll Wood Piece */
1150 #define /*0x0F4*/ oLllWoodPieceUnkF4 OBJECT_FIELD_S32(0x1B)
1152 /* Wooden Post */
1153 #define /*0x0F4*/ oWoodenPostTotalMarioAngle OBJECT_FIELD_S32(0x1B)
1154 #define /*0x0F8*/ oWoodenPostPrevAngleToMario OBJECT_FIELD_S32(0x1C)
1155 #define /*0x0FC*/ oWoodenPostSpeedY OBJECT_FIELD_F32(0x1D)
1156 #define /*0x100*/ oWoodenPostMarioPounding OBJECT_FIELD_S32(0x1E)
1157 #define /*0x104*/ oWoodenPostOffsetY OBJECT_FIELD_F32(0x1F)
1159 /* Yoshi */
1160 #define /*0x0F4*/ oYoshiUnkF4 OBJECT_FIELD_S32(0x1B)
1161 #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D)
1162 #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E)
1164 #endif