* matched execute_render_tasks

* step_entity_command_list

* partially migrated entity data

* entity blueprints migrated

* matched create_entity

* matched entity functions

* SaveBlock

* SaveBlock and Switch

* switch model done

* matched shattering block functions

* shattering block models

* matched block funcs

* block models

* finish Block.c

* ItemBlock

* HeartBlock

* SuperBlock

* SimpleSpring

* HiddenPanel wip

* HiddenPanel

* Chest

* WoodenCrate

* BlueWarpPipe

* SignPost

* Padlock

* Boarded floor and padlocks

* BombableRock

* Tweester

* StarBoxLauncher

* wip

* ArrowSign

* BellbellPlant

* TrumpetPlant

* munchlesia wip

* Munchlesia

* UnusedBlock

* cleaning

* fix warnings

* git subrepo pull --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "fd9cbc3a1"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "fd9cbc3a1"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* PR suggestions

* created vtx splat segments
This commit is contained in:
Unnunu 2022-07-17 19:38:19 +03:00 committed by GitHub
parent 6a04b6a5fe
commit ae64b1b5cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
574 changed files with 43901 additions and 13432 deletions

View File

@ -408,207 +408,49 @@ typedef struct Evt {
typedef Evt* ScriptList[MAX_SCRIPTS];
struct Entity;
// BEGIN ENTITY-SPECIFIC STRUCTS
typedef struct struct802E2BA4 {
/* 0x00 */ char unk_00[2];
/* 0x02 */ u16 unk_02[24][2];
} struct802E2BA4;
// from 102c80, size unknown.
typedef struct SwitchData {
/* 0x000 */ f32 fallVelocity;
/* 0x004 */ f32 deltaScaleX;
/* 0x008 */ f32 deltaScaleY;
/* 0x00C */ char unk_0C[4];
/* 0x010 */ s8 animStateScaleX;
/* 0x011 */ s8 animStateScaleY;
/* 0x014 */ Vec3f baseScale;
/* 0x020 */ u16 areaFlagIndex;
/* 0x022 */ s16 greenMotionTimer;
/* 0x024 */ s16 scaleAnimTimer;
/* 0x028 */ struct Entity* linkedSwitch; /* a hidden switch can be linked to a visible one and automatically trigger it on hit */
/* 0x02C */ char unk_2C[8];
/* 0x034 */ struct802E2BA4* unk_34;
/* 0x038 */ f32 unk_38;
/* 0x03C */ union {
/* */ s16 s;
/* */ s8 b[2];
} unk_3C;
/* 0x03E */ char unk_3E[0x4D];
/* 0x08B */ u8 fragmentRotX[24]; // scaled to map [0,255] -> [0,360]
/* 0x0A3 */ char unk_A3; // padding?
/* 0x0A4 */ u8 fragmentRotY[24]; // scaled to map [0,255] -> [0,360]
/* 0x0BC */ char unk_BC[4];
/* 0x0C0 */ f32 fragmentPosX[24];
/* 0x120 */ char unk_120[4];
/* 0x124 */ f32 fragmentPosY[24];
/* 0x184 */ char unk_184[4];
/* 0x188 */ f32 fragmentPosZ[24];
} SwitchData;
// from 104940_len_dc0, size unknown
// appears to belong to the hammer blocks(?)
typedef struct BlockData {
/* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
/* 0x001 */ char unk_01[2];
/* 0x003 */ s8 empty;
/* 0x004 */ s16 coinsLeft;
/* 0x006 */ s16 timeLeft;
/* 0x008 */ char unk_08[2];
/* 0x00A */ u16 gameFlagIndex;
/* 0x00C */ char unk_0C[2];
/* 0x00E */ s16 unk_0E;
/* 0x010 */ s16 itemEntityIndex; // for spawned item entities
/* 0x012 */ s16 childEntityIndex; // for block entities that spawn other block entities
/* 0x014 */ f32 initialY;
/* 0x018 */ f32 recoilInterpPhase;
/* 0x01C */ char unk_1C[0x10C];
/* 0x128 */ UNK_PTR unk_128;
/* 0x12C */ UNK_PTR unk_12C;
} BlockData;
typedef struct ItemBlockData {
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02[8];
/* 0x0A */ u16 gameFlagIndex;
/* 0x0C */ char unk_C[4];
/* 0x10 */ s16 itemID;
/* 0x12 */ s16 childEntityIndex; // for block entities that spawn other block entities
} ItemBlockData;
typedef struct SaveBlockData {
/* 0x000 */ char unk_0[4];
/* 0x004 */ s16 angle;
} SaveBlockData;
// size unknown
typedef struct SuperBlockContentData {
/* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
/* 0x001 */ u8 unk_01;
/* 0x002 */ s8 unk_02;
/* 0x003 */ s8 unk_03;
/* 0x004 */ f32 unk_04;
/* 0x008 */ char unk_08;
/* 0x009 */ u8 unk_09;
/* 0x00A */ u8 unk_0A;
/* 0x00B */ char unk_0B; // padding?
/* 0x00C */ s32 unk_0C;
/* 0x010 */ s32 unk_10;
/* 0x014 */ f32 unk_14;
/* 0x018 */ f32 unk_18;
/* 0x01C */ f32 unk_1C;
/* 0x020 */ f32 unk_20;
/* 0x024 */ u16 unk_24;
/* 0x024 */ s16 unk_26;
/* 0x028 */ f32 unk_28[0xB];
/* 0x054 */ f32 unk_54;
/* 0x058 */ char unk_58[0x78];
/* 0x0D0 */ u16 yawBufferPos;
/* 0x0D4 */ f32 yawBuffer[20];
/* 0x124 */ s32 unk_124;
/* 0x128 */ s32* unk_128;
/* 0x12C */ s32* unk_12C;
} SuperBlockContentData;
// size unknown
typedef struct HeartBlockContentData {
/* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
/* 0x001 */ u8 state;
/* 0x002 */ s8 sparkleTimer;
/* 0x003 */ s8 sparkleTrailTimer;
/* 0x004 */ f32 sparkleTrailPosY;
/* 0x008 */ char heartbeatTimer;
/* 0x009 */ u8 unk_09;
/* 0x00A */ u8 sparkleEffectType;
/* 0x00B */ char unk_0B; // padding?
/* 0x00C */ s32 unk_0C;
/* 0x010 */ s32 unk_10;
/* 0x014 */ f32 riseVelocity;
/* 0x018 */ f32 sparkleTrailAngle;
/* 0x01C */ f32 sparkleTrailRadius;
/* 0x020 */ f32 bouncePhase;
/* 0x024 */ u16 yawBufferPos;
/* 0x024 */ s16 unk_26;
/* 0x028 */ f32 yawBuffer[10];
/* 0x050 */ f32 unk_50;
/* 0x054 */ f32 rotationRate;
/* 0x058 */ char unk_58[0x78];
/* 0x0D0 */ u16 yawBufferPosX;
/* 0x0D4 */ f32 yawBufferX[20];
/* 0x124 */ s32 unk_124;
/* 0x128 */ s32* unk_128;
/* 0x12C */ s32* unk_12C;
} HeartBlockContentData;
typedef struct WoodenCrateData {
/* 0x000 */ s32 itemID;
/* 0x004 */ u16 globalFlagIndex;
/* 0x006 */ u8 unk_06[2];
/* 0x008 */ u8* fragmentsGfx; //TODO type when more WoodenCrate.c is done
/* 0x00C */ f32 basePosY;
/* 0x010 */ u8 fragmentScale[36];
/* 0x034 */ s8 fragmentMoveAngle[36]; // X,Z plane -- scaled to map [0,255] -> [0,360]
/* 0x058 */ u8 fragmentRotX[36]; // scaled to map [0,255] -> [0,360]
/* 0x07C */ u8 fragmentRotY[36]; // scaled to map [0,255] -> [0,360]
/* 0x0A0 */ u8 fragmentLateralSpeed[36];
/* 0x0C4 */ f32 fragmentFallSpeed[36];
/* 0x154 */ f32 fragmentPosX[36];
/* 0x1E4 */ f32 fragmentPosY[36];
/* 0x274 */ f32 fragmentPosZ[36];
/* 0x304 */ f32 unk_304[36];
} WoodenCrateData;
// size unknown
typedef struct ChestData {
/* 0x00 */ u16 gameFlagIndex;
/* 0x02 */ s16 giveItemTimer;
/* 0x04 */ u8 state;
/* 0x04 */ s8 unk_05;
/* 0x06 */ s8 postLidAnimDelay;
/* 0x07 */ u8 unk_07;
/* 0x08 */ f32 lidAngle;
/* 0x0C */ f32 lidAnimInterpPhase;
/* 0x10 */ s32 itemID;
/* 0x14 */ s32 itemEntityIndex;
/* 0x18 */ Vec3f itemEntityPos;
/* 0x24 */ f32 giveItemRadiusInterpPhase;
/* 0x28 */ f32 giveItemHeightInterpPhase;
/* 0x2C */ f32 itemVelY;
/* 0x30 */ s8 unk_30;
/* 0x31 */ char unk_31[3];
/* 0x34 */ struct EffectInstance* gotItemEffect;
} ChestData;
typedef struct BlueWarpPipeData {
/* 0x00 */ s32 unk_00; // proably flags
/* 0x04 */ s32 timer;
/* 0x08 */ s32 isRaised;
/* 0x0C */ s32 entryID;
/* 0x10 */ EvtScript* onEnterPipeEvt;
/* 0x14 */ s32 flagIndex;
/* 0x18 */ f32 finalPosY;
} BlueWarpPipeData;
typedef struct SimpleSpringData {
/* 0x00 */ s32 launchVelocity;
} SimpleSpringData;
// END ENTITY-SPECIFIC STRUCTS
struct SaveBlockData;
struct SwitchData;
struct ShatteringBlockData;
struct BlockData;
struct WoodenCrateData;
struct ChestData;
struct BlueWarpPipeData;
struct HeartBlockContentData;
struct SuperBlockContentData;
struct SimpleSpringData;
struct HiddenPanelData;
struct SignpostData;
struct PadlockData;
struct BoardedFloorData;
struct BombableRockData;
struct TweesterData;
struct StarBoxLauncherData;
struct CymbalPlantData;
struct PinkFlowerData;
struct SpinningFlowerData;
struct TrumpetPlantData;
struct MunchlesiaData;
struct ArrowSignData;
typedef s32 (*EntityCallback)(struct Entity*);
typedef struct DmaEntry {
void* start;
void* end;
} DmaEntry;
typedef struct EntityBlueprint {
/* 0x00 */ u16 flags;
/* 0x02 */ u16 typeDataSize;
/* 0x04 */ UNK_PTR renderCommandList;
/* 0x08 */ UNK_PTR modelAnimationNodes;
/* 0x0C */ EntityCallback(fpInit);
/* 0x0C */ void (*fpInit)(struct Entity*);
/* 0x10 */ UNK_PTR updateEntityScript;
/* 0x14 */ EntityCallback fpHandleCollision;
/* 0x18 */ s32 dmaStart;
/* 0x1C */ s32 dmaEnd;
/* 0x18 */ union {
DmaEntry dma;
DmaEntry* dmaList;
};
/* 0x20 */ u8 entityType;
/* 0x21 */ u8 aabbSize[3];
} EntityBlueprint; // size = 0x24
@ -618,9 +460,9 @@ typedef struct Entity {
/* 0x04 */ u8 listIndex;
/* 0x05 */ s8 unk_05;
/* 0x06 */ u8 collisionFlags;
/* 0x07 */ s8 unk_07;
/* 0x07 */ s8 collisionTimer;
/* 0x08 */ u8 unk_08;
/* 0x09 */ u8 hasEntityScript;
/* 0x09 */ u8 scriptDelay;
/* 0x0A */ u8 type;
/* 0x0B */ u8 alpha;
/* 0x0C */ Vec3s aabb;
@ -632,31 +474,42 @@ typedef struct Entity {
/* 0x20 */ EntityCallback updateMatrixOverride;
/* 0x24 */ Evt* boundScript;
/* 0x28 */ EvtScript* boundScriptBytecode;
/* 0x2C */ s32* savedReadPos;
/* 0x30 */ char unk_30[0x8];
/* 0x2C */ s32* savedReadPos[3];
/* 0x38 */ EntityBlueprint* blueprint;
/* 0x3C */ UNK_PTR renderSetupFunc; // pointer to draw func(?)
/* 0x3C */ void (*renderSetupFunc)(s32);
/* 0x40 */ union {
s32* any;
SwitchData* swtch;
BlockData* block;
ItemBlockData* itemBlock;
SaveBlockData* saveBlock;
WoodenCrateData* crate;
ChestData* chest;
BlueWarpPipeData* bluePipe;
HeartBlockContentData* heartBlockContent;
SuperBlockContentData* superBlockContent;
SimpleSpringData* simpleSpring;
s32* unk;
struct SaveBlockData* saveBlock;
struct SwitchData* swtch;
struct ShatteringBlockData* shatteringBlock;
struct BlockData* block;
struct WoodenCrateData* crate;
struct ChestData* chest;
struct BlueWarpPipeData* bluePipe;
struct HeartBlockContentData* heartBlockContent;
struct SuperBlockContentData* superBlockContent;
struct SimpleSpringData* simpleSpring;
struct HiddenPanelData* hiddenPanel;
struct SignpostData* signPost;
struct PadlockData* padlock;
struct BoardedFloorData* boardedFloor;
struct BombableRockData* bombableRock;
struct TweesterData* tweester;
struct StarBoxLauncherData* starBoxLauncher;
struct CymbalPlantData* cymbalPlant;
struct PinkFlowerData* pinkFlower;
struct SpinningFlowerData* spinningFlower;
struct TrumpetPlantData* trumpetPlant;
struct MunchlesiaData* munchlesia;
struct ArrowSignData* arrowSign;
} dataBuf;
/* 0x44 */ Vec3s* vertexData;
/* 0x44 */ void* gfxBaseAddr;
/* 0x48 */ Vec3f position;
/* 0x54 */ Vec3f scale;
/* 0x60 */ Vec3f rotation;
/* 0x6C */ f32 shadowPosY;
/* 0x70 */ Matrix4f inverseTransformMatrix; /* world-to-local */
/* 0xB0 */ float effectiveSize;
/* 0xB0 */ f32 effectiveSize;
/* 0xB4 */ char unk_B4[4];
/* 0xB8 */ Mtx transformMatrix;
} Entity; // size = 0xF8
@ -665,7 +518,7 @@ typedef Entity* EntityList[MAX_ENTITIES];
struct Shadow;
typedef s32 (*ShadowCallback)(struct Shadow*);
typedef void (*ShadowCallback)(struct Shadow*);
// same as EntityBlueprint
typedef struct ShadowBlueprint {
@ -1174,7 +1027,7 @@ typedef struct ModelAnimator {
/* 0x090 */ f32 nextUpdateTime;
/* 0x094 */ f32 timeScale;
/* 0x098 */ Mtx mtx;
/* 0x0D8 */ Vec3s* vertexArray;
/* 0x0D8 */ void* baseAddr;
/* 0x0DC */ s16* animationBuffer;
/* 0x0E0 */ StaticAnimatorNode* staticNodes[0x7A];
/* 0x2C8 */ StaticAnimatorNode** staticRoot;
@ -2399,9 +2252,9 @@ typedef struct PopupMessage {
} PopupMessage; // size = 0x1C
typedef struct Struct8015A578 {
/* 0x00 */ u8 unk_00;
/* 0x00 */ s8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u8 unk_02;
/* 0x02 */ s8 unk_02;
/* 0x03 */ u8 unk_03[5];
/* 0x08 */ f32 unk_08;
/* 0x0C */ char unk_0C[0x4];

View File

@ -976,7 +976,7 @@ void fx_smoke_ring(s32, f32, f32, f32);
void fx_damage_stars(s32, f32, f32, f32, f32, f32, f32, s32);
void fx_explosion(s32, f32, f32, f32);
EffectInstance* fx_lens_flare(s32, f32, f32, f32, s32);
EffectInstance* fx_got_item_outline(s32, f32, f32, f32, f32, s32*);
EffectInstance* fx_got_item_outline(s32, f32, f32, f32, f32, EffectInstance**);
EffectInstance* fx_spiky_white_aura(s32, f32, f32, f32, s32);
void fx_smoke_impact(s32, f32, f32, f32, f32, s32, f32, s32);
EffectInstance* fx_damage_indicator(s32, f32, f32, f32, f32, f32, s32, EffectInstance**);

437
include/entity.h Normal file
View File

@ -0,0 +1,437 @@
#ifndef ENTITY_H
#define ENTITY_H
#include "common.h"
typedef s32 EntityScript[0];
typedef s32 EntityModelScript[0];
enum {
ENTITY_SCRIPT_OP_End,
ENTITY_SCRIPT_OP_Jump,
ENTITY_SCRIPT_OP_Call,
ENTITY_SCRIPT_OP_SetCallback,
ENTITY_SCRIPT_OP_Goto,
ENTITY_SCRIPT_OP_Label,
ENTITY_SCRIPT_OP_RestartBoundScript,
ENTITY_SCRIPT_OP_SetFlags,
ENTITY_SCRIPT_OP_ClearFlags,
ENTITY_SCRIPT_OP_PlaySound,
};
enum {
ENTITY_MODEL_SCRIPT_OP_End,
ENTITY_MODEL_SCRIPT_OP_Draw,
ENTITY_MODEL_SCRIPT_OP_Restart,
ENTITY_MODEL_SCRIPT_OP_Loop,
ENTITY_MODEL_SCRIPT_OP_SetRenderMode,
ENTITY_MODEL_SCRIPT_OP_SetFlags,
ENTITY_MODEL_SCRIPT_OP_ClearFlags,
ENTITY_MODEL_SCRIPT_OP_DrawImage,
};
#define es_End ENTITY_SCRIPT_OP_End,
#define es_Jump(script) ENTITY_SCRIPT_OP_Jump, (s32)script,
#define es_Call(func) ENTITY_SCRIPT_OP_Call, (s32)func,
#define es_SetCallback(func, time) ENTITY_SCRIPT_OP_SetCallback, time, (s32)func,
#define es_Goto(labelId) ENTITY_SCRIPT_OP_Goto, labelId,
#define es_Restart ENTITY_SCRIPT_OP_Goto, 0,
#define es_Label(labelId) ENTITY_SCRIPT_OP_Label, labelId,
#define es_RestartBoundScript ENTITY_SCRIPT_OP_RestartBoundScript,
#define es_SetFlags(flags) ENTITY_SCRIPT_OP_SetFlags, flags,
#define es_ClearFlags(flags) ENTITY_SCRIPT_OP_ClearFlags, flags,
#define es_PlaySound(soundId) ENTITY_SCRIPT_OP_PlaySound, soundId,
#define ems_End ENTITY_MODEL_SCRIPT_OP_End,
#define ems_Draw(dlist, holdTime) ENTITY_MODEL_SCRIPT_OP_Draw, holdTime, (s32)dlist,
#define ems_Restart ENTITY_MODEL_SCRIPT_OP_Restart,
#define ems_Loop ENTITY_MODEL_SCRIPT_OP_Loop,
#define ems_SetRenderMode(mode) ENTITY_MODEL_SCRIPT_OP_SetRenderMode, mode,
#define ems_SetFlags(flags) ENTITY_MODEL_SCRIPT_OP_SetFlags, flags,
#define ems_ClearFlags(flags) ENTITY_MODEL_SCRIPT_OP_ClearFlags, flags,
#define ems_DrawImage(raster, palette, width, height, holdTime) ENTITY_MODEL_SCRIPT_OP_DrawImage, holdTime, (s32)raster, (s32)palette, width, height,
#define STANDARD_ENTITY_MODEL_SCRIPT(gfx, renderMode) \
{ \
ems_SetRenderMode(renderMode) \
ems_Draw(gfx, 60) \
ems_Restart \
ems_End \
}
#define ENTITY_ADDR(entity, type, data) (type)((s32)(entity->gfxBaseAddr) + ((s32)(data) & 0xFFFF))
#define ENTITY_ROM(name) { entity_model_##name##_ROM_START, entity_model_##name##_ROM_END }
typedef struct SaveBlockData {
/* 0x000 */ char unk_0[4];
/* 0x004 */ s16 angle;
/* 0x006 */ char unk_6[0x1A];
} SaveBlockData; // size = 0x20
typedef struct SwitchData {
/* 0x000 */ f32 fallVelocity;
/* 0x004 */ f32 deltaScaleX;
/* 0x008 */ f32 deltaScaleY;
/* 0x00C */ char unk_0C[4];
/* 0x010 */ s8 animStateScaleX;
/* 0x011 */ s8 animStateScaleY;
/* 0x014 */ Vec3f baseScale;
/* 0x020 */ u16 areaFlagIndex;
/* 0x022 */ s16 greenMotionTimer;
/* 0x024 */ s16 scaleAnimTimer;
/* 0x028 */ struct Entity* linkedSwitch;
} SwitchData; // size = 0x2C
typedef struct ShatteringBlockData {
/* 0x000 */ u16 fragmentFlags[25];
/* 0x034 */ Gfx** fragmentDisplayLists;
/* 0x038 */ f32 originalPosY;
/* 0x03C */ s16 alpha;
/* 0x03E */ s16 fadeOutCounter;
/* 0x040 */ s8 fragmentRebounds[25];
/* 0x059 */ s8 fragmentRotSpeed[25];
/* 0x072 */ u8 fragmentMoveAngle[25]; // scaled to map [0,255] -> [0,360]
/* 0x08B */ u8 fragmentRotX[25]; // scaled to map [0,255] -> [0,360]
/* 0x0A4 */ u8 fragmentRotY[25]; // scaled to map [0,255] -> [0,360]
/* 0x0C0 */ f32 fragmentPosX[25];
/* 0x124 */ f32 fragmentPosY[25];
/* 0x188 */ f32 fragmentPosZ[25];
/* 0x1EC */ f32 fragmentFallSpeed[25];
} ShatteringBlockData; // size = 0x250
typedef struct BlockData {
/* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
/* 0x001 */ char unk_01[2];
/* 0x003 */ s8 empty;
/* 0x004 */ s16 coinsLeft;
/* 0x006 */ s16 timeLeft;
/* 0x008 */ char unk_08[2];
/* 0x00A */ u16 gameFlagIndex;
/* 0x00C */ char unk_0C[2];
/* 0x00E */ s16 sinkingTimer;
/* 0x010 */ s16 item; // for spawned item entities
/* 0x012 */ s16 childEntityIndex; // for block entities that spawn other block entities
/* 0x014 */ f32 initialY;
/* 0x018 */ f32 recoilInterpPhase;
/* 0x01C */ char unk_1C[0x4];
} BlockData; // size = 0x20
typedef struct SuperBlockContentData {
/* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
/* 0x001 */ u8 unk_01;
/* 0x002 */ s8 effectTimer;
/* 0x003 */ s8 unk_03;
/* 0x004 */ f32 unk_04;
/* 0x008 */ u8 paletteTimer;
/* 0x009 */ u8 paletteArrOffset;
/* 0x00A */ u8 isHidden;
/* 0x00B */ char unk_0B; // padding?
/* 0x00C */ s32 unk_0C;
/* 0x010 */ Mtx unk_10;
/* 0x050 */ Mtx unk_50;
/* 0x090 */ Mtx unk_90;
/* 0x0D0 */ u16 yawBufferPos;
/* 0x0D4 */ f32 yawBuffer[20];
/* 0x124 */ s32 unk_124;
/* 0x128 */ Gfx* gfx1;
/* 0x12C */ Gfx* gfx2;
} SuperBlockContentData; // size = 0x130
// size unknown
typedef struct HeartBlockContentData {
/* 0x000 */ u8 parentEntityIndex; // for block entities spawned by other block entities
/* 0x001 */ u8 state;
/* 0x002 */ s8 sparkleTimer;
/* 0x003 */ s8 sparkleTrailTimer;
/* 0x004 */ f32 sparkleTrailPosY;
/* 0x008 */ u8 heartbeatTimer;
/* 0x009 */ u8 unk_09;
/* 0x00A */ u8 sparkleEffectType;
/* 0x00B */ char unk_0B; // padding?
/* 0x00C */ s32 unk_0C;
/* 0x010 */ s32 unk_10;
/* 0x014 */ f32 riseVelocity;
/* 0x018 */ f32 sparkleTrailAngle;
/* 0x01C */ f32 sparkleTrailRadius;
/* 0x020 */ f32 bouncePhase;
/* 0x024 */ u16 yawBufferPos;
/* 0x024 */ s16 unk_26;
/* 0x028 */ f32 yawBuffer[10];
/* 0x050 */ f32 unk_50;
/* 0x054 */ f32 rotationRate;
/* 0x058 */ Mtx unk_58;
/* 0x098 */ Mtx unk_98;
} HeartBlockContentData; // size = 0xD8
typedef struct WoodenCrateData {
/* 0x000 */ s32 itemID;
/* 0x004 */ u16 globalFlagIndex;
/* 0x006 */ u8 unk_06[2];
/* 0x008 */ Gfx** fragmentsGfx;
/* 0x00C */ f32 basePosY;
/* 0x010 */ s8 fragmentRebounds[36];
/* 0x034 */ u8 fragmentMoveAngle[36]; // X,Z plane -- scaled to map [0,255] -> [0,360], also used as fragment alpha
/* 0x058 */ u8 fragmentRotX[36]; // scaled to map [0,255] -> [0,360]
/* 0x07C */ u8 fragmentRotY[36]; // scaled to map [0,255] -> [0,360]
/* 0x0A0 */ u8 fragmentLateralSpeed[36]; // scaled to map [0,255] -> [0,25.5]
/* 0x0C4 */ f32 fragmentRotationSpeed[36];
/* 0x154 */ f32 fragmentPosX[36];
/* 0x1E4 */ f32 fragmentPosY[36];
/* 0x274 */ f32 fragmentPosZ[36];
/* 0x304 */ f32 fragmentFallSpeed[36];
} WoodenCrateData; // size = 0x394
// size unknown
typedef struct ChestData {
/* 0x00 */ u16 gameFlagIndex;
/* 0x02 */ s16 giveItemTimer;
/* 0x04 */ u8 state;
/* 0x05 */ u8 openState;
/* 0x06 */ s8 postLidAnimDelay;
/* 0x07 */ s8 unk_07;
/* 0x08 */ f32 lidAngle;
/* 0x0C */ f32 lidAnimInterpPhase;
/* 0x10 */ s32 itemID;
/* 0x14 */ s32 itemEntityIndex;
/* 0x18 */ Vec3f itemEntityPos;
/* 0x24 */ f32 giveItemRadiusInterpPhase;
/* 0x28 */ f32 giveItemHeightInterpPhase;
/* 0x2C */ f32 itemVelY;
/* 0x30 */ s8 unk_30;
/* 0x31 */ char unk_31[3];
/* 0x34 */ struct EffectInstance* gotItemEffect;
} ChestData; // size = 0x38
typedef struct BlueWarpPipeData {
/* 0x00 */ s32 unk_00; // proably flags
/* 0x04 */ s32 timer;
/* 0x08 */ s32 isRaised;
/* 0x0C */ s32 entryID;
/* 0x10 */ EvtScript* onEnterPipeEvt;
/* 0x14 */ s32 flagIndex;
/* 0x18 */ f32 finalPosY;
} BlueWarpPipeData; // size = 0x1C
typedef struct SimpleSpringData {
/* 0x00 */ s32 launchVelocity;
} SimpleSpringData; // size = 0x04
typedef struct HiddenPanelData {
/* 0x00 */ s8 state; // TODO: enum
/* 0x01 */ s8 timer;
/* 0x02 */ s8 unk_02;
/* 0x03 */ s8 needSpawnItem;
/* 0x04 */ s8 unk_04;
/* 0x05 */ s8 unk_05;
/* 0x06 */ u16 pickupVar;
/* 0x08 */ s32 standingNpcIndex;
/* 0x0C */ s32 npcFlags;
/* 0x10 */ s32 itemID;
/* 0x14 */ s32 spawnedItemIndex;
/* 0x18 */ Vec3i spawnedItemPos;
/* 0x24 */ f32 initialY;
/* 0x28 */ f32 riseVelocity;
/* 0x2C */ f32 riseInterpPhase;
/* 0x30 */ f32 rotationSpeed;
/* 0x34 */ Matrix4f entityMatrix;
/* 0x74 */ u16 modelID;
/* 0x76 */ char unk_76[0x2];
/* 0x78 */ Gfx* renderDList;
} HiddenPanelData; // size = 0x7C
typedef struct SignpostData {
/* 0x00 */ char unk_00[8];
} SignpostData; // size = 0x08
typedef struct PadlockData {
/* 0x00 */ f32 pushSpeed;
/* 0x04 */ f32 shacklePos;
/* 0x08 */ f32 fallSpeed;
/* 0x0C */ f32 rotationSpeed;
/* 0x10 */ u8 blinkCounter;
/* 0x11 */ s8 timer;
/* 0x12 */ s8 state;
/* 0x13 */ char unk_13;
/* 0x14 */ Mtx* shackleMtx;
/* 0x18 */ Gfx* shackleGfx;
} PadlockData; // size = 0x1C
typedef struct BoardedFloorData {
/* 0x000 */ Gfx** fragmentsGfx;
/* 0x004 */ f32 inititalY;
/* 0x008 */ s8 fragmentRebounds[13];
/* 0x015 */ u8 fragmentMoveAngle[13];
/* 0x022 */ u8 fragmentRotX[13];
/* 0x02F */ u8 fragmentRotY[13];
/* 0x03C */ u8 fragmentLateralSpeed[13];
/* 0x04C */ f32 fragmentRotationSpeed[13];
/* 0x080 */ f32 fragmentPosX[13];
/* 0x0B4 */ f32 fragmentPosY[13];
/* 0x0E8 */ f32 fragmentPosZ[13];
/* 0x11C */ f32 fragmentFallSpeed[13];
} BoardedFloorData; // size = 0x150
typedef struct BombableRockData {
/* 0x00 */ Gfx** fragmentsGfx;
/* 0x04 */ f32 inititalY;
/* 0x08 */ s8 fragmentRebounds[6];
/* 0x0E */ u8 fragmentMoveAngle[6];
/* 0x14 */ u8 fragmentRotX[6];
/* 0x1A */ u8 fragmentRotY[6];
/* 0x20 */ u8 fragmentLateralSpeed[6];
/* 0x28 */ f32 fragmentRotationSpeed[6];
/* 0x40 */ f32 fragmentPosX[6];
/* 0x58 */ f32 fragmentPosY[6];
/* 0x70 */ f32 fragmentPosZ[6];
/* 0x88 */ f32 fragmentFallSpeed[6];
} BombableRockData; // size = 0xA0
typedef struct TweesterData {
/* 0x00 */ s8 unk_00;
/* 0x01 */ s8 faceAnimState;
/* 0x02 */ s8 faceAnimTimer;
/* 0x03 */ s8 faceAnimTexOffset;
/* 0x04 */ f32 rotationSpeed;
/* 0x08 */ f32 innerWhirlRotY;
/* 0x0C */ f32 outerWhirlRotY;
/* 0x10 */ Mtx mtxInnerWhirl;
/* 0x50 */ Mtx mtxOuterWhirl;
/* 0x90 */ s16 innerWhirlTexOffsetX;
/* 0x92 */ s16 innerWhirlTexOffsetY;
/* 0x94 */ s16 outerWhirlTexOffsetX;
/* 0x96 */ s16 outerWhirlTexOffsetY;
/* 0x98 */ s16 frameCounter;
/* 0x9C */ s32* currentPath;
/* 0xA0 */ s32** paths;
/* 0xA4 */ s16 targetX;
/* 0xA6 */ s16 targetY;
/* 0xA8 */ s16 targetZ;
/* 0xAA */ s16 pathOffset;
/* 0xAC */ char unk_AC[12];
/* 0xB8 */ f32 yaw;
/* 0xBC */ char unk_BC[4];
} TweesterData; // size = 0xC0;
typedef struct StarBoxLauncherData {
/* 0x00 */ s8 state;
/* 0x01 */ s8 timer;
/* 0x02 */ s8 flags;
/* 0x03 */ s8 faceDataIndex;
/* 0x04 */ s8 faceAnimTimer;
/* 0x05 */ s8 faceTexOffset;
/* 0x08 */ f32 basePosX;
/* 0x0C */ f32 basePosZ;
/* 0x10 */ f32 basePosY;
/* 0x14 */ f32 riseSpeedPhase;
/* 0x18 */ f32 riseVelocity;
/* 0x1C */ f32 rotationZPhase;
/* 0x20 */ f32 maxRotationZ;
} StarBoxLauncherData; // size = 0x24
typedef struct CymbalPlantData {
/* 0x0 */ u8 state;
/* 0x1 */ s8 unk_01;
/* 0x2 */ s16 timer;
/* 0x4 */ f32 angle;
/* 0x8 */ f32 dist;
} CymbalPlantData; // size = 0xC
typedef struct PinkFlowerData {
/* 0x0 */ u16 state;
/* 0x2 */ u16 timer;
/* 0x4 */ u16 linkedEntityIndex;
/* 0x8 */ f32 initialRotY;
} PinkFlowerData; // size = 0xC
typedef struct SpinningFlowerData {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s8 state;
/* 0x04 */ Vec3f rotation;
/* 0x10 */ s32 unk_10;
/* 0x14 */ f32 spinSpeed;
/* 0x18 */ s32 unk_18;
/* 0x1C */ char unk_1C[0x0C];
/* 0x28 */ s16 unk_28;
/* 0x2A */ s16 unk_2A;
/* 0x2C */ s16 unk_2C;
/* 0x30 */ Mtx unk_30;
} SpinningFlowerData; // size = 0x70
typedef struct TrumpetPlantData {
/* 0x0 */ s32 numCoins;
} TrumpetPlantData; // size = 0x4
typedef struct MunchlesiaData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s8 unk_04[0x8];
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
} MunchlesiaData; // size = 0x1C
typedef struct ArrowSignData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 angle;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
} ArrowSignData; // size = 0x10
extern ShadowBlueprint CircularShadowA;
extern ShadowBlueprint CircularShadowB;
extern ShadowBlueprint SquareShadow;
extern EntityBlueprint Entity_SavePoint;
extern EntityBlueprint Entity_RedSwitch;
extern EntityBlueprint Entity_BlueSwitch;
extern EntityBlueprint Entity_HugeBlueSwitch;
extern EntityBlueprint Entity_GreenStompSwitch;
extern EntityBlueprint Entity_InertYellowBlock;
extern EntityBlueprint Entity_InertRedBlock;
extern EntityBlueprint Entity_BrickBlock;
extern EntityBlueprint Entity_MulticoinBlock;
extern EntityBlueprint Entity_Hammer1Block;
extern EntityBlueprint Entity_Hammer1Block_WideHitbox;
extern EntityBlueprint Entity_Hammer1Block_TallHitbox;
extern EntityBlueprint Entity_Hammer1BlockTiny;
extern EntityBlueprint Entity_Hammer2Block;
extern EntityBlueprint Entity_Hammer2Block_WideHitbox;
extern EntityBlueprint Entity_Hammer2Block_TallHitbox;
extern EntityBlueprint Entity_Hammer2BlockTiny;
extern EntityBlueprint Entity_Hammer3Block_WideHitbox;
extern EntityBlueprint Entity_Hammer3Block_TallHitbox;
extern EntityBlueprint Entity_Hammer3BlockTiny;
extern EntityBlueprint Entity_PushBlock;
extern EntityBlueprint Entity_PowBlock;
extern EntityBlueprint Entity_YellowBlock;
extern EntityBlueprint Entity_HiddenYellowBlock;
extern EntityBlueprint Entity_RedBlock;
extern EntityBlueprint Entity_HiddenRedBlock;
extern EntityBlueprint Entity_TriggerBlock;
extern EntityBlueprint Entity_HeartBlock;
extern EntityBlueprint Entity_SuperBlock;
extern EntityBlueprint Entity_ScriptSpring;
extern EntityBlueprint Entity_SimpleSpring;
extern EntityBlueprint Entity_HiddenPanel;
extern EntityBlueprint Entity_GiantChest;
extern EntityBlueprint Entity_Chest;
extern EntityBlueprint Entity_WoodenCrate;
extern EntityBlueprint Entity_BlueWarpPipe;
extern EntityBlueprint Entity_Signpost;
extern EntityBlueprint Entity_Padlock;
extern EntityBlueprint Entity_PadlockRedFrame;
extern EntityBlueprint Entity_PadlockRedFace;
extern EntityBlueprint Entity_PadlockBlueFace;
extern EntityBlueprint Entity_BoardedFloor;
extern EntityBlueprint Entity_BombableRock;
extern EntityBlueprint Entity_BombableRock2;
extern EntityBlueprint Entity_Tweester;
extern EntityBlueprint Entity_StarBoxLauncher;
extern EntityBlueprint Entity_CymbalPlant;
extern EntityBlueprint Entity_PinkFlower;
extern EntityBlueprint Entity_SpinningFlower;
extern EntityBlueprint Entity_BellbellPlant;
extern EntityBlueprint Entity_TrumpetPlant;
extern EntityBlueprint Entity_Munchlesia;
extern EntityBlueprint Entity_ArrowSign;
#endif

View File

@ -536,6 +536,8 @@ enum SoundIDs {
SOUND_HIT_FIRE = 0x000000EA,
SOUND_HIT_ICE = 0x000000EB,
SOUND_F1 = 0x000000F1,
SOUND_F3 = 0x000000F3,
SOUND_F4 = 0x000000F4,
SOUND_FD = 0x000000FD,
SOUND_FE = 0x000000FE,
SOUND_108 = 0x00000108,
@ -558,6 +560,7 @@ enum SoundIDs {
SOUND_14F = 0x0000014F,
SOUND_150 = 0x00000150,
SOUND_151 = 0x00000151,
SOUND_152 = 0x00000152,
SOUND_SEARCH_BUSH = 0x00000153,
SOUND_158 = 0x00000158,
SOUND_162 = 0x00000162,
@ -603,6 +606,8 @@ enum SoundIDs {
SOUND_25C = 0x0000025C,
SOUND_25D = 0x0000025D,
SOUND_262 = 0x00000262,
SOUND_269 = 0x00000269,
SOUND_26A = 0x0000026A,
SOUND_281 = 0x00000281,
SOUND_282 = 0x00000282,
SOUND_283 = 0x00000283,
@ -673,6 +678,7 @@ enum SoundIDs {
SOUND_HIT_PLAYER_SHOCK = 0x0000037A,
SOUND_HIT_SHOCK = 0x0000037B,
SOUND_392 = 0x00000392,
SOUND_393 = 0x00000393,
SOUND_GENERAL_WHISTLE = 0x00000395,
SOUND_3AB = 0x000003AB,
SOUND_3AD = 0x000003AD,
@ -745,14 +751,19 @@ enum SoundIDs {
SOUND_BOMB_BLAST = 0x00002076,
SOUND_JUMP_2081 = 0x00002081,
SOUND_JUMP_8BIT_MARIO = 0x00002082,
SOUND_2085 = 0x00002085,
SOUND_2086 = 0x00002086,
SOUND_208C = 0x0000208C,
SOUND_208D = 0x0000208D,
SOUND_208E = 0x0000208E,
SOUND_208F = 0x0000208F,
SOUND_2092 = 0x00002092,
SOUND_2095 = 0x00002095,
SOUND_209B = 0x0000209B,
SOUND_20A3 = 0x000020A3,
SOUND_20A4 = 0x000020A4,
SOUND_20AB = 0x000020AB,
SOUND_20AC = 0x000020AC,
SOUND_20AE = 0x000020AE,
SOUND_20B8 = 0x000020B8,
SOUND_20BA = 0x000020BA,
@ -1802,11 +1813,11 @@ enum EntityFlags {
ENTITY_FLAGS_HAS_DYNAMIC_SHADOW = 0x00000004,
ENTITY_FLAGS_HAS_ANIMATED_MODEL = 0x00000008,
ENTITY_FLAGS_SKIP_UPDATE_TRANSFORM_MATRIX = 0x00000010,
ENTITY_FLAGS_SKIP_UPDATE_INVERSE_ROTATION_MATRIX = 0x00000020,
ENTITY_FLAGS_DISABLE_COLLISION = 0x00000020,
ENTITY_FLAGS_CONTINUOUS_COLLISION = 0x00000040,
ENTITY_FLAGS_80 = 0x00000080,
ENTITY_FLAGS_100 = 0x00000100,
ENTITY_FLAGS_SET_SHADOW_FLAG200 = 0x00000200,
ENTITY_FLAGS_HAS_SHADOW = 0x00000100,
ENTITY_FLAGS_FIXED_SHADOW_SIZE = 0x00000200,
ENTITY_FLAGS_400 = 0x00000400,
ENTITY_FLAGS_SQUARE_SHADOW = 0x00000800,
ENTITY_FLAGS_SHOWS_INSPECT_PROMPT = 0x00001000,
@ -1814,18 +1825,18 @@ enum EntityFlags {
ENTITY_FLAGS_4000 = 0x00004000,
ENTITY_FLAGS_8000 = 0x00008000,
ENTITY_FLAGS_DETECTED_COLLISION = 0x00010000,
ENTITY_FLAGS_BLOCK_BEING_HIT = 0x00020000,
ENTITY_FLAGS_PARTNER_COLLISION = 0x00020000,
ENTITY_FLAGS_DRAW_IF_CLOSE_HIDE_MODE2 = 0x00040000,
ENTITY_FLAGS_IGNORE_DISTANCE_CULLING = 0x00080000,
ENTITY_FLAGS_100000 = 0x00100000,
ENTITY_FLAGS_200000 = 0x00200000,
ENTITY_FLAGS_400000 = 0x00400000,
ENTITY_FLAGS_800000 = 0x00800000,
ENTITY_FLAGS_SHADOW_POS_DIRTY = 0x00400000,
ENTITY_FLAGS_DARK_SHADOW = 0x00800000,
ENTITY_FLAGS_BOUND_SCRIPT_DIRTY = 0x01000000,
ENTITY_FLAGS_2000000 = 0x02000000,
ENTITY_FLAGS_PENDING_FULL_DELETE = 0x04000000,
ENTITY_FLAGS_8000000 = 0x08000000,
ENTITY_FLAGS_10000000 = 0x10000000,
ENTITY_FLAGS_FADING_AWAY = 0x10000000,
ENTITY_FLAGS_PENDING_INSTANCE_DELETE = 0x20000000,
ENTITY_FLAGS_SKIP_UPDATE = 0x40000000,
ENTITY_FLAGS_CREATED = 0x80000000,
@ -1839,7 +1850,7 @@ enum EntityCollisionFlags {
ENTITY_COLLISION_PLAYER_PUSHING_AGAINST = 0x00000010,
ENTITY_COLLISION_FLAGS_20 = 0x00000020,
ENTITY_COLLISION_PLAYER_HAMMER = 0x00000040,
ENTITY_COLLISION_BLOCK_HIT = 0x00000080,
ENTITY_COLLISION_PARTNER = 0x00000080,
ENTITY_COLLISION_PLAYER_LAST_FLOOR = 0x00000100
};
@ -2208,22 +2219,40 @@ enum RenderMode {
RENDER_MODE_SURFACE_OPA_NO_AA = 0x00000003,
RENDER_MODE_SURFACE_OPA_NO_ZB = 0x00000004,
RENDER_MODE_DECAL_OPA = 0x00000005,
RENDER_MODE_6 = 0x00000006,
RENDER_MODE_DECAL_OPA_NO_AA = 0x00000007,
RENDER_MODE_8 = 0x00000008,
RENDER_MODE_INTERSECTING_OPA = 0x00000009,
RENDER_MODE_A = 0x0000000A,
RENDER_MODE_B = 0x0000000B,
RENDER_MODE_C = 0x0000000C,
RENDER_MODE_ALPHATEST = 0x0000000D,
RENDER_MODE_E = 0x0000000E,
RENDER_MODE_ALPHATEST_ONESIDED = 0x0000000F,
RENDER_MODE_ALPHATEST_NO_ZB = 0x00000010,
RENDER_MODE_SURFACE_XLU_LAYER1 = 0x00000011,
RENDER_MODE_12 = 0x00000012,
RENDER_MODE_SURFACE_XLU_NO_AA = 0x00000013,
RENDER_MODE_SURFACE_XLU_NO_ZB = 0x00000014,
RENDER_MODE_SURFXLU_ZB_ZUPD = 0x00000015,
RENDER_MODE_SURFACE_XLU_LAYER2 = 0x00000016,
RENDER_MODE_17 = 0x00000017,
RENDER_MODE_18 = 0x00000018,
RENDER_MODE_19 = 0x00000019,
RENDER_MODE_DECAL_XLU = 0x0000001A,
RENDER_MODE_1B = 0x0000001B,
RENDER_MODE_DECAL_XLU_NOAA = 0x0000001C,
RENDER_MODE_1D = 0x0000001D,
RENDER_MODE_1E = 0x0000001E,
RENDER_MODE_1F = 0x0000001F,
RENDER_MODE_SHADOW = 0x00000020,
RENDER_MODE_21 = 0x00000021,
RENDER_MODE_SURFACE_XLU_LAYER3 = 0x00000022,
RENDER_MODE_23 = 0x00000023,
RENDER_MODE_24 = 0x00000024,
RENDER_MODE_25 = 0x00000025,
RENDER_MODE_INTERSECTING_XLU = 0x00000026,
RENDER_MODE_27 = 0x00000027,
RENDER_MODE_28 = 0x00000028,
RENDER_MODE_SURFXLU_AA_ZB_ZUPD = 0x00000029,
RENDER_MODE_2A = 0x0000002A,
@ -2232,6 +2261,13 @@ enum RenderMode {
RENDER_MODE_2D = 0x0000002D,
RENDER_MODE_CLOUD = 0x0000002E,
RENDER_MODE_CLOUD_NO_ZB = 0x0000002F,
RENDER_MODE_COUNT = 0x00000030,
};
enum RenderTaskFlags {
RENDER_TASK_FLAG_ENABLED = 0x01,
RENDER_TASK_FLAG_2 = 0x02,
RENDER_TASK_FLAG_20 = 0x20,
};
enum ActorFlags {
@ -3367,41 +3403,6 @@ enum ModelAnimatorFlags {
MODEL_ANIMATOR_FLAGS_80000000 = 0x80000000,
};
enum ShadowFlags {
SHADOW_FLAGS_HIDDEN = 0x00000001,
SHADOW_FLAGS_2 = 0x00000002,
SHADOW_FLAGS_4 = 0x00000004,
SHADOW_FLAGS_COMPLEX_MODEL = 0x00000008,
SHADOW_FLAGS_10 = 0x00000010,
SHADOW_FLAGS_20 = 0x00000020,
SHADOW_FLAGS_40 = 0x00000040,
SHADOW_FLAGS_80 = 0x00000080,
SHADOW_FLAGS_100 = 0x00000100,
SHADOW_FLAGS_200 = 0x00000200,
SHADOW_FLAGS_400 = 0x00000400,
SHADOW_FLAGS_800 = 0x00000800,
SHADOW_FLAGS_1000 = 0x00001000,
SHADOW_FLAGS_ALIGNED_TO_CAMERA = 0x00002000,
SHADOW_FLAGS_4000 = 0x00004000,
SHADOW_FLAGS_8000 = 0x00008000,
SHADOW_FLAGS_10000 = 0x00010000,
SHADOW_FLAGS_20000 = 0x00020000,
SHADOW_FLAGS_40000 = 0x00040000,
SHADOW_FLAGS_80000 = 0x00080000,
SHADOW_FLAGS_100000 = 0x00100000,
SHADOW_FLAGS_200000 = 0x00200000,
SHADOW_FLAGS_POSITION_DIRTY = 0x00400000,
SHADOW_FLAGS_800000 = 0x00800000,
SHADOW_FLAGS_1000000 = 0x01000000,
SHADOW_FLAGS_2000000 = 0x02000000,
SHADOW_FLAGS_4000000 = 0x04000000,
SHADOW_FLAGS_8000000 = 0x08000000,
SHADOW_FLAGS_FADING_AWAY = 0x10000000,
SHADOW_FLAGS_READY_TO_DELETE = 0x20000000,
SHADOW_FLAGS_40000000 = 0x40000000,
SHADOW_FLAGS_80000000 = 0x80000000,
};
enum ShopFlags {
SHOP_FLAGS_0 = 0x00000000,
SHOP_FLAGS_1 = 0x00000001,
@ -3501,7 +3502,7 @@ enum EntityModelFlags {
ENTITY_MODEL_FLAGS_40 = 0x00000040,
ENTITY_MODEL_FLAGS_80 = 0x00000080,
ENTITY_MODEL_FLAGS_100 = 0x00000100,
ENTITY_MODEL_FLAGS_200 = 0x00000200,
ENTITY_MODEL_FLAGS_REFLECT = 0x00000200,
ENTITY_MODEL_FLAGS_USE_IMAGE = 0x00000400,
ENTITY_MODEL_FLAGS_FOG_DISABLED = 0x00000800,
ENTITY_MODEL_FLAGS_1000 = 0x00001000,

View File

@ -30,7 +30,7 @@ void* _heap_malloc_tail(HeapNode* head, u32 size);
u32 _heap_free(HeapNode* heapNodeList, void* addrToFree);
void* _heap_realloc(HeapNode* heapNodeList, void* addr, u32 newSize);
HeapNode* _heap_create(HeapNode* addr, u32 size);
s32 dma_copy(Addr romStart, Addr romEnd, void* vramDest);
u32 dma_copy(Addr romStart, Addr romEnd, void* vramDest);
f32 rand_float(void);
void copy_matrix(Matrix4f src, Matrix4f dest);
@ -60,7 +60,7 @@ void intro_logos_update_fade(void);
u32 get_entity_type(s32 arg0);
Entity* get_entity_by_index(s32 index);
s32 create_entity(EntityBlueprint* bp, s32 x, s32 y, s32 z, s32 rotY, ...);
s32 create_entity(EntityBlueprint* bp, ...);
void entity_shattering_idle(Entity* entity);
void func_802666E4(Actor* actor, f32 x, f32 y, f32 z, s32 damage);
@ -84,6 +84,9 @@ void exec_entity_model_commandlist(s32 idx);
s32 load_entity_model(s32* cmdList);
RenderTask* queue_render_task(RenderTask* task);
s32 create_mesh_animator(s16* animPos, s16* animBuffer);
void load_mesh_animator_tree(s32 index, StaticAnimatorNode** tree);
void setup_pause_menu_tab(MenuWindowBP* bpArray, s32 arraySize);
s32 draw_ci_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s32* palette, s16 posX,
@ -297,7 +300,7 @@ void clear_virtual_entity_list(void);
void reset_model_animators(void);
void init_virtual_entity_list(void);
void init_model_animators(void);
void play_model_animation(s32, s32);
void play_model_animation(s32, s16*);
s32 heap_free(void* ptr);
void btl_state_update_normal_start(void);

View File

@ -169,7 +169,7 @@ void animator_node_update_model_transform(ModelAnimator* animator, f32 (*flipMtx
void delete_model_animator_node(AnimatorNode* node);
void delete_model_animator_nodes(ModelAnimator* animator);
void delete_model_animator(ModelAnimator* animator);
void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32 vtxSegment, Vec3s* vertexArray);
void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32 segment, void* baseAddr);
void appendGfx_animator(ModelAnimator* animator);
ModelAnimator* set_animator_render_callback(s32 animModelID, s32 callbackArg, void (*callbackFunc)(void*));
void reload_mesh_animator_tree(ModelAnimator* animator);

View File

@ -46,7 +46,7 @@ ApiStatus GetSelfAnimationFromTable(Evt* script, s32 isInitialCall);
ApiStatus ShowCoinCounter(Evt* script, s32 isInitialCall);
ApiStatus MakeEntity(Evt* script, s32 isInitialCall);
ApiStatus AssignScript(Evt* script, s32 isInitialCall);
ApiStatus AssignAreaFlag(Evt* script, s32 isInitialCall);
ApiStatus AssignSwitchFlag(Evt* script, s32 isInitialCall);
ApiStatus AssignChestFlag(Evt* script, s32 isInitialCall);
ApiStatus AssignBlockFlag(Evt* script, s32 isInitialCall);
ApiStatus AssignPanelFlag(Evt* script, s32 isInitialCall);

View File

@ -88,14 +88,10 @@ extern MessagePrintState* gCurrentPrintContext;
extern s32 D_802DB264;
extern MessagePrintState* D_802DB268;
extern ShadowBlueprint CircularShadowA;
extern ShadowBlueprint CircularShadowB;
extern ShadowBlueprint SquareShadow;
extern s32 SaveBlockTutorialPrinterClosed;
extern s32 SaveBlockResultPrinterClosed;
extern MessagePrintState* SaveBlockTutorialPrinter;
extern MessagePrintState* SaveBlockResultPrinter;
extern s32 D_802E99DC;
extern Entity* SwitchToLink;
extern s32 CreateEntityVarArgBuffer[4];
@ -190,6 +186,7 @@ extern s8 D_8014C248[];
extern UNK_FUN_PTR(D_8010C920);
extern UNK_FUN_PTR(D_8010C940);
extern Entity* TweesterTouchingPartner;
extern Entity* TweesterTouchingPlayer;
extern UNK_FUN_PTR(D_8010C958);
extern s32 D_8010C95C;
extern s32 D_8010C96C;
@ -225,20 +222,9 @@ extern u32 D_80078174;
extern u8 D_800A0963;
extern struct EffectInstance* TriggerBlockVanishEffect;
extern UNK_TYPE D_00000094;
extern UNK_TYPE D_00000094_2; // two symbols resolve to the same addr. Required for matching
extern EntityBlueprint Entity_InertRedBlock;
extern EntityBlueprint Entity_InertYellowBlock;
extern UNK_TYPE D_802EA310;
extern EntityBlueprint Entity_HitGroundedYellowBlock;
extern EntityBlueprint Entity_HitFloatingYellowBlock;
extern EntityBlueprint Entity_HitRedBlock;
extern s32 D_802EA310[];
extern s32 Entity_WoodenCrate_RenderShatteredScript[];
extern UNK_TYPE D_0A000328;
extern UNK_TYPE D_0A000380;
extern UNK_TYPE D_0A000750;
extern UNK_TYPE D_0A000800;
extern UNK_TYPE D_0A000808;
// Scripts
extern EvtScript SCRIPT_NpcDefeat;
@ -263,10 +249,6 @@ extern Gfx* gMasterGfxPos;
extern u16 gMatrixListPos;
extern s32 gCurrentDisplayContextIndex;
extern UNK_TYPE D_0A004350;
extern UNK_TYPE D_0A0026F0;
extern u32* D_802EAE7C;
extern s32 D_80291FA8[];
extern s32 D_80291FD0[];
extern s32 D_80291FF8[];
@ -304,37 +286,6 @@ extern u32 bMarioIdleAnims[];
extern s32 bMarioDefendAnims[];
extern s32 bPeachIdleAnims[];
// TODO: name these entity symbols
extern EntityBlueprint Entity_SavePoint; // entitySaveBlock
extern EntityBlueprint Entity_RedSwitch;
extern EntityBlueprint Entity_BlueSwitch; // entityBlueSwitch
extern EntityBlueprint Entity_HugeBlueSwitch; // entityHugeBlueSwitch
extern EntityBlueprint Entity_GreenStompSwitch;
extern EntityBlueprint Entity_ShatteringHammer1Block;
extern EntityBlueprint Entity_ShatteringHammer2Block;
extern EntityBlueprint Entity_ShatteringHammer3Block;
extern EntityBlueprint Entity_ShatteringHammer1BlockTiny;
extern EntityBlueprint Entity_ShatteringHammer2BlockTiny;
extern EntityBlueprint Entity_ShatteringHammer3BlockTiny;
extern EntityBlueprint Entity_ShatteringBrickBlock;
extern EntityBlueprint Entity_D_802EA2E0;
extern EntityBlueprint Entity_D_802EA564;
extern EntityBlueprint Entity_D_802EA0E8;
extern EntityBlueprint Entity_D_802EA10C;
extern EntityBlueprint Entity_D_802EA130;
extern EntityBlueprint Entity_D_802EA154;
extern EntityBlueprint Entity_D_802EA178;
extern EntityBlueprint Entity_D_802EA19C;
extern EntityBlueprint Entity_D_802EA588;
extern EntityBlueprint Entity_D_802EA5AC;
extern EntityBlueprint Entity_D_802EA5D0; //unused
extern EntityBlueprint Entity_D_802EA798; //unused
extern EntityBlueprint Entity_HeartBlock; //unused
extern EntityBlueprint Entity_D_802EAA30;
extern EntityBlueprint Entity_D_802EAA54;
extern EntityBlueprint Entity_D_802EA910;
extern s32 D_802EBFF0[];
extern s32 D_802EC010[];
extern s32 D_802EC030[];

View File

@ -589,7 +589,7 @@ void update_actor_shadow(s32 arg0, Actor* actor) {
if (actor != NULL) {
shadow = get_shadow_by_index(actor->shadow.id);
shadow->flags |= SHADOW_FLAGS_HIDDEN;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
if (!(actor->flags & ACTOR_FLAG_DISABLED)) {
if (actor->flags & ACTOR_FLAG_10000000) {
if (arg0 == 0) {
@ -639,7 +639,7 @@ void update_actor_shadow(s32 arg0, Actor* actor) {
if (!(actorPart->flags & ACTOR_PART_FLAG_4)) {
shadow = get_shadow_by_index(actorPart->shadowIndex);
shadow->flags &= ~SHADOW_FLAGS_HIDDEN;
shadow->flags &= ~ENTITY_FLAGS_HIDDEN;
x1 = actorPart->currentPos.x;
if (!(actor->flags & ACTOR_FLAG_HP_OFFSET_BELOW)) {
y1 = actorPart->currentPos.y + 12.0;
@ -652,7 +652,7 @@ void update_actor_shadow(s32 arg0, Actor* actor) {
npc_raycast_down_sides(0, &x1, &y1, &z1, &dist);
if (200.0f < dist) {
shadow->flags |= SHADOW_FLAGS_HIDDEN;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
}
shadow->position.x = x1;
shadow->position.y = y1;
@ -670,7 +670,7 @@ void update_actor_shadow(s32 arg0, Actor* actor) {
shadow = get_shadow_by_index(actor->shadow.id);
if (!(actor->flags & ACTOR_FLAG_NO_SHADOW)) {
shadow->flags &= ~ACTOR_FLAG_DISABLED;
shadow->flags &= ~ENTITY_FLAGS_HIDDEN;
}
x1 = actor->currentPos.x + actor->headOffset.x;
@ -685,7 +685,7 @@ void update_actor_shadow(s32 arg0, Actor* actor) {
npc_raycast_down_sides(0, &x1, &y1, &z1, &dist);
if (200.0f < dist) {
shadow->flags |= SHADOW_FLAGS_HIDDEN;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
}
shadow->position.x = x1;
shadow->position.y = y1;
@ -751,7 +751,7 @@ void update_player_actor_shadow(void) {
}
shadow = get_shadow_by_index(player->shadow.id);
shadow->flags &= ~SHADOW_FLAGS_HIDDEN;
shadow->flags &= ~ENTITY_FLAGS_HIDDEN;
if (!battleStatus->outtaSightActive) {
shadow->alpha = 128;
@ -766,7 +766,7 @@ void update_player_actor_shadow(void) {
npc_raycast_down_sides(0, &x, &y, &z, &distance);
if (distance > 200.0f) {
shadow->flags |= SHADOW_FLAGS_HIDDEN;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
}
shadow->position.x = x;
shadow->position.y = y;
@ -1941,7 +1941,7 @@ INCLUDE_ASM(s32, "182B30", func_8025CD40);
void func_8025CEC8(ActorPart* actorPart) {
DecorationTable* decorationTable;
s32 i;
if (!(actorPart->flags & 2)) {
decorationTable = actorPart->decorationTable;
for (i = 0; i < ARRAY_COUNT(decorationTable->decorationType); i++) {

View File

@ -445,7 +445,7 @@ void copy_matrix(Matrix4f src, Matrix4f dest) {
}
// maybe u32
s32 dma_copy(Addr romStart, Addr romEnd, void* vramDest) {
u32 dma_copy(Addr romStart, Addr romEnd, void* vramDest) {
u32 length = romEnd - romStart;
s32 i;

View File

@ -190,7 +190,7 @@ s32 player_raycast_down(f32* x, f32* y, f32* z, f32* length) {
if (entityID >= 0) {
entity = get_entity_by_index(entityID);
if (entity->alpha < 255) {
entity->unk_07 = 4;
entity->collisionTimer = 4;
entity->flags |= ENTITY_FLAGS_CONTINUOUS_COLLISION;
} else {
ret = entityID | COLLISION_WITH_ENTITY_BIT;
@ -420,7 +420,7 @@ s32 player_raycast_general(s32 mode, f32 startX, f32 startY, f32 startZ, f32 dir
if (entityID >= 0) {
entity = get_entity_by_index(entityID);
if (entity->alpha < 255) {
entity->unk_07 = 0;
entity->collisionTimer = 0;
entity->flags |= ENTITY_FLAGS_CONTINUOUS_COLLISION;
} else {
ret = entityID | COLLISION_WITH_ENTITY_BIT;
@ -911,11 +911,11 @@ f32 get_xz_dist_to_player(f32 x, f32 z) {
}
void enable_player_shadow(void) {
get_shadow_by_index(gPlayerStatus.shadowID)->flags &= ~1;
get_shadow_by_index(gPlayerStatus.shadowID)->flags &= ~ENTITY_FLAGS_HIDDEN;
}
void disable_player_shadow(void) {
get_shadow_by_index(gPlayerStatus.shadowID)->flags |= 1;
get_shadow_by_index(gPlayerStatus.shadowID)->flags |= ENTITY_FLAGS_HIDDEN;
}
s32 disable_player_static_collisions(void) {

View File

@ -1198,7 +1198,7 @@ f32 func_800E5348(void) {
return clamp_angle(temp_f0 - 90.0f + gCameras[gCurrentCameraID].currentYaw);
}
void player_get_camera_facing_angle(void) {
f32 player_get_camera_facing_angle(void) {
f32 angle = 0.0f;
if (gPlayerStatus.spriteFacingAngle >= 90.0f && gPlayerStatus.spriteFacingAngle < 270.0f) {
@ -1207,7 +1207,7 @@ void player_get_camera_facing_angle(void) {
angle = angle + gCameras[CAM_DEFAULT].currentYaw + 90.0f;
clamp_angle(angle);
return clamp_angle(angle);
}
void phys_save_ground_pos(void) {

View File

@ -76,9 +76,9 @@ Vtx* animator_copy_vertices_to_buffer(ModelAnimator* animator, AnimatorNode* nod
handle->ttl = 3;
nodeVtxList = &node->fcData.vtxList[startIdx];
if (animator->vertexArray != NULL) {
if (animator->baseAddr != NULL) {
i = ((s32)buffer & 0xFFFFFF); // needed to match
buffer = (Vec3s*)(i + (s32)animator->vertexArray);
buffer = (Vec3s*)(i + (s32)animator->baseAddr);
}
for (i = 0; i < vtxCount; i++) {
@ -299,7 +299,7 @@ s32 create_model_animator(s16* animPos) {
animator->savedReadPos = animPos;
animator->animationBuffer = NULL;
animator->vertexArray = NULL;
animator->baseAddr = NULL;
animator->fpRenderCallback = NULL;
animator->rootNode = NULL;
animator->nextUniqueID = 0;
@ -314,7 +314,7 @@ s32 create_model_animator(s16* animPos) {
return i;
}
s32 create_mesh_animator(s32 animPos, s16* animBuffer) {
s32 create_mesh_animator(s16* animPos, s16* animBuffer) {
ModelAnimator* animator;
s32 i, j;
@ -333,16 +333,16 @@ s32 create_mesh_animator(s32 animPos, s16* animBuffer) {
animator->flags = MODEL_ANIMATOR_FLAGS_UPDATE_PENDING | MODEL_ANIMATOR_FLAGS_ENABLED | MODEL_ANIMATOR_FLAGS_CAM_2 | MODEL_ANIMATOR_FLAGS_CAM_1 | MODEL_ANIMATOR_FLAGS_CAM_0;
animator->renderMode = RENDER_MODE_ALPHATEST;
animator->vertexArray = NULL;
animator->baseAddr = NULL;
animator->fpRenderCallback = NULL;
animator->rootNode = NULL;
animator->nextUniqueID = 0;
animator->animationBuffer = animBuffer;
animator->nextUpdateTime = 1.0f;
animator->timeScale = 1.0f;
animPos = (animPos & 0xFFFFFF) + (s32)animator->animationBuffer;
animator->animReadPos = (s16*)animPos;
animator->savedReadPos = (s16*)animPos;
animPos = (s16*)(((s32)animPos & 0xFFFFFF) + (s32)animator->animationBuffer);
animator->animReadPos = animPos;
animator->savedReadPos = animPos;
for (j = 0; j < ARRAY_COUNT(animator->staticNodeIDs); j++) {
animator->staticNodeIDs[j] = j + 1;
@ -708,7 +708,7 @@ void render_animated_model(s32 animatorID, Mtx* rootTransform) {
animator->flags & (1 << gCurrentCamID) && !(animator->flags & MODEL_ANIMATOR_FLAGS_HIDDEN))
{
animator->mtx = *rootTransform;
animator->vertexArray = NULL;
animator->baseAddr = NULL;
rtPtr->appendGfxArg = animator;
rtPtr->appendGfx = (void (*)(void*))appendGfx_animator;
rtPtr->distance = 0;
@ -718,7 +718,7 @@ void render_animated_model(s32 animatorID, Mtx* rootTransform) {
}
}
void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32 vtxSegment, Vec3s* vertexArray) {
void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32 segment, void* baseAddr) {
RenderTask rt;
RenderTask* rtPtr = &rt;
@ -731,8 +731,8 @@ void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32
animator->flags & (1 << gCurrentCamID) && !(animator->flags & MODEL_ANIMATOR_FLAGS_HIDDEN))
{
animator->mtx = *rootTransform;
gAnimVtxSegment = vtxSegment;
animator->vertexArray = vertexArray;
gAnimVtxSegment = segment;
animator->baseAddr = baseAddr;
rtPtr->appendGfxArg = animator;
rtPtr->appendGfx = (void (*)(void*))appendGfx_animator;
rtPtr->distance = 0;
@ -745,8 +745,8 @@ void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32
void appendGfx_animator(ModelAnimator* animator) {
Matrix4f sp10;
if (animator->vertexArray != NULL) {
gSPSegment(gMasterGfxPos++, gAnimVtxSegment, VIRTUAL_TO_PHYSICAL(animator->vertexArray));
if (animator->baseAddr != NULL) {
gSPSegment(gMasterGfxPos++, gAnimVtxSegment, VIRTUAL_TO_PHYSICAL(animator->baseAddr));
}
gDisplayContext->matrixStack[gMatrixListPos] = animator->mtx;
@ -1008,11 +1008,11 @@ void clear_animator_flags(s32 index, s32 bits) {
animator->flags &= ~bits;
}
void play_model_animation(s32 index, s32 animPos) {
void play_model_animation(s32 index, s16* animPos) {
ModelAnimator* animator = (*gCurrentAnimMeshListPtr)[index & ~0x800];
if (animator->animationBuffer != NULL) {
animPos = (animPos & 0xFFFFFF) + (s32)animator->animationBuffer; // TODO: array access?
animPos = ((s32)animPos & 0xFFFFFF) + (s32)animator->animationBuffer; // TODO: array access?
}
animator->animReadPos = (s16*)animPos;
animator->savedReadPos = (s16*)animPos;

View File

@ -261,7 +261,7 @@ void item_entity_disable_shadow(ItemEntity* itemEntity) {
itemEntity->flags |= ITEM_ENTITY_FLAGS_40;
if (itemEntity->shadowIndex >= 0) {
shadow = get_shadow_by_index(itemEntity->shadowIndex);
shadow->flags |= SHADOW_FLAGS_HIDDEN;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
}
}
@ -271,7 +271,7 @@ void item_entity_enable_shadow(ItemEntity* itemEntity) {
itemEntity->flags &= ~ITEM_ENTITY_FLAGS_40;
if (itemEntity->shadowIndex >= 0) {
shadow = get_shadow_by_index(itemEntity->shadowIndex);
shadow->flags &= ~SHADOW_FLAGS_HIDDEN;
shadow->flags &= ~ENTITY_FLAGS_HIDDEN;
}
}
@ -541,7 +541,7 @@ s32 make_item_entity(s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pic
shadow = get_shadow_by_index(itemEntity->shadowIndex);
if (itemEntity->spawnType == ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS) {
shadow->flags |= SHADOW_FLAGS_HIDDEN;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
}
x = itemEntity->position.x;
@ -644,7 +644,7 @@ s32 make_item_entity_at_player(s32 itemID, s32 arg1, s32 pickupMsgFlags) {
item->shadowIndex = create_shadow_type(0, item->position.x, item->position.y, item->position.z);
shadow = get_shadow_by_index(item->shadowIndex);
shadow->flags |= 1;
shadow->flags |= ENTITY_FLAGS_HIDDEN;
posX = item->position.x;
posY = item->position.y + 12.0f;
@ -787,7 +787,7 @@ void draw_item_entities(void) {
rtPtr->distance = 0;
retTask = queue_render_task(rtPtr);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
do {} while (0); // required to match

View File

@ -161,7 +161,7 @@ void func_802B735C_E2290C(void) {
}
if (D_802B7C78_E23228->unk_18++ > 50) {
D_8015A578.unk_02 = 0;
D_8015A578.unk_02 = FALSE;
D_8010C93C = NULL;
playerStatus->animFlags &= ~0x100;
}

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,18 @@ enum {
};
#define _AS_ROUND(x) ((int) (x < 0 ? x - 0.5 : x + 0.5))
#define AS_F(x) (_AS_ROUND((x) * 32767.0 / 180.0))
#define as_End AS_END,
#define as_Wait(time) AS_WAIT, time,
#define as_EndLoop AS_END_LOOP,
#define as_Restart AS_END_LOOP,
#define as_Loop AS_LOOP,
#define as_SetRotation(node, x, y, z) AS_SET_ROTATION, node, AS_F(x), AS_F(y), AS_F(z),
#define as_SetPos(node, x, y, z) AS_SET_POS, node, x, y, z,
#define as_SetScale(node, x, y, z) AS_SET_SCALE, node, AS_F(x), AS_F(y), AS_F(z),
#define as_DisableMirroring AS_OP_19,
// used in entity models
#define ANIM_NULL (void*)(0xFFFFFFFF)
#endif

View File

@ -80,13 +80,13 @@ ApiStatus func_8021849C_6DC23C(Evt* script, s32 isInitialCall) {
s32 entityIndex = script->varTable[9];
Entity* entity = get_entity_by_index(entityIndex);
entity->unk_07 = 0;
entity->collisionTimer = 0;
collisionStatus->lastWallHammered = entityIndex | 0x4000;
playerStatus->flags |= 0x1000000;
entity->collisionFlags = 0x40;
entity->collisionFlags = ENTITY_COLLISION_PLAYER_HAMMER;
playerStatus->actionState = ACTION_STATE_HAMMER;
entity->blueprint->fpHandleCollision(entity);
entity->unk_07 = 0xA;
entity->collisionTimer = 10;
entity->flags |= ENTITY_FLAGS_DETECTED_COLLISION;
collisionStatus->lastWallHammered = -1;

View File

@ -51,7 +51,7 @@ EvtScript N(main) = {
EVT_SET_CONST(EVT_VAR(10), 0x00000090)
EVT_EXEC_WAIT(N(UseItemWithEffect))
EVT_WAIT_FRAMES(10)
EVT_CALL(MakeEntity, EVT_PTR(Entity_D_802EA2E0), -40, 60, 0, 0, MAKE_ENTITY_END)
EVT_CALL(MakeEntity, EVT_PTR(Entity_PowBlock), -40, 60, 0, 0, MAKE_ENTITY_END)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_CALL(N(func_802A1318_718B68))
EVT_CALL(PlayEffect, 0x7, 2, -40, 60, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0)

View File

@ -3,6 +3,7 @@
#include "common.h"
#include "script_api/battle.h"
#include "entity.h"
#undef NAMESPACE
#define NAMESPACE battle_item_pow_block

View File

@ -12,7 +12,7 @@ BSS s32 D_801512B0;
BSS s32 gHudElementsNumber;
BSS s32 gCurrentCustomModelGfxBuildersPtr;
BSS s32 D_801512BC;
BSS s32 D_801512C0;
BSS s32 entity_numEntities;
BSS s32 gEntityHeapBase;
BSS s32 gHudElementCacheTableRaster;
BSS s32 gCurrentModels;
@ -29,7 +29,7 @@ BSS s32 D_801512F0;
BSS s32 gMsgVarImages;
BSS s32 ItemEntitiesCreated;
BSS s32 gCurrentModelTreeRoot;
BSS s32 D_80151300;
BSS s32 gEntityHeapBottom;
BSS s32 D_80151304;
BSS s32 D_80151308;
BSS s16 gMsgBGScrollAmtY;
@ -39,10 +39,10 @@ BSS s32 gHudElementCacheBuffer;
BSS s32 gEntityModelCount;
BSS s32 D_8015131C;
BSS char D_80151320[0x4];
BSS s32 D_80151324;
BSS s32 entity_numShadows;
BSS s32 D_80151328;
BSS s32 D_8015132C;
BSS s32 D_80151330;
BSS s32 entity_area_specific_data_is_loaded;
BSS s32 entity_updateCounter;
BSS s32 gTriggerCount;
BSS s32 D_80151338;
BSS s32 gHudElementCacheSize;
@ -56,8 +56,8 @@ BSS char D_80151474[0x4];
BSS s8 gWorldShadowList[0xF0];
BSS s8 gBattleShadowList[0xF0];
BSS s32 gCurrentShadowListPtr;
BSS s32 wEntityBlueprintSize;
BSS s32 bEntityBlueprintSize;
BSS s32 wEntityDataLoadedSize;
BSS s32 bEntityDataLoadedSize;
BSS char D_80151664[0x4];
BSS s8 wEntityBlueprint[0x74];
BSS s32 D_801516DC;
@ -104,7 +104,7 @@ BSS s16 D_80153376;
BSS s8 D_80153378[0x8];
BSS s8 D_80153380[0x20];
BSS s8 mdl_renderTaskLists[0xC];
BSS s32 mdl_renderTaskMode;
BSS s32 mdl_renderTaskQueueIdx;
BSS s8 mdl_renderTaskCount[0x10];
BSS s8 D_801533C0[0x300];
BSS s8 D_801536C0[0x300];

View File

@ -965,7 +965,7 @@ s32 test_ray_entities(f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f3
for (i = 0; i < MAX_ENTITIES; i++) {
entity = get_entity_by_index(i);
if (entity == NULL || (entity->flags & 0x40000020)) {
if (entity == NULL || (entity->flags & (ENTITY_FLAGS_SKIP_UPDATE | ENTITY_FLAGS_DISABLE_COLLISION))) {
continue;
}

View File

@ -254,7 +254,7 @@ void aura_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E007684C(void) {

View File

@ -80,7 +80,7 @@ void balloon_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_OPA;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void balloon_appendGfx(void* effect) {

View File

@ -116,7 +116,7 @@ void big_smoke_puff_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void big_smoke_puff_appendGfx(void* effect) {

View File

@ -104,7 +104,7 @@ void big_snowflakes_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void big_snowflakes_appendGfx(void* effect) {

View File

@ -23,7 +23,7 @@ void blast_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data != NULL);
@ -71,7 +71,7 @@ void blast_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/blast", blast_appendGfx);

View File

@ -50,7 +50,7 @@ void bombette_breaking_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/bombette_breaking", bombette_breaking_appendGfx);

View File

@ -20,7 +20,7 @@ void breaking_junk_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/breaking_junk", breaking_junk_appendGfx);

View File

@ -27,7 +27,7 @@ void bulb_glow_render(EffectInstance* effect) {
}
retTask = shim_queue_render_task(renderTaskPtr);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E0078274(void) {

View File

@ -157,7 +157,7 @@ void butterflies_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}

View File

@ -22,7 +22,7 @@ void chapter_change_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/chapter_change", chapter_change_appendGfx);

View File

@ -20,7 +20,7 @@ void chomp_drop_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_XLU_LAYER1;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/chomp_drop", chomp_drop_appendGfx);

View File

@ -109,7 +109,7 @@ void cloud_puff_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void cloud_puff_appendGfx(void* effect) {

View File

@ -110,7 +110,7 @@ void cloud_trail_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void cloud_trail_appendGfx(void* effect) {

View File

@ -20,7 +20,7 @@ void cold_breath_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/cold_breath", cold_breath_appendGfx);

View File

@ -20,7 +20,7 @@ void damage_stars_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/damage_stars", damage_stars_appendGfx);

View File

@ -127,7 +127,7 @@ void debuff_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void debuff_appendGfx(void* effect) {

View File

@ -20,7 +20,7 @@ void drop_leaves_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/drop_leaves", drop_leaves_appendGfx);

View File

@ -20,7 +20,7 @@ void dust_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_XLU_LAYER1;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/dust", dust_appendGfx);

View File

@ -20,7 +20,7 @@ void fx_3D_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E007A884(void) {

View File

@ -20,7 +20,7 @@ void fx_46_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/effect_46", fx_46_appendGfx);

View File

@ -20,7 +20,7 @@ void fx_63_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/effect_63", fx_63_appendGfx);

View File

@ -20,7 +20,7 @@ void fx_65_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/effect_65", fx_65_appendGfx);

View File

@ -44,7 +44,7 @@ void fx_75_render(EffectInstance* effect) {
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_XLU_LAYER1;
retTask = shim_queue_render_task(renderTaskPtr);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00EA664(void) {

View File

@ -103,7 +103,7 @@ void fx_86_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void fx_86_appendGfx(void* effect) {

View File

@ -20,7 +20,7 @@ void embers_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00E05F8(void) {

View File

@ -165,7 +165,7 @@ void emote_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
// lots of issues

View File

@ -28,9 +28,9 @@ void ending_decals_render(EffectInstance* effect) {
} else {
renderTaskPtr->renderMode = RENDER_MODE_2D;
}
retTask = shim_queue_render_task(renderTaskPtr);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/ending_decals", ending_decals_appendGfx);

View File

@ -30,7 +30,7 @@ void energy_orb_wave_render(EffectInstance* effect) {
}
retTask = shim_queue_render_task(renderTaskPointer);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00A4648(void) {

View File

@ -20,7 +20,7 @@ void energy_shockwave_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_XLU_LAYER3;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/energy_shockwave", energy_shockwave_appendGfx);

View File

@ -20,7 +20,7 @@ void falling_leaves_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/falling_leaves", falling_leaves_appendGfx);

View File

@ -175,7 +175,7 @@ void fire_breath_render(EffectInstance* effect) {
renderTaskPointer->renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(renderTaskPointer);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void fire_breath_appendGfx(void* effect) {

View File

@ -82,7 +82,7 @@ void fire_flower_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/fire_flower", fire_flower_appendGfx);

View File

@ -20,7 +20,7 @@ void firework_rocket_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_OPA;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/firework_rocket", firework_rocket_appendGfx);

View File

@ -20,7 +20,7 @@ void floating_cloud_puff_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00D227C(void) {

View File

@ -137,7 +137,7 @@ void floating_flower_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void floating_flower_appendGfx(void* effect) {

View File

@ -24,9 +24,9 @@ void floating_rock_render(EffectInstance *effect) {
renderTask.appendGfxArg = effect;
renderTask.distance = effect76->unk_0C;
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/floating_rock", floating_rock_appendGfx);

View File

@ -130,7 +130,7 @@ void flower_splash_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00104F4(EffectInstance* effect) {

View File

@ -148,7 +148,7 @@ void flower_trail_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E0012548(EffectInstance* effect) {

View File

@ -107,7 +107,7 @@ void footprint_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00183BC(EffectInstance* effect) {

View File

@ -20,7 +20,7 @@ void fright_jar_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00C2214(void) {

View File

@ -20,7 +20,7 @@ void gather_energy_pink_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/gather_energy_pink", gather_energy_pink_appendGfx);

View File

@ -82,7 +82,7 @@ void gather_magic_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_XLU_LAYER3;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/gather_magic", gather_magic_appendGfx);

View File

@ -20,7 +20,7 @@ void got_item_outline_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E003621C(void) {

View File

@ -20,7 +20,7 @@ void hieroglyphs_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00E2210(void) {

View File

@ -20,7 +20,7 @@ void ice_pillar_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/ice_pillar", ice_pillar_appendGfx);

View File

@ -20,7 +20,7 @@ void ice_shard_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/ice_shard", ice_shard_appendGfx);

View File

@ -254,7 +254,7 @@ void landing_dust_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void landing_dust_appendGfx(void* effect) {

View File

@ -20,7 +20,7 @@ void lens_flare_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/lens_flare", lens_flare_appendGfx);

View File

@ -26,7 +26,7 @@ void light_rays_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/light_rays", func_E006A85C);

View File

@ -20,7 +20,7 @@ void lightning_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_XLU_LAYER3;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/lightning", lightning_appendGfx);

View File

@ -36,7 +36,7 @@ void lightning_bolt_render(EffectInstance *effect) {
renderTaskPointer->renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(renderTaskPointer);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00BC36C(void) {

View File

@ -20,7 +20,7 @@ void lil_oink_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/lil_oink", lil_oink_appendGfx);

View File

@ -20,7 +20,7 @@ void merlin_house_stars_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00A639C(void) {

View File

@ -20,7 +20,7 @@ void misc_particles_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00E4954(void) {

View File

@ -26,7 +26,7 @@ void motion_blur_flame_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00A2234(void) {

View File

@ -20,7 +20,7 @@ void moving_cloud_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/moving_cloud", moving_cloud_appendGfx);

View File

@ -49,7 +49,7 @@ void music_note_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) {
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data != NULL);
@ -124,7 +124,7 @@ void music_note_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/music_note", music_note_appendGfx);

View File

@ -20,7 +20,7 @@ void peach_star_beam_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/peach_star_beam", peach_star_beam_appendGfx);

View File

@ -20,7 +20,7 @@ void purple_ring_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/purple_ring", purple_ring_appendGfx);

View File

@ -20,7 +20,7 @@ void quizmo_assistant_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/quizmo_assistant", quizmo_assistant_appendGfx);

View File

@ -28,7 +28,7 @@ void quizmo_audience_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00A8318(void) {

View File

@ -20,7 +20,7 @@ void quizmo_stage_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_OPA;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/quizmo_stage", quizmo_stage_appendGfx);

View File

@ -20,7 +20,7 @@ void radial_shimmer_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/radial_shimmer", radial_shimmer_appendGfx);

View File

@ -28,7 +28,7 @@ void radiating_energy_orb_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_SURFACE_XLU_LAYER3;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/radiating_energy_orb", radiating_energy_orb_appendGfx);

View File

@ -20,7 +20,7 @@ void red_impact_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/red_impact", red_impact_appendGfx);

View File

@ -20,7 +20,7 @@ void ring_blast_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/ring_blast", ring_blast_appendGfx);

View File

@ -20,7 +20,7 @@ void rising_bubble_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/rising_bubble", rising_bubble_appendGfx);

View File

@ -124,12 +124,12 @@ void shape_spell_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
s32 func_E0024324(s32 arg0, s32 arg1) {
s32 frameCounter = gGameStatusPtr->frameCounter * 32;
return (f32)((shim_sin_deg(frameCounter + arg1) * (255 - arg0) + (255 - arg0)) * 0.5 + arg0);
}

View File

@ -20,7 +20,7 @@ void shattering_stones_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/shattering_stones", shattering_stones_appendGfx);

View File

@ -20,7 +20,7 @@ void shimmer_burst_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E0070738(void) {

View File

@ -20,7 +20,7 @@ void shimmer_wave_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/shimmer_wave", shimmer_wave_appendGfx);

View File

@ -20,7 +20,7 @@ void shiny_flare_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00DA228(void) {

View File

@ -20,7 +20,7 @@ void shockwave_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/shockwave", shockwave_appendGfx);

View File

@ -65,7 +65,7 @@ void sleep_bubble_update(EffectInstance* effect) {
shim_remove_effect(effect);
return;
}
unk_20 = part->unk_20;
timeLeft = part->timeLeft;
@ -79,7 +79,7 @@ void sleep_bubble_update(EffectInstance* effect) {
do {
angle = i * 360.0f / 21.0f + 17.0f;
*xPtr = temp2 * shim_sin_deg(angle);
*yPtr = -temp2 * shim_cos_deg(angle);
@ -112,7 +112,7 @@ void sleep_bubble_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/sleep_bubble", sleep_bubble_appendGfx);

View File

@ -106,7 +106,7 @@ void small_gold_sparkle_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void small_gold_sparkle_appendGfx(void* effect) {

View File

@ -20,7 +20,7 @@ void smoke_burst_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/smoke_burst", smoke_burst_appendGfx);

View File

@ -20,7 +20,7 @@ void smoke_impact_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_28;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/smoke_impact", smoke_impact_appendGfx);

View File

@ -20,7 +20,7 @@ void snaking_static_render(EffectInstance* effect) {
renderTask.renderMode = RENDER_MODE_2D;
retTask = shim_queue_render_task(&renderTask);
retTask->renderMode |= RENDER_MODE_2;
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
void func_E00AE544(void) {

Some files were not shown because too many files have changed in this diff Show More