Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
entity.h
Go to the documentation of this file.
1#ifndef ENTITY_H
2#define ENTITY_H
3
4#include "common.h"
5
6typedef s32 EntityScript[];
7typedef s32 EntityModelScript[];
8
9extern s32 CreateEntityVarArgBuffer[];
10
11enum {
22};
23
24enum {
33};
34
35#define es_End ENTITY_SCRIPT_OP_End,
36#define es_Jump(script) ENTITY_SCRIPT_OP_Jump, (s32)script,
37#define es_Call(func) ENTITY_SCRIPT_OP_Call, (s32)func,
38#define es_SetCallback(func, time) ENTITY_SCRIPT_OP_SetCallback, time, (s32)func,
39#define es_Goto(labelId) ENTITY_SCRIPT_OP_Goto, labelId,
40#define es_Restart ENTITY_SCRIPT_OP_Goto, 0,
41#define es_Label(labelId) ENTITY_SCRIPT_OP_Label, labelId,
42#define es_RestartBoundScript ENTITY_SCRIPT_OP_RestartBoundScript,
43#define es_SetFlags(flags) ENTITY_SCRIPT_OP_SetFlags, flags,
44#define es_ClearFlags(flags) ENTITY_SCRIPT_OP_ClearFlags, flags,
45#define es_PlaySound(soundId) ENTITY_SCRIPT_OP_PlaySound, soundId,
46
47#define ems_End ENTITY_MODEL_SCRIPT_OP_End,
48#define ems_Draw(dlist, holdTime) ENTITY_MODEL_SCRIPT_OP_Draw, holdTime, (s32)dlist,
49#define ems_Restart ENTITY_MODEL_SCRIPT_OP_Restart,
50#define ems_Loop ENTITY_MODEL_SCRIPT_OP_Loop,
51#define ems_SetRenderMode(mode) ENTITY_MODEL_SCRIPT_OP_SetRenderMode, mode,
52#define ems_SetFlags(flags) ENTITY_MODEL_SCRIPT_OP_SetFlags, flags,
53#define ems_ClearFlags(flags) ENTITY_MODEL_SCRIPT_OP_ClearFlags, flags,
54#define ems_DrawImage(raster, palette, width, height, holdTime) ENTITY_MODEL_SCRIPT_OP_DrawImage, holdTime, (s32)raster, (s32)palette, width, height,
55
56#define STANDARD_ENTITY_MODEL_SCRIPT(gfx, renderMode) \
57 { \
58 ems_SetRenderMode(renderMode) \
59 ems_Draw(gfx, 60) \
60 ems_Restart \
61 ems_End \
62 }
63
64#define ENTITY_ADDR(entity, type, data) (type)((s32)(entity->gfxBaseAddr) + ((s32)(data) & 0xFFFF))
65#define ENTITY_ROM(name) { entity_model_##name##_ROM_START, entity_model_##name##_ROM_END }
66
67#define BLOCK_GRID_SIZE 25
68
69#define TWEESTER_PATH_STOP 0x80000000
70#define TWEESTER_PATH_LOOP 0x80000001
71
72typedef struct SaveBlockData {
73 /* 0x000 */ char unk_0[4];
74 /* 0x004 */ s16 angle;
75 /* 0x006 */ char unk_6[0x1A];
76} SaveBlockData; // size = 0x20
77
78typedef struct SwitchData {
79 /* 0x000 */ f32 fallVel;
80 /* 0x004 */ f32 deltaScaleX;
81 /* 0x008 */ f32 deltaScaleY;
82 /* 0x00C */ char unk_0C[4];
83 /* 0x010 */ s8 animStateScaleX;
84 /* 0x011 */ s8 animStateScaleY;
85 /* 0x014 */ Vec3f baseScale;
86 /* 0x020 */ u16 areaFlagIndex;
87 /* 0x022 */ s16 greenMotionTimer;
88 /* 0x024 */ s16 scaleAnimTimer;
89 /* 0x028 */ struct Entity* linkedSwitch;
90} SwitchData; // size = 0x2C
91
92typedef struct ShatteringBlockData {
93 /* 0x000 */ u16 fragmentFlags[25];
94 /* 0x034 */ Gfx** fragmentDisplayLists;
95 /* 0x038 */ f32 originalPosY;
96 /* 0x03C */ s16 alpha;
97 /* 0x03E */ s16 fadeOutCounter;
98 /* 0x040 */ s8 fragmentRebounds[25];
99 /* 0x059 */ s8 fragmentRotSpeed[25];
100 /* 0x072 */ u8 fragmentMoveAngle[25]; // scaled to map [0,255] -> [0,360]
101 /* 0x08B */ u8 fragmentRotX[25]; // scaled to map [0,255] -> [0,360]
102 /* 0x0A4 */ u8 fragmentRotY[25]; // scaled to map [0,255] -> [0,360]
103 /* 0x0C0 */ f32 fragmentPosX[25];
104 /* 0x124 */ f32 fragmentPosY[25];
105 /* 0x188 */ f32 fragmentPosZ[25];
106 /* 0x1EC */ f32 fragmentFallSpeed[25];
107} ShatteringBlockData; // size = 0x250
108
109typedef struct BlockData {
110 /* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
111 /* 0x001 */ char unk_01[2];
112 /* 0x003 */ s8 empty;
113 /* 0x004 */ s16 coinsLeft;
114 /* 0x006 */ s16 timeLeft;
115 /* 0x008 */ char unk_08[2];
116 /* 0x00A */ u16 gameFlagIndex;
117 /* 0x00C */ char unk_0C[2];
118 /* 0x00E */ s16 sinkingTimer;
119 /* 0x010 */ s16 item; // for spawned item entities
120 /* 0x012 */ s16 childEntityIndex; // for block entities that spawn other block entities
121 /* 0x014 */ f32 initialY;
122 /* 0x018 */ f32 recoilInterpPhase;
123 /* 0x01C */ char unk_1C[0x4];
124} BlockData; // size = 0x20
125
126typedef struct SuperBlockContentData {
127 /* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
128 /* 0x001 */ u8 unk_01;
129 /* 0x002 */ s8 effectTimer;
130 /* 0x003 */ s8 unk_03;
131 /* 0x004 */ f32 unk_04;
132 /* 0x008 */ u8 paletteTimer;
133 /* 0x009 */ u8 paletteArrOffset;
134 /* 0x00A */ u8 isHidden;
135 /* 0x00B */ char unk_0B; // padding?
136 /* 0x00C */ s32 unk_0C;
137 /* 0x010 */ Mtx unk_10;
138 /* 0x050 */ Mtx unk_50;
139 /* 0x090 */ Mtx unk_90;
140 /* 0x0D0 */ u16 yawBufferPos;
141 /* 0x0D4 */ f32 yawBuffer[20];
142 /* 0x124 */ s32 unk_124;
143 /* 0x128 */ Gfx* gfx1;
144 /* 0x12C */ Gfx* gfx2;
145} SuperBlockContentData; // size = 0x130
146
147// size unknown
148typedef struct HeartBlockContentData {
149 /* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
150 /* 0x001 */ u8 state;
151 /* 0x002 */ s8 sparkleTimer;
152 /* 0x003 */ s8 sparkleTrailTimer;
153 /* 0x004 */ f32 sparkleTrailPosY;
154 /* 0x008 */ u8 heartbeatTimer;
155 /* 0x009 */ u8 unk_09;
156 /* 0x00A */ u8 sparkleEffectType;
157 /* 0x00B */ char unk_0B; // padding?
158 /* 0x00C */ s32 unk_0C;
159 /* 0x010 */ s32 unk_10;
160 /* 0x014 */ f32 riseVel;
161 /* 0x018 */ f32 sparkleTrailAngle;
162 /* 0x01C */ f32 sparkleTrailRadius;
163 /* 0x020 */ f32 bouncePhase;
164 /* 0x024 */ u16 yawBufferPos;
165 /* 0x026 */ s16 unk_26;
166 /* 0x028 */ f32 yawBuffer[10];
167 /* 0x050 */ f32 unk_50;
168 /* 0x054 */ f32 rotRate;
169 /* 0x058 */ Mtx unk_58;
170 /* 0x098 */ Mtx unk_98;
171} HeartBlockContentData; // size = 0xD8
172
173typedef struct WoodenCrateData {
174 /* 0x000 */ s32 itemID;
175 /* 0x004 */ u16 globalFlagIndex;
176 /* 0x006 */ u8 unk_06[2];
177 /* 0x008 */ Gfx** fragmentsGfx;
178 /* 0x00C */ f32 basePosY;
179 /* 0x010 */ s8 fragmentRebounds[36];
180 /* 0x034 */ u8 fragmentMoveAngle[36]; // X,Z plane -- scaled to map [0,255] -> [0,360], also used as fragment alpha
181 /* 0x058 */ u8 fragmentRotX[36]; // scaled to map [0,255] -> [0,360]
182 /* 0x07C */ u8 fragmentRotY[36]; // scaled to map [0,255] -> [0,360]
183 /* 0x0A0 */ u8 fragmentLateralSpeed[36]; // scaled to map [0,255] -> [0,25.5]
184 /* 0x0C4 */ f32 fragmentRotSpeed[36];
185 /* 0x154 */ f32 fragmentPosX[36];
186 /* 0x1E4 */ f32 fragmentPosY[36];
187 /* 0x274 */ f32 fragmentPosZ[36];
188 /* 0x304 */ f32 fragmentFallSpeed[36];
189} WoodenCrateData; // size = 0x394
190
191// size unknown
192typedef struct ChestData {
193 /* 0x00 */ u16 gameFlagIndex;
194 /* 0x02 */ s16 giveItemTimer;
195 /* 0x04 */ u8 state;
196 /* 0x05 */ u8 openState;
197 /* 0x06 */ s8 postLidAnimDelay;
198 /* 0x07 */ s8 unk_07;
199 /* 0x08 */ f32 lidAngle;
200 /* 0x0C */ f32 lidAnimInterpPhase;
201 /* 0x10 */ s32 itemID;
202 /* 0x14 */ s32 itemEntityIndex;
206 /* 0x2C */ f32 itemVelY;
207 /* 0x30 */ s8 gotItemDone;
208 /* 0x31 */ char unk_31[3];
209 /* 0x34 */ struct EffectInstance* gotItemEffect;
210} ChestData; // size = 0x38
211
212typedef struct BlueWarpPipeData {
213 /* 0x00 */ s32 unk_00; // proably flags
214 /* 0x04 */ s32 timer;
215 /* 0x08 */ b32 isRaised;
216 /* 0x0C */ s32 entryID;
218 /* 0x14 */ s32 flagIndex;
219 /* 0x18 */ f32 finalPosY;
220} BlueWarpPipeData; // size = 0x1C
221
222typedef struct SimpleSpringData {
223 /* 0x00 */ s32 launchVel;
224} SimpleSpringData; // size = 0x04
225
226typedef struct HiddenPanelData {
227 /* 0x00 */ s8 state; // TODO: enum
228 /* 0x01 */ s8 timer;
229 /* 0x02 */ s8 unk_02;
230 /* 0x03 */ s8 needSpawnItem;
231 /* 0x04 */ s8 unk_04;
232 /* 0x05 */ s8 unk_05;
233 /* 0x06 */ u16 pickupVar;
234 /* 0x08 */ s32 standingNpcIndex;
235 /* 0x0C */ s32 npcFlags;
236 /* 0x10 */ s32 itemID;
237 /* 0x14 */ s32 spawnedItemIndex;
239 /* 0x24 */ f32 initialY;
240 /* 0x28 */ f32 riseVel;
241 /* 0x2C */ f32 riseInterpPhase;
242 /* 0x30 */ f32 rotSpeed;
244 /* 0x74 */ u16 modelID;
245 /* 0x76 */ char unk_76[0x2];
246 /* 0x78 */ Gfx* renderDList;
247} HiddenPanelData; // size = 0x7C
248
249typedef struct SignpostData {
250 /* 0x00 */ char unk_00[8];
251} SignpostData; // size = 0x08
252
253typedef struct PadlockData {
254 /* 0x00 */ f32 pushSpeed;
255 /* 0x04 */ f32 shacklePos;
256 /* 0x08 */ f32 fallSpeed;
257 /* 0x0C */ f32 rotSpeed;
258 /* 0x10 */ u8 blinkCounter;
259 /* 0x11 */ s8 timer;
260 /* 0x12 */ s8 state;
261 /* 0x13 */ char unk_13;
262 /* 0x14 */ Mtx* shackleMtx;
263 /* 0x18 */ Gfx* shackleGfx;
264} PadlockData; // size = 0x1C
265
266#define FRAGMENT_BUF_SIZE 13
267
282
283typedef struct BombableRockData {
284 /* 0x00 */ Gfx** fragmentsGfx;
285 /* 0x04 */ f32 inititalY;
286 /* 0x08 */ s8 fragmentRebounds[6];
287 /* 0x0E */ u8 fragmentMoveAngle[6];
288 /* 0x14 */ u8 fragmentRotX[6];
289 /* 0x1A */ u8 fragmentRotY[6];
290 /* 0x20 */ u8 fragmentLateralSpeed[6];
291 /* 0x28 */ f32 fragmentRotSpeed[6];
292 /* 0x40 */ f32 fragmentPosX[6];
293 /* 0x58 */ f32 fragmentPosY[6];
294 /* 0x70 */ f32 fragmentPosZ[6];
295 /* 0x88 */ f32 fragmentFallSpeed[6];
296} BombableRockData; // size = 0xA0
297
299
300typedef struct TweesterData {
301 /* 0x00 */ s8 unk_00;
302 /* 0x01 */ s8 faceAnimState;
303 /* 0x02 */ s8 faceAnimTimer;
304 /* 0x03 */ s8 faceAnimTexOffset;
305 /* 0x04 */ f32 rotSpeed;
306 /* 0x08 */ f32 innerWhirlRotY;
307 /* 0x0C */ f32 outerWhirlRotY;
308 /* 0x10 */ Mtx mtxInnerWhirl;
309 /* 0x50 */ Mtx mtxOuterWhirl;
310 /* 0x90 */ s16 innerWhirlTexOffsetX;
311 /* 0x92 */ s16 innerWhirlTexOffsetY;
312 /* 0x94 */ s16 outerWhirlTexOffsetX;
313 /* 0x96 */ s16 outerWhirlTexOffsetY;
314 /* 0x98 */ s16 frameCounter;
315 /* 0x9C */ s32* curPath;
316 /* 0xA0 */ s32** paths;
317 /* 0xA4 */ s16 targetX;
318 /* 0xA6 */ s16 targetY;
319 /* 0xA8 */ s16 targetZ;
320 /* 0xAA */ s16 pathOffset;
321 /* 0xAC */ char unk_AC[12];
322 /* 0xB8 */ f32 yaw;
323 /* 0xBC */ char unk_BC[4];
324} TweesterData; // size = 0xC0;
325
326typedef struct StarBoxLauncherData {
327 /* 0x00 */ s8 state;
328 /* 0x01 */ s8 timer;
329 /* 0x02 */ s8 flags;
330 /* 0x03 */ s8 faceDataIndex;
331 /* 0x04 */ s8 faceAnimTimer;
332 /* 0x05 */ s8 faceTexOffset;
333 /* 0x08 */ f32 basePosX;
334 /* 0x0C */ f32 basePosZ;
335 /* 0x10 */ f32 basePosY;
336 /* 0x14 */ f32 riseSpeedPhase;
337 /* 0x18 */ f32 riseVel;
338 /* 0x1C */ f32 rotZPhase;
339 /* 0x20 */ f32 maxRotZ;
340} StarBoxLauncherData; // size = 0x24
341
342typedef struct CymbalPlantData {
343 /* 0x0 */ u8 state;
344 /* 0x1 */ s8 unk_01;
345 /* 0x2 */ s16 timer;
346 /* 0x4 */ f32 angle;
347 /* 0x8 */ f32 dist;
348} CymbalPlantData; // size = 0xC
349
350typedef struct PinkFlowerData {
351 /* 0x0 */ u16 state;
352 /* 0x2 */ u16 timer;
353 /* 0x4 */ u16 linkedEntityIndex;
354 /* 0x8 */ f32 initialRotY;
355} PinkFlowerData; // size = 0xC
356
357typedef struct SpinningFlowerData {
358 /* 0x00 */ s16 unk_00;
359 /* 0x02 */ s8 state;
360 /* 0x04 */ Vec3f rot;
361 /* 0x10 */ s32 unk_10;
362 /* 0x14 */ f32 spinSpeed;
363 /* 0x18 */ s32 unk_18;
364 /* 0x1C */ char unk_1C[0x0C];
365 /* 0x28 */ Vec3s goalPos;
366 /* 0x30 */ Mtx unk_30;
367} SpinningFlowerData; // size = 0x70
368
369typedef struct TrumpetPlantData {
370 /* 0x0 */ s32 numCoins;
371} TrumpetPlantData; // size = 0x4
372
373typedef struct MunchlesiaData {
374 /* 0x00 */ s32 unk_00;
375 /* 0x04 */ s8 unk_04[0x8];
376 /* 0x0C */ f32 unk_0C;
377 /* 0x10 */ f32 unk_10;
378 /* 0x14 */ f32 unk_14;
379 /* 0x18 */ f32 unk_18;
380} MunchlesiaData; // size = 0x1C
381
382typedef struct ArrowSignData {
383 /* 0x00 */ s32 unk_00;
384 /* 0x04 */ f32 angle;
385 /* 0x08 */ f32 unk_08;
386 /* 0x0C */ f32 unk_0C;
387} ArrowSignData; // size = 0x10
388
446
447typedef struct EntityModel {
448 /* 0x00 */ s32 flags;
449 /* 0x04 */ s8 renderMode;
450 /* 0x05 */ u8 unk_05;
451 /* 0x06 */ u8 unk_06;
452 /* 0x07 */ u8 unk_07;
453 /* 0x08 */ f32 nextFrameTime;
454 /* 0x0C */ f32 timeScale;
456 /* 0x14 */ union {
457 Gfx* displayList;
458 SpriteRasterInfo* imageData;
460 /* 0x18 */ Mtx transform;
462 /* 0x5C */ Vec3s* vertexArray;
463 /* 0x60 */ void (*fpSetupGfxCallback)(void*);
464 /* 0x64 */ void* setupGfxCallbackArg0;
465} EntityModel; // size = 0x68
466
468
474
477
478#endif
s32 b32
f32 Matrix4f[4][4]
Bytecode EvtScript[]
s32 CreateEntityVarArgBuffer[]
Definition entity.c:35
s32 ** paths
Definition entity.h:316
u8 fragmentRotY[36]
Definition entity.h:182
EntityBlueprint Entity_Chest
Definition Chest.c:510
u16 fragmentFlags[25]
Definition entity.h:93
EntityBlueprint Entity_BombableRock
f32 fragmentRotSpeed[13]
Definition entity.h:276
s32 EntityModelScript[]
Definition entity.h:7
s8 fragmentRebounds[25]
Definition entity.h:98
f32 giveItemRadiusInterpPhase
Definition entity.h:204
f32 riseInterpPhase
Definition entity.h:241
s16 outerWhirlTexOffsetY
Definition entity.h:313
f32 pushSpeed
Definition entity.h:254
f32 fragmentPosY[25]
Definition entity.h:104
void virtual_entity_list_render_world(void)
s16 scaleAnimTimer
Definition entity.h:88
char unk_31[3]
Definition entity.h:208
u8 fragmentMoveAngle[25]
Definition entity.h:100
EntityBlueprint Entity_Hammer2BlockWideX
Definition Block.c:695
EntityBlueprint Entity_WoodenCrate
EntityBlueprint Entity_Hammer3BlockWideZ
Definition Block.c:760
Vec3f itemEntityPos
Definition entity.h:203
#define FRAGMENT_BUF_SIZE
Definition entity.h:266
char unk_1C[0x0C]
Definition entity.h:364
EntityBlueprint Entity_InertRedBlock
Definition Block.c:591
EntityBlueprint Entity_HeartBlock
Definition HeartBlock.c:467
EntityBlueprint Entity_BlueSwitch
Definition Switch.c:551
f32 fragmentPosZ[6]
Definition entity.h:294
s8 unk_04[0x8]
Definition entity.h:375
EntityBlueprint Entity_Hammer2BlockTiny
Definition Block.c:721
EntityBlueprint Entity_HiddenRedBlock
Definition ItemBlock.c:397
f32 initialRotY
Definition entity.h:354
EntityBlueprint Entity_Hammer3BlockWideX
Definition Block.c:747
EntityBlueprint Entity_TriggerBlock
Definition ItemBlock.c:410
s32 itemEntityIndex
Definition entity.h:202
EntityBlueprint Entity_HiddenYellowBlock
Definition ItemBlock.c:371
s8 faceAnimTexOffset
Definition entity.h:304
@ ENTITY_MODEL_SCRIPT_OP_SetFlags
Definition entity.h:30
@ ENTITY_MODEL_SCRIPT_OP_Draw
Definition entity.h:26
@ ENTITY_MODEL_SCRIPT_OP_Loop
Definition entity.h:28
@ ENTITY_MODEL_SCRIPT_OP_SetRenderMode
Definition entity.h:29
@ ENTITY_MODEL_SCRIPT_OP_Restart
Definition entity.h:27
@ ENTITY_MODEL_SCRIPT_OP_End
Definition entity.h:25
@ ENTITY_MODEL_SCRIPT_OP_DrawImage
Definition entity.h:32
@ ENTITY_MODEL_SCRIPT_OP_ClearFlags
Definition entity.h:31
Gfx * shackleGfx
Definition entity.h:263
char unk_0[4]
Definition entity.h:73
EntityBlueprint Entity_CymbalPlant
Definition Plants1.c:379
f32 rotSpeed
Definition entity.h:305
s32 load_entity_model(EntityModelScript *cmdList)
s8 animStateScaleX
Definition entity.h:83
u8 fragmentLateralSpeed[13]
Definition entity.h:275
Gfx ** fragmentDisplayLists
Definition entity.h:94
EntityBlueprint Entity_Hammer1BlockWideZ
Definition Block.c:656
EntityBlueprint Entity_Hammer1BlockWideX
Definition Block.c:643
s32 spawnedItemIndex
Definition entity.h:237
EntityBlueprint Entity_Hammer3BlockTiny
Definition Block.c:773
f32 initialY
Definition entity.h:121
EntityBlueprint Entity_Signpost
Definition Signpost.c:35
EntityBlueprint Entity_PadlockBlueFace
Definition Padlock.c:279
EntityBlueprint Entity_Hammer1BlockTiny
Definition Block.c:669
EntityBlueprint Entity_YellowBlock
Definition ItemBlock.c:358
EntityBlueprint Entity_Hammer2Block
Definition Block.c:682
char unk_0C[4]
Definition entity.h:82
EntityBlueprint Entity_GiantChest
Definition Chest.c:498
EntityBlueprint Entity_Munchlesia
Definition Plants2.c:357
f32 fragmentRotSpeed[6]
Definition entity.h:291
EvtScript * onEnterPipeEvt
Definition entity.h:217
s8 postLidAnimDelay
Definition entity.h:197
EntityBlueprint Entity_Padlock
Definition Padlock.c:240
u8 fragmentRotY[25]
Definition entity.h:102
f32 fragmentPosZ[13]
Definition entity.h:279
char unk_13
Definition entity.h:261
EntityBlueprint Entity_PadlockRedFace
Definition Padlock.c:266
s16 targetX
Definition entity.h:317
EntityBlueprint Entity_ScriptSpring
s16 targetY
Definition entity.h:318
u8 state
Definition entity.h:195
EntityBlueprint Entity_GreenStompSwitch
Definition Switch.c:577
f32 deltaScaleX
Definition entity.h:80
ShadowBlueprint SquareShadow
Definition Shadow.c:124
s32 itemID
Definition entity.h:201
s8 fragmentRebounds[36]
Definition entity.h:179
u8 fragmentRotY[6]
Definition entity.h:289
f32 outerWhirlRotY
Definition entity.h:307
s16 innerWhirlTexOffsetY
Definition entity.h:311
f32 fragmentPosX[25]
Definition entity.h:103
f32 fragmentFallSpeed[36]
Definition entity.h:188
s16 sinkingTimer
Definition entity.h:118
u8 fragmentMoveAngle[13]
Definition entity.h:272
f32 fragmentPosZ[25]
Definition entity.h:105
Gfx * renderDList
Definition entity.h:246
EntityBlueprint Entity_BlueWarpPipe
s32 ALT_load_entity_model(EntityModelScript *cmdList)
EntityBlueprint Entity_BellbellPlant
Definition Plants2.c:331
u16 areaFlagIndex
Definition entity.h:86
s8 gotItemDone
Definition entity.h:207
EntityBlueprint Entity_SpinningFlower
Definition Plants1.c:418
f32 lidAngle
Definition entity.h:199
EntityBlueprint Entity_Hammer1Block
Definition Block.c:630
u8 blinkCounter
Definition entity.h:258
ShadowBlueprint CircularShadowB
Definition Shadow.c:115
Gfx ** fragmentsGfx
Definition entity.h:269
void set_entity_model_render_command_list(s32 idx, EntityModelScript *cmdList)
struct Entity * linkedSwitch
Definition entity.h:89
Vec3f baseScale
Definition entity.h:85
f32 recoilInterpPhase
Definition entity.h:122
u16 gameFlagIndex
Definition entity.h:193
EntityBlueprint Entity_SimpleSpring
EntityBlueprint Entity_InertYellowBlock
Definition Block.c:578
s8 unk_07
Definition entity.h:198
Vec3i TweesterPath[]
Definition entity.h:298
f32 fragmentPosY[36]
Definition entity.h:186
EntityBlueprint Entity_PushBlock
Definition Block.c:786
f32 fragmentFallSpeed[25]
Definition entity.h:106
f32 fragmentPosX[6]
Definition entity.h:292
f32 lidAnimInterpPhase
Definition entity.h:200
EntityBlueprint Entity_HiddenPanel
EntityBlueprint Entity_Hammer2BlockWideZ
Definition Block.c:708
EntityModel * EntityModelList[256]
Definition entity.h:467
EntityBlueprint Entity_SavePoint
Definition SaveBlock.c:191
s16 targetZ
Definition entity.h:319
EntityBlueprint Entity_MulticoinBlock
Definition Block.c:617
EntityBlueprint Entity_BoardedFloor
struct EffectInstance * gotItemEffect
Definition entity.h:209
s8 faceAnimTimer
Definition entity.h:303
f32 fallSpeed
Definition entity.h:256
EntityBlueprint Entity_BrickBlock
Definition Block.c:604
char unk_BC[4]
Definition entity.h:323
f32 fragmentPosZ[36]
Definition entity.h:187
s8 fragmentRotSpeed[25]
Definition entity.h:99
char unk_1C[0x4]
Definition entity.h:123
f32 fragmentPosX[36]
Definition entity.h:185
u8 fragmentMoveAngle[36]
Definition entity.h:180
char unk_76[0x2]
Definition entity.h:245
char unk_0C[2]
Definition entity.h:117
f32 fallVel
Definition entity.h:79
u8 openState
Definition entity.h:196
EntityBlueprint Entity_HugeBlueSwitch
Definition Switch.c:564
Mtx mtxOuterWhirl
Definition entity.h:309
Gfx ** fragmentsGfx
Definition entity.h:177
EntityBlueprint Entity_TrumpetPlant
Definition Plants2.c:344
EntityBlueprint Entity_PadlockRedFrame
Definition Padlock.c:253
s32 EntityScript[]
Definition entity.h:6
EntityBlueprint Entity_BombableRockWide
u8 fragmentLateralSpeed[36]
Definition entity.h:183
s16 childEntityIndex
Definition entity.h:120
u8 parentEntityIndex
Definition entity.h:110
f32 innerWhirlRotY
Definition entity.h:306
u16 linkedEntityIndex
Definition entity.h:353
f32 fragmentPosX[13]
Definition entity.h:277
u8 fragmentMoveAngle[6]
Definition entity.h:287
char unk_08[2]
Definition entity.h:115
u8 fragmentRotX[25]
Definition entity.h:101
s8 animStateScaleY
Definition entity.h:84
s16 giveItemTimer
Definition entity.h:194
s16 timeLeft
Definition entity.h:114
EntityBlueprint Entity_Tweester
Definition Tweester.c:317
f32 deltaScaleY
Definition entity.h:81
char unk_00[8]
Definition entity.h:250
s8 fragmentRebounds[6]
Definition entity.h:286
s16 pathOffset
Definition entity.h:320
f32 giveItemHeightInterpPhase
Definition entity.h:205
EntityBlueprint Entity_Hammer3Block
Definition Block.c:734
s8 fragmentRebounds[13]
Definition entity.h:271
f32 rotSpeed
Definition entity.h:257
Vec3i spawnedItemPos
Definition entity.h:238
s16 item
Definition entity.h:119
EntityBlueprint Entity_RedBlock
Definition ItemBlock.c:384
f32 fragmentPosY[13]
Definition entity.h:278
Mtx * shackleMtx
Definition entity.h:262
f32 fragmentRotSpeed[36]
Definition entity.h:184
s8 faceAnimState
Definition entity.h:302
f32 fragmentFallSpeed[6]
Definition entity.h:295
EntityBlueprint Entity_RedSwitch
Definition Switch.c:538
u8 fragmentRotX[36]
Definition entity.h:181
EntityBlueprint Entity_StarBoxLauncher
f32 itemVelY
Definition entity.h:206
EntityModel * get_entity_model(s32 idx)
u8 fragmentLateralSpeed[6]
Definition entity.h:290
char unk_AC[12]
Definition entity.h:321
u8 fragmentRotY[13]
Definition entity.h:274
u8 fragmentRotX[13]
Definition entity.h:273
f32 fragmentFallSpeed[13]
Definition entity.h:280
Matrix4f entityMatrix
Definition entity.h:243
f32 shacklePos
Definition entity.h:255
s32 standingNpcIndex
Definition entity.h:234
s8 empty
Definition entity.h:112
ShadowBlueprint CircularShadowA
Definition Shadow.c:106
s16 greenMotionTimer
Definition entity.h:87
void virtual_entity_list_render_UI(void)
s16 coinsLeft
Definition entity.h:113
s16 innerWhirlTexOffsetX
Definition entity.h:310
void entity_set_render_script(Entity *entity, EntityModelScript *cmdList)
Definition entity.c:761
s16 outerWhirlTexOffsetX
Definition entity.h:312
EntityBlueprint Entity_ArrowSign
Definition ArrowSign.c:55
Mtx mtxInnerWhirl
Definition entity.h:308
s16 frameCounter
Definition entity.h:314
u8 fragmentRotX[6]
Definition entity.h:288
EntityBlueprint Entity_PinkFlower
Definition Plants1.c:392
u16 globalFlagIndex
Definition entity.h:175
char unk_01[2]
Definition entity.h:111
EntityBlueprint Entity_SuperBlock
Definition SuperBlock.c:253
Gfx ** fragmentsGfx
Definition entity.h:284
@ ENTITY_SCRIPT_OP_End
Definition entity.h:12
@ ENTITY_SCRIPT_OP_Label
Definition entity.h:17
@ ENTITY_SCRIPT_OP_Jump
Definition entity.h:13
@ ENTITY_SCRIPT_OP_PlaySound
Definition entity.h:21
@ ENTITY_SCRIPT_OP_RestartBoundScript
Definition entity.h:18
@ ENTITY_SCRIPT_OP_ClearFlags
Definition entity.h:20
@ ENTITY_SCRIPT_OP_Goto
Definition entity.h:16
@ ENTITY_SCRIPT_OP_SetFlags
Definition entity.h:19
@ ENTITY_SCRIPT_OP_Call
Definition entity.h:14
@ ENTITY_SCRIPT_OP_SetCallback
Definition entity.h:15
char unk_6[0x1A]
Definition entity.h:75
EntityBlueprint Entity_PowBlock
Definition Block.c:799
u16 gameFlagIndex
Definition entity.h:116
f32 fragmentPosY[6]
Definition entity.h:293
s32 * curPath
Definition entity.h:315
#define MAX_ENTITY_MODELS
Definition macros.h:87
s32 flags
Definition entity.h:448
EntityModelScript * cmdListSavedPos
Definition entity.h:461
void(* fpSetupGfxCallback)(void *)
Definition entity.h:463
union EntityModel::@46 gfx
void * setupGfxCallbackArg0
Definition entity.h:464
Mtx transform
Definition entity.h:460
EntityModelScript * cmdListReadPos
Definition entity.h:455
Vec3s * vertexArray
Definition entity.h:462
f32 timeScale
Default is 1.0.
Definition entity.h:454
f32 nextFrameTime
Set to 1.0 after each update.
Definition entity.h:453
s8 renderMode
Definition entity.h:449