Super Mario 64s source code (from a leak on 4chan so be careful)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1044 lines
46 KiB

5 years ago
  1. #ifndef _OBJECT_FIELDS_H
  2. #define _OBJECT_FIELDS_H
  3. /**
  4. * The array [0x88, 0x1C8) in struct Object consists of fields that can vary by
  5. * object type. These macros provide access to these fields.
  6. */
  7. #define OBJECT_FIELD_U32(index) rawData.asU32[index]
  8. #define OBJECT_FIELD_S32(index) rawData.asS32[index]
  9. #define OBJECT_FIELD_S16(index, subIndex) rawData.asS16[index][subIndex]
  10. #define OBJECT_FIELD_F32(index) rawData.asF32[index]
  11. #define OBJECT_FIELD_VOIDP(index) rawData.asVoidP[index]
  12. #define OBJECT_FIELD_S16P(index) rawData.asS16P[index]
  13. #define OBJECT_FIELD_S32P(index) rawData.asS32P[index]
  14. #define OBJECT_FIELD_ANIMS(index) rawData.asAnims[index]
  15. #define OBJECT_FIELD_WAYPOINT(index) rawData.asWaypoint[index]
  16. #define OBJECT_FIELD_CHAIN_SEGMENT(index) rawData.asChainSegment[index]
  17. #define OBJECT_FIELD_OBJECT(index) rawData.asObject[index]
  18. #define OBJECT_FIELD_SURFACE(index) rawData.asSurface[index]
  19. #define OBJECT_FIELD_VPTR(index) rawData.asVoidPtr[index]
  20. #define OBJECT_FIELD_OBJ(index) rawData.asObjPtr[index]
  21. /* Common fields */
  22. #define /*0x088*/ oUnk88 OBJECT_FIELD_S32(0x00)
  23. #define /*0x08C*/ oFlags OBJECT_FIELD_U32(0x01)
  24. #define /*0x090*/ oDialogueResponse OBJECT_FIELD_S16(0x02, 0)
  25. #define /*0x092*/ oDialogueState OBJECT_FIELD_S16(0x02, 1)
  26. #define /*0x09C*/ oIntangibleTimer OBJECT_FIELD_S32(0x05)
  27. #define /*0x0A0*/ O_POS_INDEX 0x06
  28. #define /*0x0A0*/ oPosX OBJECT_FIELD_F32(O_POS_INDEX + 0)
  29. #define /*0x0A4*/ oPosY OBJECT_FIELD_F32(O_POS_INDEX + 1)
  30. #define /*0x0A8*/ oPosZ OBJECT_FIELD_F32(O_POS_INDEX + 2)
  31. #define /*0x0AC*/ oVelX OBJECT_FIELD_F32(0x09)
  32. #define /*0x0B0*/ oVelY OBJECT_FIELD_F32(0x0A)
  33. #define /*0x0B4*/ oVelZ OBJECT_FIELD_F32(0x0B)
  34. #define /*0x0B8*/ oForwardVel OBJECT_FIELD_F32(0x0C)
  35. #define /*0x0B8*/ oForwardVel2 OBJECT_FIELD_S32(0x0C)
  36. #define /*0x0BC*/ oUnkBC OBJECT_FIELD_F32(0x0D)
  37. #define /*0x0C0*/ oUnkC0 OBJECT_FIELD_F32(0x0E)
  38. #define /*0x0C4*/ O_MOVE_ANGLE_INDEX 0x0F
  39. #define /*0x0C4*/ O_MOVE_ANGLE_PITCH_INDEX (O_MOVE_ANGLE_INDEX + 0)
  40. #define /*0x0C4*/ O_MOVE_ANGLE_YAW_INDEX (O_MOVE_ANGLE_INDEX + 1)
  41. #define /*0x0C4*/ O_MOVE_ANGLE_ROLL_INDEX (O_MOVE_ANGLE_INDEX + 2)
  42. #define /*0x0C4*/ oMoveAnglePitch OBJECT_FIELD_S32(O_MOVE_ANGLE_PITCH_INDEX)
  43. #define /*0x0C8*/ oMoveAngleYaw OBJECT_FIELD_S32(O_MOVE_ANGLE_YAW_INDEX)
  44. #define /*0x0CC*/ oMoveAngleRoll OBJECT_FIELD_S32(O_MOVE_ANGLE_ROLL_INDEX)
  45. #define /*0x0D0*/ O_FACE_ANGLE_INDEX 0x12
  46. #define /*0x0C4*/ O_FACE_ANGLE_PITCH_INDEX (O_FACE_ANGLE_INDEX + 0)
  47. #define /*0x0C4*/ O_FACE_ANGLE_YAW_INDEX (O_FACE_ANGLE_INDEX + 1)
  48. #define /*0x0C4*/ O_FACE_ANGLE_ROLL_INDEX (O_FACE_ANGLE_INDEX + 2)
  49. #define /*0x0D0*/ oFaceAnglePitch OBJECT_FIELD_S32(O_FACE_ANGLE_PITCH_INDEX)
  50. #define /*0x0D4*/ oFaceAngleYaw OBJECT_FIELD_S32(O_FACE_ANGLE_YAW_INDEX)
  51. #define /*0x0D8*/ oFaceAngleRoll OBJECT_FIELD_S32(O_FACE_ANGLE_ROLL_INDEX)
  52. #define /*0x0DC*/ oGraphYOffset OBJECT_FIELD_F32(0x15)
  53. #define /*0x0E0*/ oActiveParticleFlags OBJECT_FIELD_U32(0x16)
  54. #define /*0x0E4*/ oGravity OBJECT_FIELD_F32(0x17)
  55. #define /*0x0E8*/ oFloorHeight OBJECT_FIELD_F32(0x18)
  56. #define /*0x0EC*/ oMoveFlags OBJECT_FIELD_U32(0x19)
  57. #define /*0x0F0*/ oAnimState OBJECT_FIELD_S32(0x1A)
  58. // 0x0F4-0x110 (0x1B-0x22) are object specific and defined below the common fields.
  59. #define /*0x114*/ oAngleVelPitch OBJECT_FIELD_S32(0x23)
  60. #define /*0x118*/ oAngleVelYaw OBJECT_FIELD_S32(0x24)
  61. #define /*0x11C*/ oAngleVelRoll OBJECT_FIELD_S32(0x25)
  62. #define /*0x120*/ oAnimations OBJECT_FIELD_ANIMS(0x26)
  63. #define /*0x124*/ oHeldState OBJECT_FIELD_U32(0x27)
  64. #define /*0x128*/ oWallHitboxRadius OBJECT_FIELD_F32(0x28)
  65. #define /*0x12C*/ oDragStrength OBJECT_FIELD_F32(0x29)
  66. #define /*0x130*/ oInteractType OBJECT_FIELD_U32(0x2A)
  67. #define /*0x134*/ oInteractStatus OBJECT_FIELD_U32(0x2B)
  68. #define /*0x138*/ O_PARENT_RELATIVE_POS_INDEX 0x2C
  69. #define /*0x138*/ oParentRelativePosX OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 0)
  70. #define /*0x13C*/ oParentRelativePosY OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 1)
  71. #define /*0x140*/ oParentRelativePosZ OBJECT_FIELD_F32(O_PARENT_RELATIVE_POS_INDEX + 2)
  72. #define /*0x144*/ oBehParams2ndByte OBJECT_FIELD_S32(0x2F)
  73. #define /*0x14C*/ oAction OBJECT_FIELD_S32(0x31)
  74. #define /*0x150*/ oSubAction OBJECT_FIELD_S32(0x32)
  75. #define /*0x154*/ oTimer OBJECT_FIELD_S32(0x33)
  76. #define /*0x158*/ oBounce OBJECT_FIELD_F32(0x34)
  77. #define /*0x15C*/ oDistanceToMario OBJECT_FIELD_F32(0x35)
  78. #define /*0x15C*/ oDistanceToMarioS32 OBJECT_FIELD_S32(0x35)
  79. #define /*0x160*/ oAngleToMario OBJECT_FIELD_S32(0x36)
  80. #define /*0x164*/ oHomeX OBJECT_FIELD_F32(0x37)
  81. #define /*0x168*/ oHomeY OBJECT_FIELD_F32(0x38)
  82. #define /*0x16C*/ oHomeZ OBJECT_FIELD_F32(0x39)
  83. #define /*0x170*/ oFriction OBJECT_FIELD_F32(0x3A)
  84. #define /*0x174*/ oBuoyancy OBJECT_FIELD_F32(0x3B)
  85. #define /*0x178*/ oSoundStateID OBJECT_FIELD_S32(0x3C)
  86. #define /*0x17C*/ oOpacity OBJECT_FIELD_S32(0x3D)
  87. #define /*0x180*/ oDamageOrCoinValue OBJECT_FIELD_S32(0x3E)
  88. #define /*0x184*/ oHealth OBJECT_FIELD_S32(0x3F)
  89. #define /*0x188*/ oBehParams OBJECT_FIELD_S32(0x40)
  90. #define /*0x18C*/ oPrevAction OBJECT_FIELD_S32(0x41)
  91. #define /*0x190*/ oUnk190 OBJECT_FIELD_U32(0x42)
  92. #define /*0x194*/ oCollisionDistance OBJECT_FIELD_F32(0x43)
  93. #define /*0x198*/ oNumLootCoins OBJECT_FIELD_S32(0x44)
  94. #define /*0x19C*/ oDrawingDistance OBJECT_FIELD_F32(0x45)
  95. #define /*0x1A0*/ oRoom OBJECT_FIELD_S32(0x46)
  96. // another object specific range, anim related
  97. #define /*0x1A8*/ oUnk1A8 OBJECT_FIELD_U32(0x48)
  98. #define /*0x1AC*/ oUnk1AC_VPTR OBJECT_FIELD_VPTR(0x49)
  99. #define /*0x1AC*/ oUnk1AC_S32 OBJECT_FIELD_S32(0x49)
  100. #define /*0x1AC*/ oUnk1AC_F32 OBJECT_FIELD_F32(0x49)
  101. #define /*0x1AC*/ oUnk1AC_S16 OBJECT_FIELD_S16(0x49, 0)
  102. #define /*0x1AE*/ oUnk1AE OBJECT_FIELD_S16(0x49, 1)
  103. #define /*0x1B0*/ oUnk1B0 OBJECT_FIELD_S32(0x4A)
  104. #define /*0x1B0*/ oEyesShut OBJECT_FIELD_S16(0x4A, 0)
  105. #define /*0x1B0*/ oUnk1B0_S16 OBJECT_FIELD_S16(0x4A, 0)
  106. #define /*0x1B2*/ oUnk1B2 OBJECT_FIELD_S16(0x4A, 1)
  107. // more generic fields
  108. #define /*0x1B4*/ oWallAngle OBJECT_FIELD_U32(0x4B)
  109. #define /*0x1B8*/ oFloorType OBJECT_FIELD_S16(0x4C, 0)
  110. #define /*0x1BA*/ oFloorRoom OBJECT_FIELD_S16(0x4C, 1)
  111. #define /*0x1BC*/ oUnk1BC OBJECT_FIELD_S32(0x4D)
  112. #define /*0x1C0*/ oFloor OBJECT_FIELD_SURFACE(0x4E)
  113. #define /*0x1C4*/ oDeathSound OBJECT_FIELD_S32(0x4F)
  114. /* All uses of these should be removed as soon as object type is known */
  115. #define /*0x0F4*/ oUnknownUnkF4_S32 OBJECT_FIELD_S32(0x1B)
  116. #define /*0x0F4*/ oUnknownUnkF4_F32 OBJECT_FIELD_F32(0x1B)
  117. #define /*0x0FC*/ oUnknownUnkFC_VPtr OBJECT_FIELD_VPTR(0x1D)
  118. #define /*0x100*/ oUnknownUnk100_VPtr OBJECT_FIELD_VPTR(0x1E)
  119. #define /*0x104*/ oUnknownUnk104_S32 OBJECT_FIELD_S32(0x1F)
  120. #define /*0x0F8*/ oUnknownUnkF8_S32 OBJECT_FIELD_S32(0x1C)
  121. #define /*0x0F8*/ oUnknownUnkF8_F32 OBJECT_FIELD_F32(0x1C)
  122. #define /*0x0FC*/ oUnknownUnkFC_S32 OBJECT_FIELD_S32(0x1D)
  123. #define /*0x0FC*/ oUnknownUnkFC_F32 OBJECT_FIELD_F32(0x1D)
  124. #define /*0x0FC*/ oUnknownUnkFC_VOIDP OBJECT_FIELD_VOIDP(0x1D)
  125. #define /*0x100*/ oUnknownUnk100_S32 OBJECT_FIELD_S32(0x1E)
  126. #define /*0x104*/ oUnknownUnk104_F32 OBJECT_FIELD_F32(0x1F)
  127. #define /*0x108*/ oUnknownUnk108_S32 OBJECT_FIELD_S32(0x20)
  128. #define /*0x108*/ oUnknownUnk108_F32 OBJECT_FIELD_F32(0x20)
  129. #define /*0x10C*/ oUnknownUnk10C_S32 OBJECT_FIELD_S32(0x21)
  130. #define /*0x10C*/ oUnknownUnk10C_F32 OBJECT_FIELD_F32(0x21)
  131. #define /*0x110*/ oUnknownUnk110_S32 OBJECT_FIELD_S32(0x22)
  132. #define /*0x110*/ oUnknownUnk110_F32 OBJECT_FIELD_F32(0x22)
  133. #define /*0x110*/ oUnknownUnk110_S32 OBJECT_FIELD_S32(0x22)
  134. /* Pathed (see obj_follow_path) */
  135. #define /*0x0FC*/ oPathedStartWaypoint OBJECT_FIELD_WAYPOINT(0x1D)
  136. #define /*0x100*/ oPathedPrevWaypoint OBJECT_FIELD_WAYPOINT(0x1E)
  137. #define /*0x104*/ oPathedPrevWaypointFlags OBJECT_FIELD_S32(0x1F)
  138. #define /*0x108*/ oPathedTargetPitch OBJECT_FIELD_S32(0x20)
  139. #define /*0x10C*/ oPathedTargetYaw OBJECT_FIELD_S32(0x21)
  140. /* Mario */
  141. #define /*0x0F4*/ oMarioParticleFlags OBJECT_FIELD_S32(0x1B)
  142. #define /*0x108*/ oMarioPoleUnk108 OBJECT_FIELD_S32(0x20)
  143. #define /*0x108*/ oMarioReadingSignDYaw OBJECT_FIELD_S32(0x20)
  144. #define /*0x10C*/ oMarioPoleYawVel OBJECT_FIELD_S32(0x21)
  145. #define /*0x10C*/ oMarioCannonObjectYaw OBJECT_FIELD_S32(0x21)
  146. #define /*0x10C*/ oMarioTornadoYawVel OBJECT_FIELD_S32(0x21)
  147. #define /*0x10C*/ oMarioReadingSignDPosX OBJECT_FIELD_F32(0x21)
  148. #define /*0x110*/ oMarioPolePos OBJECT_FIELD_F32(0x22)
  149. #define /*0x110*/ oMarioCannonInputYaw OBJECT_FIELD_S32(0x22)
  150. #define /*0x110*/ oMarioTornadoPosY OBJECT_FIELD_F32(0x22)
  151. #define /*0x110*/ oMarioReadingSignDPosZ OBJECT_FIELD_F32(0x22)
  152. #define /*0x110*/ oMarioWhirlpoolPosY OBJECT_FIELD_F32(0x22)
  153. #define /*0x110*/ oMarioBurnTimer OBJECT_FIELD_S32(0x22)
  154. #define /*0x110*/ oMarioLongJumpIsSlow OBJECT_FIELD_S32(0x22)
  155. #define /*0x110*/ oMarioSteepJumpYaw OBJECT_FIELD_S32(0x22)
  156. #define /*0x110*/ oMarioWalkingPitch OBJECT_FIELD_S32(0x22)
  157. /* Star selector */
  158. #define /*0x0F4*/ oStarSelectorType OBJECT_FIELD_S32(0x1B)
  159. #define /*0x0F8*/ oStarSelectorTimer OBJECT_FIELD_S32(0x1C)
  160. #define /*0x108*/ oStarSelectorSize OBJECT_FIELD_F32(0x20)
  161. /* Sound effect */
  162. #define /*0x0F4*/ oSoundEffectUnkF4 OBJECT_FIELD_S32(0x1B)
  163. /* Main menu button */
  164. #define /*0x0F4*/ oMenuButtonState OBJECT_FIELD_S32(0x1B)
  165. #define /*0x0F8*/ oMenuButtonTimer OBJECT_FIELD_S32(0x1C)
  166. #define /*0x0FC*/ oMenuButtonOrigPosX OBJECT_FIELD_F32(0x1D)
  167. #define /*0x100*/ oMenuButtonOrigPosY OBJECT_FIELD_F32(0x1E)
  168. #define /*0x104*/ oMenuButtonOrigPosZ OBJECT_FIELD_F32(0x1F)
  169. #define /*0x108*/ oMenuButtonScale OBJECT_FIELD_F32(0x20)
  170. #define /*0x10C*/ oMenuButtonActionPhase OBJECT_FIELD_S32(0x21)
  171. /* Toad message */
  172. #define /*0x108*/ oToadMessageDialogNum OBJECT_FIELD_U32(0x20)
  173. #define /*0x10C*/ oToadMessageRecentlyTalked OBJECT_FIELD_S32(0x21)
  174. #define /*0x110*/ oToadMessageState OBJECT_FIELD_S32(0x22)
  175. /* Sealed door star */
  176. #define /*0x108*/ oUnlockDoorStarState OBJECT_FIELD_U32(0x20)
  177. #define /*0x10C*/ oUnlockDoorStarTimer OBJECT_FIELD_S32(0x21)
  178. #define /*0x10C*/ oUnlockDoorStarYawVel OBJECT_FIELD_S32(0x22)
  179. /* Bob-omb */
  180. #define /*0x0F4*/ oBobombBlinkTimer OBJECT_FIELD_S32(0x1B)
  181. #define /*0x0F8*/ oBobombFuseLit OBJECT_FIELD_S32(0x1C)
  182. #define /*0x0FC*/ oBobombFuseTimer OBJECT_FIELD_S32(0x1D)
  183. /* Bob-omb Buddy */
  184. #define /*0x0F4*/ oBobombBuddyBlinkTimer OBJECT_FIELD_S32(0x1B)
  185. #define /*0x0F8*/ oBobombBuddyHasTalkedToMario OBJECT_FIELD_S32(0x1C)
  186. #define /*0x0FC*/ oBobombBuddyRole OBJECT_FIELD_S32(0x1D)
  187. #define /*0x100*/ oBobombBuddyCannonStatus OBJECT_FIELD_S32(0x1E)
  188. #define /*0x108*/ oBobombBuddyPosXCopy OBJECT_FIELD_F32(0x20)
  189. #define /*0x10C*/ oBobombBuddyPosYCopy OBJECT_FIELD_F32(0x21)
  190. #define /*0x110*/ oBobombBuddyPosZCopy OBJECT_FIELD_F32(0x22)
  191. /* Whirlpool */
  192. #define /*0x0F4*/ oWhirlpoolInitFacePitch OBJECT_FIELD_S32(0x1B)
  193. #define /*0x0F8*/ oWhirlpoolInitFaceRoll OBJECT_FIELD_S32(0x1C)
  194. /* Homing Amp */
  195. #define /*0x0F4*/ oAmpHomingLockedOn OBJECT_FIELD_S32(0x1B)
  196. #define /*0x0F8*/ oAmpHomingYPhase OBJECT_FIELD_S32(0x1C)
  197. #define /*0x0FC*/ oAmpHomingAvgY OBJECT_FIELD_F32(0x1D)
  198. /* Amp */
  199. #define /*0x0F4*/ oAmpRadiusOfRotation OBJECT_FIELD_F32(0x1B)
  200. #define /*0x0F8*/ oAmpYPhase OBJECT_FIELD_S32(0x1C)
  201. /* Butterfly */
  202. #define /*0x0F4*/ oButterflyYPhase OBJECT_FIELD_S32(0x1B)
  203. /* Hoot */
  204. #define /*0x0F4*/ oHootAvailability OBJECT_FIELD_S32(0x1B)
  205. #define /*0x110*/ oHootMarioReleaseTime OBJECT_FIELD_S32(0x22)
  206. /* Bob-omb Explosion Bubble */
  207. #define /*0x0FC*/ oBobombExpBubGfxScaleFacX OBJECT_FIELD_S32(0x1D)
  208. #define /*0x100*/ oBobombExpBubGfxScaleFacY OBJECT_FIELD_S32(0x1E)
  209. #define /*0x104*/ oBobombExpBubGfxExpRateX OBJECT_FIELD_S32(0x1F)
  210. #define /*0x108*/ oBobombExpBubGfxExpRateY OBJECT_FIELD_S32(0x20)
  211. /* Object Respawner */
  212. #define /*0x0F4*/ oRespawnerModelToRespawn OBJECT_FIELD_S32(0x1B)
  213. #define /*0x0F8*/ oRespawnerMinSpawnDist OBJECT_FIELD_F32(0x1C)
  214. #define /*0x0FC*/ oRespawnerBehaviorToRespawn OBJECT_FIELD_VPTR(0x1D)
  215. /* Bully (all variants) */
  216. #define /*0x0F4*/ oBullySubtype OBJECT_FIELD_S32(0x1B)
  217. #define /*0x0F8*/ oBullyPrevX OBJECT_FIELD_F32(0x1C)
  218. #define /*0x0FC*/ oBullyPrevY OBJECT_FIELD_F32(0x1D)
  219. #define /*0x100*/ oBullyPrevZ OBJECT_FIELD_F32(0x1E)
  220. #define /*0x104*/ oBullyKBTimerAndMinionKOCounter OBJECT_FIELD_S32(0x1F)
  221. #define /*0x108*/ oBullyMarioCollisionAngle OBJECT_FIELD_S32(0x20)
  222. /* Water Ring (both variants) */
  223. #define /*0x0F4*/ oWaterRingScalePhaseX OBJECT_FIELD_S32(0x1B)
  224. #define /*0x0F8*/ oWaterRingScalePhaseY OBJECT_FIELD_S32(0x1C)
  225. #define /*0x0FC*/ oWaterRingScalePhaseZ OBJECT_FIELD_S32(0x1D)
  226. #define /*0x100*/ oWaterRingNormalX OBJECT_FIELD_F32(0x1E)
  227. #define /*0x104*/ oWaterRingNormalY OBJECT_FIELD_F32(0x1F)
  228. #define /*0x108*/ oWaterRingNormalZ OBJECT_FIELD_F32(0x20)
  229. #define /*0x10C*/ oWaterRingMarioDistInFront OBJECT_FIELD_F32(0x21)
  230. #define /*0x110*/ oWaterRingIndex OBJECT_FIELD_S32(0x22)
  231. #define /*0x1AC*/ oWaterRingAvgScale OBJECT_FIELD_F32(0x49)
  232. /* Water Ring Spawner (Jet Stream Ring Spawner and Manta Ray) */
  233. #define /*0x1AC*/ oWaterRingSpawnerRingsCollected OBJECT_FIELD_S32(0x49)
  234. /* Water Ring Manager (Jet Stream Ring Spawner and Manta Ray Ring Manager) */
  235. #define /*0x0F4*/ oWaterRingMgrNextRingIndex OBJECT_FIELD_S32(0x1B)
  236. #define /*0x0F8*/ oWaterRingMgrLastRingCollected OBJECT_FIELD_S32(0x1C)
  237. /* Celebration Star */
  238. #define /*0x108*/ oCelebStarDiameterOfRotation OBJECT_FIELD_S32(0x20)
  239. /* Bomp (small) */
  240. #define /*0x100*/ oSmallBompInitX OBJECT_FIELD_F32(0x1E)
  241. /* WF Sliding Brick Platform */
  242. #define /*0x0F4*/ oWFSlidBrickPtfmMovVel OBJECT_FIELD_F32(0x1B)
  243. /* Moneybag */
  244. #define /*0x0F4*/ oMoneybagJumpState OBJECT_FIELD_S32(0x1B)
  245. /* Bowling Ball */
  246. #define /*0x0F4*/ oBowlingBallTargetYaw OBJECT_FIELD_S32(0x1B)
  247. #define /*0x0FC*/ oBowlingBallUnkFC OBJECT_FIELD_VPTR(0x1D)
  248. #define /*0x10C*/ oBowlingBallInitYaw OBJECT_FIELD_S32(0x21)
  249. /* Bowling Ball Spawner (Generic) */
  250. #define /*0x0F4*/ oBBallSpwnrMaxSpawnDist OBJECT_FIELD_F32(0x1B)
  251. #define /*0x0F8*/ oBBallSpwnrSpawnOdds OBJECT_FIELD_F32(0x1C)
  252. #define /*0x0FC*/ oBBallSpwnrPeriodMinus1 OBJECT_FIELD_S32(0x1D)
  253. /* RR Cruiser Wing */
  254. #define /*0x0F4*/ oRRCruiserWingUnkF4 OBJECT_FIELD_S32(0x1B)
  255. #define /*0x0F8*/ oRRCruiserWingUnkF8 OBJECT_FIELD_S32(0x1C)
  256. /* MrI */
  257. #define /*0x10C*/ oMrISize OBJECT_FIELD_F32(0x21)
  258. /* Platform */
  259. #define /*0x0F4*/ oPlatformTimer OBJECT_FIELD_S32(0x1B)
  260. #define /*0x0F8*/ oPlatformUnkF8 OBJECT_FIELD_OBJ(0x1C)
  261. #define /*0x0FC*/ oPlatformUnkFC OBJECT_FIELD_S32(0x1D)
  262. #define /*0x10C*/ oPlatformUnk10C OBJECT_FIELD_F32(0x21)
  263. #define /*0x110*/ oPlatformUnk110 OBJECT_FIELD_F32(0x22)
  264. /* MovingFlame */
  265. #define /*0x0F4*/ oMovingFlameTimer OBJECT_FIELD_S32(0x1B)
  266. /* FlameThrowerFlame */
  267. #define /*0x110*/ oFlameThowerFlameUnk110 OBJECT_FIELD_S32(0x22)
  268. /* FlameThrower */
  269. #define /*0x110*/ oFlameThowerUnk110 OBJECT_FIELD_S32(0x22)
  270. /* BouncingFireBall */
  271. #define /*0x0F4*/ oBouncingFireBallUnkF4 OBJECT_FIELD_S32(0x1B)
  272. /* BowserShockWave */
  273. #define /*0x0F4*/ oBowserShockWaveUnkF4 OBJECT_FIELD_F32(0x1B)
  274. /* BlackSmokeBowser */
  275. #define /*0x0F4*/ oBlackSmokeBowserUnkF4 OBJECT_FIELD_F32(0x1B)
  276. /* PlatformSpawner */
  277. #define /*0x0F4*/ oPlatformSpawnerUnkF4 OBJECT_FIELD_S32(0x1B)
  278. #define /*0x0F8*/ oPlatformSpawnerUnkF8 OBJECT_FIELD_S32(0x1C)
  279. #define /*0x0FC*/ oPlatformSpawnerUnkFC OBJECT_FIELD_S32(0x1D)
  280. #define /*0x100*/ oPlatformSpawnerUnk100 OBJECT_FIELD_F32(0x1E)
  281. #define /*0x104*/ oPlatformSpawnerUnk104 OBJECT_FIELD_F32(0x1F)
  282. #define /*0x108*/ oPlatformSpawnerUnk108 OBJECT_FIELD_F32(0x20)
  283. /* TreeSnowOrLeaf */
  284. #define /*0x0F4*/ oTreeSnowOrLeafUnkF4 OBJECT_FIELD_S32(0x1B)
  285. #define /*0x0F8*/ oTreeSnowOrLeafUnkF8 OBJECT_FIELD_S32(0x1C)
  286. #define /*0x0FC*/ oTreeSnowOrLeafUnkFC OBJECT_FIELD_S32(0x1D)
  287. /* HiddenObject */
  288. #define /*0x0F4*/ oHiddenObjectUnkF4 OBJECT_FIELD_OBJ(0x1B)
  289. /* HeaveHo */
  290. #define /*0x0F4*/ oHeaveHoUnkF4 OBJECT_FIELD_F32(0x1B)
  291. /* BetaTrampoline */
  292. #define /*0x110*/ oBetaTrampolineUnk110 OBJECT_FIELD_S32(0x22)
  293. /* JumpingBox */
  294. #define /*0x0F4*/ oJumpingBoxUnkF4 OBJECT_FIELD_S32(0x1B)
  295. #define /*0x0F8*/ oJumpingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
  296. /* GrandStar */
  297. #define /*0x108*/ oGrandStarUnk108 OBJECT_FIELD_S32(0x20)
  298. /* BulletBill */
  299. #define /*0x0F8*/ oBulletBillUnkF8 OBJECT_FIELD_S32(0x1C)
  300. /* Bowser */
  301. #define /*0x0F4*/ oBowserUnkF4 OBJECT_FIELD_S32(0x1B)
  302. #define /*0x0F8*/ oBowserUnkF8 OBJECT_FIELD_S32(0x1C)
  303. #define /*0x0FC*/ oBowserDistToCentre OBJECT_FIELD_F32(0x1D)
  304. #define /*0x106*/ oBowserUnk106 OBJECT_FIELD_S16(0x1F, 1)
  305. #define /*0x108*/ oBowserUnk108 OBJECT_FIELD_S16(0x20, 0)
  306. #define /*0x10A*/ oBowserHeldAnglePitch OBJECT_FIELD_S16(0x20, 1)
  307. #define /*0x10D*/ oBowserHeldAngleVelYaw OBJECT_FIELD_S16(0x21, 0)
  308. #define /*0x10E*/ oBowserUnk10E OBJECT_FIELD_S16(0x21, 1)
  309. #define /*0x110*/ oBowserUnk110 OBJECT_FIELD_S16(0x22, 0)
  310. #define /*0x112*/ oBowserAngleToCentre OBJECT_FIELD_S16(0x22, 1)
  311. /* Flame */
  312. #define /*0x0F4*/ oFlameUnkF4 OBJECT_FIELD_F32(0x1B)
  313. #define /*0x0F8*/ oFlameUnkF8 OBJECT_FIELD_S32(0x1C)
  314. #define /*0x0FC*/ oFlameUnkFC OBJECT_FIELD_F32(0x1D)
  315. #define /*0x100*/ oFlameUnk100 OBJECT_FIELD_OBJ(0x1E)
  316. /* BlueFlame */
  317. #define /*0x0F8*/ oBlueFlameUnkF8 OBJECT_FIELD_F32(0x1C)
  318. /* BlueFish */
  319. #define /*0x0F4*/ oBlueFishUnkF4 OBJECT_FIELD_F32(0x1B)
  320. #define /*0x0F8*/ oBlueFishUnkF8 OBJECT_FIELD_S32(0x1C)
  321. #define /*0x100*/ oBlueFishUnk100 OBJECT_FIELD_F32(0x1E)
  322. /* CheckerboardPlatform */
  323. #define /*0x0F8*/ oCheckerBoardPlatformUnkF8 OBJECT_FIELD_S32(0x1C) // oAction like
  324. #define /*0x0FC*/ oCheckerBoardPlatformUnkFC OBJECT_FIELD_S32(0x1D)
  325. /* WaterLevelPillar */
  326. #define /*0x0F8*/ oWaterLevelPillarUnkF8 OBJECT_FIELD_S32(0x1C) // boolean?
  327. /* DoorKey1 */
  328. #define /*0x0F4*/ oDoorKey1UnkF4 OBJECT_FIELD_F32(0x1B)
  329. /* DoorKey2 */
  330. #define /*0x0F4*/ oDoorKey2UnkF4 OBJECT_FIELD_F32(0x1B)
  331. /* UkikiOpenCage */
  332. #define /*0x0F4*/ oUkikiOpenCageUnkF4 OBJECT_FIELD_S16(0x1B, 0)
  333. #define /*0x0F6*/ oUkikiOpenCageUnkF6 OBJECT_FIELD_S16(0x1B, 1)
  334. #define /*0x0FC*/ oUkikiOpenCageUnkFC OBJECT_FIELD_VPTR(0x1D)
  335. #define /*0x10C*/ oUkikiOpenCageUnk10C OBJECT_FIELD_S32(0x21)
  336. #define /*0x110*/ oUkikiOpenCageUnk110 OBJECT_FIELD_F32(0x22)
  337. /* HorizontalMovement */
  338. #define /*0x0F4*/ oHorizontalMovementUnkF4 OBJECT_FIELD_S32(0x1B)
  339. #define /*0x0F8*/ oHorizontalMovementUnkF8 OBJECT_FIELD_S32(0x1C)
  340. #define /*0x100*/ oHorizontalMovementUnk100 OBJECT_FIELD_F32(0x1E)
  341. #define /*0x104*/ oHorizontalMovementUnk104 OBJECT_FIELD_S32(0x1F)
  342. #define /*0x108*/ oHorizontalMovementUnk108 OBJECT_FIELD_F32(0x20)
  343. /* SinkWhenSteppedOn */
  344. #define /*0x104*/ oSinkWhenSteppedOnUnk104 OBJECT_FIELD_S32(0x1F)
  345. #define /*0x108*/ oSinkWhenSteppedOnUnk108 OBJECT_FIELD_F32(0x20)
  346. /* BehLllRotatingHexFlame */
  347. #define /*0x0F4*/ oLllRotatingHexFlameUnkF4 OBJECT_FIELD_F32(0x1B)
  348. #define /*0x0F8*/ oLllRotatingHexFlameUnkF8 OBJECT_FIELD_F32(0x1C)
  349. #define /*0x0FC*/ oLllRotatingHexFlameUnkFC OBJECT_FIELD_F32(0x1D)
  350. /* LllWoodPiece */
  351. #define /*0x0F4*/ oLllWoodPieceUnkF4 OBJECT_FIELD_S32(0x1B)
  352. /* TiltingPlatform */
  353. #define /*0x0F4*/ oTiltingPlatformUnkF4 OBJECT_FIELD_F32(0x1B)
  354. #define /*0x0F8*/ oTiltingPlatformUnkF8 OBJECT_FIELD_F32(0x1C)
  355. #define /*0x0FC*/ oTiltingPlatformUnkFC OBJECT_FIELD_F32(0x1D)
  356. #define /*0x10C*/ oTiltingPlatformUnk10C OBJECT_FIELD_S32(0x21)
  357. /* KoopaShellFlame */
  358. #define /*0x0F4*/ oKoopaShellFlameUnkF4 OBJECT_FIELD_F32(0x1B)
  359. #define /*0x0F8*/ oKoopaShellFlameUnkF8 OBJECT_FIELD_F32(0x1C)
  360. /* PiranhaPlant */
  361. #define /*0x0F4*/ oPiranhaPlant2UnkF4 OBJECT_FIELD_S32(0x1B)
  362. #define /*0x0F8*/ oPiranhaPlant2UnkF8 OBJECT_FIELD_F32(0x1C) // scale
  363. /* BowserPuzzle */
  364. #define /*0x0F4*/ oBowserPuzzleUnkF4 OBJECT_FIELD_S32(0x1B)
  365. /* BowserPuzzlePiece */
  366. #define /*0x0FC*/ oBowserPuzzlePieceUnkFC OBJECT_FIELD_F32(0x1D)
  367. #define /*0x100*/ oBowserPuzzlePieceUnk100 OBJECT_FIELD_F32(0x1E)
  368. #define /*0x104*/ oBowserPuzzlePieceUnk104 OBJECT_FIELD_F32(0x1F)
  369. #define /*0x108*/ oBowserPuzzlePieceUnk108 OBJECT_FIELD_S32(0x20)
  370. #define /*0x10C*/ oBowserPuzzlePieceUnk10C OBJECT_FIELD_VPTR(0x21)
  371. #define /*0x110*/ oBowserPuzzlePieceUnk110 OBJECT_FIELD_VPTR(0x22)
  372. /* SmallPenguin */
  373. #define /*0x100*/ oSmallPenguinUnk100 OBJECT_FIELD_S32(0x1E) // angle?
  374. #define /*0x104*/ oSmallPenguinUnk104 OBJECT_FIELD_F32(0x1F)
  375. #define /*0x108*/ oSmallPenguinUnk108 OBJECT_FIELD_F32(0x20)
  376. #define /*0x110*/ oSmallPenguinUnk110 OBJECT_FIELD_S32(0x22)
  377. /* FishGroup */
  378. #define /*0x0F4*/ oFishGroupUnkF4 OBJECT_FIELD_F32(0x1B)
  379. #define /*0x0F8*/ oFishGroupUnkF8 OBJECT_FIELD_F32(0x1C)
  380. #define /*0x0FC*/ oFishGroupUnkFC OBJECT_FIELD_F32(0x1D)
  381. #define /*0x100*/ oFishGroupUnk100 OBJECT_FIELD_S32(0x1E)
  382. #define /*0x104*/ oFishGroupUnk104 OBJECT_FIELD_F32(0x1F)
  383. #define /*0x108*/ oFishGroupUnk108 OBJECT_FIELD_F32(0x20)
  384. #define /*0x10C*/ oFishGroupUnk10C OBJECT_FIELD_F32(0x21)
  385. #define /*0x110*/ oFishGroupUnk110 OBJECT_FIELD_F32(0x22)
  386. /* BirdChirpChirp */
  387. #define /*0x0F4*/ oBirdChirpChirpUnkF4 OBJECT_FIELD_S32(0x1B)
  388. /* CheepCheep */
  389. #define /*0x0F4*/ oCheepCheepUnkF4 OBJECT_FIELD_F32(0x1B)
  390. #define /*0x0F8*/ oCheepCheepUnkF8 OBJECT_FIELD_F32(0x1C)
  391. #define /*0x0FC*/ oCheepCheepUnkFC OBJECT_FIELD_F32(0x1D)
  392. #define /*0x104*/ oCheepCheepUnk104 OBJECT_FIELD_F32(0x1F)
  393. #define /*0x108*/ oCheepCheepUnk108 OBJECT_FIELD_F32(0x20)
  394. /* ExclamationBox */
  395. #define /*0x0F4*/ oExclamationBoxUnkF4 OBJECT_FIELD_F32(0x1B) // scale?
  396. #define /*0x0F8*/ oExclamationBoxUnkF8 OBJECT_FIELD_F32(0x1C) // scale?
  397. #define /*0x0FC*/ oExclamationBoxUnkFC OBJECT_FIELD_S32(0x1D) // angle?
  398. /* SushiShark */
  399. #define /*0x0F4*/ oSushiSharkUnkF4 OBJECT_FIELD_S32(0x1B) // angle?
  400. /* ShipPart3 */
  401. #define /*0x0F4*/ oShipPart3UnkF4 OBJECT_FIELD_S32(0x1B) // angle?
  402. #define /*0x0F8*/ oShipPart3UnkF8 OBJECT_FIELD_S32(0x1C) // angle?
  403. /* JrbSlidingBox */
  404. #define /*0x0F4*/ oJrbSlidingBoxUnkF4 OBJECT_FIELD_VPTR(0x1B)
  405. #define /*0x0F8*/ oJrbSlidingBoxUnkF8 OBJECT_FIELD_S32(0x1C)
  406. #define /*0x0FC*/ oJrbSlidingBoxUnkFC OBJECT_FIELD_F32(0x1D)
  407. /* HiddenBlueCoins */
  408. #define /*0x0F8*/ oHiddenBlueCoinsUnkF8 OBJECT_FIELD_VPTR(0x1C) // coin switch
  409. /* OpenableGrill */
  410. #define /*0x0F4*/ oOpenableGrillUnkF4 OBJECT_FIELD_VPTR(0x1B)
  411. /* WaterLevelTrigger */
  412. #define /*0x0F4*/ oWaterLevelTriggerUnkF4 OBJECT_FIELD_S32(0x1B)
  413. #define /*0x0F8*/ oWaterLevelTriggerTargetWaterLevel OBJECT_FIELD_S32(0x1C)
  414. /* Tweester */
  415. #define /*0x0F4*/ oTweesterUnkF4 OBJECT_FIELD_S32(0x1B)
  416. #define /*0x0F8*/ oTweesterUnkF8 OBJECT_FIELD_S32(0x1C)
  417. /* Boo */
  418. #define /*0x0F4*/ oBooUnkF4 OBJECT_FIELD_S32(0x1B)
  419. #define /*0x0F8*/ oBooUnkF8 OBJECT_FIELD_F32(0x1C)
  420. #define /*0x0FC*/ oBooUnkFC OBJECT_FIELD_S32(0x1D)
  421. #define /*0x100*/ oBooUnk100 OBJECT_FIELD_S32(0x1E)
  422. #define /*0x104*/ oBooUnk104 OBJECT_FIELD_F32(0x1F)
  423. #define /*0x108*/ oBooUnk108 OBJECT_FIELD_VPTR(0x20)
  424. #define /*0x10C*/ oBooUnk10C OBJECT_FIELD_F32(0x21)
  425. #define /*0x110*/ oBooUnk110 OBJECT_FIELD_S32(0x22)
  426. /* RotatingMerryGoRound */
  427. #define /*0x0F8*/ oRotatingMerryGoRoundUnkF8 OBJECT_FIELD_S32(0x1C)
  428. #define /*0x0FC*/ oRotatingMerryGoRoundUnkFC OBJECT_FIELD_S32(0x1D)
  429. /* Scuttlebug */
  430. #define /*0x0F4*/ oScuttlebugUnkF4 OBJECT_FIELD_S32(0x1B)
  431. #define /*0x0F8*/ oScuttlebugUnkF8 OBJECT_FIELD_S32(0x1C)
  432. #define /*0x0FC*/ oScuttlebugUnkFC OBJECT_FIELD_S32(0x1D)
  433. /* ScuttlebugSpawner */
  434. #define /*0x0F4*/ oScuttlebugSpawnerUnkF4 OBJECT_FIELD_S32(0x1B)
  435. /* Whomp */
  436. #define /*0x0F8*/ oWhompUnkF8 OBJECT_FIELD_S32(0x1C)
  437. /* WaveTrail */
  438. #define /*0x0F8*/ oWaveTrailUnkF8 OBJECT_FIELD_F32(0x1C)
  439. /* WhiteWindParticle */
  440. #define /*0x0F4*/ oWhiteWindParticleUnkF4 OBJECT_FIELD_VPTR(0x1B)
  441. /* WalkingPenguin */
  442. #define /*0x100*/ oWalkingPenguinUnk100 OBJECT_FIELD_F32(0x1E)
  443. #define /*0x104*/ oWalkingPenguinUnk104 OBJECT_FIELD_F32(0x1F)
  444. #define /*0x10C*/ oWalkingPenguinUnk10C OBJECT_FIELD_S32(0x21)
  445. #define /*0x110*/ oWalkingPenguinUnk110 OBJECT_FIELD_S32(0x22)
  446. /* SnowmanWindBlowing */
  447. #define /*0x0F4*/ oSnowmanWindBlowingUnkF4 OBJECT_FIELD_S32(0x1B)
  448. /* Koopa */
  449. #define /*0x0F4*/ oKoopaAgility OBJECT_FIELD_F32(0x1B)
  450. #define /*0x0F8*/ oKoopaMovementType OBJECT_FIELD_S32(0x1C)
  451. #define /*0x0FC*/ oKoopaTargetYaw OBJECT_FIELD_S32(0x1D)
  452. #define /*0x100*/ oKoopaUnshelledTimeUntilTurn OBJECT_FIELD_S32(0x1E)
  453. #define /*0x104*/ oKoopaTurningAwayFromWall OBJECT_FIELD_S32(0x1F)
  454. #define /*0x108*/ oKoopaDistanceToMario OBJECT_FIELD_F32(0x20)
  455. #define /*0x10C*/ oKoopaAngleToMario OBJECT_FIELD_S32(0x21)
  456. #define /*0x110*/ oKoopaBlinkTimer OBJECT_FIELD_S32(0x22)
  457. #define /*0x1AC*/ oKoopaCountdown OBJECT_FIELD_S16(0x49, 0)
  458. #define /*0x1AE*/ oKoopaTheQuickRaceIndex OBJECT_FIELD_S16(0x49, 1)
  459. #define /*0x1B0*/ oKoopaTheQuickInitTextboxCooldown OBJECT_FIELD_S16(0x4A, 0)
  460. // 0x1D-0x21 for koopa the quick reserved for pathing
  461. /* Koopa race endpoint */
  462. #define /*0x0F4*/ oKoopaRaceEndpointRaceBegun OBJECT_FIELD_S32(0x1B)
  463. #define /*0x0F8*/ oKoopaRaceEndpointKoopaFinished OBJECT_FIELD_S32(0x1C)
  464. #define /*0x0FC*/ oKoopaRaceEndpointRaceStatus OBJECT_FIELD_S32(0x1D)
  465. #define /*0x100*/ oKoopaRaceEndpointUnk100 OBJECT_FIELD_S32(0x1E)
  466. #define /*0x104*/ oKoopaRaceEndpointRaceEnded OBJECT_FIELD_S32(0x1F)
  467. /* Pokey body part */
  468. #define /*0x0F8*/ oPokeyBodyPartDeathDelayAfterHeadKilled OBJECT_FIELD_S32(0x1C)
  469. #define /*0x110*/ oPokeyBodyPartBlinkTimer OBJECT_FIELD_S32(0x22)
  470. /* Pokey */
  471. #define /*0x0F4*/ oPokeyAliveBodyPartFlags OBJECT_FIELD_U32(0x1B)
  472. #define /*0x0F8*/ oPokeyNumAliveBodyParts OBJECT_FIELD_S32(0x1C)
  473. #define /*0x0FC*/ oPokeyBottomBodyPartSize OBJECT_FIELD_F32(0x1D)
  474. #define /*0x100*/ oPokeyHeadWasKilled OBJECT_FIELD_S32(0x1E)
  475. #define /*0x104*/ oPokeyTargetYaw OBJECT_FIELD_S32(0x1F)
  476. #define /*0x108*/ oPokeyChangeTargetTimer OBJECT_FIELD_S32(0x20)
  477. #define /*0x10C*/ oPokeyTurningAwayFromWall OBJECT_FIELD_S32(0x21)
  478. /* Swoop */
  479. #define /*0x0F4*/ oSwoopBonkCountdown OBJECT_FIELD_S32(0x1B)
  480. #define /*0x0F8*/ oSwoopTargetPitch OBJECT_FIELD_S32(0x1C)
  481. #define /*0x0FC*/ oSwoopTargetYaw OBJECT_FIELD_S32(0x1D)
  482. /* Fly guy */
  483. #define /*0x0F4*/ oFlyGuyIdleTimer OBJECT_FIELD_S32(0x1B)
  484. #define /*0x0F8*/ oFlyGuyOscTimer OBJECT_FIELD_S32(0x1C)
  485. #define /*0x0FC*/ oFlyGuyUnusedJitter OBJECT_FIELD_S32(0x1D)
  486. #define /*0x100*/ oFlyGuyLungeYDecel OBJECT_FIELD_F32(0x1E)
  487. #define /*0x104*/ oFlyGuyLungeTargetPitch OBJECT_FIELD_S32(0x1F)
  488. #define /*0x108*/ oFlyGuyTargetRoll OBJECT_FIELD_S32(0x20)
  489. #define /*0x10C*/ oFlyGuyScaleVel OBJECT_FIELD_F32(0x21)
  490. /* Goomba */
  491. #define /*0x0F4*/ oGoombaSize OBJECT_FIELD_S32(0x1B)
  492. #define /*0x0F8*/ oGoombaScale OBJECT_FIELD_F32(0x1C)
  493. #define /*0x0FC*/ oGoombaWalkTimer OBJECT_FIELD_S32(0x1D)
  494. #define /*0x100*/ oGoombaTargetYaw OBJECT_FIELD_S32(0x1E)
  495. #define /*0x104*/ oGoombaBlinkTimer OBJECT_FIELD_S32(0x1F)
  496. #define /*0x108*/ oGoombaTurningAwayFromWall OBJECT_FIELD_S32(0x20)
  497. #define /*0x10C*/ oGoombaRelativeSpeed OBJECT_FIELD_F32(0x21)
  498. /* Chain chomp */
  499. #define /*0x0F4*/ oChainChompSegments OBJECT_FIELD_CHAIN_SEGMENT(0x1B)
  500. #define /*0x0F8*/ oChainChompMaxDistFromPivotPerChainPart OBJECT_FIELD_F32(0x1C)
  501. #define /*0x0FC*/ oChainChompMaxDistBetweenChainParts OBJECT_FIELD_F32(0x1D)
  502. #define /*0x100*/ oChainChompDistToPivot OBJECT_FIELD_F32(0x1E)
  503. #define /*0x104*/ oChainChompUnk104 OBJECT_FIELD_F32(0x1F)
  504. #define /*0x108*/ oChainChompRestrictedByChain OBJECT_FIELD_S32(0x20)
  505. #define /*0x10C*/ oChainChompTargetPitch OBJECT_FIELD_S32(0x21)
  506. #define /*0x110*/ oChainChompNumLunges OBJECT_FIELD_S32(0x22)
  507. #define /*0x1AC*/ oChainChompReleaseStatus OBJECT_FIELD_S32(0x49)
  508. #define /*0x1B0*/ oChainChompHitGate OBJECT_FIELD_S32(0x4A)
  509. /* Wooden post */
  510. #define /*0x0F4*/ oWoodenPostTotalMarioAngle OBJECT_FIELD_S32(0x1B)
  511. #define /*0x0F8*/ oWoodenPostPrevAngleToMario OBJECT_FIELD_S32(0x1C)
  512. #define /*0x0FC*/ oWoodenPostSpeedY OBJECT_FIELD_F32(0x1D)
  513. #define /*0x100*/ oWoodenPostMarioPounding OBJECT_FIELD_S32(0x1E)
  514. #define /*0x104*/ oWoodenPostOffsetY OBJECT_FIELD_F32(0x1F)
  515. /* Wiggler */
  516. #define /*0x0F4*/ oWigglerFallThroughFloorsHeight OBJECT_FIELD_F32(0x1B)
  517. #define /*0x0F8*/ oWigglerSegments OBJECT_FIELD_CHAIN_SEGMENT(0x1C)
  518. #define /*0x0FC*/ oWigglerWalkAnimSpeed OBJECT_FIELD_F32(0x1D)
  519. #define /*0x104*/ oWigglerSquishSpeed OBJECT_FIELD_F32(0x1F)
  520. #define /*0x108*/ oWigglerTimeUntilRandomTurn OBJECT_FIELD_S32(0x20)
  521. #define /*0x10C*/ oWigglerTargetYaw OBJECT_FIELD_S32(0x21)
  522. #define /*0x110*/ oWigglerWalkAwayFromWallTimer OBJECT_FIELD_S32(0x22)
  523. #define /*0x1AC*/ oWigglerUnk1AC OBJECT_FIELD_S16(0x49, 0)
  524. #define /*0x1AE*/ oWigglerTextStatus OBJECT_FIELD_S16(0x49, + 1)
  525. /* Spiny */
  526. #define /*0x0F4*/ oSpinyTimeUntilTurn OBJECT_FIELD_S32(0x1B)
  527. #define /*0x0F8*/ oSpinyTargetYaw OBJECT_FIELD_S32(0x1C)
  528. #define /*0x100*/ oSpinyTurningAwayFromWall OBJECT_FIELD_S32(0x1E)
  529. /* Evil lakitu */
  530. #define /*0x0F4*/ oEnemyLakituNumSpinies OBJECT_FIELD_S32(0x1B)
  531. #define /*0x0F8*/ oEnemyLakituBlinkTimer OBJECT_FIELD_S32(0x1C)
  532. #define /*0x0FC*/ oEnemyLakituSpinyCooldown OBJECT_FIELD_S32(0x1D)
  533. #define /*0x100*/ oEnemyLakituFaceForwardCountdown OBJECT_FIELD_S32(0x1E)
  534. /* Cloud */
  535. #define /*0x0F4*/ oCloudCenterX OBJECT_FIELD_F32(0x1B)
  536. #define /*0x0F8*/ oCloudCenterY OBJECT_FIELD_F32(0x1C)
  537. #define /*0x0FC*/ oCloudBlowing OBJECT_FIELD_S32(0x1D)
  538. #define /*0x100*/ oCloudGrowSpeed OBJECT_FIELD_F32(0x1E)
  539. #define /*0x1AC*/ oCloudFwooshMovementRadius OBJECT_FIELD_S16(0x49, 0)
  540. /* Camera lakitu */
  541. #define /*0x0F4*/ oCameraLakituBlinkTimer OBJECT_FIELD_S32(0x1B)
  542. #define /*0x0F8*/ oCameraLakituSpeed OBJECT_FIELD_F32(0x1C)
  543. #define /*0x0FC*/ oCameraLakituCircleRadius OBJECT_FIELD_F32(0x1D)
  544. #define /*0x100*/ oCameraLakituFinishedDialogue OBJECT_FIELD_S32(0x1E)
  545. #ifndef VERSION_JP
  546. #define /*0x104*/ oCameraLakituUnk104 OBJECT_FIELD_S32(0x1F)
  547. #endif
  548. #define /*0x1AC*/ oCameraLakituPitchVel OBJECT_FIELD_S16(0x49, 0)
  549. #define /*0x1AE*/ oCameraLakituYawVel OBJECT_FIELD_S16(0x49, + 1)
  550. /* Monty mole hole */
  551. #define /*0x0F4*/ oMontyMoleHoleCooldown OBJECT_FIELD_S32(0x1B)
  552. /* Monty mole */
  553. #define /*0x0F4*/ oMontyMoleCurrentHole OBJECT_FIELD_OBJECT(0x1B)
  554. #define /*0x0F8*/ oMontyMoleHeightRelativeToFloor OBJECT_FIELD_F32(0x1C)
  555. /* Platform on tracks */
  556. #define /*0x088*/ oPlatformOnTrackBaseBallIndex OBJECT_FIELD_S32(0x00)
  557. #define /*0x0F4*/ oPlatformOnTrackDistMovedSinceLastBall OBJECT_FIELD_F32(0x1B)
  558. #define /*0x0F8*/ oPlatformOnTrackSkiLiftRollVel OBJECT_FIELD_F32(0x1C)
  559. #define /*0x0FC*/ oPlatformOnTrackStartWaypoint OBJECT_FIELD_WAYPOINT(0x1D)
  560. #define /*0x100*/ oPlatformOnTrackPrevWaypoint OBJECT_FIELD_WAYPOINT(0x1E)
  561. #define /*0x104*/ oPlatformOnTrackPrevWaypointFlags OBJECT_FIELD_S32(0x1F)
  562. #define /*0x108*/ oPlatformOnTrackPitch OBJECT_FIELD_S32(0x20)
  563. #define /*0x10C*/ oPlatformOnTrackYaw OBJECT_FIELD_S32(0x21)
  564. #define /*0x110*/ oPlatformOnTrackOffsetY OBJECT_FIELD_F32(0x22)
  565. #define /*0x1AC*/ oPlatformOnTrackIsNotSkiLift OBJECT_FIELD_S16(0x49, 0)
  566. #define /*0x1AE*/ oPlatformOnTrackIsNotHMC OBJECT_FIELD_S16(0x49, + 1)
  567. #define /*0x1B0*/ oPlatformOnTrackType OBJECT_FIELD_S16(0x4A, 0)
  568. #define /*0x1B2*/ oPlatformOnTrackWasStoodOn OBJECT_FIELD_S16(0x4A, + 1)
  569. /* Seesaw platform */
  570. #define /*0x0F4*/ oSeesawPlatformPitchVel OBJECT_FIELD_F32(0x1B)
  571. /* Water bomb spawner */
  572. #define /*0x0F4*/ oWaterBombSpawnerBombActive OBJECT_FIELD_S32(0x1B)
  573. #define /*0x0F8*/ oWaterBombSpawnerTimeToSpawn OBJECT_FIELD_S32(0x1C)
  574. /* Water bomb */
  575. #define /*0x0F8*/ oWaterBombVerticalStretch OBJECT_FIELD_F32(0x1C)
  576. #define /*0x0FC*/ oWaterBombStretchSpeed OBJECT_FIELD_F32(0x1D)
  577. #define /*0x100*/ oWaterBombOnGround OBJECT_FIELD_S32(0x1E)
  578. #define /*0x104*/ oWaterBombNumBounces OBJECT_FIELD_F32(0x1F)
  579. /* TTC rotating solid */
  580. #define /*0x0F4*/ oTTCRotatingSolidNumTurns OBJECT_FIELD_S32(0x1B)
  581. #define /*0x0F8*/ oTTCRotatingSolidNumSides OBJECT_FIELD_S32(0x1C)
  582. #define /*0x0FC*/ oTTCRotatingSolidRotationDelay OBJECT_FIELD_S32(0x1D)
  583. #define /*0x100*/ oTTCRotatingSolidVelY OBJECT_FIELD_F32(0x1E)
  584. #define /*0x104*/ oTTCRotatingSolidSoundTimer OBJECT_FIELD_S32(0x1F)
  585. /* TTC pendulum */
  586. #define /*0x0F4*/ oTTCPendulumAccelDir OBJECT_FIELD_F32(0x1B)
  587. #define /*0x0F8*/ oTTCPendulumAngle OBJECT_FIELD_F32(0x1C)
  588. #define /*0x0FC*/ oTTCPendulumAngleVel OBJECT_FIELD_F32(0x1D)
  589. #define /*0x100*/ oTTCPendulumAngleAccel OBJECT_FIELD_F32(0x1E)
  590. #define /*0x104*/ oTTCPendulumDelay OBJECT_FIELD_S32(0x1F)
  591. #define /*0x108*/ oTTCPendulumSoundTimer OBJECT_FIELD_S32(0x20)
  592. /* TTC treadmill */
  593. #define /*0x0F4*/ oTTCTreadmillUnkF4 OBJECT_FIELD_S16P(0x1B)
  594. #define /*0x0F8*/ oTTCTreadmillUnkF8 OBJECT_FIELD_S16P(0x1C)
  595. #define /*0x0FC*/ oTTCTreadmillSpeed OBJECT_FIELD_F32(0x1D)
  596. #define /*0x100*/ oTTCTreadmillTargetSpeed OBJECT_FIELD_F32(0x1E)
  597. #define /*0x104*/ oTTCTreadmillTimeUntilSwitch OBJECT_FIELD_S32(0x1F)
  598. /* TTC moving bar */
  599. #define /*0x0F4*/ oTTCMovingBarDelay OBJECT_FIELD_S32(0x1B)
  600. #define /*0x0F8*/ oTTCMovingBarStoppedTimer OBJECT_FIELD_S32(0x1C)
  601. #define /*0x0FC*/ oTTCMovingBarOffset OBJECT_FIELD_F32(0x1D)
  602. #define /*0x100*/ oTTCMovingBarSpeed OBJECT_FIELD_F32(0x1E)
  603. #define /*0x104*/ oTTCMovingBarStartOffset OBJECT_FIELD_F32(0x1F)
  604. /* TTC cog */
  605. #define /*0x0F4*/ oTTCCogDir OBJECT_FIELD_F32(0x1B)
  606. #define /*0x0F8*/ oTTCCogSpeed OBJECT_FIELD_F32(0x1C)
  607. #define /*0x0FC*/ oTTCCogTargetVel OBJECT_FIELD_F32(0x1D)
  608. /* TTC pit block */
  609. #define /*0x0F4*/ oTTCPitBlockPeakY OBJECT_FIELD_F32(0x1B)
  610. #define /*0x0F8*/ oTTCPitBlockDir OBJECT_FIELD_S32(0x1C)
  611. #define /*0x0FC*/ oTTCPitBlockWaitTime OBJECT_FIELD_S32(0x1D)
  612. /* TTC elevator */
  613. #define /*0x0F4*/ oTTCElevatorDir OBJECT_FIELD_F32(0x1B)
  614. #define /*0x0F8*/ oTTCElevatorPeakY OBJECT_FIELD_F32(0x1C)
  615. #define /*0x0FC*/ oTTCElevatorMoveTime OBJECT_FIELD_S32(0x1D)
  616. /* TTC 2D rotator */
  617. #define /*0x0F4*/ oTTC2DRotatorMinTimeUntilNextTurn OBJECT_FIELD_S32(0x1B)
  618. #define /*0x0F8*/ oTTC2DRotatorTargetYaw OBJECT_FIELD_S32(0x1C)
  619. #define /*0x0FC*/ oTTC2DRotatorIncrement OBJECT_FIELD_S32(0x1D)
  620. #define /*0x104*/ oTTC2DRotatorRandomDirTimer OBJECT_FIELD_S32(0x1F)
  621. #define /*0x108*/ oTTC2DRotatorSpeed OBJECT_FIELD_S32(0x20)
  622. /* TTC spinner */
  623. #define /*0x0F4*/ oTTCSpinnerDir OBJECT_FIELD_S32(0x1B)
  624. #define /*0x0F8*/ oTTCChangeDirTimer OBJECT_FIELD_S32(0x1C)
  625. /* Mr. Blizzard */
  626. #define /*0x0F4*/ oMrBlizzardUnkF4 OBJECT_FIELD_F32(0x1B)
  627. #define /*0x0F8*/ oMrBlizzardUnkF8 OBJECT_FIELD_OBJECT(0x1C)
  628. #define /*0x0FC*/ oMrBlizzardUnkFC OBJECT_FIELD_F32(0x1D)
  629. #define /*0x100*/ oMrBlizzardUnk100 OBJECT_FIELD_S32(0x1E)
  630. #define /*0x104*/ oMrBlizzardUnk104 OBJECT_FIELD_F32(0x1F)
  631. #define /*0x108*/ oMrBlizzardUnk108 OBJECT_FIELD_F32(0x20)
  632. #define /*0x10C*/ oMrBlizzardUnk10C OBJECT_FIELD_F32(0x21)
  633. #define /*0x110*/ oMrBlizzardUnk110 OBJECT_FIELD_S32(0x22)
  634. #define /*0x1AC*/ oMrBlizzardUnk1AC OBJECT_FIELD_S32(0x49)
  635. /* Back-and-forth platform */
  636. #define /*0x0F4*/ oBackAndForthPlatformUnkF4 OBJECT_FIELD_F32(0x1B)
  637. #define /*0x0F8*/ oBackAndForthPlatformUnkF8 OBJECT_FIELD_F32(0x1C)
  638. #define /*0x0FC*/ oBackAndForthPlatformUnkFC OBJECT_FIELD_F32(0x1D)
  639. #define /*0x100*/ oBackAndForthPlatformUnk100 OBJECT_FIELD_F32(0x1E)
  640. // rename
  641. /* Floor switch press animation */
  642. #define /*0x0F4*/ oFloorSwitchPressAnimationUnkF4 OBJECT_FIELD_S32(0x1B)
  643. #define /*0x0F8*/ oFloorSwitchPressAnimationUnkF8 OBJECT_FIELD_S32(0x1C)
  644. #define /*0x0FC*/ oFloorSwitchPressAnimationUnkFC OBJECT_FIELD_S32(0x1D)
  645. #define /*0x100*/ oFloorSwitchPressAnimationUnk100 OBJECT_FIELD_S32(0x1E)
  646. /* Activated back and forth platform */
  647. #define /*0x0F4*/ oActivatedBackAndForthPlatformMaxOffset OBJECT_FIELD_F32(0x1B)
  648. #define /*0x0F8*/ oActivatedBackAndForthPlatformOffset OBJECT_FIELD_F32(0x1C)
  649. #define /*0x0FC*/ oActivatedBackAndForthPlatformVel OBJECT_FIELD_F32(0x1D)
  650. #define /*0x100*/ oActivatedBackAndForthPlatformCountdown OBJECT_FIELD_S32(0x1E)
  651. #define /*0x104*/ oActivatedBackAndForthPlatformStartYaw OBJECT_FIELD_S32(0x1F)
  652. #define /*0x108*/ oActivatedBackAndForthPlatformVertical OBJECT_FIELD_S32(0x20)
  653. #define /*0x10C*/ oActivatedBackAndForthPlatformFlipRotation OBJECT_FIELD_S32(0x21)
  654. /* Spinning heart */
  655. #define /*0x0F4*/ oSpinningHeartTotalSpin OBJECT_FIELD_S32(0x1B)
  656. #define /*0x0F8*/ oSpinningHeartPlayedSound OBJECT_FIELD_S32(0x1C)
  657. // check name
  658. /* Cannon barrel bubbles */
  659. #define /*0x0F4*/ oCannonBarrelBubblesUnkF4 OBJECT_FIELD_F32(0x1B)
  660. /* Cannon */
  661. #define /*0x0F4*/ oCannonUnkF4 OBJECT_FIELD_S32(0x1B)
  662. #define /*0x0F8*/ oCannonUnkF8 OBJECT_FIELD_S32(0x1C)
  663. #define /*0x0FC*/ oCannonUnkFC OBJECT_FIELD_S32(0x1D)
  664. #define /*0x100*/ oCannonUnk100 OBJECT_FIELD_S32(0x1E)
  665. /* Eel */
  666. #define /*0x0F4*/ oUnagiUnkF4 OBJECT_FIELD_F32(0x1B)
  667. #define /*0x0F8*/ oUnagiUnkF8 OBJECT_FIELD_F32(0x1C)
  668. #define /*0x0FC*/ oUnagiUnkFC OBJECT_FIELD_S16P(0x1D)
  669. #define /*0x100*/ oUnagiUnk100 OBJECT_FIELD_S16P(0x1E)
  670. #define /*0x104*/ oUnagiUnk104 OBJECT_FIELD_S32(0x1F)
  671. #define /*0x108*/ oUnagiUnk108 OBJECT_FIELD_S32(0x20)
  672. #define /*0x10C*/ oUnagiUnk10C OBJECT_FIELD_S32(0x21)
  673. #define /*0x110*/ oUnagiUnk110 OBJECT_FIELD_F32(0x22)
  674. #define /*0x1B0*/ oUnagiUnk1AC OBJECT_FIELD_F32(0x49)
  675. #define /*0x1B0*/ oUnagiUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
  676. #define /*0x1B2*/ oUnagiUnk1B2 OBJECT_FIELD_S16(0x4A, + 1)
  677. /* Dorrie */
  678. #define /*0x0F4*/ oDorrieDistToHome OBJECT_FIELD_F32(0x1B)
  679. #define /*0x0F8*/ oDorrieOffsetY OBJECT_FIELD_F32(0x1C)
  680. #define /*0x0FC*/ oDorrieVelY OBJECT_FIELD_F32(0x1D)
  681. #define /*0x100*/ oDorrieForwardDistToMario OBJECT_FIELD_F32(0x1E)
  682. #define /*0x104*/ oDorrieYawVel OBJECT_FIELD_S32(0x1F)
  683. #define /*0x10C*/ oDorrieLiftingMario OBJECT_FIELD_S32(0x21)
  684. #define /*0x1AC*/ oDorrieGroundPounded OBJECT_FIELD_S16(0x49, 0)
  685. #define /*0x1AE*/ oDorrieAngleToHome OBJECT_FIELD_S16(0x49, + 1)
  686. #define /*0x1B0*/ oDorrieNeckAngle OBJECT_FIELD_S16(0x4A, 0)
  687. #define /*0x1B2*/ oDorrieHeadRaiseSpeed OBJECT_FIELD_S16(0x4A, + 1)
  688. /* Haunted chair */
  689. #define /*0x0F4*/ oHauntedChairUnkF4 OBJECT_FIELD_S32(0x1B)
  690. #define /*0x0F8*/ oHauntedChairUnkF8 OBJECT_FIELD_F32(0x1C)
  691. #define /*0x0FC*/ oHauntedChairUnkFC OBJECT_FIELD_F32(0x1D)
  692. #define /*0x100*/ oHauntedChairUnk100 OBJECT_FIELD_S32P(0x1E)
  693. #define /*0x104*/ oHauntedChairUnk104 OBJECT_FIELD_S32(0x1F)
  694. /* Bookend */
  695. #define /*0x0F4*/ oBookendUnkF4 OBJECT_FIELD_S32(0x1B)
  696. #define /*0x0F8*/ oBookendUnkF8 OBJECT_FIELD_S32(0x1C)
  697. /* Book switch manager */
  698. #define /*0x0F4*/ oBookSwitchManagerUnkF4 OBJECT_FIELD_S32(0x1B)
  699. #define /*0x0F8*/ oBookSwitchManagerUnkF8 OBJECT_FIELD_S32(0x1C)
  700. /* Book switch */
  701. #define /*0x0F4*/ oBookSwitchUnkF4 OBJECT_FIELD_F32(0x1B)
  702. /* Fire piranha plant */
  703. #define /*0x0F4*/ oFirePiranhaPlantNeutralScale OBJECT_FIELD_F32(0x1B)
  704. #define /*0x0F8*/ oFirePiranhaPlantScale OBJECT_FIELD_F32(0x1C)
  705. #define /*0x0FC*/ oFirePiranhaPlantActive OBJECT_FIELD_S32(0x1D)
  706. #define /*0x100*/ oFirePiranhaPlantDeathSpinTimer OBJECT_FIELD_S32(0x1E)
  707. #define /*0x104*/ oFirePiranhaPlantDeathSpinVel OBJECT_FIELD_F32(0x1F)
  708. // Rename
  709. /* Small piranha flame */
  710. #define /*0x0F4*/ oSmallPiranhaFlameUnkF4 OBJECT_FIELD_F32(0x1B)
  711. #define /*0x0F8*/ oSmallPiranhaFlameUnkF8 OBJECT_FIELD_F32(0x1C)
  712. #define /*0x0FC*/ oSmallPiranhaFlameUnkFC OBJECT_FIELD_S32(0x1D)
  713. #define /*0x100*/ oSmallPiranhaFlameUnk100 OBJECT_FIELD_S32(0x1E)
  714. #define /*0x104*/ oSmallPiranhaFlameUnk104 OBJECT_FIELD_F32(0x1F)
  715. /* Fire spitter */
  716. #define /*0x0F4*/ oFireSpitterScaleVel OBJECT_FIELD_F32(0x1B)
  717. /* Snufit */
  718. #define /*0x0F4*/ oSnufitUnkF4 OBJECT_FIELD_S32(0x1B)
  719. #define /*0x0F8*/ oSnufitUnkF8 OBJECT_FIELD_F32(0x1C)
  720. #define /*0x100*/ oSnufitUnk100 OBJECT_FIELD_S32(0x1E)
  721. #define /*0x104*/ oSnufitUnk104 OBJECT_FIELD_S32(0x1F)
  722. #define /*0x108*/ oSnufitUnk108 OBJECT_FIELD_S32(0x20)
  723. #define /*0x10C*/ oSnufitUnk10C OBJECT_FIELD_S32(0x21)
  724. #define /*0x1AE*/ oSnufitUnk1AE OBJECT_FIELD_S16(0x49, + 1)
  725. #define /*0x1B0*/ oSnufitUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
  726. #define /*0x1B2*/ oSnufitUnk1B2 OBJECT_FIELD_S16(0x4A, + 1)
  727. /* Horizontal grindel */
  728. #define /*0x0F4*/ oHorizontalGrindelTargetYaw OBJECT_FIELD_S32(0x1B)
  729. #define /*0x0F8*/ oHorizontalGrindelDistToHome OBJECT_FIELD_F32(0x1C)
  730. #define /*0x0FC*/ oHorizontalGrindelOnGround OBJECT_FIELD_S32(0x1D)
  731. /* Eyerok boss */
  732. #define /*0x0F8*/ oEyerokBossNumHands OBJECT_FIELD_S32(0x1C)
  733. #define /*0x0FC*/ oEyerokBossUnkFC OBJECT_FIELD_S32(0x1D)
  734. #define /*0x100*/ oEyerokBossActiveHand OBJECT_FIELD_S32(0x1E)
  735. #define /*0x104*/ oEyerokBossUnk104 OBJECT_FIELD_S32(0x1F)
  736. #define /*0x108*/ oEyerokBossUnk108 OBJECT_FIELD_F32(0x20)
  737. #define /*0x10C*/ oEyerokBossUnk10C OBJECT_FIELD_F32(0x21)
  738. #define /*0x110*/ oEyerokBossUnk110 OBJECT_FIELD_F32(0x22)
  739. #define /*0x1AC*/ oEyerokBossUnk1AC OBJECT_FIELD_S32(0x49)
  740. /* Eyerok hand */
  741. #define /*0x0F4*/ oEyerokHandWakeUpTimer OBJECT_FIELD_S32(0x1B)
  742. #define /*0x0F8*/ oEyerokReceivedAttack OBJECT_FIELD_S32(0x1C)
  743. #define /*0x0FC*/ oEyerokHandUnkFC OBJECT_FIELD_S32(0x1D)
  744. #define /*0x100*/ oEyerokHandUnk100 OBJECT_FIELD_S32(0x1E)
  745. /* Klepto */
  746. #define /*0x0F4*/ oKleptoDistanceToTarget OBJECT_FIELD_F32(0x1B)
  747. #define /*0x0F8*/ oKleptoUnkF8 OBJECT_FIELD_F32(0x1C)
  748. #define /*0x0FC*/ oKleptoUnkFC OBJECT_FIELD_F32(0x1D)
  749. #define /*0x100*/ oKleptoSpeed OBJECT_FIELD_F32(0x1E)
  750. #define /*0x104*/ oKleptoStartPosX OBJECT_FIELD_F32(0x1F)
  751. #define /*0x108*/ oKleptoStartPosY OBJECT_FIELD_F32(0x20)
  752. #define /*0x10C*/ oKleptoStartPosZ OBJECT_FIELD_F32(0x21)
  753. #define /*0x110*/ oKleptoTimeUntilTargetChange OBJECT_FIELD_S32(0x22)
  754. #define /*0x1AC*/ oKleptoTargetNumber OBJECT_FIELD_S16(0x49, 0)
  755. #define /*0x1AE*/ oKleptoUnk1AE OBJECT_FIELD_S16(0x49, + 1)
  756. #define /*0x1B0*/ oKleptoUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
  757. #define /*0x1B2*/ oKleptoYawToTarget OBJECT_FIELD_S16(0x4A, + 1)
  758. /* Bird */
  759. #define /*0x0F4*/ oBirdSpeed OBJECT_FIELD_F32(0x1B)
  760. #define /*0x0F8*/ oBirdPitch OBJECT_FIELD_S32(0x1C)
  761. #define /*0x0FC*/ oBirdYaw OBJECT_FIELD_S32(0x1D)
  762. /* Racing penguin */
  763. #define /*0x0F4*/ oRacingPenguinInitTextCooldown OBJECT_FIELD_S32(0x1B)
  764. // 0x1D-0x21 reserved for pathing
  765. #define /*0x110*/ oRacingPenguinWeightedNewTargetSpeed OBJECT_FIELD_F32(0x22)
  766. #define /*0x1AC*/ oRacingPenguinFinalTextbox OBJECT_FIELD_S16(0x49, 0)
  767. #define /*0x1AE*/ oRacingPenguinMarioWon OBJECT_FIELD_S16(0x49, + 1)
  768. #define /*0x1B0*/ oRacingPenguinReachedBottom OBJECT_FIELD_S16(0x4A, 0)
  769. #define /*0x1B2*/ oRacingPenguinMarioCheated OBJECT_FIELD_S16(0x4A, + 1)
  770. /* Clam */
  771. #define /*0x0F4*/ oClamUnkF4 OBJECT_FIELD_S32(0x1B)
  772. /* Skeeter */
  773. #define /*0x0F4*/ oSkeeterTargetAngle OBJECT_FIELD_S32(0x1B)
  774. #define /*0x0F8*/ oSkeeterUnkF8 OBJECT_FIELD_S32(0x1C)
  775. #define /*0x0FC*/ oSkeeterUnkFC OBJECT_FIELD_F32(0x1D)
  776. #define /*0x100*/ oSkeeterWaitTime OBJECT_FIELD_S32(0x1E)
  777. #define /*0x1AC*/ oSkeeterUnk1AC OBJECT_FIELD_S16(0x49, 0)
  778. /* Swing platform */
  779. #define /*0x0F4*/ oSwingPlatformAngle OBJECT_FIELD_F32(0x1B)
  780. #define /*0x0F8*/ oSwingPlatformSpeed OBJECT_FIELD_F32(0x1C)
  781. /* Donut platform spawner */
  782. #define /*0x0F4*/ oDonutPlatformSpawnerSpawnedPlatforms OBJECT_FIELD_S32(0x1B)
  783. /* DDD pole */
  784. #define /*0x0F4*/ oDDDPoleVel OBJECT_FIELD_F32(0x1B)
  785. #define /*0x0F8*/ oDDDPoleMaxOffset OBJECT_FIELD_F32(0x1C)
  786. #define /*0x0FC*/ oDDDPoleOffset OBJECT_FIELD_F32(0x1D)
  787. /* Triplet butterfly */
  788. #define /*0x0F4*/ oTripletButterflyScale OBJECT_FIELD_F32(0x1B)
  789. #define /*0x0F8*/ oTripletButterflySpeed OBJECT_FIELD_F32(0x1C)
  790. #define /*0x0FC*/ oTripletButterflyBaseYaw OBJECT_FIELD_F32(0x1D)
  791. #define /*0x100*/ oTripletButterflyTargetPitch OBJECT_FIELD_S32(0x1E)
  792. #define /*0x104*/ oTripletButterflyTargetYaw OBJECT_FIELD_S32(0x1F)
  793. #define /*0x108*/ oTripletButterflyType OBJECT_FIELD_S32(0x20)
  794. #define /*0x10C*/ oTripletButterflyModel OBJECT_FIELD_S32(0x21)
  795. #define /*0x110*/ oTripletButterflySelectedButterfly OBJECT_FIELD_S32(0x22)
  796. #define /*0x1AC*/ oTripletButterflyScalePhase OBJECT_FIELD_S32(0x49)
  797. /* Bubba */
  798. #define /*0x0F4*/ oBubbaUnkF4 OBJECT_FIELD_F32(0x1B)
  799. #define /*0x0F8*/ oBubbaUnkF8 OBJECT_FIELD_S32(0x1C)
  800. #define /*0x0FC*/ oBubbaUnkFC OBJECT_FIELD_S32(0x1D)
  801. #define /*0x100*/ oBubbaUnk100 OBJECT_FIELD_S32(0x1E)
  802. #define /*0x104*/ oBubbaUnk104 OBJECT_FIELD_S32(0x1F)
  803. #define /*0x108*/ oBubbaUnk108 OBJECT_FIELD_F32(0x20)
  804. #define /*0x10C*/ oBubbaUnk10C OBJECT_FIELD_F32(0x21)
  805. #define /*0x1AC*/ oBubbaUnk1AC OBJECT_FIELD_S16(0x49, 0)
  806. #define /*0x1AE*/ oBubbaUnk1AE OBJECT_FIELD_S16(0x49, + 1)
  807. #define /*0x1B0*/ oBubbaUnk1B0 OBJECT_FIELD_S16(0x4A, 0)
  808. #define /*0x1B2*/ oBubbaUnk1B2 OBJECT_FIELD_S16(0x4A, + 1)
  809. /* PyramidTop */
  810. #define /*0x0F4*/ oPyramidTopUnkF4 OBJECT_FIELD_S32(0x1B)
  811. /* PyramidTopExplosion */
  812. #define /*0x0F4*/ oPyramidTopExplosionUnkF4 OBJECT_FIELD_F32(0x1B)
  813. /* SnowmansBottom */
  814. #define /*0x0F4*/ oSnowmansBottomUnkF4 OBJECT_FIELD_F32(0x1B)
  815. #define /*0x0F8*/ oSnowmansBottomUnkF8 OBJECT_FIELD_S32(0x1C)
  816. #define /*0x0FC*/ oSnowmansBottomUnkFC OBJECT_FIELD_VOIDP(0x1D)
  817. #define /*0x10C*/ oSnowmansBottomUnk10C OBJECT_FIELD_S32(0x21)
  818. /* SnowmansHead */
  819. #define /*0x0F4*/ oSnowmansHeadUnkF4 OBJECT_FIELD_S32(0x1B)
  820. /* StarSpawn */
  821. #define /*0x0F4*/ oStarSpawnDisFromHome OBJECT_FIELD_F32(0x1B)
  822. #define /*0x0FC*/ oStarSpawnUnkFC OBJECT_FIELD_F32(0x1D)
  823. /* HiddenRedCoinStar */
  824. #define /*0x0F4*/ oHiddenRedCoinStarCoinsCollected OBJECT_FIELD_S32(0x1B)
  825. /* HiddenStar */
  826. #define /*0x0F4*/ oHiddenStarSecretsCollected OBJECT_FIELD_S32(0x1B)
  827. /* BowserCourseRedCoinStar */
  828. #define /*0x0F4*/ oBowserCourseRedCoinStarCoinsCollected OBJECT_FIELD_S32(0x1B)
  829. /* Pitoune */
  830. #define /*0x0F4*/ oPitouneUnkF4 OBJECT_FIELD_F32(0x1B)
  831. #define /*0x0F8*/ oPitouneUnkF8 OBJECT_FIELD_F32(0x1C)
  832. #define /*0x0FC*/ oPitouneUnkFC OBJECT_FIELD_F32(0x1D)
  833. /* 1UpHidden */
  834. #define /*0x0F4*/ o1UpHiddenUnkF4 OBJECT_FIELD_S32(0x1B)
  835. /* ControllablePlatform */
  836. #define /*0x0FC*/ oControllablePlatformUnkFC OBJECT_FIELD_F32(0x1D)
  837. #define /*0x100*/ oControllablePlatformUnk100 OBJECT_FIELD_S32(0x1E)
  838. /* BreakableBoxSmall */
  839. #define /*0x0F4*/ oBreakableBoxSmallReleased OBJECT_FIELD_S32(0x1B)
  840. #define /*0x0FC*/ oBreakableBoxSmallFramesSinceReleased OBJECT_FIELD_S32(0x1D)
  841. /* FloatingPlatform */
  842. #define /*0x0F4*/ oFloatingPlatformUnkFC OBJECT_FIELD_S32(0x1B)
  843. /* FallingPillar */
  844. #define /*0x0F4*/ oFallingPillarUnkF4 OBJECT_FIELD_F32(0x1B)
  845. /* TreasureChestJrb */
  846. #define /*0x0F4*/ oTreasureChestJrbUnkF4 OBJECT_FIELD_S32(0x1B)
  847. #define /*0x0FC*/ oTreasureChestJrbUnkFC OBJECT_FIELD_S32(0x1D)
  848. /* TreasureChest */
  849. #define /*0x0F4*/ oTreasureChestUnkF4 OBJECT_FIELD_S32(0x1B)
  850. #define /*0x0FC*/ oTreasureChestUnkFC OBJECT_FIELD_S32(0x1D)
  851. /* Mips */
  852. #define /*0x0F4*/ oMipsUnkF4 OBJECT_FIELD_S32(0x1B)
  853. #define /*0x0F8*/ oMipsUnkF8 OBJECT_FIELD_S32(0x1C)
  854. #define /*0x0FC*/ oMipsUnkFC OBJECT_FIELD_VOIDP(0x1D)
  855. #define /*0x10C*/ oMipsUnk10C OBJECT_FIELD_S32(0x21)
  856. /* Yoshi */
  857. #define /*0x0F4*/ oYoshiUnkF4 OBJECT_FIELD_S32(0x1B)
  858. #define /*0x0FC*/ oYoshiChosenHome OBJECT_FIELD_S32(0x1D)
  859. #define /*0x100*/ oYoshiTargetYaw OBJECT_FIELD_S32(0x1E)
  860. /* End birds */
  861. #define /*0x104*/ oEndBirdUnk104 OBJECT_FIELD_F32(0x1F)
  862. /* Intro cutscene lakitu */
  863. #define /*0x0F8*/ oIntroLakituUnkF8 OBJECT_FIELD_F32(0x1C)
  864. #define /*0x0FC*/ oIntroLakituUnkFC OBJECT_FIELD_F32(0x1D)
  865. #define /*0x100*/ oIntroLakituUnk100 OBJECT_FIELD_F32(0x1E)
  866. #define /*0x104*/ oIntroLakituUnk104 OBJECT_FIELD_F32(0x1F)
  867. #define /*0x108*/ oIntroLakituUnk108 OBJECT_FIELD_F32(0x20)
  868. #define /*0x10C*/ oIntroLakituUnk10C OBJECT_FIELD_F32(0x21)
  869. #define /*0x110*/ oIntroLakituUnk110 OBJECT_FIELD_F32(0x22)
  870. /* Intro cutscene Peach */
  871. #define /*0x108*/ oIntroPeachUnk108 OBJECT_FIELD_F32(0x20)
  872. #define /*0x10C*/ oIntroPeachUnk10C OBJECT_FIELD_F32(0x21)
  873. #define /*0x110*/ oIntroPeachUnk110 OBJECT_FIELD_F32(0x22)
  874. #endif