object_fields.h (55842B)
1 #ifndef OBJECT_FIELDS_H 2 #define OBJECT_FIELDS_H 3 4 /** 5 * The array [0x88, 0x1C8) in struct Object consists of fields that can vary by 6 * object type. These macros provide access to these fields. 7 */ 8 9 #ifdef OBJECT_FIELDS_INDEX_DIRECTLY 10 #define OBJECT_FIELD_U32(index) index 11 #define OBJECT_FIELD_S32(index) index 12 #define OBJECT_FIELD_S16(index, subIndex) index 13 #define OBJECT_FIELD_F32(index) index 14 #define OBJECT_FIELD_S16P(index) index 15 #define OBJECT_FIELD_S32P(index) index 16 #define OBJECT_FIELD_ANIMS(index) index 17 #define OBJECT_FIELD_WAYPOINT(index) index 18 #define OBJECT_FIELD_CHAIN_SEGMENT(index) index 19 #define OBJECT_FIELD_OBJ(index) index 20 #define OBJECT_FIELD_SURFACE(index) index 21 #define OBJECT_FIELD_VPTR(index) index 22 #define OBJECT_FIELD_CVPTR(index) index 23 #else 24 #define OBJECT_FIELD_U32(index) rawData.asU32[index] 25 #define OBJECT_FIELD_S32(index) rawData.asS32[index] 26 #define OBJECT_FIELD_S16(index, subIndex) rawData.asS16[index][subIndex] 27 #define OBJECT_FIELD_F32(index) rawData.asF32[index] 28 #if !IS_64_BIT 29 #define OBJECT_FIELD_S16P(index) rawData.asS16P[index] 30 #define OBJECT_FIELD_S32P(index) rawData.asS32P[index] 31 #define OBJECT_FIELD_ANIMS(index) rawData.asAnims[index] 32 #define OBJECT_FIELD_WAYPOINT(index) rawData.asWaypoint[index] 33 #define OBJECT_FIELD_CHAIN_SEGMENT(index) rawData.asChainSegment[index] 34 #define OBJECT_FIELD_OBJ(index) rawData.asObject[index] 35 #define OBJECT_FIELD_SURFACE(index) rawData.asSurface[index] 36 #define OBJECT_FIELD_VPTR(index) rawData.asVoidPtr[index] 37 #define OBJECT_FIELD_CVPTR(index) rawData.asConstVoidPtr[index] 38 #else 39 #define OBJECT_FIELD_S16P(index) ptrData.asS16P[index] 40 #define OBJECT_FIELD_S32P(index) ptrData.asS32P[index] 41 #define OBJECT_FIELD_ANIMS(index) ptrData.asAnims[index] 42 #define OBJECT_FIELD_WAYPOINT(index) ptrData.asWaypoint[index] 43 #define OBJECT_FIELD_CHAIN_SEGMENT(index) ptrData.asChainSegment[index] 44 #define OBJECT_FIELD_OBJ(index) ptrData.asObject[index] 45 #define OBJECT_FIELD_SURFACE(index) ptrData.asSurface[index] 46 #define OBJECT_FIELD_VPTR(index) ptrData.asVoidPtr[index] 47 #define OBJECT_FIELD_CVPTR(index) ptrData.asConstVoidPtr[index] 48 #endif 49 #endif 50 51 // 0x088 (0x00), the first field, is object-specific and defined below the common fields. 52 /* Common fields */ 53 #define /*0x08C*/ oFlags OBJECT_FIELD_U32(0x01) 54 #define /*0x090*/ oDialogResponse OBJECT_FIELD_S16(0x02, 0) 55 #define /*0x092*/ oDialogState OBJECT_FIELD_S16(0x02, 1) 56 #define /*0x094*/ oUnk94 OBJECT_FIELD_U32(0x03) 57 // 0x98 unused/removed. 58 #define /*0x09C*/ oIntangibleTimer OBJECT_FIELD_S32(0x05) 59 #define /*0x0A0*/ O_POS_INDEX 0x06 60 #define /*0x0A0*/ oPosX OBJECT_FIELD_F32(O_POS_INDEX + 0) 61 #define /*0x0A4*/ oPosY OBJECT_FIELD_F32(O_POS_INDEX + 1) 62 #define /*0x0A8*/ oPosZ OBJECT_FIELD_F32(O_POS_INDEX + 2) 63 #define /*0x0AC*/ oVelX OBJECT_FIELD_F32(0x09) 64 #define /*0x0B0*/ oVelY OBJECT_FIELD_F32(0x0A) 65 #define /*0x0B4*/ oVelZ OBJECT_FIELD_F32(0x0B) 66 #define /*0x0B8*/ oForwardVel OBJECT_FIELD_F32(0x0C) 67 #define /*0x0B8*/ oForwardVelS32 OBJECT_FIELD_S32(0x0C) 68 #define /*0x0BC*/ oLeftVel OBJECT_FIELD_F32(0x0D) 69 #define /*0x0C0*/ oUpVel OBJECT_FIELD_F32(0x0E) 70 #define /*0x0C4*/ O_MOVE_ANGLE_INDEX 0x0F 71 #define /*0x0C4*/ O_MOVE_ANGLE_PITCH_INDEX (O_MOVE_ANGLE_INDEX + 0) 72 #define /*0x0C4*/ O_MOVE_ANGLE_YAW_INDEX (O_MOVE_ANGLE_INDEX + 1) 73 #define /*0x0C4*/ O_MOVE_ANGLE_ROLL_INDEX (O_MOVE_ANGLE_INDEX + 2) 74 #define /*0x0C4*/ oMoveAnglePitch OBJECT_FIELD_S32(O_MOVE_ANGLE_PITCH_INDEX) 75 #define /*0x0C8*/ oMoveAngleYaw OBJECT_FIELD_S32(O_MOVE_ANGLE_YAW_INDEX) 76 #define /*0x0CC*/ oMoveAngleRoll OBJECT_FIELD_S32(O_MOVE_ANGLE_ROLL_INDEX) 77 #define /*0x0D0*/ O_FACE_ANGLE_INDEX 0x12 78 #define /*0x0D0*/ O_FACE_ANGLE_PITCH_INDEX (O_FACE_ANGLE_INDEX + 0) 79 #define /*0x0D0*/ O_FACE_ANGLE_YAW_INDEX (O_FACE_ANGLE_INDEX + 1) 80 #define /*0x0D0*/ O_FACE_ANGLE_ROLL_INDEX (O_FACE_ANGLE_INDEX + 2) 81 #define /*0x0D0*/ oFaceAnglePitch OBJECT_FIELD_S32(O_FACE_ANGLE_PITCH_INDEX) 82 #define /*0x0D4*/ oFaceAngleYaw OBJECT_FIELD_S32(O_FACE_ANGLE_YAW_INDEX) 83 #define /*0x0D8*/ oFaceAngleRoll OBJECT_FIELD_S32(O_FACE_ANGLE_ROLL_INDEX) 84 #define /*0x0DC*/ oGraphYOffset OBJECT_FIELD_F32(0x15) 85 #define /*0x0E0*/ oActiveParticleFlags OBJECT_FIELD_U32(0x16) 86 #define /*0x0E4*/ oGravity OBJECT_FIELD_F32(0x17) 87 #define /*0x0E8*/ oFloorHeight OBJECT_FIELD_F32(0x18) 88 #define /*0x0EC*/ oMoveFlags OBJECT_FIELD_U32(0x19) 89 #define /*0x0F0*/ oAnimState OBJECT_FIELD_S32(0x1A) 90 // 0x0F4-0x110 (0x1B-0x22) are object specific and defined below the common fields. 91 #define /*0x114*/ oAngleVelPitch OBJECT_FIELD_S32(0x23) 92 #define /*0x118*/ oAngleVelYaw OBJECT_FIELD_S32(0x24) 93 #define /*0x11C*/ oAngleVelRoll OBJECT_FIELD_S32(0x25) 94 #define /*0x120*/ oAnimations OBJECT_FIELD_ANIMS(0x26) 95 #define /*0x124*/ oHeldState OBJECT_FIELD_U32(0x27) 96 #define /*0x128*/ oWallHitboxRadius OBJECT_FIELD_F32(0x28) 97 #define /*0x12C*/ oDragStrength OBJECT_FIELD_F32(0x29) 98 #define /*0x130*/ oInteractType OBJECT_FIELD_U32(0x2A) 99 #define /*0x134*/ oInteractStatus OBJECT_FIELD_S32(0x2B) 100 #define /*0x138*/ O_PARENT_RELATIVE_POS_INDEX 0x2C 101 #define /*0x138*/ oParentRelativePosX OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 0) 102 #define /*0x13C*/ oParentRelativePosY OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 1) 103 #define /*0x140*/ oParentRelativePosZ OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 2) 104 #define /*0x144*/ oBhvParams2ndByte OBJECT_FIELD_S32(0x2F) 105 // 0x148 unused, possibly a third param byte. 106 #define /*0x14C*/ oAction OBJECT_FIELD_S32(0x31) 107 #define /*0x150*/ oSubAction OBJECT_FIELD_S32(0x32) 108 #define /*0x154*/ oTimer OBJECT_FIELD_S32(0x33) 109 #define /*0x158*/ oBounciness OBJECT_FIELD_F32(0x34) 110 #define /*0x15C*/ oDistanceToMario OBJECT_FIELD_F32(0x35) 111 #define /*0x160*/ oAngleToMario OBJECT_FIELD_S32(0x36) 112 #define /*0x164*/ oHomeX OBJECT_FIELD_F32(0x37) 113 #define /*0x168*/ oHomeY OBJECT_FIELD_F32(0x38) 114 #define /*0x16C*/ oHomeZ OBJECT_FIELD_F32(0x39) 115 #define /*0x170*/ oFriction OBJECT_FIELD_F32(0x3A) 116 #define /*0x174*/ oBuoyancy OBJECT_FIELD_F32(0x3B) 117 #define /*0x178*/ oSoundStateID OBJECT_FIELD_S32(0x3C) 118 #define /*0x17C*/ oOpacity OBJECT_FIELD_S32(0x3D) 119 #define /*0x180*/ oDamageOrCoinValue OBJECT_FIELD_S32(0x3E) 120 #define /*0x184*/ oHealth OBJECT_FIELD_S32(0x3F) 121 #define /*0x188*/ oBhvParams OBJECT_FIELD_S32(0x40) 122 #define /*0x18C*/ oPrevAction OBJECT_FIELD_S32(0x41) 123 #define /*0x190*/ oInteractionSubtype OBJECT_FIELD_U32(0x42) 124 #define /*0x194*/ oCollisionDistance OBJECT_FIELD_F32(0x43) 125 #define /*0x198*/ oNumLootCoins OBJECT_FIELD_S32(0x44) 126 #define /*0x19C*/ oDrawingDistance OBJECT_FIELD_F32(0x45) 127 #define /*0x1A0*/ oRoom OBJECT_FIELD_S32(0x46) 128 // 0x1A4 is unused, possibly related to 0x1A8 in removed macro purposes. 129 #define /*0x1A8*/ oUnusedBhvParams OBJECT_FIELD_U32(0x48) 130 // 0x1AC-0x1B2 (0x48-0x4A) are object specific and defined below the common fields. 131 #define /*0x1B4*/ oWallAngle OBJECT_FIELD_S32(0x4B) 132 #define /*0x1B8*/ oFloorType OBJECT_FIELD_S16(0x4C, 0) 133 #define /*0x1BA*/ oFloorRoom OBJECT_FIELD_S16(0x4C, 1) 134 #define /*0x1BC*/ oAngleToHome OBJECT_FIELD_S32(0x4D) 135 #define /*0x1C0*/ oFloor OBJECT_FIELD_SURFACE(0x4E) 136 #define /*0x1C4*/ oDeathSound OBJECT_FIELD_S32(0x4F) 137 138 /* Pathed (see obj_follow_path) */ 139 #define /*0x0FC*/ oPathedStartWaypoint OBJECT_FIELD_WAYPOINT(0x1D) 140 #define /*0x100*/ oPathedPrevWaypoint OBJECT_FIELD_WAYPOINT(0x1E) 141 #define /*0x104*/ oPathedPrevWaypointFlags OBJECT_FIELD_S32(0x1F) 142 #define /*0x108*/ oPathedTargetPitch OBJECT_FIELD_S32(0x20) 143 #define /*0x10C*/ oPathedTargetYaw OBJECT_FIELD_S32(0x21) 144 145 /* Special Object Macro */ 146 #define /*0x108*/ oMacroUnk108 OBJECT_FIELD_F32(0x20) 147 #define /*0x10C*/ oMacroUnk10C OBJECT_FIELD_F32(0x21) 148 #define /*0x110*/ oMacroUnk110 OBJECT_FIELD_F32(0x22) 149 150 /* Mario */ 151 #define /*0x0F4*/ oMarioParticleFlags OBJECT_FIELD_S32(0x1B) 152 #define /*0x108*/ oMarioPoleUnk108 OBJECT_FIELD_S32(0x20) 153 #define /*0x108*/ oMarioReadingSignDYaw OBJECT_FIELD_S32(0x20) 154 #define /*0x10C*/ oMarioPoleYawVel OBJECT_FIELD_S32(0x21) 155 #define /*0x10C*/ oMarioCannonObjectYaw OBJECT_FIELD_S32(0x21) 156 #define /*0x10C*/ oMarioTornadoYawVel OBJECT_FIELD_S32(0x21) 157 #define /*0x10C*/ oMarioReadingSignDPosX OBJECT_FIELD_F32(0x21) 158 #define /*0x110*/ oMarioPolePos OBJECT_FIELD_F32(0x22) 159 #define /*0x110*/ oMarioCannonInputYaw OBJECT_FIELD_S32(0x22) 160 #define /*0x110*/ oMarioTornadoPosY OBJECT_FIELD_F32(0x22) 161 #define /*0x110*/ oMarioReadingSignDPosZ OBJECT_FIELD_F32(0x22) 162 #define /*0x110*/ oMarioWhirlpoolPosY OBJECT_FIELD_F32(0x22) 163 #define /*0x110*/ oMarioBurnTimer OBJECT_FIELD_S32(0x22) 164 #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22) 165 #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22) 166 #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22) 167 168 /* Hidden 1-Up */ 169 #define /*0x0F4*/ oHidden1UpNumTouchedTriggers OBJECT_FIELD_S32(0x1B) 170 171 /* Activated Back and Forth Platform */ 172 #define /*0x0F4*/ oActivatedBackAndForthPlatformMaxOffset OBJECT_FIELD_F32(0x1B) 173 #define /*0x0F8*/ oActivatedBackAndForthPlatformOffset OBJECT_FIELD_F32(0x1C) 174 #define /*0x0FC*/ oActivatedBackAndForthPlatformVel OBJECT_FIELD_F32(0x1D) 175 #define /*0x100*/ oActivatedBackAndForthPlatformCountdown OBJECT_FIELD_S32(0x1E) 176 #define /*0x104*/ oActivatedBackAndForthPlatformStartYaw OBJECT_FIELD_S32(0x1F) 177 #define /*0x108*/ oActivatedBackAndForthPlatformVertical OBJECT_FIELD_S32(0x20) 178 #define /*0x10C*/ oActivatedBackAndForthPlatformFlipRotation OBJECT_FIELD_S32(0x21) 179 180 /* Amp */ 181 #define /*0x0F4*/ oAmpRadiusOfRotation OBJECT_FIELD_F32(0x1B) 182 #define /*0x0F8*/ oAmpYPhase OBJECT_FIELD_S32(0x1C) 183 184 /* Homing Amp */ 185 #define /*0x0F4*/ oHomingAmpLockedOn OBJECT_FIELD_S32(0x1B) 186 #define /*0x0FC*/ oHomingAmpAvgY OBJECT_FIELD_F32(0x1D) 187 188 /* Arrow Lift */ 189 #define /*0x0F4*/ oArrowLiftDisplacement OBJECT_FIELD_F32(0x1B) 190 #define /*0x100*/ oArrowLiftUnk100 OBJECT_FIELD_S32(0x1E) 191 192 /* Back-and-Forth Platform */ 193 #define /*0x0F4*/ oBackAndForthPlatformDirection OBJECT_FIELD_F32(0x1B) 194 #define /*0x0F8*/ oBackAndForthPlatformPathLength OBJECT_FIELD_F32(0x1C) 195 #define /*0x0FC*/ oBackAndForthPlatformDistance OBJECT_FIELD_F32(0x1D) 196 #define /*0x100*/ oBackAndForthPlatformVel OBJECT_FIELD_F32(0x1E) 197 198 /* Bird */ 199 #define /*0x0F4*/ oBirdSpeed OBJECT_FIELD_F32(0x1B) 200 #define /*0x0F8*/ oBirdTargetPitch OBJECT_FIELD_S32(0x1C) 201 #define /*0x0FC*/ oBirdTargetYaw OBJECT_FIELD_S32(0x1D) 202 203 /* Bird Chirp Chirp */ 204 #define /*0x0F4*/ oBirdChirpChirpUnkF4 OBJECT_FIELD_S32(0x1B) 205 206 /* End Birds */ 207 #define /*0x104*/ oEndBirdUnk104 OBJECT_FIELD_F32(0x1F) 208 209 /* Hidden Blue Coin */ 210 #define /*0x0F8*/ oHiddenBlueCoinSwitch OBJECT_FIELD_OBJ(0x1C) 211 212 /* Bob-omb */ 213 #define /*0x0F4*/ oBobombBlinkTimer OBJECT_FIELD_S32(0x1B) 214 #define /*0x0F8*/ oBobombFuseLit OBJECT_FIELD_S32(0x1C) 215 #define /*0x0FC*/ oBobombFuseTimer OBJECT_FIELD_S32(0x1D) 216 217 /* Bob-omb Buddy */ 218 #define /*0x0F4*/ oBobombBuddyBlinkTimer OBJECT_FIELD_S32(0x1B) 219 #define /*0x0F8*/ oBobombBuddyHasTalkedToMario OBJECT_FIELD_S32(0x1C) 220 #define /*0x0FC*/ oBobombBuddyRole OBJECT_FIELD_S32(0x1D) 221 #define /*0x100*/ oBobombBuddyCannonStatus OBJECT_FIELD_S32(0x1E) 222 #define /*0x108*/ oBobombBuddyPosXCopy OBJECT_FIELD_F32(0x20) 223 #define /*0x10C*/ oBobombBuddyPosYCopy OBJECT_FIELD_F32(0x21) 224 #define /*0x110*/ oBobombBuddyPosZCopy OBJECT_FIELD_F32(0x22) 225 226 /* Bob-omb Explosion Bubble */ 227 #define /*0x0FC*/ oBobombExpBubGfxScaleFacX OBJECT_FIELD_S32(0x1D) 228 #define /*0x100*/ oBobombExpBubGfxScaleFacY OBJECT_FIELD_S32(0x1E) 229 #define /*0x104*/ oBobombExpBubGfxExpRateX OBJECT_FIELD_S32(0x1F) 230 #define /*0x108*/ oBobombExpBubGfxExpRateY OBJECT_FIELD_S32(0x20) 231 232 /* Bomp (Small) */ 233 #define /*0x100*/ oSmallBompInitX OBJECT_FIELD_F32(0x1E) 234 235 /* Boo */ 236 #define /*0x088*/ oBooDeathStatus OBJECT_FIELD_S32(0x00) 237 #define /*0x0F4*/ oBooTargetOpacity OBJECT_FIELD_S32(0x1B) 238 #define /*0x0F8*/ oBooBaseScale OBJECT_FIELD_F32(0x1C) 239 #define /*0x0FC*/ oBooOscillationTimer OBJECT_FIELD_S32(0x1D) 240 #define /*0x100*/ oBooMoveYawDuringHit OBJECT_FIELD_S32(0x1E) 241 #define /*0x104*/ oBooMoveYawBeforeHit OBJECT_FIELD_F32(0x1F) 242 #define /*0x108*/ oBooParentBigBoo OBJECT_FIELD_OBJ(0x20) 243 #define /*0x10C*/ oBooNegatedAggressiveness OBJECT_FIELD_F32(0x21) 244 #define /*0x110*/ oBooInitialMoveYaw OBJECT_FIELD_S32(0x22) 245 #define /*0x1B0*/ oBooTurningSpeed OBJECT_FIELD_S16(0x4A, 0) 246 247 /* Big Boo */ 248 #define /*0x1AC*/ oBigBooNumMinionBoosKilled OBJECT_FIELD_S32(0x49) 249 250 /* Bookend */ 251 #define /*0x0F4*/ oBookendUnkF4 OBJECT_FIELD_S32(0x1B) 252 #define /*0x0F8*/ oBookendUnkF8 OBJECT_FIELD_S32(0x1C) 253 254 /* Book Switch */ 255 #define /*0x0F4*/ oBookSwitchUnkF4 OBJECT_FIELD_F32(0x1B) 256 257 /* Book Switch Manager */ 258 #define /*0x0F4*/ oBookSwitchManagerUnkF4 OBJECT_FIELD_S32(0x1B) 259 #define /*0x0F8*/ oBookSwitchManagerUnkF8 OBJECT_FIELD_S32(0x1C) 260 261 /* Haunted Bookshelf */ 262 #define /*0x088*/ oHauntedBookshelfShouldOpen OBJECT_FIELD_S32(0x00) 263 264 /* Bouncing FireBall */ 265 #define /*0x0F4*/ oBouncingFireBallUnkF4 OBJECT_FIELD_S32(0x1B) 266 267 /* Bowling Ball */ 268 #define /*0x0F4*/ oBowlingBallTargetYaw OBJECT_FIELD_S32(0x1B) 269 // 0x1D-0x21 reserved for pathing 270 271 /* Bowling Ball Spawner (Generic) */ 272 #define /*0x0F4*/ oBBallSpawnerMaxSpawnDist OBJECT_FIELD_F32(0x1B) 273 #define /*0x0F8*/ oBBallSpawnerSpawnOdds OBJECT_FIELD_F32(0x1C) 274 #define /*0x0FC*/ oBBallSpawnerPeriodMinus1 OBJECT_FIELD_S32(0x1D) 275 276 /* Bowser */ 277 #define /*0x088*/ oBowserCamAct OBJECT_FIELD_S32(0x00) 278 #define /*0x0F4*/ oBowserStatus OBJECT_FIELD_S32(0x1B) 279 #define /*0x0F8*/ oBowserTimer OBJECT_FIELD_S32(0x1C) 280 #define /*0x0FC*/ oBowserDistToCenter OBJECT_FIELD_F32(0x1D) 281 #define /*0x106*/ oBowserBitSJustJump OBJECT_FIELD_S16(0x1F, 1) 282 #define /*0x108*/ oBowserRandSplitFloor OBJECT_FIELD_S16(0x20, 0) 283 #define /*0x10A*/ oBowserHeldAnglePitch OBJECT_FIELD_S16(0x20, 1) 284 #define /*0x10D*/ oBowserHeldAngleVelYaw OBJECT_FIELD_S16(0x21, 0) 285 #define /*0x10E*/ oBowserGrabbedStatus OBJECT_FIELD_S16(0x21, 1) 286 #define /*0x110*/ oBowserIsReacting OBJECT_FIELD_S16(0x22, 0) 287 #define /*0x112*/ oBowserAngleToCenter OBJECT_FIELD_S16(0x22, 1) 288 #define /*0x1AC*/ oBowserTargetOpacity OBJECT_FIELD_S16(0x49, 0) 289 #define /*0x1AE*/ oBowserEyesTimer OBJECT_FIELD_S16(0x49, 1) 290 #define /*0x1B0*/ oBowserEyesShut OBJECT_FIELD_S16(0x4A, 0) 291 #define /*0x1B2*/ oBowserRainbowLight OBJECT_FIELD_S16(0x4A, 1) 292 293 /* Bowser Shockwave */ 294 #define /*0x0F4*/ oBowserShockWaveScale OBJECT_FIELD_F32(0x1B) 295 296 /* Black Smoke Bowser */ 297 #define /*0x0F4*/ oBlackSmokeBowserUnkF4 OBJECT_FIELD_F32(0x1B) 298 299 /* Bowser Key Cutscene */ 300 #define /*0x0F4*/ oBowserKeyScale OBJECT_FIELD_F32(0x1B) 301 302 /* Bowser Puzzle */ 303 #define /*0x0F4*/ oBowserPuzzleCompletionFlags OBJECT_FIELD_S32(0x1B) 304 305 /* Bowser Puzzle Piece */ 306 #define /*0x0FC*/ oBowserPuzzlePieceOffsetX OBJECT_FIELD_F32(0x1D) 307 #define /*0x100*/ oBowserPuzzlePieceOffsetY OBJECT_FIELD_F32(0x1E) 308 #define /*0x104*/ oBowserPuzzlePieceOffsetZ OBJECT_FIELD_F32(0x1F) 309 #define /*0x108*/ oBowserPuzzlePieceContinuePerformingAction OBJECT_FIELD_S32(0x20) 310 #define /*0x10C*/ oBowserPuzzlePieceActionList OBJECT_FIELD_VPTR(0x21) 311 #define /*0x110*/ oBowserPuzzlePieceNextAction OBJECT_FIELD_VPTR(0x22) 312 313 /* Bubba */ 314 #define /*0x0F4*/ oBubbaUnkF4 OBJECT_FIELD_F32(0x1B) 315 #define /*0x0F8*/ oBubbaUnkF8 OBJECT_FIELD_S32(0x1C) 316 #define /*0x0FC*/ oBubbaUnkFC OBJECT_FIELD_S32(0x1D) 317 #define /*0x100*/ oBubbaUnk100 OBJECT_FIELD_S32(0x1E) 318 #define /*0x104*/ oBubbaUnk104 OBJECT_FIELD_S32(0x1F) 319 #define /*0x108*/ oBubbaUnk108 OBJECT_FIELD_F32(0x20) 320 #define /*0x10C*/ oBubbaUnk10C OBJECT_FIELD_F32(0x21) 321 #define /*0x1AC*/ oBubbaUnk1AC OBJECT_FIELD_S16(0x49, 0) 322 #define /*0x1AE*/ oBubbaUnk1AE OBJECT_FIELD_S16(0x49, 1) 323 #define /*0x1B0*/ oBubbaUnk1B0 OBJECT_FIELD_S16(0x4A, 0) 324 #define /*0x1B2*/ oBubbaUnk1B2 OBJECT_FIELD_S16(0x4A, 1) 325 326 /* Bullet Bill */ 327 #define /*0x0F8*/ oBulletBillInitialMoveYaw OBJECT_FIELD_S32(0x1C) 328 329 /* Bully (all variants) */ 330 #define /*0x0F4*/ oBullySubtype OBJECT_FIELD_S32(0x1B) 331 #define /*0x0F8*/ oBullyPrevX OBJECT_FIELD_F32(0x1C) 332 #define /*0x0FC*/ oBullyPrevY OBJECT_FIELD_F32(0x1D) 333 #define /*0x100*/ oBullyPrevZ OBJECT_FIELD_F32(0x1E) 334 #define /*0x104*/ oBullyKBTimerAndMinionKOCounter OBJECT_FIELD_S32(0x1F) 335 #define /*0x108*/ oBullyMarioCollisionAngle OBJECT_FIELD_S32(0x20) 336 337 /* Butterfly */ 338 #define /*0x0F4*/ oButterflyYPhase OBJECT_FIELD_S32(0x1B) 339 340 /* Triplet Butterfly */ 341 #define /*0x0F4*/ oTripletButterflyScale OBJECT_FIELD_F32(0x1B) 342 #define /*0x0F8*/ oTripletButterflySpeed OBJECT_FIELD_F32(0x1C) 343 #define /*0x0FC*/ oTripletButterflyBaseYaw OBJECT_FIELD_F32(0x1D) 344 #define /*0x100*/ oTripletButterflyTargetPitch OBJECT_FIELD_S32(0x1E) 345 #define /*0x104*/ oTripletButterflyTargetYaw OBJECT_FIELD_S32(0x1F) 346 #define /*0x108*/ oTripletButterflyType OBJECT_FIELD_S32(0x20) 347 #define /*0x10C*/ oTripletButterflyModel OBJECT_FIELD_S32(0x21) 348 #define /*0x110*/ oTripletButterflySelectedButterfly OBJECT_FIELD_S32(0x22) 349 #define /*0x1AC*/ oTripletButterflyScalePhase OBJECT_FIELD_S32(0x49) 350 351 /* Cannon */ 352 #define /*0x0F4*/ oCannonUnkF4 OBJECT_FIELD_S32(0x1B) 353 #define /*0x0F8*/ oCannonUnkF8 OBJECT_FIELD_S32(0x1C) 354 #define /*0x10C*/ oCannonUnk10C OBJECT_FIELD_S32(0x21) 355 356 /* Cap */ 357 #define /*0x0F4*/ oCapUnkF4 OBJECT_FIELD_S32(0x1B) 358 #define /*0x0F8*/ oCapUnkF8 OBJECT_FIELD_S32(0x1C) 359 360 /* Chain Chomp */ 361 #define /*0x0F4*/ oChainChompSegments OBJECT_FIELD_CHAIN_SEGMENT(0x1B) 362 #define /*0x0F8*/ oChainChompMaxDistFromPivotPerChainPart OBJECT_FIELD_F32(0x1C) 363 #define /*0x0FC*/ oChainChompMaxDistBetweenChainParts OBJECT_FIELD_F32(0x1D) 364 #define /*0x100*/ oChainChompDistToPivot OBJECT_FIELD_F32(0x1E) 365 #define /*0x104*/ oChainChompUnk104 OBJECT_FIELD_F32(0x1F) 366 #define /*0x108*/ oChainChompRestrictedByChain OBJECT_FIELD_S32(0x20) 367 #define /*0x10C*/ oChainChompTargetPitch OBJECT_FIELD_S32(0x21) 368 #define /*0x110*/ oChainChompNumLunges OBJECT_FIELD_S32(0x22) 369 #define /*0x1AC*/ oChainChompReleaseStatus OBJECT_FIELD_S32(0x49) 370 #define /*0x1B0*/ oChainChompHitGate OBJECT_FIELD_S32(0x4A) 371 372 /* Checkerboard Platform */ 373 #define /*0x0F8*/ oCheckerBoardPlatformUnkF8 OBJECT_FIELD_S32(0x1C) // oAction like 374 #define /*0x0FC*/ oCheckerBoardPlatformUnkFC OBJECT_FIELD_S32(0x1D) 375 #define /*0x1AC*/ oCheckerBoardPlatformUnk1AC OBJECT_FIELD_F32(0x49) 376 377 /* Cheep Cheep */ 378 #define /*0x0F4*/ oCheepCheepUnkF4 OBJECT_FIELD_F32(0x1B) 379 #define /*0x0F8*/ oCheepCheepUnkF8 OBJECT_FIELD_F32(0x1C) 380 #define /*0x0FC*/ oCheepCheepUnkFC OBJECT_FIELD_F32(0x1D) 381 #define /*0x104*/ oCheepCheepUnk104 OBJECT_FIELD_F32(0x1F) 382 #define /*0x108*/ oCheepCheepUnk108 OBJECT_FIELD_F32(0x20) 383 384 /* Chuckya */ 385 #define /*0x088*/ oChuckyaUnk88 OBJECT_FIELD_S32(0x00) 386 #define /*0x0F8*/ oChuckyaUnkF8 OBJECT_FIELD_S32(0x1C) 387 #define /*0x0FC*/ oChuckyaUnkFC OBJECT_FIELD_S32(0x1D) 388 #define /*0x100*/ oChuckyaUnk100 OBJECT_FIELD_S32(0x1E) 389 390 /* Clam */ 391 #define /*0x0F4*/ oClamUnkF4 OBJECT_FIELD_S32(0x1B) 392 393 /* Cloud */ 394 #define /*0x0F4*/ oCloudCenterX OBJECT_FIELD_F32(0x1B) 395 #define /*0x0F8*/ oCloudCenterY OBJECT_FIELD_F32(0x1C) 396 #define /*0x0FC*/ oCloudBlowing OBJECT_FIELD_S32(0x1D) 397 #define /*0x100*/ oCloudGrowSpeed OBJECT_FIELD_F32(0x1E) 398 #define /*0x1AC*/ oCloudFwooshMovementRadius OBJECT_FIELD_S16(0x49, 0) 399 400 /* Coin */ 401 #define /*0x0F4*/ oCoinCollectedFlags OBJECT_FIELD_S32(0x1B) 402 #define /*0x0F8*/ oCoinOnGround OBJECT_FIELD_S32(0x1C) 403 #define /*0x110*/ oCoinBaseVelY OBJECT_FIELD_F32(0x22) 404 #ifndef VERSION_JP 405 #define /*0x1B0*/ oCoinNumBounceSoundPlayed OBJECT_FIELD_S32(0x4A) 406 #endif 407 408 /* Collision Particle */ 409 #define /*0x0F4*/ oCollisionParticleUnkF4 OBJECT_FIELD_F32(0x1B) 410 411 /* Controllable Platform */ 412 #define /*0x0F8*/ oControllablePlatformUnkF8 OBJECT_FIELD_S32(0x1C) 413 #define /*0x0FC*/ oControllablePlatformUnkFC OBJECT_FIELD_F32(0x1D) 414 #define /*0x100*/ oControllablePlatformUnk100 OBJECT_FIELD_S32(0x1E) 415 416 /* Breakable Box Small (Small Cork Box) */ 417 #define /*0x0F4*/ oBreakableBoxSmallReleased OBJECT_FIELD_S32(0x1B) 418 #define /*0x0FC*/ oBreakableBoxSmallFramesSinceReleased OBJECT_FIELD_S32(0x1D) 419 420 /* Jumping Box (Crazy Box) */ 421 #define /*0x0F4*/ oJumpingBoxUnkF4 OBJECT_FIELD_S32(0x1B) 422 #define /*0x0F8*/ oJumpingBoxUnkF8 OBJECT_FIELD_S32(0x1C) 423 424 /* RR Cruiser Wing */ 425 #define /*0x0F4*/ oRRCruiserWingUnkF4 OBJECT_FIELD_S32(0x1B) 426 #define /*0x0F8*/ oRRCruiserWingUnkF8 OBJECT_FIELD_S32(0x1C) 427 428 /* Donut Platform Spawner */ 429 #define /*0x0F4*/ oDonutPlatformSpawnerSpawnedPlatforms OBJECT_FIELD_S32(0x1B) 430 431 /* Door */ 432 #define /*0x088*/ oDoorUnk88 OBJECT_FIELD_S32(0x00) 433 #define /*0x0F8*/ oDoorUnkF8 OBJECT_FIELD_S32(0x1C) 434 #define /*0x0FC*/ oDoorUnkFC OBJECT_FIELD_S32(0x1D) 435 #define /*0x100*/ oDoorUnk100 OBJECT_FIELD_S32(0x1E) 436 437 /* Dorrie */ 438 #define /*0x0F4*/ oDorrieDistToHome OBJECT_FIELD_F32(0x1B) 439 #define /*0x0F8*/ oDorrieOffsetY OBJECT_FIELD_F32(0x1C) 440 #define /*0x0FC*/ oDorrieVelY OBJECT_FIELD_F32(0x1D) 441 #define /*0x100*/ oDorrieForwardDistToMario OBJECT_FIELD_F32(0x1E) 442 #define /*0x104*/ oDorrieYawVel OBJECT_FIELD_S32(0x1F) 443 #define /*0x10C*/ oDorrieLiftingMario OBJECT_FIELD_S32(0x21) 444 #define /*0x1AC*/ oDorrieGroundPounded OBJECT_FIELD_S16(0x49, 0) 445 #define /*0x1AE*/ oDorrieAngleToHome OBJECT_FIELD_S16(0x49, 1) 446 #define /*0x1B0*/ oDorrieNeckAngle OBJECT_FIELD_S16(0x4A, 0) 447 #define /*0x1B2*/ oDorrieHeadRaiseSpeed OBJECT_FIELD_S16(0x4A, 1) 448 449 /* Elevator */ 450 #define /*0x0F4*/ oElevatorUnkF4 OBJECT_FIELD_F32(0x1B) 451 #define /*0x0F8*/ oElevatorUnkF8 OBJECT_FIELD_F32(0x1C) 452 #define /*0x0FC*/ oElevatorUnkFC OBJECT_FIELD_F32(0x1D) 453 #define /*0x100*/ oElevatorUnk100 OBJECT_FIELD_S32(0x1E) 454 455 /* Exclamation Box */ 456 #define /*0x0F4*/ oExclamationBoxUnkF4 OBJECT_FIELD_F32(0x1B) // scale? 457 #define /*0x0F8*/ oExclamationBoxUnkF8 OBJECT_FIELD_F32(0x1C) // scale? 458 #define /*0x0FC*/ oExclamationBoxUnkFC OBJECT_FIELD_S32(0x1D) // angle? 459 460 /* Eyerok Boss */ 461 #define /*0x0F8*/ oEyerokBossNumHands OBJECT_FIELD_S32(0x1C) 462 #define /*0x0FC*/ oEyerokBossUnkFC OBJECT_FIELD_S32(0x1D) 463 #define /*0x100*/ oEyerokBossActiveHand OBJECT_FIELD_S32(0x1E) 464 #define /*0x104*/ oEyerokBossUnk104 OBJECT_FIELD_S32(0x1F) 465 #define /*0x108*/ oEyerokBossUnk108 OBJECT_FIELD_F32(0x20) 466 #define /*0x10C*/ oEyerokBossUnk10C OBJECT_FIELD_F32(0x21) 467 #define /*0x110*/ oEyerokBossUnk110 OBJECT_FIELD_F32(0x22) 468 #define /*0x1AC*/ oEyerokBossUnk1AC OBJECT_FIELD_S32(0x49) 469 470 /* Eyerok Hand */ 471 #define /*0x0F4*/ oEyerokHandWakeUpTimer OBJECT_FIELD_S32(0x1B) 472 #define /*0x0F8*/ oEyerokReceivedAttack OBJECT_FIELD_S32(0x1C) 473 #define /*0x0FC*/ oEyerokHandUnkFC OBJECT_FIELD_S32(0x1D) 474 #define /*0x100*/ oEyerokHandUnk100 OBJECT_FIELD_S32(0x1E) 475 476 /* Falling Pillar */ 477 #define /*0x0F4*/ oFallingPillarPitchAcceleration OBJECT_FIELD_F32(0x1B) 478 479 /* Fire Spitter */ 480 #define /*0x0F4*/ oFireSpitterScaleVel OBJECT_FIELD_F32(0x1B) 481 482 /* Blue Fish */ 483 #define /*0x0F4*/ oBlueFishRandomVel OBJECT_FIELD_F32(0x1B) 484 #define /*0x0F8*/ oBlueFishRandomTime OBJECT_FIELD_S32(0x1C) 485 #define /*0x100*/ oBlueFishRandomAngle OBJECT_FIELD_F32(0x1E) 486 487 /* Fish Group */ 488 #define /*0x0F4*/ oFishWaterLevel OBJECT_FIELD_F32(0x1B) 489 #define /*0x0F8*/ oFishGoalY OBJECT_FIELD_F32(0x1C) 490 #define /*0x0FC*/ oFishHeightOffset OBJECT_FIELD_F32(0x1D) 491 #define /*0x100*/ oFishYawVel OBJECT_FIELD_S32(0x1E) 492 #define /*0x104*/ oFishRoamDistance OBJECT_FIELD_F32(0x1F) 493 #define /*0x108*/ oFishGoalVel OBJECT_FIELD_F32(0x20) 494 #define /*0x10C*/ oFishDepthDistance OBJECT_FIELD_F32(0x21) 495 #define /*0x110*/ oFishActiveDistance OBJECT_FIELD_F32(0x22) 496 497 /* Flame */ 498 #define /*0x0F4*/ oFlameScale OBJECT_FIELD_F32(0x1B) 499 #define /*0x0F8*/ oFlameSpeedTimerOffset OBJECT_FIELD_S32(0x1C) 500 #define /*0x0FC*/ oFlameUnusedRand OBJECT_FIELD_F32(0x1D) 501 #define /*0x100*/ oFlameBowser OBJECT_FIELD_OBJ(0x1E) 502 503 /* Blue Flame */ 504 #define /*0x0F8*/ oBlueFlameNextScale OBJECT_FIELD_F32(0x1C) 505 506 /* Small Piranha Flame */ 507 #define /*0x0F4*/ oSmallPiranhaFlameStartSpeed OBJECT_FIELD_F32(0x1B) 508 #define /*0x0F8*/ oSmallPiranhaFlameEndSpeed OBJECT_FIELD_F32(0x1C) 509 #define /*0x0FC*/ oSmallPiranhaFlameModel OBJECT_FIELD_S32(0x1D) 510 #define /*0x100*/ oSmallPiranhaFlameNextFlameTimer OBJECT_FIELD_S32(0x1E) 511 #define /*0x104*/ oSmallPiranhaFlameSpeed OBJECT_FIELD_F32(0x1F) 512 513 /* Moving Flame */ 514 #define /*0x0F4*/ oMovingFlameTimer OBJECT_FIELD_S32(0x1B) 515 516 /* Flamethrower Flame */ 517 #define /*0x110*/ oFlameThowerFlameUnk110 OBJECT_FIELD_S32(0x22) 518 519 /* Flamethrower */ 520 #define /*0x110*/ oFlameThowerUnk110 OBJECT_FIELD_S32(0x22) 521 522 /* Floating Platform */ 523 #define /*0x0F4*/ oFloatingPlatformUnkF4 OBJECT_FIELD_S32(0x1B) 524 #define /*0x0F8*/ oFloatingPlatformUnkF8 OBJECT_FIELD_F32(0x1C) 525 #define /*0x0FC*/ oFloatingPlatformUnkFC OBJECT_FIELD_F32(0x1D) 526 #define /*0x100*/ oFloatingPlatformUnk100 OBJECT_FIELD_S32(0x1E) 527 528 /* Floor Switch Press Animation */ 529 #define /*0x0F4*/ oFloorSwitchPressAnimationUnkF4 OBJECT_FIELD_S32(0x1B) 530 #define /*0x0F8*/ oFloorSwitchPressAnimationUnkF8 OBJECT_FIELD_S32(0x1C) 531 #define /*0x0FC*/ oFloorSwitchPressAnimationUnkFC OBJECT_FIELD_S32(0x1D) 532 #define /*0x100*/ oFloorSwitchPressAnimationUnk100 OBJECT_FIELD_S32(0x1E) 533 534 /* Fly Guy */ 535 #define /*0x0F4*/ oFlyGuyIdleTimer OBJECT_FIELD_S32(0x1B) 536 #define /*0x0F8*/ oFlyGuyOscTimer OBJECT_FIELD_S32(0x1C) 537 #define /*0x0FC*/ oFlyGuyUnusedJitter OBJECT_FIELD_S32(0x1D) 538 #define /*0x100*/ oFlyGuyLungeYDecel OBJECT_FIELD_F32(0x1E) 539 #define /*0x104*/ oFlyGuyLungeTargetPitch OBJECT_FIELD_S32(0x1F) 540 #define /*0x108*/ oFlyGuyTargetRoll OBJECT_FIELD_S32(0x20) 541 #define /*0x10C*/ oFlyGuyScaleVel OBJECT_FIELD_F32(0x21) 542 543 /* Grand Star */ 544 #define /*0x108*/ oGrandStarUnk108 OBJECT_FIELD_S32(0x20) 545 546 /* Horizontal Grindel */ 547 #define /*0x0F4*/ oHorizontalGrindelTargetYaw OBJECT_FIELD_S32(0x1B) 548 #define /*0x0F8*/ oHorizontalGrindelDistToHome OBJECT_FIELD_F32(0x1C) 549 #define /*0x0FC*/ oHorizontalGrindelOnGround OBJECT_FIELD_S32(0x1D) 550 551 /* Goomba */ 552 #define /*0x0F4*/ oGoombaSize OBJECT_FIELD_S32(0x1B) 553 #define /*0x0F8*/ oGoombaScale OBJECT_FIELD_F32(0x1C) 554 #define /*0x0FC*/ oGoombaWalkTimer OBJECT_FIELD_S32(0x1D) 555 #define /*0x100*/ oGoombaTargetYaw OBJECT_FIELD_S32(0x1E) 556 #define /*0x104*/ oGoombaBlinkTimer OBJECT_FIELD_S32(0x1F) 557 #define /*0x108*/ oGoombaTurningAwayFromWall OBJECT_FIELD_S32(0x20) 558 #define /*0x10C*/ oGoombaRelativeSpeed OBJECT_FIELD_F32(0x21) 559 560 /* Haunted Chair */ 561 #define /*0x0F4*/ oHauntedChairUnkF4 OBJECT_FIELD_S32(0x1B) 562 #define /*0x0F8*/ oHauntedChairUnkF8 OBJECT_FIELD_F32(0x1C) 563 #define /*0x0FC*/ oHauntedChairUnkFC OBJECT_FIELD_F32(0x1D) 564 #define /*0x100*/ oHauntedChairUnk100 OBJECT_FIELD_S32P(0x1E) 565 #define /*0x104*/ oHauntedChairUnk104 OBJECT_FIELD_S32(0x1F) 566 567 /* Heave-Ho */ 568 #define /*0x088*/ oHeaveHoUnk88 OBJECT_FIELD_S32(0x00) 569 #define /*0x0F4*/ oHeaveHoUnkF4 OBJECT_FIELD_F32(0x1B) 570 571 /* Hidden Object */ 572 #define /*0x0F4*/ oHiddenObjectPurpleSwitch OBJECT_FIELD_OBJ(0x1B) 573 574 /* Hoot */ 575 #define /*0x0F4*/ oHootAvailability OBJECT_FIELD_S32(0x1B) 576 #define /*0x110*/ oHootMarioReleaseTime OBJECT_FIELD_S32(0x22) 577 578 /* Horizontal Movement */ 579 #define /*0x0F4*/ oHorizontalMovementUnkF4 OBJECT_FIELD_S32(0x1B) 580 #define /*0x0F8*/ oHorizontalMovementUnkF8 OBJECT_FIELD_S32(0x1C) 581 #define /*0x100*/ oHorizontalMovementUnk100 OBJECT_FIELD_F32(0x1E) 582 #define /*0x104*/ oHorizontalMovementUnk104 OBJECT_FIELD_S32(0x1F) 583 #define /*0x108*/ oHorizontalMovementUnk108 OBJECT_FIELD_F32(0x20) 584 585 /* Kickable Board */ 586 #define /*0x0F4*/ oKickableBoardF4 OBJECT_FIELD_S32(0x1B) 587 #define /*0x0F8*/ oKickableBoardF8 OBJECT_FIELD_S32(0x1C) 588 589 /* King Bob-omb */ 590 #define /*0x088*/ oKingBobombUnk88 OBJECT_FIELD_S32(0x00) 591 #define /*0x0F8*/ oKingBobombUnkF8 OBJECT_FIELD_S32(0x1C) 592 #define /*0x0FC*/ oKingBobombUnkFC OBJECT_FIELD_S32(0x1D) 593 #define /*0x100*/ oKingBobombUnk100 OBJECT_FIELD_S32(0x1E) 594 #define /*0x104*/ oKingBobombUnk104 OBJECT_FIELD_S32(0x1F) 595 #define /*0x108*/ oKingBobombUnk108 OBJECT_FIELD_S32(0x20) 596 597 /* Klepto */ 598 #define /*0x0F4*/ oKleptoDistanceToTarget OBJECT_FIELD_F32(0x1B) 599 #define /*0x0F8*/ oKleptoUnkF8 OBJECT_FIELD_F32(0x1C) 600 #define /*0x0FC*/ oKleptoUnkFC OBJECT_FIELD_F32(0x1D) 601 #define /*0x100*/ oKleptoSpeed OBJECT_FIELD_F32(0x1E) 602 #define /*0x104*/ oKleptoStartPosX OBJECT_FIELD_F32(0x1F) 603 #define /*0x108*/ oKleptoStartPosY OBJECT_FIELD_F32(0x20) 604 #define /*0x10C*/ oKleptoStartPosZ OBJECT_FIELD_F32(0x21) 605 #define /*0x110*/ oKleptoTimeUntilTargetChange OBJECT_FIELD_S32(0x22) 606 #define /*0x1AC*/ oKleptoTargetNumber OBJECT_FIELD_S16(0x49, 0) 607 #define /*0x1AE*/ oKleptoUnk1AE OBJECT_FIELD_S16(0x49, 1) 608 #define /*0x1B0*/ oKleptoUnk1B0 OBJECT_FIELD_S16(0x4A, 0) 609 #define /*0x1B2*/ oKleptoYawToTarget OBJECT_FIELD_S16(0x4A, 1) 610 611 /* Koopa */ 612 #define /*0x0F4*/ oKoopaAgility OBJECT_FIELD_F32(0x1B) 613 #define /*0x0F8*/ oKoopaMovementType OBJECT_FIELD_S32(0x1C) 614 #define /*0x0FC*/ oKoopaTargetYaw OBJECT_FIELD_S32(0x1D) 615 #define /*0x100*/ oKoopaUnshelledTimeUntilTurn OBJECT_FIELD_S32(0x1E) 616 #define /*0x104*/ oKoopaTurningAwayFromWall OBJECT_FIELD_S32(0x1F) 617 #define /*0x108*/ oKoopaDistanceToMario OBJECT_FIELD_F32(0x20) 618 #define /*0x10C*/ oKoopaAngleToMario OBJECT_FIELD_S32(0x21) 619 #define /*0x110*/ oKoopaBlinkTimer OBJECT_FIELD_S32(0x22) 620 #define /*0x1AC*/ oKoopaCountdown OBJECT_FIELD_S16(0x49, 0) 621 #define /*0x1AE*/ oKoopaTheQuickRaceIndex OBJECT_FIELD_S16(0x49, 1) 622 #define /*0x1B0*/ oKoopaTheQuickInitTextboxCooldown OBJECT_FIELD_S16(0x4A, 0) 623 // 0x1D-0x21 for koopa the quick reserved for pathing 624 625 /* Koopa Race Endpoint */ 626 #define /*0x0F4*/ oKoopaRaceEndpointRaceBegun OBJECT_FIELD_S32(0x1B) 627 #define /*0x0F8*/ oKoopaRaceEndpointKoopaFinished OBJECT_FIELD_S32(0x1C) 628 #define /*0x0FC*/ oKoopaRaceEndpointRaceStatus OBJECT_FIELD_S32(0x1D) 629 #define /*0x100*/ oKoopaRaceEndpointDialog OBJECT_FIELD_S32(0x1E) 630 #define /*0x104*/ oKoopaRaceEndpointRaceEnded OBJECT_FIELD_S32(0x1F) 631 632 /* Koopa Shell Flame */ 633 #define /*0x0F4*/ oKoopaShellFlameUnkF4 OBJECT_FIELD_F32(0x1B) 634 #define /*0x0F8*/ oKoopaShellFlameScale OBJECT_FIELD_F32(0x1C) 635 636 /* Camera Lakitu */ 637 #define /*0x0F4*/ oCameraLakituBlinkTimer OBJECT_FIELD_S32(0x1B) 638 #define /*0x0F8*/ oCameraLakituSpeed OBJECT_FIELD_F32(0x1C) 639 #define /*0x0FC*/ oCameraLakituCircleRadius OBJECT_FIELD_F32(0x1D) 640 #define /*0x100*/ oCameraLakituFinishedDialog OBJECT_FIELD_S32(0x1E) 641 #ifndef VERSION_JP 642 #define /*0x104*/ oCameraLakituUnk104 OBJECT_FIELD_S32(0x1F) 643 #endif 644 #define /*0x1AC*/ oCameraLakituPitchVel OBJECT_FIELD_S16(0x49, 0) 645 #define /*0x1AE*/ oCameraLakituYawVel OBJECT_FIELD_S16(0x49, 1) 646 647 /* Evil Lakitu */ 648 #define /*0x0F4*/ oEnemyLakituNumSpinies OBJECT_FIELD_S32(0x1B) 649 #define /*0x0F8*/ oEnemyLakituBlinkTimer OBJECT_FIELD_S32(0x1C) 650 #define /*0x0FC*/ oEnemyLakituSpinyCooldown OBJECT_FIELD_S32(0x1D) 651 #define /*0x100*/ oEnemyLakituFaceForwardCountdown OBJECT_FIELD_S32(0x1E) 652 653 /* Intro Cutscene Lakitu */ 654 #define /*0x0F8*/ oIntroLakituSplineSegmentProgress OBJECT_FIELD_F32(0x1C) 655 #define /*0x0FC*/ oIntroLakituSplineSegment OBJECT_FIELD_F32(0x1D) 656 #define /*0x100*/ oIntroLakituUnk100 OBJECT_FIELD_F32(0x1E) 657 #define /*0x104*/ oIntroLakituUnk104 OBJECT_FIELD_F32(0x1F) 658 #define /*0x108*/ oIntroLakituUnk108 OBJECT_FIELD_F32(0x20) 659 #define /*0x10C*/ oIntroLakituUnk10C OBJECT_FIELD_F32(0x21) 660 #define /*0x110*/ oIntroLakituUnk110 OBJECT_FIELD_F32(0x22) 661 #define /*0x1AC*/ oIntroLakituCloud OBJECT_FIELD_OBJ(0x49) 662 663 /* Main Menu Button */ 664 #define /*0x0F4*/ oMenuButtonState OBJECT_FIELD_S32(0x1B) 665 #define /*0x0F8*/ oMenuButtonTimer OBJECT_FIELD_S32(0x1C) 666 #define /*0x0FC*/ oMenuButtonOrigPosX OBJECT_FIELD_F32(0x1D) 667 #define /*0x100*/ oMenuButtonOrigPosY OBJECT_FIELD_F32(0x1E) 668 #define /*0x104*/ oMenuButtonOrigPosZ OBJECT_FIELD_F32(0x1F) 669 #define /*0x108*/ oMenuButtonScale OBJECT_FIELD_F32(0x20) 670 #define /*0x10C*/ oMenuButtonActionPhase OBJECT_FIELD_S32(0x21) 671 672 /* Manta Ray */ 673 #define /*0x0F4*/ oMantaTargetPitch OBJECT_FIELD_S32(0x1B) 674 #define /*0x0F8*/ oMantaTargetYaw OBJECT_FIELD_S32(0x1C) 675 676 /* Merry-Go-Round */ 677 #define /*0x088*/ oMerryGoRoundStopped OBJECT_FIELD_S32(0x00) 678 #define /*0x0F8*/ oMerryGoRoundMusicShouldPlay OBJECT_FIELD_S32(0x1C) 679 #define /*0x0FC*/ oMerryGoRoundMarioIsOutside OBJECT_FIELD_S32(0x1D) 680 681 /* Merry-Go-Round Boo Manager */ 682 #define /*0x088*/ oMerryGoRoundBooManagerNumBoosKilled OBJECT_FIELD_S32(0x00) 683 #define /*0x0FC*/ oMerryGoRoundBooManagerNumBoosSpawned OBJECT_FIELD_S32(0x1D) 684 685 /* Mips */ 686 #define /*0x0F4*/ oMipsStarStatus OBJECT_FIELD_S32(0x1B) 687 #define /*0x0F8*/ oMipsStartWaypointIndex OBJECT_FIELD_S32(0x1C) 688 // 0x1D-0x21 reserved for pathing 689 #define /*0x1AC*/ oMipsForwardVelocity OBJECT_FIELD_F32(0x49) 690 691 /* Moneybag */ 692 #define /*0x0F4*/ oMoneybagJumpState OBJECT_FIELD_S32(0x1B) 693 694 /* Monty Mole */ 695 #define /*0x0F4*/ oMontyMoleCurrentHole OBJECT_FIELD_OBJ(0x1B) 696 #define /*0x0F8*/ oMontyMoleHeightRelativeToFloor OBJECT_FIELD_F32(0x1C) 697 698 /* Monty Mole Hole */ 699 #define /*0x0F4*/ oMontyMoleHoleCooldown OBJECT_FIELD_S32(0x1B) 700 701 /* Mr. Blizzard */ 702 #define /*0x0F4*/ oMrBlizzardScale OBJECT_FIELD_F32(0x1B) 703 #define /*0x0F8*/ oMrBlizzardHeldObj OBJECT_FIELD_OBJ(0x1C) 704 #define /*0x0FC*/ oMrBlizzardGraphYVel OBJECT_FIELD_F32(0x1D) 705 #define /*0x100*/ oMrBlizzardTimer OBJECT_FIELD_S32(0x1E) 706 #define /*0x104*/ oMrBlizzardDizziness OBJECT_FIELD_F32(0x1F) 707 #define /*0x108*/ oMrBlizzardChangeInDizziness OBJECT_FIELD_F32(0x20) 708 #define /*0x10C*/ oMrBlizzardGraphYOffset OBJECT_FIELD_F32(0x21) 709 #define /*0x110*/ oMrBlizzardDistFromHome OBJECT_FIELD_S32(0x22) 710 #define /*0x1AC*/ oMrBlizzardTargetMoveYaw OBJECT_FIELD_S32(0x49) 711 712 /* Mr. I */ 713 #define /*0x0F4*/ oMrIUnkF4 OBJECT_FIELD_S32(0x1B) 714 #define /*0x0FC*/ oMrIUnkFC OBJECT_FIELD_S32(0x1D) 715 #define /*0x100*/ oMrIUnk100 OBJECT_FIELD_S32(0x1E) 716 #define /*0x104*/ oMrIUnk104 OBJECT_FIELD_S32(0x1F) 717 #define /*0x108*/ oMrIUnk108 OBJECT_FIELD_S32(0x20) 718 #define /*0x10C*/ oMrIScale OBJECT_FIELD_F32(0x21) 719 #define /*0x110*/ oMrIUnk110 OBJECT_FIELD_S32(0x22) 720 721 /* Object Respawner */ 722 #define /*0x0F4*/ oRespawnerModelToRespawn OBJECT_FIELD_S32(0x1B) 723 #define /*0x0F8*/ oRespawnerMinSpawnDist OBJECT_FIELD_F32(0x1C) 724 #define /*0x0FC*/ oRespawnerBehaviorToRespawn OBJECT_FIELD_CVPTR(0x1D) 725 726 /* Openable Grill */ 727 #define /*0x088*/ oOpenableGrillUnk88 OBJECT_FIELD_S32(0x00) 728 #define /*0x0F4*/ oOpenableGrillPurpleSwitch OBJECT_FIELD_OBJ(0x1B) 729 730 /* Intro Cutscene Peach */ 731 #define /*0x108*/ oIntroPeachYawFromFocus OBJECT_FIELD_F32(0x20) 732 #define /*0x10C*/ oIntroPeachPitchFromFocus OBJECT_FIELD_F32(0x21) 733 #define /*0x110*/ oIntroPeachDistToCamera OBJECT_FIELD_F32(0x22) 734 735 /* Racing Penguin */ 736 #define /*0x0F4*/ oRacingPenguinInitTextCooldown OBJECT_FIELD_S32(0x1B) 737 // 0x1D-0x21 reserved for pathing 738 #define /*0x110*/ oRacingPenguinWeightedNewTargetSpeed OBJECT_FIELD_F32(0x22) 739 #define /*0x1AC*/ oRacingPenguinFinalTextbox OBJECT_FIELD_S16(0x49, 0) 740 #define /*0x1AE*/ oRacingPenguinMarioWon OBJECT_FIELD_S16(0x49, 1) 741 #define /*0x1B0*/ oRacingPenguinReachedBottom OBJECT_FIELD_S16(0x4A, 0) 742 #define /*0x1B2*/ oRacingPenguinMarioCheated OBJECT_FIELD_S16(0x4A, 1) 743 744 /* Small Penguin */ 745 #define /*0x088*/ oSmallPenguinUnk88 OBJECT_FIELD_S32(0x00) 746 #define /*0x100*/ oSmallPenguinUnk100 OBJECT_FIELD_S32(0x1E) // angle? 747 #define /*0x104*/ oSmallPenguinUnk104 OBJECT_FIELD_F32(0x1F) 748 #define /*0x108*/ oSmallPenguinUnk108 OBJECT_FIELD_F32(0x20) 749 #define /*0x110*/ oSmallPenguinUnk110 OBJECT_FIELD_S32(0x22) 750 751 /* SL Walking Penguin */ 752 #define /*0x100*/ oSLWalkingPenguinWindCollisionXPos OBJECT_FIELD_F32(0x1E) 753 #define /*0x104*/ oSLWalkingPenguinWindCollisionZPos OBJECT_FIELD_F32(0x1F) 754 #define /*0x10C*/ oSLWalkingPenguinCurStep OBJECT_FIELD_S32(0x21) 755 #define /*0x110*/ oSLWalkingPenguinCurStepTimer OBJECT_FIELD_S32(0x22) 756 757 /* Piranha Plant */ 758 #define /*0x0F4*/ oPiranhaPlantSleepMusicState OBJECT_FIELD_S32(0x1B) 759 #define /*0x0F8*/ oPiranhaPlantScale OBJECT_FIELD_F32(0x1C) 760 761 /* Fire Piranha Plant */ 762 #define /*0x0F4*/ oFirePiranhaPlantNeutralScale OBJECT_FIELD_F32(0x1B) 763 #define /*0x0F8*/ oFirePiranhaPlantScale OBJECT_FIELD_F32(0x1C) // Shared with above obj? Coincidence? 764 #define /*0x0FC*/ oFirePiranhaPlantActive OBJECT_FIELD_S32(0x1D) 765 #define /*0x100*/ oFirePiranhaPlantDeathSpinTimer OBJECT_FIELD_S32(0x1E) 766 #define /*0x104*/ oFirePiranhaPlantDeathSpinVel OBJECT_FIELD_F32(0x1F) 767 768 /* Pitoune */ 769 #define /*0x0F4*/ oPitouneUnkF4 OBJECT_FIELD_F32(0x1B) 770 #define /*0x0F8*/ oPitouneUnkF8 OBJECT_FIELD_F32(0x1C) 771 #define /*0x0FC*/ oPitouneUnkFC OBJECT_FIELD_F32(0x1D) 772 773 /* Falling Rising BitFS Platform */ 774 #define /*0x0F4*/ oBitFSPlatformTimer OBJECT_FIELD_S32(0x1B) 775 776 /* Falling Bowser BitS Platform */ 777 #define /*0x0F8*/ oBitSPlatformBowser OBJECT_FIELD_OBJ(0x1C) 778 #define /*0x0FC*/ oBitSPlatformTimer OBJECT_FIELD_S32(0x1D) 779 780 /* WF Platform */ 781 #define /*0x10C*/ oPlatformUnk10C OBJECT_FIELD_F32(0x21) 782 #define /*0x110*/ oPlatformUnk110 OBJECT_FIELD_F32(0x22) 783 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) 798 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) 806 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) 815 816 /* Pokey Body Part */ 817 #define /*0x0F8*/ oPokeyBodyPartDeathDelayAfterHeadKilled OBJECT_FIELD_S32(0x1C) 818 #define /*0x110*/ oPokeyBodyPartBlinkTimer OBJECT_FIELD_S32(0x22) 819 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) 824 825 /* Pyramid Top */ 826 #define /*0x0F4*/ oPyramidTopPillarsTouched OBJECT_FIELD_S32(0x1B) 827 828 /* Pyramid Top Explosion */ 829 #define /*0x0F4*/ oPyramidTopFragmentsScale OBJECT_FIELD_F32(0x1B) 830 831 /* Rolling Log */ 832 #define /*0x0F4*/ oRollingLogUnkF4 OBJECT_FIELD_F32(0x1B) 833 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) 838 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) 843 844 /* Scuttlebug Spawner */ 845 #define /*0x088*/ oScuttlebugSpawnerUnk88 OBJECT_FIELD_S32(0x00) 846 #define /*0x0F4*/ oScuttlebugSpawnerUnkF4 OBJECT_FIELD_S32(0x1B) 847 848 /* Seesaw Platform */ 849 #define /*0x0F4*/ oSeesawPlatformPitchVel OBJECT_FIELD_F32(0x1B) 850 851 /* Ship Part 3 */ 852 #define /*0x0F4*/ oShipPart3UnkF4 OBJECT_FIELD_S32(0x1B) // angle? 853 #define /*0x0F8*/ oShipPart3UnkF8 OBJECT_FIELD_S32(0x1C) // angle? 854 855 /* Sink When Stepped On */ 856 #define /*0x104*/ oSinkWhenSteppedOnUnk104 OBJECT_FIELD_S32(0x1F) 857 #define /*0x108*/ oSinkWhenSteppedOnUnk108 OBJECT_FIELD_F32(0x20) 858 859 /* Skeeter */ 860 #define /*0x0F4*/ oSkeeterTargetAngle OBJECT_FIELD_S32(0x1B) 861 #define /*0x0F8*/ oSkeeterTurningAwayFromWall 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) 865 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) 870 871 /* WF Sliding Brick Platform */ 872 #define /*0x0F4*/ oWFSlidBrickPtfmMovVel OBJECT_FIELD_F32(0x1B) 873 874 /* Smoke */ 875 #define /*0x0F4*/ oSmokeTimer OBJECT_FIELD_S32(0x1B) 876 877 /* Snowman's Bottom */ 878 #define /*0x0F4*/ oSnowmansBottomScale 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 882 883 /* Snowman's Head */ 884 #define /*0x0F4*/ oSnowmansHeadDialogActive OBJECT_FIELD_S32(0x1B) 885 886 /* Snowman Wind Blowing */ 887 #define /*0x0F4*/ oSLSnowmanWindOriginalYaw OBJECT_FIELD_S32(0x1B) 888 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) 900 901 /* Spindel */ 902 #define /*0x0F4*/ oSpindelUnkF4 OBJECT_FIELD_S32(0x1B) 903 #define /*0x0F8*/ oSpindelUnkF8 OBJECT_FIELD_S32(0x1C) 904 905 /* Spinning Heart */ 906 #define /*0x0F4*/ oSpinningHeartTotalSpin OBJECT_FIELD_S32(0x1B) 907 #define /*0x0F8*/ oSpinningHeartPlayedSound OBJECT_FIELD_S32(0x1C) 908 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) 913 914 /* Sound Effect */ 915 #define /*0x0F4*/ oSoundEffectUnkF4 OBJECT_FIELD_S32(0x1B) 916 917 /* Star Spawn */ 918 #define /*0x0F4*/ oStarSpawnDisFromHome OBJECT_FIELD_F32(0x1B) 919 #define /*0x0FC*/ oStarSpawnUnkFC OBJECT_FIELD_F32(0x1D) 920 921 /* Hidden Star */ 922 // Secrets/Red Coins 923 #define /*0x0F4*/ oHiddenStarTriggerCounter OBJECT_FIELD_S32(0x1B) 924 925 // Overall very difficult to determine usage, mostly stubbed code. 926 /* Sparkle Spawn Star */ 927 #define /*0x1B0*/ oSparkleSpawnUnk1B0 OBJECT_FIELD_S32(0x4A) 928 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) 933 934 /* Celebration Star */ 935 #define /*0x0F4*/ oCelebStarUnkF4 OBJECT_FIELD_S32(0x1B) 936 #define /*0x108*/ oCelebStarDiameterOfRotation OBJECT_FIELD_S32(0x20) 937 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) 942 943 /* Sushi Shark */ 944 #define /*0x0F4*/ oSushiSharkUnkF4 OBJECT_FIELD_S32(0x1B) // angle? 945 946 /* Swing Platform */ 947 #define /*0x0F4*/ oSwingPlatformAngle OBJECT_FIELD_F32(0x1B) 948 #define /*0x0F8*/ oSwingPlatformSpeed OBJECT_FIELD_F32(0x1C) 949 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) 954 955 /* Grindel or Thwomp */ 956 #define /*0x0F4*/ oGrindelThwompRandomTimer OBJECT_FIELD_S32(0x1B) 957 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) 963 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) 968 969 /* Tox Box */ 970 #define /*0x1AC*/ oToxBoxActionTable OBJECT_FIELD_VPTR(0x49) 971 #define /*0x1B0*/ oToxBoxActionStep OBJECT_FIELD_S32(0x4A) 972 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) 979 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) 987 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) 994 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) 1001 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) 1006 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) 1011 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) 1016 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) 1023 1024 /* TTC Spinner */ 1025 #define /*0x0F4*/ oTTCSpinnerDir OBJECT_FIELD_S32(0x1B) 1026 #define /*0x0F8*/ oTTCChangeDirTimer OBJECT_FIELD_S32(0x1C) 1027 1028 /* Beta Trampoline */ 1029 #define /*0x110*/ oBetaTrampolineMarioOnTrampoline OBJECT_FIELD_S32(0x22) 1030 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) 1035 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) 1040 1041 /* Tumbling Bridge */ 1042 #define /*0x0F4*/ oTumblingBridgeUnkF4 OBJECT_FIELD_S32(0x1B) 1043 1044 /* Tweester */ 1045 #define /*0x0F4*/ oTweesterScaleTimer OBJECT_FIELD_S32(0x1B) 1046 #define /*0x0F8*/ oTweesterUnused OBJECT_FIELD_S32(0x1C) 1047 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*/ oUkikiHasCap OBJECT_FIELD_S16(0x4A, 1) 1057 1058 /* Ukiki Cage*/ 1059 #define /*0x088*/ oUkikiCageNextAction OBJECT_FIELD_S32(0x00) 1060 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) 1069 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) 1075 1076 /* Water Bomb Spawner */ 1077 #define /*0x0F4*/ oWaterBombSpawnerBombActive OBJECT_FIELD_S32(0x1B) 1078 #define /*0x0F8*/ oWaterBombSpawnerTimeToSpawn OBJECT_FIELD_S32(0x1C) 1079 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) 1085 1086 /* Cannon Barrel Bubbles */ 1087 #define /*0x0F4*/ oCannonBarrelBubblesUnkF4 OBJECT_FIELD_F32(0x1B) 1088 1089 /* Water Level Pillar */ 1090 #define /*0x0F8*/ oWaterLevelPillarDrained OBJECT_FIELD_S32(0x1C) 1091 1092 /* Water Level Trigger */ 1093 #define /*0x0F4*/ oWaterLevelTriggerUnkF4 OBJECT_FIELD_S32(0x1B) 1094 #define /*0x0F8*/ oWaterLevelTriggerTargetWaterLevel OBJECT_FIELD_S32(0x1C) 1095 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) 1101 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) 1112 1113 /* Water Ring Spawner (Jet Stream Ring Spawner and Manta Ray) */ 1114 #define /*0x1AC*/ oWaterRingSpawnerRingsCollected OBJECT_FIELD_S32(0x49) 1115 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) 1119 1120 /* Wave Trail */ 1121 #define /*0x0F8*/ oWaveTrailSize OBJECT_FIELD_F32(0x1C) 1122 1123 /* Whirlpool */ 1124 #define /*0x0F4*/ oWhirlpoolInitFacePitch OBJECT_FIELD_S32(0x1B) 1125 #define /*0x0F8*/ oWhirlpoolInitFaceRoll OBJECT_FIELD_S32(0x1C) 1126 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) 1131 1132 /* White Wind Particle */ 1133 #define /*0x0F4*/ oStrongWindParticlePenguinObj OBJECT_FIELD_OBJ(0x1B) 1134 1135 /* Whomp */ 1136 #define /*0x0F8*/ oWhompShakeVal OBJECT_FIELD_S32(0x1C) 1137 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*/ oWigglerUnused OBJECT_FIELD_S16(0x49, 0) 1147 #define /*0x1AE*/ oWigglerTextStatus OBJECT_FIELD_S16(0x49, 1) 1148 1149 /* LLL Wood Piece */ 1150 #define /*0x0F4*/ oLLLWoodPieceOscillationTimer OBJECT_FIELD_S32(0x1B) 1151 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) 1158 1159 /* Yoshi */ 1160 #define /*0x0F4*/ oYoshiBlinkTimer OBJECT_FIELD_S32(0x1B) 1161 #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D) 1162 #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E) 1163 1164 #endif // OBJECT_FIELDS_H