From ba183f35b52fdd6a31eb6aae26a743499b141cb4 Mon Sep 17 00:00:00 2001 From: HailSanta <53960937+HailSanta@users.noreply.github.com> Date: Sun, 7 Aug 2022 08:42:54 -0400 Subject: [PATCH] effect organization (#745) * isk + warning patrol * minor reorg * effect data union * structs sorted and dummy structs added * effect data cleanup + some end funcs * two more PAL_PTR* Co-authored-by: HailSanta --- include/common_structs.h | 129 +- include/effects.h | 1124 +++++++++++++---- include/enums.h | 12 +- include/functions.h | 2 +- include/macros.h | 3 +- include/model.h | 8 +- include/npc.h | 4 +- src/16F740.c | 36 +- src/16c8e0.c | 4 +- src/182B30.c | 119 +- src/18F340.c | 71 +- src/190B20.c | 54 +- src/19FAF0.c | 36 +- src/1A5830.c | 2 +- src/1AF120.c | 6 +- src/1a1f0_len_5390.c | 75 +- src/7E9D0.c | 2 +- src/C50A0.c | 8 +- src/EC71B0.c | 12 +- src/a5dd0_len_114e0.c | 12 +- src/battle/area_arn/actor/tubbas_heart.c | 8 +- src/battle/area_isk_part_2/actor/tutankoopa.c | 6 +- src/battle/area_kpa3/6BBC60.c | 10 +- src/battle/area_mac/actor/lee.c | 22 +- src/battle/area_omo2/actor/light_bulb.c | 8 +- src/battle/area_omo2/actor/toy_tank.c | 2 +- src/battle/area_pra2/actor/crystal_bit.c | 16 +- src/battle/area_pra2/actor/crystal_king.c | 36 +- src/battle/area_sam2/actor/monstar.c | 18 +- src/battle/common/actor/ghost_goombario.inc.c | 4 +- src/battle/common/actor/ghost_watt.inc.c | 12 +- src/battle/item/food.c | 6 +- src/battle/item/insecticide_herb.c | 12 +- src/battle/item/life_shroom.c | 6 +- src/battle/item/mushroom.c | 6 +- src/battle/item/super_soda.c | 8 +- src/battle/item/tasty_tonic.c | 2 +- src/battle/partner/bombette.c | 2 +- src/battle/partner/goombario.c | 2 +- src/battle/partner/goompa.c | 2 +- src/battle/partner/kooper.c | 2 +- src/battle/partner/lakilester.c | 4 +- src/battle/partner/watt.c | 6 +- src/battle/star/refresh/78B600.c | 2 +- src/bss.c | 4 +- src/bss3.c | 2 +- src/common/ShrinkActor.inc.c | 2 +- src/common/UnkEffect6FFunc.inc.c | 12 +- src/common/UnkFireBreathFXFunc.inc.c | 9 +- src/common/UnkLightningFXFunc.inc.c | 13 +- src/common/UnkWaterFountainFunc.inc.c | 14 +- src/d0a70_len_4fe0.c | 66 +- src/effects.c | 29 +- src/effects/attack_result_text.c | 4 +- src/effects/aura.c | 130 +- src/effects/balloon.c | 6 +- src/effects/big_smoke_puff.c | 6 +- src/effects/big_snowflakes.c | 8 +- src/effects/blast.c | 9 +- src/effects/bulb_glow.c | 4 +- src/effects/butterflies.c | 12 +- src/effects/cloud_puff.c | 8 +- src/effects/cloud_trail.c | 8 +- src/effects/damage_indicator.c | 6 +- src/effects/debuff.c | 6 +- src/effects/disable_x.c | 12 +- src/effects/effect_75.c | 2 +- src/effects/effect_86.c | 10 +- src/effects/emote.c | 48 +- src/effects/ending_decals.c | 8 +- src/effects/energy_orb_wave.c | 6 +- src/effects/fire_breath.c | 28 +- src/effects/fire_flower.c | 4 +- src/effects/flame.c | 11 +- src/effects/floating_flower.c | 8 +- src/effects/floating_rock.c | 7 +- src/effects/flower_splash.c | 8 +- src/effects/flower_trail.c | 8 +- src/effects/footprint.c | 8 +- src/effects/gather_magic.c | 4 +- src/effects/landing_dust.c | 8 +- src/effects/lightning_bolt.c | 2 +- src/effects/music_note.c | 20 +- src/effects/shape_spell.c | 23 +- src/effects/sleep_bubble.c | 6 +- src/effects/small_gold_sparkle.c | 6 +- src/effects/snowflake.c | 10 +- src/effects/star.c | 8 +- src/effects/stat_change.c | 24 +- src/effects/tattle_window.c | 22 +- src/effects/throw_spiny.c | 36 +- src/effects/walking_dust.c | 8 +- src/entity/Chest.c | 2 +- src/evt/fx_api.c | 11 +- src/msg.c | 76 +- src/npc.c | 64 +- src/sprite.c | 4 +- src/sprite.h | 8 +- src/world/area_end/end_00/DF6A20.c | 9 +- src/world/area_end/end_00/DF9300.c | 13 +- src/world/area_end/end_00/DF9510.c | 2 +- src/world/area_end/end_01/E05390.c | 9 +- src/world/area_end/end_01/E07C20.c | 107 +- src/world/area_flo/flo_07/CAC1F0.c | 12 +- src/world/area_flo/flo_18/CDC6A0.c | 12 +- src/world/area_isk/isk_02/978750.c | 13 +- src/world/area_isk/isk_05/97DAD0.c | 44 +- src/world/area_isk/isk_07/982440.c | 29 +- src/world/area_isk/isk_07/982530.c | 10 +- src/world/area_isk/isk_09/9864E0.c | 7 +- src/world/area_isk/isk_09/9867D0.c | 10 +- src/world/area_isk/isk_10/988B60.c | 15 +- src/world/area_isk/isk_11/98AA10.c | 12 +- src/world/area_isk/isk_11/98AAC0.c | 8 +- src/world/area_iwa/iwa_11/926C70.c | 20 +- src/world/area_mac/mac_05/855560.c | 4 - src/world/area_mac/mac_06/865000.c | 4 - src/world/area_mgm/mgm_02/E15D80.c | 4 +- src/world/area_sbk/sbk_02/92A2B0.c | 3 +- src/world/common/LoadPartyImage.inc.c | 27 +- src/world/common/PlayFX3D.inc.c | 21 + src/world/common/StarSpiritEffectFunc.inc.c | 32 +- src/world/common/atomic/Quizmo.inc.c | 20 +- src/world/common/atomic/SuperBlock.inc.c | 17 +- ver/us/asm/data/1AF2D0.data.s | 6 +- .../data/world/area_end/end_00/DFE5B0.data.s | 2 +- .../data/world/area_mac/mac_05/862BC0.data.s | 4 +- .../data/world/area_mac/mac_06/8666A0.data.s | 4 +- .../end_00/DF9300/func_80242A30_DF9430.s | 45 - .../end_01/E07C20/func_802428C0_E07C20.s | 20 - .../end_01/E07C20/func_80242900_E07C60.s | 37 - .../end_01/E07C20/func_80242978_E07CD8.s | 67 - .../end_01/E07C20/func_80242A68_E07DC8.s | 69 - .../end_01/E07C20/func_80242B68_E07EC8.s | 69 - .../end_01/E07C20/func_80242C68_E07FC8.s | 15 - .../isk_02/978750/func_80240040_978750.s | 50 - .../isk_05/97DAD0/func_80241B28_97F5F8.s | 78 -- .../isk_07/982440/func_80240014_982454.s | 51 - .../isk_07/982530/func_802400F0_982530.s | 12 - .../isk_09/9864E0/func_802402BC_98679C.s | 17 - .../isk_09/9867D0/func_802402F0_9867D0.s | 20 - .../isk_10/988B60/func_80240D38_989898.s | 47 - .../isk_11/98AA10/func_80240000_98AA10.s | 48 - .../isk_11/98AAC0/func_802400B0_98AAC0.s | 32 - .../iwa_11/926C70/func_80240280_926C70.s | 43 - .../mac_05/855560/func_80243CD4_855E44.s | 45 - .../mac_05/855560/func_80243D78_855EE8.s | 18 - .../mac_06/865000/func_80240DA4_8658E4.s | 45 - .../mac_06/865000/func_80240E48_865988.s | 18 - ver/us/symbol_addrs.txt | 34 +- ver/us/undefined_syms.txt | 4 +- 151 files changed, 2029 insertions(+), 2124 deletions(-) delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_00/DF9300/func_80242A30_DF9430.s delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_802428C0_E07C20.s delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242900_E07C60.s delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242978_E07CD8.s delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242A68_E07DC8.s delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242B68_E07EC8.s delete mode 100644 ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242C68_E07FC8.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_02/978750/func_80240040_978750.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_05/97DAD0/func_80241B28_97F5F8.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_07/982440/func_80240014_982454.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_07/982530/func_802400F0_982530.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_09/9864E0/func_802402BC_98679C.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_09/9867D0/func_802402F0_9867D0.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_10/988B60/func_80240D38_989898.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_11/98AA10/func_80240000_98AA10.s delete mode 100644 ver/us/asm/nonmatchings/world/area_isk/isk_11/98AAC0/func_802400B0_98AAC0.s delete mode 100644 ver/us/asm/nonmatchings/world/area_iwa/iwa_11/926C70/func_80240280_926C70.s delete mode 100644 ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243CD4_855E44.s delete mode 100644 ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243D78_855EE8.s delete mode 100644 ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240DA4_8658E4.s delete mode 100644 ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240E48_865988.s diff --git a/include/common_structs.h b/include/common_structs.h index 2d447896af..86bfb69e1a 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -17,7 +17,11 @@ typedef void NoArgCallback(void*); #define MSG_PTR u8* #define IMG_PTR u8* -#define PAL_PTR u16* +#define PAL_PTR u16* + +#define MSG_BIN u8 +#define IMG_BIN u8 +#define PAL_BIN u16 typedef struct { u8 r, g, b, a; @@ -197,7 +201,7 @@ typedef struct Npc { /* 0x0AC */ u8 alpha; /* 0x0AD */ u8 alpha2; ///< Multiplied with Npc::alpha /* 0x0AE */ char unk_AE[2]; - /* 0x0B0 */ s32** extraAnimList; + /* 0x0B0 */ u32** extraAnimList; /* 0x0B4 */ s8 palSwapType; // 0..4 inclusive /* 0x0B5 */ s8 palSwapPrevType; /* 0x0B6 */ s8 dirtyPalettes; @@ -208,7 +212,7 @@ typedef struct Npc { /* 0x0C0 */ s8 unk_C0; /* 0x0C1 */ s8 paletteCount; /* 0x0C2 */ char unk_C2[2]; - /* 0x0C4 */ s32* spritePaletteList; + /* 0x0C4 */ PAL_PTR* spritePaletteList; /* 0x0C8 */ Palette16 localPaletteData[16]; /* 0x2C8 */ Palette16* localPalettes[16]; /* 0x308 */ s16 unk_308; @@ -461,6 +465,33 @@ typedef struct EntityBlueprint { /* 0x21 */ u8 aabbSize[3]; } EntityBlueprint; // size = 0x24 +typedef union { + s32* any; + 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; +} EntityData; + typedef struct Entity { /* 0x00 */ s32 flags; /* 0x04 */ u8 listIndex; @@ -483,32 +514,7 @@ typedef struct Entity { /* 0x2C */ s32* savedReadPos[3]; /* 0x38 */ EntityBlueprint* blueprint; /* 0x3C */ void (*renderSetupFunc)(s32); - /* 0x40 */ union { - s32* any; - 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; + /* 0x40 */ EntityData dataBuf; /* 0x44 */ void* gfxBaseAddr; /* 0x48 */ Vec3f position; /* 0x54 */ Vec3f scale; @@ -1104,8 +1110,8 @@ typedef struct ItemEntity { /* 0x40 */ s32* sparkleReadPos; /* 0x44 */ s32 sparkleUnk44; /* 0x48 */ s32* sparkleSavedPos; - /* 0x4C */ s8* sparkleRaster; - /* 0x50 */ s8* sparklePalette; + /* 0x4C */ IMG_PTR sparkleRaster; + /* 0x50 */ PAL_PTR sparklePalette; /* 0x54 */ s32 sparkleWidth; /* 0x58 */ s32 sparkleHeight; } ItemEntity; // size = 0x5C @@ -1196,10 +1202,10 @@ typedef struct MessagePrintState { /* 0x53C */ u8 maxLinesPerPage; /* 0x53D */ char unk_53D[0x3]; /* 0x540 */ f32 sizeScale; - /* 0x544 */ s32* letterBackgroundImg; - /* 0x548 */ s32* letterBackgroundPal; - /* 0x54C */ s32* letterContentImg; - /* 0x550 */ s32* letterContentPal; + /* 0x544 */ IMG_PTR letterBackgroundImg; + /* 0x548 */ PAL_PTR letterBackgroundPal; + /* 0x54C */ IMG_PTR letterContentImg; + /* 0x550 */ PAL_PTR letterContentPal; /* 0x554 */ char unk_554[0x4]; } MessagePrintState; // size = 0x558 @@ -1235,7 +1241,7 @@ typedef struct MessageDrawState { } MessageDrawState; // size = 0x54 typedef struct MessageCharData { - /* 0x0 */ s8* raster; + /* 0x0 */ IMG_PTR raster; /* 0x4 */ u8* charWidthTable; /* 0x8 */ u8 monospaceWidth; /* 0x9 */ u8 baseHeightOffset; @@ -1260,8 +1266,8 @@ typedef struct MesasgeFontGlyphData { } MesasgeFontGlyphData; // size = 0xC typedef struct MessageImageData { - /* 0x00 */ s32* raster; - /* 0x04 */ s32* palette; + /* 0x00 */ IMG_PTR raster; + /* 0x04 */ PAL_PTR palette; /* 0x08 */ u16 width; /* 0x0A */ u16 height; /* 0x0C */ s32 format; @@ -1269,7 +1275,7 @@ typedef struct MessageImageData { } MessageImageData; // size = 0x14 typedef struct MessageNumber { - /* 0x00 */ s32* rasters; + /* 0x00 */ IMG_PTR rasters; /* 0x04 */ s8 texSize; /* 0x05 */ u8 texWidth; /* 0x06 */ u8 texHeight; @@ -1603,8 +1609,8 @@ typedef struct DecorationTable { /* 0x6CC */ s8 unk_6CC; /* 0x6CD */ s8 numPalettes; /* 0x6CE */ char unk_6CE[2]; - /* 0x6D0 */ u16** palettes; - /* 0x6D4 */ s16* unk_6D4[27]; + /* 0x6D0 */ PAL_PTR* palettes; + /* 0x6D4 */ PAL_PTR unk_6D4[27]; /* 0x740 */ s16 unk_740; /* 0x742 */ s16 unk_742; /* 0x744 */ s16 unk_744; @@ -1623,7 +1629,7 @@ typedef struct DecorationTable { /* 0x767 */ s8 unk_767; /* 0x768 */ u8 unk_768; /* 0x769 */ char unk_769[3]; - /* 0x76C */ s16* unk_76C[16]; + /* 0x76C */ PAL_PTR unk_76C[16]; /* 0x78C */ char unk_7AC[0x2C]; /* 0x7D8 */ s8 unk_7D8; /* 0x7D9 */ s8 unk_7D9; @@ -1643,7 +1649,7 @@ typedef struct DecorationTable { /* 0x8B0 */ struct EffectInstance* unk_8B0[2]; /* 0x8B8 */ s8 decorationType[2]; /* 0x8BA */ u8 unk_8BA[2]; - /* 0x8BC */ u8 unk_8BC[2]; + /* 0x8BC */ s8 unk_8BC[2]; /* 0x8C0 */ s16 unk_8C0[4]; /* 0x8C6 */ DecorationUnk unk_8C6[2]; } DecorationTable; // size = 0x8E8 @@ -1845,8 +1851,8 @@ typedef struct Actor { } Actor; // size = 0x444 typedef struct BackgroundHeader { - /* 0x00 */ void* raster; - /* 0x04 */ void* palette; + /* 0x00 */ IMG_PTR raster; + /* 0x04 */ PAL_PTR palette; /* 0x08 */ u16 startX; /* 0x0A */ u16 startY; /* 0x0C */ u16 width; @@ -2149,8 +2155,8 @@ typedef struct PartnerActionStatus { } PartnerActionStatus; // size = 0x360 typedef struct SpriteRasterInfo { - /* 0x00 */ void* raster; - /* 0x04 */ void* defaultPal; + /* 0x00 */ IMG_PTR raster; + /* 0x04 */ PAL_PTR defaultPal; /* 0x08 */ s32 width; /* 0x0C */ s32 height; } SpriteRasterInfo; // size = 0x10 @@ -2292,28 +2298,6 @@ typedef struct SpriteShadingProfile { /* 0xAF */ s8 ambientPower; // ? } SpriteShadingProfile; // size = 0xB0 -typedef struct WattEffectData { - /* 0x00 */ s32 flags; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 angle; - /* 0x0C */ s32 unk_0C; - /* 0x10 */ s32 unk_10; - /* 0x14 */ struct EffectInstance* effect1; - /* 0x18 */ struct EffectInstance* effect2; - /* 0x1C */ s32 debuff; -} WattEffectData; - -typedef struct UnkStruct1 { - /* 0x00 */ char unk_00[8]; - /* 0x08 */ f32 unk_08; -} UnkStruct1; - -typedef struct UnkStruct0 { - /* 0x00 */ s32 flags; - /* 0x04 */ char unk_04[8]; - /* 0x0C */ UnkStruct1* unk_0C; -} UnkStruct0; - typedef struct FoldImageRecPart { /* 0x00 */ IMG_PTR raster; /* 0x04 */ PAL_PTR palette; @@ -2322,12 +2306,13 @@ typedef struct FoldImageRecPart { /* 0x0C */ s16 xOffset; /* 0x0E */ s16 yOffset; /* 0x10 */ u8 opacity; // alpha? - /* 0x11 */ char unk_11[0x7]; + /* 0x11 */ char unk_11[3]; + /* 0x14 */ Gfx* dlist; } FoldImageRecPart; // size = 0x18 typedef struct FoldImageRec { - /* 0x00 */ s8* raster; - /* 0x04 */ s8* palette; + /* 0x00 */ IMG_PTR raster; + /* 0x04 */ PAL_PTR palette; /* 0x08 */ u16 width; /* 0x0A */ u16 height; /* 0x0C */ s16 xOffset; diff --git a/include/effects.h b/include/effects.h index 711e7585a6..d85576727a 100644 --- a/include/effects.h +++ b/include/effects.h @@ -86,7 +86,7 @@ enum EffectID { EFFECT_QUIZMO_STAGE, EFFECT_RADIATING_ENERGY_ORB, EFFECT_QUIZMO_ANSWER, // unused - EFFECT_MOTION_BLUR_FLAME, + EFFECT_MOTION_BLUR_FLAME, // three orbs emanating from super block during upgrading animation EFFECT_ENERGY_ORB_WAVE, EFFECT_MERLIN_HOUSE_STARS, EFFECT_QUIZMO_AUDIENCE, // unused @@ -142,29 +142,9 @@ enum EffectID { EFFECT_86, }; -typedef struct StarSpiritsEnergyFXData { - /* 0x00 */ char unk_00[0x8]; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ char unk_14[0x20]; - /* 0x34 */ s32 unk_34; - /* 0x38 */ char unk_38[0x38]; - /* 0x70 */ s32 unk_70; - /* 0x74 */ s32 unk_74; -} StarSpiritsEnergyFXData; // size = ? - -typedef struct SpiritCardFXData { - /* 0x00 */ char unk_00[0x4]; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ char unk_10[0x10]; - /* 0x20 */ s32 unk_20; - /* 0x24 */ f32 unk_24; - /* 0x28 */ char unk_28[0xC]; - /* 0x34 */ s8 unk_34; -} SpiritCardFXData; // ? +typedef struct Effect00FXData { + /* 0x00 */ char todo[0]; +} Effect00FXData; // size = unknown typedef struct BigSmokePuffFXData { /* 0x00 */ s16 unk_00; @@ -182,20 +162,21 @@ typedef struct BigSmokePuffFXData { /* 0x28 */ char unk_28[0x4]; } BigSmokePuffFXData; // size = 0x2C -typedef struct BigSnowflakeFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ f32 unk_20; - /* 0x24 */ s32 unk_24; - /* 0x28 */ s32 unk_28; - /* 0x2C */ s32 unk_2C; -} BigSnowflakeFXData; // size = 0x30 +typedef struct Effect02FXData { + /* 0x00 */ char todo[0]; +} Effect02FXData; // size = unknown + +typedef struct Effect03FXData { + /* 0x00 */ char todo[0]; +} Effect03FXData; // size = unknown + +typedef struct Effect04FXData { + /* 0x00 */ char todo[0]; +} Effect04FXData; // size = unknown + +typedef struct Effect05FXData { + /* 0x00 */ char todo[0]; +} Effect05FXData; // size = unknown typedef struct LandingDustFXData { /* 0x00 */ u16 type; @@ -417,41 +398,178 @@ typedef struct EmoteFXData { /* 0x3C */ s32 unk_3C; } EmoteFXData; // size = 0x40 -typedef struct AttackResultTextFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; +typedef struct SparklesFXData { + /* 0x00 */ char todo[0]; +} SparklesFXData; // size = unknown + +typedef struct ShapeSpellFXData { + /* 0x00 */ s32 isChild; + /* 0x04 */ Vec3f pos; /* 0x10 */ f32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ s32 unk_24; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; /* 0x28 */ f32 unk_28; - /* 0x2C */ char unk_2C[0x4]; - /* 0x30 */ f32 unk_30; - /* 0x34 */ f32 unk_34; -} AttackResultTextFXData; // size = 0x38 + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 timeLeft; + /* 0x34 */ s32 unk_34; +} ShapeSpellFXData; // size = 0x38 + +typedef struct GatherEnergyPinkFXData { + /* 0x00 */ char todo[0]; +} GatherEnergyPinkFXData; // size = unknown + +typedef struct DropLeavesFXData { + /* 0x00 */ char todo[0]; +} DropLeavesFXData; // size = unknown + +typedef struct DustFXData { + /* 0x00 */ char todo[0]; +} DustFXData; // size = unknown + +typedef struct ShatteringStonesFXData { + /* 0x00 */ char todo[0]; +} ShatteringStonesFXData; // size = unknown + +typedef struct SmokeRingFXData { + /* 0x00 */ char todo[0]; +} SmokeRingFXData; // size = unknown + +typedef struct DamageStarsFXData { + /* 0x00 */ char todo[0]; +} DamageStarsFXData; // size = unknown + +typedef struct ExplosionFXData { + /* 0x00 */ char todo[0]; +} ExplosionFXData; // size = unknown + +typedef struct LensFlareFXData { + /* 0x00 */ char todo[0]; +} LensFlareFXData; // size = unknown typedef struct GotItemOutlineFXData { /* 0x00 */ char unk_00[0x14]; /* 0x14 */ s32 unk_14; + /* 0x18 */ char unk_18[0x18]; + /* 0x30 */ s32 unk_30; } GotItemOutlineFXData; // size = ??? -typedef struct SmallGoldSparkleFXData { +typedef struct SpikyWhiteAuraFXData { + /* 0x00 */ char todo[0]; +} SpikyWhiteAuraFXData; // size = unknown + +typedef struct SmokeImpactFXData { + /* 0x00 */ char todo[0]; +} SmokeImpactFXData; // size = unknown + +typedef struct DamageIndicatorFXData { /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; + /* 0x04 */ Vec3f unk_04; + /* 0x10 */ Vec3f unk_10; + /* 0x1C */ Vec3f unk_1C; + /* 0x28 */ f32 unk_28; + /* 0x2C */ s32 alpha; + /* 0x30 */ s32 effectDurationTimer; + /* 0x34 */ s32 unk_34; + /* 0x38 */ f32 unk_38; + /* 0x3C */ s32 numParts; +} DamageIndicatorFXData; // size = 0x40 + +typedef struct PurpleRingFXData { + /* 0x00 */ char todo[0]; +} PurpleRingFXData; // size = unknown + +typedef struct FlameFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ f32 unk_04; /* 0x08 */ f32 unk_08; /* 0x0C */ f32 unk_0C; +} FlameFXData; // size = 0x?? + +typedef struct StarsBurstFXData { + /* 0x00 */ char todo[0]; +} StarsBurstFXData; // size = unknown + +typedef struct StarsShimmerFXData { + /* 0x00 */ char todo[0]; +} StarsShimmerFXData; // size = unknown + +typedef struct RisingBubbleFXData { + /* 0x00 */ char todo[0]; +} RisingBubbleFXData; // size = unknown + +typedef struct RingBlastFXData { + /* 0x00 */ char todo[0]; +} RingBlastFXData; // size = unknown + +typedef struct ShockwaveFXData { + /* 0x00 */ char todo[0]; +} ShockwaveFXData; // size = unknown + +typedef struct MusicNoteFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; /* 0x10 */ f32 unk_10; /* 0x14 */ s32 unk_14; - /* 0x18 */ s32 unk_18; - /* 0x1C */ f32 unk_1C; + /* 0x18 */ s32 timeLeft; + /* 0x1C */ s32 unk_1C; /* 0x20 */ s32 unk_20; -} SmallGoldSparkleFXData; // size = 0x24 + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; + /* 0x30 */ f32 unk_30; +} MusicNoteFXData; // size = 0x34 -typedef struct BalloonFXData { +typedef struct SmokeBurstFXData { + /* 0x00 */ char todo[0]; +} SmokeBurstFXData; // size = unknown + +typedef struct SweatFXData { + /* 0x00 */ char todo[0]; +} SweatFXData; // size = unknown + +typedef struct SleepBubbleFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ s32 timeLeft; + /* 0x20 */ s32 unk_20; + /* 0x24 */ Vec2f points[20]; + /* 0xC4 */ f32 unk_C4; + /* 0xC8 */ f32 unk_C8; +} SleepBubbleFXData; // size = 0xCC + +typedef struct Unk2AFXData { + /* 0x00 */ char todo[0]; +} Unk2AFXData; // size = unknown + +typedef struct WindyLeavesFXData { + /* 0x00 */ char todo[0]; +} WindyLeavesFXData; // size = unknown + +typedef struct FallingLeavesFXData { + /* 0x00 */ char todo[0]; +} FallingLeavesFXData; // size = unknown + +typedef struct StarsSpreadFXData { + /* 0x00 */ char todo[0]; +} StarsSpreadFXData; // size = unknown + +typedef struct SteamBurstFXData { + /* 0x00 */ char todo[0]; +} SteamBurstFXData; // size = unknown + +typedef struct StarsOrbitingFXData { + /* 0x00 */ char unk_00[0x4]; + /* 0x04 */ Vec3f pos; + /* 0x10 */ char todo[0]; +} StarsOrbitingFXData; // size = unknown + +typedef struct BigSnowflakesFXData { /* 0x00 */ s32 unk_00; /* 0x04 */ f32 unk_04; /* 0x08 */ f32 unk_08; @@ -459,9 +577,12 @@ typedef struct BalloonFXData { /* 0x10 */ f32 unk_10; /* 0x14 */ f32 unk_14; /* 0x18 */ f32 unk_18; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; -} BalloonFXData; // size = 0x24 + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; +} BigSnowflakesFXData; // size = 0x30 typedef struct DebuffFXData { /* 0x00 */ s16 unk_00; @@ -488,61 +609,83 @@ typedef struct DebuffFXData { /* 0x3E */ char unk_3E[2]; } DebuffFXData; // size = 0x40 -typedef struct Effect134 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ s32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ s32 unk_24; - /* 0x28 */ s32 unk_28; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 unk_30; - /* 0x34 */ f32 unk_34; -} Effect134; // size = 0x38 +typedef struct GreenImpactFXData { + /* 0x00 */ char todo[0]; +} GreenImpactFXData; // size = unknown -typedef struct SleepBubbleFXData { +typedef struct RadialShimmerFXData { + /* 0x00 */ char todo[0]; +} RadialShimmerFXData; // size = unknown + +typedef struct EndingDecalsFXData { /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; + /* 0x04 */ char unk_04[0xC]; /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ s32 timeLeft; - /* 0x20 */ s32 unk_20; - /* 0x24 */ Vec2f points[20]; - /* 0xC4 */ f32 unk_C4; - /* 0xC8 */ f32 unk_C8; -} SleepBubbleFXData; // size = 0xCC + /* 0x14 */ char todo[0]; +} EndingDecalsFXData; // size = 0x?? -typedef struct WaterFountainFXData { - /* 0x00 */ char unk_00[0x18]; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ char unk_24[0x4]; - /* 0x28 */ s32 unk_28; - /* 0x2C */ s32 unk_2C; +typedef struct LightRaysFXData { + /* 0x00 */ char todo[0]; +} LightRaysFXData; // size = unknown + +typedef struct LightningFXData { + /* 0x00 */ char unk_00[0x30]; /* 0x30 */ s32 unk_30; - /* 0x34 */ char unk_34[0x4]; - /* 0x38 */ f32 unk_38; -} WaterFountainFXData; // size = ? + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ char unk_3C[0x4]; + /* 0x40 */ s32 unk_40; + /* 0x44 */ s32 unk_44; + /* 0x48 */ s32 unk_48; +} LightningFXData; // size = ? + +typedef struct FireBreathFXData { + /* 0x00 */ s32 type; + /* 0x04 */ s32 numChildren; + /* 0x08 */ s32 spawnDelay; + /* 0x0C */ Vec3f pos; + /* 0x18 */ Vec3f initPos; + /* 0x24 */ Vec3f endPos; + /* 0x30 */ f32 unk_30; + /* 0x34 */ f32 unk_34; + /* 0x38 */ f32 scale; + /* 0x3C */ f32 scaleChangeFactor; + /* 0x40 */ s32 alpha; + /* 0x44 */ s32 maxLifetime; + /* 0x48 */ s32 lifetime; + /* 0x4C */ s32 spawnTimer; + /* 0x50 */ Vec3f unk_50; + /* 0x5C */ f32 unk_5C; + /* 0x60 */ f32 unk_60; + /* 0x64 */ s32 primR; + /* 0x68 */ s32 primG; + /* 0x6C */ s32 primB; + /* 0x70 */ s32 envR; + /* 0x74 */ s32 envG; + /* 0x78 */ s32 envB; +} FireBreathFXData; // size = 0x7C + +typedef struct ShimmerBurstFXData { + /* 0x00 */ char todo[0]; +} ShimmerBurstFXData; // size = unknown + +typedef struct EnergyShockwaveFXData { + /* 0x00 */ char todo[0]; +} EnergyShockwaveFXData; // size = unknown + +typedef struct ShimmerWaveFXData { + /* 0x00 */ char todo[0]; +} ShimmerWaveFXData; // size = unknown typedef struct AuraFXData { /* 0x00 */ s32 type; - /* 0x04 */ Vec3f pos; - /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ f32 unk_20; + /* 0x04 */ Vec3f posA; + /* 0x10 */ Vec3f posB; + /* 0x1C */ Vec2f scale; /* 0x24 */ f32 unk_24; /* 0x28 */ s32 primA; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 unk_30; + /* 0x2C */ s32 fadeTime; + /* 0x30 */ s32 lifeTime; /* 0x34 */ f32 unk_34; /* 0x38 */ f32 unk_38; /* 0x3C */ f32 unk_3C; @@ -555,10 +698,7 @@ typedef struct AuraFXData { /* 0x58 */ f32 unk_58; /* 0x5C */ f32 unk_5C; /* 0x60 */ f32 unk_60; - union { - s32 s; - f32 f; - } unk_64; + /* 0x64 */ f32 renderYaw; /* 0x68 */ u8 primR; /* 0x69 */ u8 primG; /* 0x6A */ u8 primB; @@ -568,6 +708,20 @@ typedef struct AuraFXData { /* 0x6E */ u8 engA; } AuraFXData; // size = 0x70 +typedef struct BulbGlowFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ char unk_10[0x4]; + /* 0x14 */ s32 unk_14; +} BulbGlowFXData; // size = ? + +typedef struct Effect3DFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec3f pos; + /* 0x00 */ char todo[0]; +} Effect3DFXData; // size = unknown + typedef struct BlastFXData { /* 0x00 */ s16 unk_00; /* 0x04 */ Vec3f pos; @@ -598,6 +752,10 @@ typedef struct FireFlowerFXData { /* 0x40 */ Vec3i unk_40; } FireFlowerFXData; // size = 0x4C +typedef struct RecoverFXData { + /* 0x00 */ char todo[0]; +} RecoverFXData; // size = unknown + typedef struct DisableXFXData { /* 0x00 */ s32 type; /* 0x04 */ s32 unk_04; @@ -617,78 +775,26 @@ typedef struct DisableXFXData { /* 0x44 */ s32 unk_44; } DisableXFXData; // size = 0x48 -typedef struct FireBreathFXData { - /* 0x00 */ s32 type; - /* 0x04 */ s32 numChildren; - /* 0x08 */ s32 spawnDelay; - /* 0x0C */ Vec3f pos; - /* 0x18 */ Vec3f initPos; - /* 0x24 */ Vec3f endPos; - /* 0x30 */ f32 unk_30; - /* 0x34 */ f32 unk_34; - /* 0x38 */ f32 scale; - /* 0x3C */ f32 scaleChangeFactor; - /* 0x40 */ s32 alpha; - /* 0x44 */ s32 maxLifetime; - /* 0x48 */ s32 lifetime; - /* 0x4C */ s32 spawnTimer; - /* 0x50 */ Vec3f unk_50; - /* 0x5C */ f32 unk_5C; - /* 0x60 */ f32 unk_60; - /* 0x64 */ s32 primR; - /* 0x68 */ s32 primG; - /* 0x6C */ s32 primB; - /* 0x70 */ s32 envR; - /* 0x74 */ s32 envG; - /* 0x78 */ s32 envB; -} FireBreathFXData; // size = 0x7C +typedef struct BombetteBreakingFXData { + /* 0x00 */ char todo[0]; +} BombetteBreakingFXData; // size = unknown -typedef struct DamageIndicatorFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f unk_04; - /* 0x10 */ Vec3f unk_10; - /* 0x1C */ Vec3f unk_1C; - /* 0x28 */ f32 unk_28; - /* 0x2C */ s32 alpha; - /* 0x30 */ s32 effectDurationTimer; - /* 0x34 */ s32 unk_34; - /* 0x38 */ f32 unk_38; - /* 0x3C */ s32 numParts; -} DamageIndicatorFXData; // size = 0x40 +typedef struct FireworkFXData { + /* 0x00 */ char todo[0]; +} FireworkFXData; // size = unknown -// seems to actually be PlayerStatus, but it's too large seemingly given the bss padding in UnkWhirlwindEffectFunc.inc.c -typedef struct EffectWhirlwindUnk { - /* 0x00 */ char unk_00[0x28]; - /* 0x28 */ f32 unk_28; - /* 0x2C */ f32 unk_2C; - /* 0x30 */ f32 unk_30; -} EffectWhirlwindUnk; +typedef struct ConfettiFXData { + /* 0x00 */ char todo[0]; +} ConfettiFXData; // size = unknown -typedef struct Effect6BFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; - /* 0x10 */ char unk_10[12]; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ char unk_24[8]; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 unk_30; - /* 0x34 */ f32 scale; - /* 0x38 */ f32 unk_38; - /* 0x3C */ s32 unk_3C; - /* 0x40 */ char unk_40[0x4]; -} Effect6BFXData; // size = 0x44 +typedef struct SnowfallFXData { + /* 0x00 */ char todo[0]; +} SnowfallFXData; // size = unknown -typedef struct HuffPuffBreathFXData { - /* 0x00 */ char unk_00[0x18]; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ char unk_24[0x4]; - /* 0x28 */ s32 unk_28; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 unk_30; -} HuffPuffBreathFXData; // size = ? +typedef struct Effect46FXData { + /* 0x00 */ char unk_00[0x24]; + /* 0x04 */ s32 unk_24; +} Effect46FXData; // size = 0x44 typedef struct GatherMagicFXData { /* 0x00 */ s32 unk_00; @@ -711,6 +817,189 @@ typedef struct GatherMagicFXData { /* 0x44 */ s32 unk_44; } GatherMagicFXData; +typedef struct AttackResultTextFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ char unk_2C[0x4]; + /* 0x30 */ f32 unk_30; + /* 0x34 */ f32 unk_34; +} AttackResultTextFXData; // size = 0x38 + +typedef struct SmallGoldSparkleFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s32 unk_20; +} SmallGoldSparkleFXData; // size = 0x24 + +typedef struct FlashingBoxShockwaveFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ char todo[0]; +} FlashingBoxShockwaveFXData; // size = unknown + +typedef struct BalloonFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; +} BalloonFXData; // size = 0x24 + +typedef struct FloatingRockFXData { + /* 0x00 */ char unk_00[0xC]; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ char unk_10[0x20]; + /* 0x30 */ Vec3f unk_30; + /* 0x3C */ char todo[0]; +} FloatingRockFXData; // size = 0x?? + +typedef struct ChompDropFXData { + /* 0x00 */ char todo[0]; +} ChompDropFXData; // size = unknown + +typedef struct QuizmoStageFXData { + /* 0x00 */ char unk_00[0x4]; + /* 0x04 */ s32 vanishTimer; + /* 0x08 */ s32 lifetime; + /* 0x10 */ Vec3f origin; + /* 0x18 */ s32 microphoneRaiseAmt; + /* 0x1C */ s32 rearWallRaiseAmt; + /* 0x20 */ s32 leftWallRaiseAmt; + /* 0x24 */ s32 rightWallRaiseAmt; + /* 0x28 */ s32 podiumRaiseAmt; + /* 0x2C */ s32 lightScrollAmt; + /* 0x30 */ s32 lightScrollIncrement; + /* 0x34 */ s32 lightScrollDelay; + /* 0x38 */ s32 unkEffectMode; + /* 0x3C */ s32 unk_3C; // stage hidden when == 0xFF + /* 0x3C */ char unk_40[0x10]; +} QuizmoStageFXData; // size ~ 0x50 (as allocated on heap) + +typedef struct RadiatingEnergyOrbFXData { + /* 0x00 */ char todo[0]; +} RadiatingEnergyOrbFXData; // size = unknown + +typedef struct QuizmoAnswerFXData { + /* 0x00 */ char todo[0]; +} QuizmoAnswerFXData; // size = unknown + +typedef struct MotionBlurFlameFXData { + /* 0x00 */ char unk_00[0x10]; + /* 0x10 */ Vec3f position; + /* 0x1C */ char todo[0]; +} MotionBlurFlameFXData; // size = unknown + +typedef struct EnergyOrbWaveFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ char unk_10[0x20]; + /* 0x30 */ f32 scale; +} EnergyOrbWaveFXData; // size = unknown + +typedef struct MerlinHouseStarsFXData { + /* 0x00 */ char todo[0]; +} MerlinHouseStarsFXData; // size = unknown + +typedef struct QuizmoAudienceFXData { + /* 0x00 */ char todo[0]; +} QuizmoAudienceFXData; // size = unknown + +typedef struct ButterfliesFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ f32 unk_34; + /* 0x38 */ f32 unk_38; + /* 0x3C */ f32 unk_3C; + /* 0x40 */ f32 unk_40; + /* 0x44 */ f32 unk_44; +} ButterfliesFXData; // size = 0x48 + +typedef struct StatChangeFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 scale; + /* 0x14 */ s32 timeLeft; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 arrowType; + /* 0x20 */ s32 arrowValue; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 scaleX; + /* 0x2C */ f32 scaleY; + /* 0x30 */ f32 unk_30; + /* 0x34 */ f32 unk_34; + /* 0x38 */ f32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; +} StatChangeFXData; + +typedef struct SnakingStaticFXData { + /* 0x00 */ char todo[0]; +} SnakingStaticFXData; // size = unknown + +typedef struct ThunderboltRingFXData { + /* 0x00 */ char unk_00[0x30]; + /* 0x30 */ s32 unk_30; +} ThunderboltRingFXData; // size = ? + +typedef struct SquirtFXData { + /* 0x00 */ char todo[0]; +} SquirtFXData; // size = unknown + +typedef struct WaterBlockFXData { + /* 0x00 */ char todo[0]; +} WaterBlockFXData; // size = unknown + +typedef struct WaterfallFXData { + /* 0x00 */ char todo[0]; +} WaterfallFXData; // size = unknown + +typedef struct WaterFountainFXData { + /* 0x00 */ char unk_00[0x18]; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ char unk_24[0x4]; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ char unk_34[0x4]; + /* 0x38 */ f32 unk_38; +} WaterFountainFXData; // size = ? + +typedef struct UnderwaterFXData { + /* 0x00 */ char todo[0]; +} UnderwaterFXData; // size = unknown + typedef struct LightningBoltFXData { /* 0x00 */ char unk_00[0xC]; /* 0x0C */ f32 unk_0C; @@ -724,7 +1013,122 @@ typedef struct LightningBoltFXData { /* 0x48 */ s32 unk_48; } LightningBoltFXData; // size = ? -typedef struct ColdBreathFXData { +typedef struct WaterSplashFXData { + /* 0x00 */ char todo[0]; +} WaterSplashFXData; // size = unknown + +typedef struct SnowmanDollFXData { + /* 0x00 */ char todo[0]; +} SnowmanDollFXData; // size = unknown + +typedef struct FrightJarFXData { + /* 0x00 */ char todo[0]; +} FrightJarFXData; // size = unknown + +typedef struct StopWatchFXData { + /* 0x00 */ char todo[0]; +} StopWatchFXData; // size = unknown + +typedef struct Effect63FXData { + /* 0x00 */ char todo[0]; +} Effect63FXData; // size = unknown + +typedef struct ThrowSpinyFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ s32 life; + /* 0x2C */ s32 lifeDuration; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 rgba; + /* 0x40 */ f32 unk_40; + /* 0x44 */ f32 unk_44; + /* 0x48 */ f32 gravity; + /* 0x4C */ f32 unk_4C; + /* 0x50 */ f32 yaw; + /* 0x54 */ f32 rotationSpeed; + /* 0x58 */ f32 xScale; + /* 0x5C */ f32 yScale; + /* 0x60 */ u32 state; + /* 0x64 */ s32 unk_64; + /* 0x68 */ s32 timeUntilFall; //how long until spiny falls to ground? +} ThrowSpinyFXData; //sizeof 0x6C + +typedef struct Effect65FXData { + /* 0x00 */ char todo[0]; +} Effect65FXData; // size = unknown + +typedef struct TubbaHeartAttackFXData { + /* 0x00 */ char todo[0]; +} TubbaHeartAttackFXData; // size = unknown + +typedef struct WhirlwindFXData { + /* 0x00 */ char todo[0]; +} WhirlwindFXData; // size = unknown + +typedef struct RedImpactFXData { + /* 0x00 */ char todo[0]; +} RedImpactFXData; // size = unknown + +typedef struct FloatingCloudPuffFXData { + /* 0x00 */ char todo[0]; +} FloatingCloudPuffFXData; // size = unknown + +typedef struct Effect6AFXData { + /* 0x00 */ char todo[0]; +} Effect6AFXData; // size = unknown + +typedef struct EnergyInOutFXData { + /* 0x00 */ char unk_00[0x4]; + /* 0x04 */ Vec3f pos; + /* 0x10 */ char unk_10[0x24]; + /* 0x34 */ f32 scale; + /* 0x38 */ char todo[0]; +} EnergyInOutFXData; // size = unknown + +typedef struct Effect6BFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ char unk_10[12]; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ char unk_24[8]; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ f32 scale; + /* 0x38 */ f32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ char unk_40[0x4]; +} Effect6BFXData; // size = 0x44 + +typedef struct TattleWindowFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; + /* 0x30 */ f32 unk_30; + /* 0x34 */ u8 unk_34; + /* 0x35 */ u8 unk_35; +} TattleWindowFXData; // size = 0x38 + +typedef struct ShinyFlareFXData { + /* 0x00 */ char todo[0]; +} ShinyFlareFXData; // size = unknown + +typedef struct HuffPuffBreathFXData { /* 0x00 */ char unk_00[0x18]; /* 0x18 */ s32 unk_18; /* 0x1C */ s32 unk_1C; @@ -733,30 +1137,26 @@ typedef struct ColdBreathFXData { /* 0x28 */ s32 unk_28; /* 0x2C */ s32 unk_2C; /* 0x30 */ s32 unk_30; +} HuffPuffBreathFXData; // size = ? + +typedef struct ColdBreathFXData { + /* 0x00 */ char unk_00[0x18]; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ char unk_24[0x4]; + /* 0x28 */ s32 unk_28; // TODO: Vec3i color? + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; } ColdBreathFXData; // size = ? -typedef struct LightningFXData { - /* 0x00 */ char unk_00[0x30]; - /* 0x30 */ s32 unk_30; - /* 0x34 */ s32 unk_34; - /* 0x38 */ s32 unk_38; - /* 0x3C */ char unk_3C[0x4]; - /* 0x40 */ s32 unk_40; - /* 0x44 */ s32 unk_44; - /* 0x48 */ s32 unk_48; -} LightningFXData; // size = ? +typedef struct EmbersFXData { + /* 0x00 */ char todo[0]; +} EmbersFXData; // size = unknown -typedef struct Effect6FFXData { - /* 0x00 */ char unk_00[0x4]; - /* 0x04 */ Vec3f pos; - /* 0x10 */ Vec3i rotation; - /* 0x1C */ Vec3i scale; - /* 0x28 */ Vec3i color; - /* 0x34 */ f32 unk_34; - /* 0x38 */ f32 unk_38; - /* 0x3C */ s32 unk_3C; - /* 0x40 */ char unk_40[0x4]; -} Effect6FFXData; // size = 0x44 +typedef struct HieroglyphsFXData { + /* 0x00 */ char todo[0]; +} HieroglyphsFXData; // size = unknown typedef struct MiscParticlesFXData { char unk_00[0x4]; @@ -780,26 +1180,32 @@ typedef struct StaticStatusFXData { /* 0x0C */ f32 unk_0C; } StaticStatusFXData; // size = ? -typedef struct ButterflyFXData { +typedef struct MovingCloudFXData { + /* 0x00 */ char todo[0]; +} MovingCloudFXData; // size = unknown + +typedef struct Effect75FXData { /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk_08; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; /* 0x0C */ f32 unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ f32 unk_20; - /* 0x24 */ s32 unk_24; - /* 0x28 */ f32 unk_28; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 unk_30; - /* 0x34 */ f32 unk_34; - /* 0x38 */ f32 unk_38; - /* 0x3C */ f32 unk_3C; - /* 0x40 */ f32 unk_40; - /* 0x44 */ f32 unk_44; -} ButterflyFXData; // size = 0x48 +} Effect75FXData; // size = ? + +typedef struct Effect76FXData { + /* 0x00 */ char todo[0]; +} Effect76FXData; // size = unknown + +typedef struct FireworkRocketFXData { + /* 0x00 */ char todo[0]; +} FireworkRocketFXData; // size = unknown + +typedef struct PeachStarBeamFXData { + /* 0x00 */ char todo[0]; +} PeachStarBeamFXData; // size = unknown + +typedef struct ChapterChangeFXData { + /* 0x00 */ char todo[0]; +} ChapterChangeFXData; // size = unknown typedef struct IceShardFXData { /* 0x00 */ char unk_00[0x4C]; @@ -809,83 +1215,257 @@ typedef struct IceShardFXData { /* 0x58 */ f32 unk_58; } IceShardFXData; // size = ? -typedef struct Effect46FXData { - /* 0x00 */ char unk_00[0x24]; - /* 0x04 */ s32 unk_24; -} Effect46FXData; // size = 0x44 - -typedef struct ThunderboltRingFXData { - /* 0x00 */ char unk_00[0x30]; - /* 0x30 */ s32 unk_30; -} ThunderboltRingFXData; // size = ? - -typedef struct BulbGlowFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; - /* 0x10 */ char unk_10[0x4]; - /* 0x14 */ s32 unk_14; -} BulbGlowFXData; // size = ? - -typedef struct Effect75FXData { - /* 0x00 */ s32 unk_00; +typedef struct SpiritCardFXData { + /* 0x00 */ char unk_00[0x4]; /* 0x04 */ f32 unk_04; /* 0x08 */ f32 unk_08; /* 0x0C */ f32 unk_0C; -} Effect75FXData; // size = ? + /* 0x10 */ char unk_10[0x10]; + /* 0x20 */ s32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ char unk_28[0xC]; + /* 0x34 */ s8 unk_34; +} SpiritCardFXData; // ? -// fx_quizmo_stage -typedef struct EffectDataQuizStage { - /* 0x00 */ char unk_00[0x4]; - /* 0x04 */ s32 vanishTimer; - /* 0x08 */ s32 lifetime; - /* 0x10 */ Vec3f origin; - /* 0x18 */ s32 microphoneRaiseAmt; - /* 0x1C */ s32 rearWallRaiseAmt; - /* 0x20 */ s32 leftWallRaiseAmt; - /* 0x24 */ s32 rightWallRaiseAmt; - /* 0x28 */ s32 podiumRaiseAmt; - /* 0x2C */ s32 lightScrollAmt; - /* 0x30 */ s32 lightScrollIncrement; - /* 0x34 */ s32 lightScrollDelay; - /* 0x38 */ s32 unkEffectMode; - /* 0x3C */ s32 unk_3C; // stage hidden when == 0xFF - /* 0x3C */ char unk_40[0x10]; -} EffectDataQuizStage; // size ~ 0x50 (as allocated on heap) +typedef struct LilOinkFXData { + /* 0x00 */ char todo[0]; +} LilOinkFXData; // size = unknown -// fx_quizmo_assistant -typedef struct EffectDataQuizVannaT { +typedef struct SomethingRotatingFXData { + /* 0x00 */ char todo[0]; +} SomethingRotatingFXData; // size = unknown + +typedef struct BreakingJunkFXData { + /* 0x00 */ char todo[0]; +} BreakingJunkFXData; // size = unknown + +typedef struct PartnerBuffFXData { + /* 0x00 */ char todo[0]; +} PartnerBuffFXData; // size = unknown + +typedef struct QuizmoAssistantFXData { /* 0x00 */ char unk_00[0x4]; /* 0x04 */ Vec3f position; /* 0x10 */ s32 vanishTimer; /* 0x14 */ s32 lifetime; /* 0x18 */ s32 fadeInAmt; // 0 = all-black, FF = fully-visible /* 0x1C */ s32 anim; -} EffectDataQuizVannaT; // size = 0x20 +} QuizmoAssistantFXData; // size = 0x20 -typedef struct EffectInstanceData { +typedef struct IcePillarFXData { + /* 0x00 */ char todo[0]; +} IcePillarFXData; // size = unknown + +typedef struct SunFXData { + /* 0x00 */ char unk_00[0x3C]; + /* 0x3C */ s32 unk_3C; // set to zero to clear sunlight + /* 0x00 */ char todo[0]; +} SunFXData; // size = unknown + +typedef struct StarSpiritsEnergyFXData { + /* 0x00 */ char unk_00[0x8]; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ char unk_14[0x20]; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char unk_38[0x38]; + /* 0x70 */ s32 unk_70; + /* 0x74 */ s32 unk_74; +} StarSpiritsEnergyFXData; // size = ? + +typedef struct PinkSparklesFXData { + /* 0x00 */ char todo[0]; +} PinkSparklesFXData; // size = unknown + +typedef struct StarOutlineFXData { + /* 0x00 */ char todo[0]; +} StarOutlineFXData; // size = unknown + +typedef struct Effect86FXData { /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; - /* 0x10 */ Vec3f rotation; - /* 0x1C */ Vec3f scale; - /* 0x28 */ f32 unk_28; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ s32 unk_28; /* 0x2C */ s32 unk_2C; - /* 0x30 */ f32 unk_30; + /* 0x30 */ s32 unk_30; /* 0x34 */ f32 unk_34; - /* 0x38 */ f32 unk_38; - /* 0x3C */ s32 unk_3C; - /* 0x40 */ char unk_40[0x24]; - /* 0x64 */ f32 unk_64; - /* 0x68 */ char unk_68[0x18]; -} EffectInstanceData; // size = 0x80 +} Effect86FXData; // size = 0x38 + +typedef union { + s32* any; + struct Effect00FXData* unk_00; + struct BigSmokePuffFXData* bigSmokePuff; + struct Effect02FXData* unk_02; + struct Effect03FXData* unk_03; + struct Effect04FXData* unk_04; + struct Effect05FXData* unk_05; + struct LandingDustFXData* landingDust; + struct WalkingDustFXData* walkingDust; + struct FlowerFXData* flowerSplash; // note: shared + struct FlowerFXData* flowerTrail; // note: shared + struct CloudPuffFXData* cloudPuff; + struct CloudTrailFXData* cloudTrail; + struct FootprintFXData* footprint; + struct FloatingFlowerFXData* floatingFlower; + struct SnowflakeFXData* snowflake; + struct StarFXData* star; + struct EmoteFXData* emote; + struct SparklesFXData* sparkles; + struct ShapeSpellFXData* shapeSpell; + struct GatherEnergyPinkFXData* gatherEnergyPink; + struct DropLeavesFXData* dropLeaves; + struct DustFXData* dust; + struct ShatteringStonesFXData* shatteringStones; + struct SmokeRingFXData* smokeRing; + struct DamageStarsFXData* damageStars; + struct ExplosionFXData* explosion; + struct LensFlareFXData* lensFlare; + struct GotItemOutlineFXData* gotItemOutline; + struct SpikyWhiteAuraFXData* spikyWhiteAura; + struct SmokeImpactFXData* smokeImpact; + struct DamageIndicatorFXData* damageIndicator; + struct PurpleRingFXData* purpleRing; + struct FlameFXData* flame; + struct StarsBurstFXData* starsBurst; + struct StarsShimmerFXData* starsShimmer; + struct RisingBubbleFXData* risingBubble; + struct RingBlastFXData* ringBlast; + struct ShockwaveFXData* shockwave; + struct MusicNoteFXData* musicNote; + struct SmokeBurstFXData* smokeBurst; + struct SweatFXData* sweat; + struct SleepBubbleFXData* sleepBubble; + struct Unk2AFXData* unk_2A; + struct WindyLeavesFXData* windyLeaves; + struct FallingLeavesFXData* fallingLeaves; + struct StarsSpreadFXData* starsSpread; + struct SteamBurstFXData* steamBurst; + struct StarsOrbitingFXData* starsOrbiting; + struct BigSnowflakesFXData* bigSnowflakes; + struct DebuffFXData* debuff; + struct GreenImpactFXData* greenImpact; + struct RadialShimmerFXData* radialShimmer; + struct EndingDecalsFXData* endingDecals; + struct LightRaysFXData* lightRays; + struct LightningFXData* lightning; + struct FireBreathFXData* fireBreath; + struct ShimmerBurstFXData* shimmerBurst; + struct EnergyShockwaveFXData* energyShockwave; + struct ShimmerWaveFXData* shimmerWave; + struct AuraFXData* aura; + struct BulbGlowFXData* bulbGlow; + struct Effect3DFXData* unk_3D; + struct BlastFXData* blast; + struct FireFlowerFXData* fireFlower; + struct RecoverFXData* recover; + struct DisableXFXData* disableX; + struct BombetteBreakingFXData* bombetteBreaking; + struct FireworkFXData* firework; + struct ConfettiFXData* confetti; + struct SnowfallFXData* snowfall; + struct Effect46FXData* unk_46; + struct GatherMagicFXData* gatherMagic; + struct AttackResultTextFXData* attackResultText; + struct SmallGoldSparkleFXData* smallGoldSparkle; + struct FlashingBoxShockwaveFXData* flashingBoxShockwave; + struct BalloonFXData* balloon; + struct FloatingRockFXData* floatingRock; + struct ChompDropFXData* chompDrop; + struct QuizmoStageFXData* quizmoStage; + struct RadiatingEnergyOrbFXData* radiatingEnergyOrb; + struct QuizmoAnswerFXData* quizmoAnswer; + struct MotionBlurFlameFXData* motionBlurFlame; + struct EnergyOrbWaveFXData* energyOrbWave; + struct MerlinHouseStarsFXData* merlinHouseStars; + struct QuizmoAudienceFXData* quizmoAudience; + struct ButterfliesFXData* butterflies; + struct StatChangeFXData* statChange; + struct SnakingStaticFXData* snakingStatic; + struct ThunderboltRingFXData* thunderboltRing; + struct SquirtFXData* squirt; + struct WaterBlockFXData* waterBlock; + struct WaterfallFXData* waterfall; + struct WaterFountainFXData* waterFountain; + struct UnderwaterFXData* underwater; + struct LightningBoltFXData* lightningBolt; + struct WaterSplashFXData* waterSplash; + struct SnowmanDollFXData* snowmanDoll; + struct FrightJarFXData* frightJar; + struct StopWatchFXData* stopWatch; + struct Effect63FXData* unk_63; + struct ThrowSpinyFXData* throwSpiny; + struct Effect65FXData* unk_65; + struct TubbaHeartAttackFXData* tubbaHeartAttack; + struct WhirlwindFXData* whirlwind; + struct RedImpactFXData* redImpact; + struct FloatingCloudPuffFXData* floatingCloudPuff; + struct Effect6AFXData* unk_6A; + struct EnergyInOutFXData* energyInOut; + struct TattleWindowFXData* tattleWindow; + struct ShinyFlareFXData* shinyFlare; + struct HuffPuffBreathFXData* huffPuffBreath; + struct ColdBreathFXData* coldBreath; + struct EmbersFXData* embers; + struct HieroglyphsFXData* hieroglyphs; + struct MiscParticlesFXData* miscParticles; + struct StaticStatusFXData* staticStatus; + struct MovingCloudFXData* movingCloud; + struct Effect75FXData* unk_75; + struct Effect76FXData* unk_76; + struct FireworkRocketFXData* fireworkRocket; + struct PeachStarBeamFXData* peachStarBeam; + struct ChapterChangeFXData* chapterChange; + struct IceShardFXData* iceShard; + struct SpiritCardFXData* spiritCard; + struct LilOinkFXData* lilOink; + struct SomethingRotatingFXData* somethingRotating; + struct BreakingJunkFXData* breakingJunk; + struct PartnerBuffFXData* partnerBuff; + struct QuizmoAssistantFXData* quizmoAssistant; + struct IcePillarFXData* icePillar; + struct SunFXData* sun; + struct StarSpiritsEnergyFXData* starSpiritsEnergy; + struct PinkSparklesFXData* pinkSparkles; + struct StarOutlineFXData* starOutline; + struct Effect86FXData* unk_86; +} EffectData; typedef struct EffectInstance { /* 0x00 */ s32 flags; /* 0x04 */ s32 effectIndex; /* 0x08 */ s32 numParts; - /* 0x0C */ void* data; + /* 0x0C */ EffectData data; /* 0x10 */ struct EffectGraphics* graphics; } EffectInstance; // size = 0x14 +// composite struct for watt effects -- NOT the same as StaticStatusFXData +typedef struct WattEffectData { + /* 0x00 */ s32 flags; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 angle; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ struct EffectInstance* effect1; + /* 0x18 */ struct EffectInstance* effect2; + /* 0x1C */ s32 debuff; +} WattEffectData; + +// seems to actually be PlayerStatus, but it's too large seemingly given the bss padding in UnkWhirlwindEffectFunc.inc.c +typedef struct EffectWhirlwindUnk { + /* 0x00 */ char unk_00[0x28]; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; + /* 0x30 */ f32 unk_30; +} EffectWhirlwindUnk; + typedef struct StarSpiritData { /* 0x00 */ f32 unk_00; /* 0x04 */ f32 unk_04; diff --git a/include/enums.h b/include/enums.h index 662cc83405..e27cd3a0aa 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1416,6 +1416,7 @@ enum EncounterOutcomes { }; enum DecorationIDs { + DECORATION_0 = 0x00000000, DECORATION_GOLDEN_FLAMES = 0x00000001, DECORATION_SWEAT = 0x00000002, DECORATION_SEEING_STARS = 0x00000003, @@ -1424,6 +1425,8 @@ enum DecorationIDs { DECORATION_FIRE_SMOKE_TRAIL = 0x00000006, DECORATION_WHIRLWIND = 0x00000007, DECORATION_STEAM_EMITTER = 0x00000008, + DECORATION_9 = 0x00000009, + DECORATION_A = 0x0000000A, DECORATION_RADIAL_STAR_EMITTER = 0x0000000B, }; @@ -1569,7 +1572,7 @@ enum Events { EVENT_RECOVER_STATUS = 0x00000031, EVENT_32 = 0x00000032, EVENT_33 = 0x00000033, - EVENT_34 = 0x00000034, + EVENT_RECOVER_PARTNER = 0x00000034, EVENT_END_FIRST_STRIKE = 0x00000035, EVENT_LUCKY = 0x00000037, EVENT_BEGIN_FIRST_STRIKE = 0x00000038, @@ -3780,6 +3783,13 @@ typedef enum FoldType { FOLD_TYPE_8 = 0x8, FOLD_TYPE_9 = 0x9, FOLD_TYPE_A = 0xA, + FOLD_TYPE_B = 0xB, + FOLD_TYPE_C = 0xC, + FOLD_TYPE_D = 0xD, + FOLD_TYPE_E = 0xE, + FOLD_TYPE_F = 0xF, + FOLD_TYPE_10 = 0x10, + FOLD_TYPE_11 = 0x11, } FoldType; enum MoveType { diff --git a/include/functions.h b/include/functions.h index ce05b0ef89..3529837e7c 100644 --- a/include/functions.h +++ b/include/functions.h @@ -89,7 +89,7 @@ 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, +s32 draw_ci_image_with_clipping(IMG_PTR raster, s32 width, s32 height, s32 fmt, s32 bitDepth, PAL_PTR palette, s16 posX, s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy, u8 opacity); void render_frame(s32 flag); diff --git a/include/macros.h b/include/macros.h index 411989078b..101c6c6afd 100644 --- a/include/macros.h +++ b/include/macros.h @@ -75,7 +75,8 @@ #define TAU 6.28318f #define PI_S 3.14159f // Shorter PI -#define SPRITE_WORLD_SCALE 0.71428573f +#define SPRITE_WORLD_SCALE (5.0f/7.0f) +#define SPRITE_WORLD_SCALE_D (5.0/7.0) #define BATTLE_ENTITY_ID_MASK 0x800 diff --git a/include/model.h b/include/model.h index 411458105d..c0d4d7ac60 100644 --- a/include/model.h +++ b/include/model.h @@ -81,10 +81,10 @@ typedef struct ModelTreeInfo { typedef struct TextureHandle { /* 0x00 */ Gfx* gfx; /* 0x04 */ TextureHeader header; - /* 0x34 */ s32* raster; - /* 0x38 */ s32* palette; - /* 0x3C */ s32* auxRaster; - /* 0x40 */ s32* auxPalette; + /* 0x34 */ IMG_PTR raster; + /* 0x38 */ PAL_PTR palette; + /* 0x3C */ IMG_PTR auxRaster; + /* 0x40 */ PAL_PTR auxPalette; } TextureHandle; // size = 0x44 typedef struct ModelBlueprint { diff --git a/include/npc.h b/include/npc.h index 531169122c..3979bab903 100644 --- a/include/npc.h +++ b/include/npc.h @@ -359,11 +359,11 @@ void init_npc_list(void); /// Presumably did something once upon a time but got commented out. void npc_iter_no_op(void); -s32 _create_npc(NpcBlueprint* blueprint, s32** animList, s32 skipLoadingAnims); +s32 _create_npc(NpcBlueprint* blueprint, u32** animList, s32 skipLoadingAnims); s32 _create_npc_basic(NpcBlueprint* blueprint); -s32 _create_npc_standard(NpcBlueprint* blueprint, s32** animList); +s32 _create_npc_standard(NpcBlueprint* blueprint, u32** animList); void _create_npc_partner(NpcBlueprint* blueprint); diff --git a/src/16F740.c b/src/16F740.c index 9f48092583..dc80cb8115 100644 --- a/src/16F740.c +++ b/src/16F740.c @@ -424,11 +424,11 @@ void btl_state_update_begin_player_turn(void) { player->koDuration = debuffDuration; if ((s8) debuffDuration > 0) { player->koStatus = 0xD; - ((DisableXFXData*)player->debuffEffect->data)->unk_3C = player->koDuration; + player->debuffEffect->data.disableX->unk_3C = player->koDuration; } else if (koDuration != (s8) debuffDuration) { player->koStatus = 0; player->koDuration = 0; - ((DisableXFXData*)player->debuffEffect->data)->unk_3C = 0; + player->debuffEffect->data.disableX->unk_3C = 0; } } @@ -606,15 +606,11 @@ void btl_state_update_begin_partner_turn(void) { D_8029F254 = 1; D_8029F258 = 20; if (partner->koDuration > 0) { - // TODO: We believe these are DebuffFXData*, - // but unk_3C is a u8 for these and we need it to be an s32... - ((s32*)(partner->debuffEffect->data))[15] = partner->koDuration; + partner->debuffEffect->data.disableX->unk_3C = partner->koDuration; } else { partner->koStatus = 0; - dispatch_event_partner(EVENT_34); - // TODO: We believe these are DebuffFXData*, - // but unk_3C is a u8 for these and we need it to be an s32... - ((s32*)(partner->debuffEffect->data))[15] = 0; + dispatch_event_partner(EVENT_RECOVER_PARTNER); + partner->debuffEffect->data.disableX->unk_3C = 0; gBattleStatus.flags2 |= BS_FLAGS2_8; } } @@ -814,7 +810,7 @@ void btl_state_update_victory(void) { gBattleStatus.flags1 &= ~BS_FLAGS1_8; if (player->koStatus == STATUS_DAZE) { - dispatch_event_player(EVENT_34); + dispatch_event_player(EVENT_RECOVER_PARTNER); gBattleState2 = BATTLE_STATE2_PLAYER_DEFEATED; } player->debuff = 0; @@ -823,11 +819,11 @@ void btl_state_update_victory(void) { player->transStatus = 0; player->koStatus = 0; player->koDuration = 0; - ((DisableXFXData*)player->debuffEffect->data)->unk_3C = 0; + player->debuffEffect->data.disableX->unk_3C = 0; if (partner != NULL) { if (partner->koStatus == STATUS_DAZE) { - dispatch_event_partner(EVENT_34); + dispatch_event_partner(EVENT_RECOVER_PARTNER); gBattleState2 = BATTLE_STATE2_PLAYER_DEFEATED; } partner->debuff = 0; @@ -836,7 +832,7 @@ void btl_state_update_victory(void) { partner->transStatus = 0; partner->koStatus = 0; partner->koDuration = 0; - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = 0; + partner->debuffEffect->data.disableX->unk_3C = 0; } break; case BATTLE_STATE2_PLAYER_DEFEATED: @@ -984,7 +980,7 @@ void btl_state_update_end_training_battle(void) { gBattleStatus.flags2 &= ~BS_FLAGS2_10; if (player->koStatus == STATUS_DAZE) { - dispatch_event_player(EVENT_34); + dispatch_event_player(EVENT_RECOVER_PARTNER); gBattleState2 = BATTLE_STATE2_PLAYER_DEFEATED; } player->debuff = 0; @@ -993,10 +989,10 @@ void btl_state_update_end_training_battle(void) { player->transStatus = 0; player->koStatus = 0; player->koDuration = 0; - ((DisableXFXData*)player->debuffEffect->data)->unk_3C = 0; + player->debuffEffect->data.disableX->unk_3C = 0; if (partner != NULL) { if (partner->koStatus == STATUS_DAZE) { - dispatch_event_partner(EVENT_34); + dispatch_event_partner(EVENT_RECOVER_PARTNER); gBattleState2 = BATTLE_STATE2_PLAYER_DEFEATED; } partner->debuff = 0; @@ -1005,7 +1001,7 @@ void btl_state_update_end_training_battle(void) { partner->transStatus = 0; partner->koStatus = 0; partner->koDuration = 0; - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = 0; + partner->debuffEffect->data.disableX->unk_3C = 0; } break; case BATTLE_STATE2_PLAYER_DEFEATED: @@ -1274,7 +1270,7 @@ void btl_state_update_run_away(void) { player->state.varTable[0] = 100; } battleStatus->battlePhase = 3; - script = start_script(PlayerScriptDispatcher, EVT_PRIORITY_A, 0); + script = start_script(&PlayerScriptDispatcher, EVT_PRIORITY_A, 0); player->takeTurnScript = script; player->takeTurnID = script->id; script->owner1.actorID = ACTOR_PLAYER; @@ -1353,7 +1349,7 @@ void btl_state_update_run_away(void) { switch (gBattleState2) { case BATTLE_STATE2_UNK_3: battleStatus->battlePhase = 7; - script = start_script(PlayerScriptDispatcher, EVT_PRIORITY_A, 0); + script = start_script(&PlayerScriptDispatcher, EVT_PRIORITY_A, 0); player->takeTurnScript = script; player->takeTurnID = script->id; script->owner1.actorID = ACTOR_PLAYER; @@ -1410,7 +1406,7 @@ void btl_state_update_defeat(void) { remove_status_debuff(player->hudElementDataIndex); player->koStatus = 0; player->koDuration = 0; - ((DisableXFXData*)player->debuffEffect->data)->unk_3C = 0; + player->debuffEffect->data.disableX->unk_3C = 0; } btl_cam_use_preset(BTL_CAM_PRESET_25); diff --git a/src/16c8e0.c b/src/16c8e0.c index ba9351a7c4..a935c0d075 100644 --- a/src/16c8e0.c +++ b/src/16c8e0.c @@ -1026,7 +1026,7 @@ void btl_delete_actor(Actor* actor) { remove_effect(actor->debuffEffect); if (actor->unk_200 != NULL) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_24 = 0; + actor->unk_200->data.attackResultText->unk_24 = 0; } battleStatus = &gBattleStatus; @@ -1069,7 +1069,7 @@ void btl_delete_player_actor(Actor* player) { remove_effect(player->debuffEffect); if (player->unk_200 != NULL) { - ((AttackResultTextFXData*)player->unk_200->data)->unk_24 = 0; + player->unk_200->data.attackResultText->unk_24 = 0; } heap_free(movement); diff --git a/src/182B30.c b/src/182B30.c index d3053d8e13..233de957b2 100644 --- a/src/182B30.c +++ b/src/182B30.c @@ -1946,40 +1946,40 @@ void func_8025CEC8(ActorPart* actorPart) { decorationTable = actorPart->decorationTable; for (i = 0; i < ARRAY_COUNT(decorationTable->decorationType); i++) { switch (decorationTable->decorationType[i]) { - case 0: + case DECORATION_0: func_8025D150(actorPart, i); break; - case 1: + case DECORATION_GOLDEN_FLAMES: func_8025D160(actorPart, i); break; - case 2: + case DECORATION_SWEAT: func_8025D2B0(actorPart, i); break; - case 3: + case DECORATION_SEEING_STARS: func_8025D3CC(actorPart, i); break; - case 4: + case DECORATION_RED_FLAMES: func_8025D4C8(actorPart, i); break; - case 5: + case DECORATION_GREY_SMOKE_TRAIL: func_8025D640(actorPart, i); break; - case 6: + case DECORATION_FIRE_SMOKE_TRAIL: func_8025D71C(actorPart, i); break; - case 7: + case DECORATION_WHIRLWIND: func_8025D830(actorPart, i); break; - case 8: + case DECORATION_STEAM_EMITTER: func_8025D90C(actorPart, i); break; - case 9: + case DECORATION_9: func_8025DA68(actorPart, i); break; - case 10: + case DECORATION_A: func_8025DBD0(actorPart, i); break; - case 11: + case DECORATION_RADIAL_STAR_EMITTER: func_8025DD60(actorPart, i); break; } @@ -1987,45 +1987,44 @@ void func_8025CEC8(ActorPart* actorPart) { } } - void _remove_part_decoration(ActorPart* part, s32 decorationIndex) { DecorationTable* decorationTable = part->decorationTable; switch (decorationTable->decorationType[decorationIndex]) { - case 0: + case DECORATION_0: func_8025D158(part, decorationIndex); break; - case 1: + case DECORATION_GOLDEN_FLAMES: func_8025D290(part, decorationIndex); break; - case 2: + case DECORATION_SWEAT: func_8025D3C4(part, decorationIndex); break; - case 3: + case DECORATION_SEEING_STARS: func_8025D4A0(part, decorationIndex); break; - case 4: + case DECORATION_RED_FLAMES: func_8025D620(part, decorationIndex); break; - case 5: + case DECORATION_GREY_SMOKE_TRAIL: func_8025D6FC(part, decorationIndex); break; - case 6: + case DECORATION_FIRE_SMOKE_TRAIL: func_8025D810(part, decorationIndex); break; - case 7: + case DECORATION_WHIRLWIND: func_8025D8EC(part, decorationIndex); break; - case 8: + case DECORATION_STEAM_EMITTER: func_8025DA60(part, decorationIndex); break; - case 9: + case DECORATION_9: func_8025DBC8(part, decorationIndex); break; - case 10: + case DECORATION_A: func_8025DD40(part, decorationIndex); break; - case 11: + case DECORATION_RADIAL_STAR_EMITTER: func_8025DE88(part, decorationIndex); break; } @@ -2039,11 +2038,38 @@ void func_8025D150(ActorPart* actorPart, s32 i) { void func_8025D158(ActorPart* part, s32 decorationIndex) { } +// float reg swapping +#ifdef NON_MATCHING +void func_8025D160(ActorPart* arg0, s32 arg1) { + DecorationTable* table = arg0->decorationTable; + EffectInstance* effect; + AuraFXData* data; + + switch (table->unk_8BC[arg1]) { + case 0: + fx_aura(3, arg0->currentPos.x, arg0->currentPos.y, arg0->currentPos.z, 0.4f, &table->unk_8B0[arg1]); + table->unk_8BC[arg1] = 1; + table->unk_8C6[arg1].unk00 = 0x28; + table->unk_8C6[arg1].unk02 = 0x28; + table->unk_8C6[arg1].unk04 = 0; + break; + case 1: + effect = table->unk_8B0[arg1]; + data = effect->data.aura; + data->posA.x = arg0->currentPos.x + table->unk_8C6[arg1].unk04; + data->posA.y = arg0->currentPos.y; + data->posA.z = arg0->currentPos.z; + effect->data.aura->scale.x = table->unk_8C6[arg1].unk00 / 100.0f; + effect->data.aura->scale.y = table->unk_8C6[arg1].unk02 / 100.0f; + break; + } +} +#else INCLUDE_ASM(s32, "182B30", func_8025D160); +#endif void func_8025D290(ActorPart* part, s32 decorationIndex) { - // TODO cast to appropriate struct data type once we know what it is - ((s32*) part->decorationTable->unk_8B0[decorationIndex]->data)[11] = 5; + part->decorationTable->unk_8B0[decorationIndex]->data.aura->fadeTime = 5; } INCLUDE_ASM(s32, "182B30", func_8025D2B0); @@ -2057,11 +2083,43 @@ void func_8025D4A0(ActorPart* part, s32 decorationIndex) { remove_effect(part->decorationTable->unk_8B0[decorationIndex]); } +// float reg swapping +#ifdef NON_MATCHING +void func_8025D4C8(ActorPart* arg0, s32 arg1) { + DecorationTable* decor = arg0->decorationTable; + EffectInstance* effect; + AuraFXData* data; + + switch (decor->unk_8BC[arg1]) { + case 0: + fx_aura(1, arg0->currentPos.x, arg0->currentPos.y, arg0->currentPos.z, 0.4f, &decor->unk_8B0[arg1]); + decor->unk_8BC[arg1] = 1; + decor->unk_8C6[arg1].unk00 = 0x28; + decor->unk_8C6[arg1].unk02 = 0x28; + decor->unk_8C6[arg1].unk04 = 0xFF; + decor->unk_8C6[arg1].unk06 = 0; + decor->unk_8C6[arg1].unk08 = 0xFF; + decor->unk_8C6[arg1].unk0A = 0; + decor->unk_8C6[arg1].unk0C = 0; + // fall through + case 1: + effect = decor->unk_8B0[arg1]; + data = effect->data.aura; + data->posA.x = arg0->currentPos.x; + data->posA.y = arg0->currentPos.y; + data->posA.z = arg0->currentPos.z + decor->unk_8C6[arg1].unk06; + effect->data.aura->scale.x = decor->unk_8C6[arg1].unk00 / 100.0f; + effect->data.aura->scale.y = decor->unk_8C6[arg1].unk02 / 100.0f; + effect->data.aura->primA = decor->unk_8C6[arg1].unk04; + break; + } +} +#else INCLUDE_ASM(s32, "182B30", func_8025D4C8); +#endif void func_8025D620(ActorPart* part, s32 decorationIndex) { - // TODO cast to appropriate struct data type once we know what it is - ((s32*) part->decorationTable->unk_8B0[decorationIndex]->data)[11] = 5; + part->decorationTable->unk_8B0[decorationIndex]->data.aura->fadeTime = 5; } INCLUDE_ASM(s32, "182B30", func_8025D640); @@ -2095,8 +2153,7 @@ void func_8025DBC8(ActorPart* part, s32 decorationIndex) { INCLUDE_ASM(s32, "182B30", func_8025DBD0); void func_8025DD40(ActorPart* part, s32 decorationIndex) { - // TODO cast to appropriate struct data type once we know what it is - ((s32*) part->decorationTable->unk_8B0[decorationIndex]->data)[11] = 5; + part->decorationTable->unk_8B0[decorationIndex]->data.aura->fadeTime = 5; } INCLUDE_ASM(s32, "182B30", func_8025DD60); diff --git a/src/18F340.c b/src/18F340.c index 3e25f42816..b6f3565c4b 100644 --- a/src/18F340.c +++ b/src/18F340.c @@ -7,8 +7,8 @@ extern HudScript HES_HPDrain; extern s32 D_8029FB90; extern f32 D_8029FB94; -extern EffectInstance* D_8029FB98; -extern EffectInstance* D_8029FB9C; +extern EffectInstance* BattleMerleeOrbEffect; +extern EffectInstance* BattleMerleeWaveEffect; extern s32 D_8029FBA0; extern s16 D_8029FBA4; extern s32 D_8029FBA8; @@ -242,7 +242,7 @@ ApiStatus func_802613A8(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -ApiStatus func_802613BC(Evt* script, s32 isInitialCall) { +ApiStatus PlayBattleMerleeGatherFX(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 var1 = evt_get_variable(script, *args++); s32 var2 = evt_get_variable(script, *args++); @@ -252,7 +252,7 @@ ApiStatus func_802613BC(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -ApiStatus func_80261478(Evt* script, s32 isInitialCall) { +ApiStatus PlayBattleMerleeOrbFX(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 var1 = evt_get_variable(script, *args++); s32 var2 = evt_get_variable(script, *args++); @@ -262,7 +262,7 @@ ApiStatus func_80261478(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -ApiStatus func_80261530(Evt* script, s32 isInitialCall) { +ApiStatus BattleMerleeFadeStageToBlack(Evt* script, s32 isInitialCall) { if (isInitialCall) { mdl_set_all_fog_mode(1); *D_801512F0 = 1; @@ -271,13 +271,16 @@ ApiStatus func_80261530(Evt* script, s32 isInitialCall) { } set_background_color_blend(0, 0, 0, ((25 - script->functionTemp[0]) * 10) & 0xFE); - script->functionTemp[0]--; - do {} while(0); // TODO required to match - return (script->functionTemp[0] == 0) * ApiStatus_DONE2; + + if (script->functionTemp[0] == 0) { + return ApiStatus_DONE2; + } else { + return ApiStatus_BLOCK; + } } -ApiStatus func_802615C8(Evt* script, s32 isInitialCall) { +ApiStatus BattleMerleeFadeStageFromBlack(Evt* script, s32 isInitialCall) { if (isInitialCall) { script->functionTemp[0] = 25; } @@ -293,7 +296,7 @@ ApiStatus func_802615C8(Evt* script, s32 isInitialCall) { return ApiStatus_BLOCK; } -ApiStatus func_80261648(Evt* script, s32 isInitialCall) { +ApiStatus BattleFadeInMerlee(Evt* script, s32 isInitialCall) { Npc* merlee = get_npc_unsafe(NPC_BTL_MERLEE); if (isInitialCall) { @@ -310,7 +313,7 @@ ApiStatus func_80261648(Evt* script, s32 isInitialCall) { return ApiStatus_BLOCK; } -ApiStatus func_802616B4(Evt* script, s32 isInitialCall) { +ApiStatus BattleFadeOutMerlee(Evt* script, s32 isInitialCall) { Npc* merlee = get_npc_unsafe(NPC_BTL_MERLEE); merlee->alpha -= 17; @@ -322,15 +325,15 @@ ApiStatus func_802616B4(Evt* script, s32 isInitialCall) { return ApiStatus_BLOCK; } -ApiStatus func_802616F4(Evt* script, s32 isInitialCall) { +ApiStatus BattleMerleeUpdateFX(Evt* script, s32 isInitialCall) { Npc* merlee = get_npc_unsafe(NPC_BTL_MERLEE); - EffectInstanceData* effectInstanceData; + EnergyOrbWaveFXData* data; if (isInitialCall) { script->functionTemp[1] = 0; D_8029FB94 = merlee->pos.y; - D_8029FB98 = fx_energy_orb_wave(0, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.4f, 0); - D_8029FB9C = fx_energy_orb_wave(3, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.00001f, 0); + BattleMerleeOrbEffect = fx_energy_orb_wave(0, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.4f, 0); + BattleMerleeWaveEffect = fx_energy_orb_wave(3, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.00001f, 0); D_8029FBA4 = 0; D_8029FB90 = 12; sfx_play_sound(SOUND_2074); @@ -340,37 +343,37 @@ ApiStatus func_802616F4(Evt* script, s32 isInitialCall) { script->functionTemp[1] += 10; script->functionTemp[1] = clamp_angle(script->functionTemp[1]); - effectInstanceData = D_8029FB98->data; - effectInstanceData->pos.x = merlee->pos.x; - effectInstanceData->pos.y = merlee->pos.y + 16.0f; - effectInstanceData->pos.z = merlee->pos.z; + data = BattleMerleeOrbEffect->data.energyOrbWave; + data->pos.x = merlee->pos.x; + data->pos.y = merlee->pos.y + 16.0f; + data->pos.z = merlee->pos.z; - effectInstanceData = D_8029FB9C->data; - effectInstanceData->pos.x = merlee->pos.x; - effectInstanceData->pos.y = merlee->pos.y + 16.0f; - effectInstanceData->pos.z = merlee->pos.z + 5.0f; + data = BattleMerleeWaveEffect->data.energyOrbWave; + data->pos.x = merlee->pos.x; + data->pos.y = merlee->pos.y + 16.0f; + data->pos.z = merlee->pos.z + 5.0f; if (D_8029FBA4 == 2) { - ((EffectInstanceData*)D_8029FB98->data)->unk_30 = 0.00001f; - ((EffectInstanceData*)D_8029FB9C->data)->unk_30 = 0.00001f; - D_8029FB98->flags |= 0x10; - D_8029FB9C->flags |= 0x10; + BattleMerleeOrbEffect->data.energyOrbWave->scale = 0.00001f; + BattleMerleeWaveEffect->data.energyOrbWave->scale = 0.00001f; + BattleMerleeOrbEffect->flags |= 0x10; + BattleMerleeWaveEffect->flags |= 0x10; return ApiStatus_DONE1; } if (D_8029FBA4 == 1) { - effectInstanceData = D_8029FB98->data; - effectInstanceData->unk_30 += 0.35; - if (effectInstanceData->unk_30 > 3.5) { - effectInstanceData->unk_30 = 3.5f; + data = BattleMerleeOrbEffect->data.energyOrbWave; + data->scale += 0.35; + if (data->scale > 3.5) { + data->scale = 3.5f; } if (D_8029FB90 != 0) { D_8029FB90--; } else { - effectInstanceData = D_8029FB9C->data; - effectInstanceData->unk_30 += 0.5; - if (effectInstanceData->unk_30 > 5.0) { + data = BattleMerleeWaveEffect->data.energyOrbWave; + data->scale += 0.5; + if (data->scale > 5.0) { D_8029FBA4 = 2; } } diff --git a/src/190B20.c b/src/190B20.c index d8dc8a73c9..862cb1e7d7 100644 --- a/src/190B20.c +++ b/src/190B20.c @@ -1676,7 +1676,7 @@ s32 inflict_status(Actor* target, s32 statusTypeKey, s32 duration) { if (target->debuff != statusTypeKey) { target->status = statusTypeKey; } - ((DisableXFXData*)target->debuffEffect->data)->unk_3C = 0; + target->debuffEffect->data.disableX->unk_3C = 0; target->debuff = statusTypeKey; target->debuffDuration = duration; if ((s8)duration > 9) { @@ -1796,68 +1796,67 @@ s32 get_defense(Actor* actor, s32* defenseTable, s32 elementFlags) { s32 minDefense = 255; if (defenseTable != NULL) { - if (elementFlags & 2) { + if (elementFlags & DAMAGE_TYPE_FIRE) { defense = lookup_defense(defenseTable, ELEMENT_FIRE); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 4) { + if (elementFlags & DAMAGE_TYPE_WATER) { defense = lookup_defense(defenseTable, ELEMENT_WATER); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 8) { + if (elementFlags & DAMAGE_TYPE_ICE) { defense = lookup_defense(defenseTable, ELEMENT_ICE); if (defense < minDefense) { minDefense = defense; } } - // ELEMENT_MYSTERY missing? - if (elementFlags & 0x10) { + if (elementFlags & DAMAGE_TYPE_MAGIC) { defense = lookup_defense(defenseTable, ELEMENT_MAGIC); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x40) { + if (elementFlags & DAMAGE_TYPE_SMASH) { defense = lookup_defense(defenseTable, ELEMENT_HAMMER); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x80) { + if (elementFlags & DAMAGE_TYPE_JUMP) { defense = lookup_defense(defenseTable, ELEMENT_JUMP); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x100) { + if (elementFlags & DAMAGE_TYPE_COSMIC) { defense = lookup_defense(defenseTable, ELEMENT_COSMIC); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x200) { + if (elementFlags & DAMAGE_TYPE_BLAST) { defense = lookup_defense(defenseTable, ELEMENT_BLAST); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x20) { + if (elementFlags & DAMAGE_TYPE_ELECTRIC) { defense = lookup_defense(defenseTable, ELEMENT_SHOCK); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x800) { + if (elementFlags & DAMAGE_TYPE_QUAKE) { defense = lookup_defense(defenseTable, ELEMENT_QUAKE); if (defense < minDefense) { minDefense = defense; } } - if (elementFlags & 0x40000) { + if (elementFlags & DAMAGE_TYPE_THROW) { defense = lookup_defense(defenseTable, ELEMENT_THROW); if (defense < minDefense) { minDefense = defense; @@ -1873,7 +1872,7 @@ s32 get_defense(Actor* actor, s32* defenseTable, s32 elementFlags) { } } - if (elementFlags & 0x8000000) { // "ignore defense" flag + if (elementFlags & DAMAGE_TYPE_IGNORE_DEFENSE) { if (minDefense == 99) { // Immune minDefense = 999; @@ -1896,8 +1895,7 @@ void func_802664DC(f32 x, f32 y, f32 z, s32 attack, s32 a) { if (i > 0) { i = 0; - // TODO use actual effect instance struct when we know what it is - ((s32*)gDamageCountEffects[i]->data)[12] = 5; + gDamageCountEffects[i]->data.damageIndicator->effectDurationTimer = 5; gDamageCountEffects[i] = NULL; } @@ -1922,8 +1920,7 @@ void show_damage_popup(f32 x, f32 y, f32 z, s32 attack, s32 a) { if (i > ARRAY_COUNT(gDamageCountEffects) - 1) { i = 0; - // TODO use actual effect instance struct when we know what it is - ((s32*)gDamageCountEffects[i]->data)[12] = 5; + gDamageCountEffects[i]->data.damageIndicator->effectDurationTimer = 5; gDamageCountEffects[i] = NULL; } @@ -1944,8 +1941,7 @@ void func_80266684(void) { if (gDamageCountEffects[i] != NULL) { gDamageCountTimers[i]--; if (gDamageCountTimers[i] == 0) { - // TODO use actual effect instance struct when we know what it is - ((s32**)gDamageCountEffects[i])[3][12] = 5; + gDamageCountEffects[i]->data.damageIndicator->effectDurationTimer = 5; gDamageCountEffects[i] = NULL; } } @@ -2070,12 +2066,12 @@ void func_80266978(void) { if (actor != NULL) { if (actor->unk_205 == 0x3C) { if (actor->unk_200 != 0) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_24 = 0; + actor->unk_200->data.attackResultText->unk_24 = 0; } } if (actor->unk_205 == 5) { if (actor->unk_200 != 0) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_18 = 0; + actor->unk_200->data.attackResultText->unk_18 = 0; actor->unk_200 = NULL; } } @@ -2089,12 +2085,12 @@ void func_80266978(void) { if (actor != NULL) { if (actor->unk_205 == 60) { if (actor->unk_200 != NULL) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_24 = 0; + actor->unk_200->data.attackResultText->unk_24 = 0; } } if (actor->unk_205 == 5) { if (actor->unk_200 != NULL) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_18 = 0; + actor->unk_200->data.attackResultText->unk_18 = 0; actor->unk_200 = NULL; } } @@ -2107,12 +2103,12 @@ void func_80266978(void) { if (actor != NULL) { if (actor->unk_205 == 60) { if (actor->unk_200 != NULL) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_24 = 0; + actor->unk_200->data.attackResultText->unk_24 = 0; } } if (actor->unk_205 == 5) { if (actor->unk_200 != NULL) { - ((AttackResultTextFXData*)actor->unk_200->data)->unk_18 = 0; + actor->unk_200->data.attackResultText->unk_18 = 0; actor->unk_200 = NULL; } } @@ -2524,7 +2520,7 @@ void btl_update_ko_status(void) { player->koDuration = player->debuffDuration; if (player->koDuration > 0) { player->koStatus = STATUS_DAZE; - ((DisableXFXData*)player->debuffEffect->data)->unk_3C = player->koDuration; + player->debuffEffect->data.disableX->unk_3C = player->koDuration; if (koDuration == 0) { sfx_play_sound(SOUND_2107); @@ -2539,7 +2535,7 @@ void btl_update_ko_status(void) { if (partner->koDuration > 0) { partner->koStatus = STATUS_DAZE; - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = partner->koDuration; + partner->debuffEffect->data.disableX->unk_3C = partner->koDuration; } } @@ -2550,7 +2546,7 @@ void btl_update_ko_status(void) { enemy->koDuration = enemy->debuffDuration; if (enemy->koDuration > 0) { enemy->koStatus = STATUS_DAZE; - ((DisableXFXData*)enemy->debuffEffect->data)->unk_3C = enemy->koDuration; + enemy->debuffEffect->data.disableX->unk_3C = enemy->koDuration; } } } diff --git a/src/19FAF0.c b/src/19FAF0.c index 93f9de5387..f9a24bc303 100644 --- a/src/19FAF0.c +++ b/src/19FAF0.c @@ -18,36 +18,36 @@ ApiStatus func_80271258(Evt* script, s32 isInitialCall) { ApiStatus func_802712A0(Evt* script, s32 isInitialCall) { EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]); - ((DebuffFXData*)debuffEffect->data)->unk_38 = 200; - ((DebuffFXData*)debuffEffect->data)->unk_39 = 120; - ((DebuffFXData*)debuffEffect->data)->unk_3A = 0; - ((DebuffFXData*)debuffEffect->data)->unk_3B = 234; - ((DebuffFXData*)debuffEffect->data)->unk_3C = 193; - ((DebuffFXData*)debuffEffect->data)->unk_3D = 0; + debuffEffect->data.debuff->unk_38 = 200; + debuffEffect->data.debuff->unk_39 = 120; + debuffEffect->data.debuff->unk_3A = 0; + debuffEffect->data.debuff->unk_3B = 234; + debuffEffect->data.debuff->unk_3C = 193; + debuffEffect->data.debuff->unk_3D = 0; return ApiStatus_DONE2; } ApiStatus func_80271328(Evt* script, s32 isInitialCall) { EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]); - ((DebuffFXData*)debuffEffect->data)->unk_38 = 60; - ((DebuffFXData*)debuffEffect->data)->unk_39 = 160; - ((DebuffFXData*)debuffEffect->data)->unk_3A = 0; - ((DebuffFXData*)debuffEffect->data)->unk_3B = 90; - ((DebuffFXData*)debuffEffect->data)->unk_3C = 240; - ((DebuffFXData*)debuffEffect->data)->unk_3D = 0; + debuffEffect->data.debuff->unk_38 = 60; + debuffEffect->data.debuff->unk_39 = 160; + debuffEffect->data.debuff->unk_3A = 0; + debuffEffect->data.debuff->unk_3B = 90; + debuffEffect->data.debuff->unk_3C = 240; + debuffEffect->data.debuff->unk_3D = 0; return ApiStatus_DONE2; } ApiStatus func_802713B0(Evt* script, s32 isInitialCall) { EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]); - ((DebuffFXData*)debuffEffect->data)->unk_38 = 205; - ((DebuffFXData*)debuffEffect->data)->unk_39 = 0; - ((DebuffFXData*)debuffEffect->data)->unk_3A = 40; - ((DebuffFXData*)debuffEffect->data)->unk_3B = 205; - ((DebuffFXData*)debuffEffect->data)->unk_3C = 32; - ((DebuffFXData*)debuffEffect->data)->unk_3D = 242; + debuffEffect->data.debuff->unk_38 = 205; + debuffEffect->data.debuff->unk_39 = 0; + debuffEffect->data.debuff->unk_3A = 40; + debuffEffect->data.debuff->unk_3B = 205; + debuffEffect->data.debuff->unk_3C = 32; + debuffEffect->data.debuff->unk_3D = 242; return ApiStatus_DONE2; } diff --git a/src/1A5830.c b/src/1A5830.c index ac54d0ba8c..4001439aa6 100644 --- a/src/1A5830.c +++ b/src/1A5830.c @@ -2593,7 +2593,7 @@ ApiStatus ClearStatusEffects(Evt* script, s32 isInitialCall) { actor->koStatus = 0; actor->koDuration = 0; - ((DisableXFXData*)actor->debuffEffect->data)->unk_3C = 0; + actor->debuffEffect->data.disableX->unk_3C = 0; actor->attackBoost = 0; actor->defenseBoost = 0; actor->isGlowing = 0; diff --git a/src/1AF120.c b/src/1AF120.c index d2970912b1..8063e90254 100644 --- a/src/1AF120.c +++ b/src/1AF120.c @@ -23,9 +23,9 @@ ApiStatus AddEffectOffset(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); - ((EffectInstanceData*)effect->data)->pos.x += evt_get_variable(script, *args++); - ((EffectInstanceData*)effect->data)->pos.y += evt_get_variable(script, *args++); - ((EffectInstanceData*)effect->data)->pos.z += evt_get_variable(script, *args++); + effect->data.flashingBoxShockwave->pos.x += evt_get_variable(script, *args++); + effect->data.flashingBoxShockwave->pos.y += evt_get_variable(script, *args++); + effect->data.flashingBoxShockwave->pos.z += evt_get_variable(script, *args++); return ApiStatus_DONE2; } diff --git a/src/1a1f0_len_5390.c b/src/1a1f0_len_5390.c index 13f5196fb8..635c27deeb 100644 --- a/src/1a1f0_len_5390.c +++ b/src/1a1f0_len_5390.c @@ -11,8 +11,8 @@ extern s8 D_8009A654; extern s16 D_8009A668; extern s32 D_800A0BA0; extern f32 D_800A0BA4; -extern EffectInstance* D_800A0BA8; -extern EffectInstance* D_800A0BAC; +extern EffectInstance* WorldMerleeOrbEffect; +extern EffectInstance* WorldMerleeWaveEffect; s32 get_defeated(s32 mapID, s32 encounterID) { EncounterStatus* currentEncounter = &gCurrentEncounter; @@ -45,14 +45,24 @@ ApiStatus ShowMerleeCoinMessage(Evt* script, s32 isInitialCall) { if (isInitialCall) { show_merlee_message(0, 60); } - return (is_merlee_message_done() == 0) * ApiStatus_DONE2; + + if (is_merlee_message_done()) { + return ApiStatus_BLOCK; + } else { + return ApiStatus_DONE2; + } } ApiStatus ShowMerleeRanOutMessage(Evt* script, s32 isInitialCall) { if (isInitialCall) { show_merlee_message(1, 60); } - return (is_merlee_message_done() == 0) * ApiStatus_DONE2; + + if (is_merlee_message_done()) { + return ApiStatus_BLOCK; + } else { + return ApiStatus_DONE2; + } } ApiStatus FadeBackgroundToBlack(Evt* script, s32 isInitialCall) { @@ -65,12 +75,12 @@ ApiStatus FadeBackgroundToBlack(Evt* script, s32 isInitialCall) { set_background_color_blend(0, 0, 0, ((25 - script->functionTemp[0]) * 10) & 254); script->functionTemp[0]--; - do {} while (0); if (script->functionTemp[0] == 0) { return ApiStatus_DONE2; + } else { + return ApiStatus_BLOCK; } - return ApiStatus_BLOCK; } ApiStatus UnfadeBackgroundFromBlack(Evt* script, s32 isInitialCall) { @@ -102,8 +112,9 @@ ApiStatus FadeInMerlee(Evt* script, s32 isInitialCall) { if ((u32)(npc->alpha & 0xFF) >= 0xFF) { npc->alpha = 0xFF; return ApiStatus_DONE1; + } else { + return ApiStatus_BLOCK; } - return ApiStatus_BLOCK; } ApiStatus FadeOutMerlee(Evt* script, s32 isInitialCall) { @@ -113,21 +124,21 @@ ApiStatus FadeOutMerlee(Evt* script, s32 isInitialCall) { if (npc->alpha == 0) { npc->alpha = 0; return ApiStatus_DONE1; + } else { + return ApiStatus_BLOCK; } - - return ApiStatus_BLOCK; } -// same as func_802616F4 aside from syms +// same as BattleMerleeUpdateFX aside from syms ApiStatus MerleeUpdateFX(Evt* script, s32 isInitialCall) { Npc* merlee = get_npc_unsafe(NPC_BTL_MERLEE); - EffectInstanceData* effectInstanceData; + EnergyOrbWaveFXData* effectData; if (isInitialCall) { script->functionTemp[1] = 0; D_800A0BA4 = merlee->pos.y; - D_800A0BA8 = fx_energy_orb_wave(0, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.4f, 0); - D_800A0BAC = fx_energy_orb_wave(3, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.00001f, 0); + WorldMerleeOrbEffect = fx_energy_orb_wave(0, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.4f, 0); + WorldMerleeWaveEffect = fx_energy_orb_wave(3, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.00001f, 0); D_800A0BB8 = 0; D_800A0BA0 = 12; sfx_play_sound(SOUND_2074); @@ -138,37 +149,37 @@ ApiStatus MerleeUpdateFX(Evt* script, s32 isInitialCall) { script->functionTemp[1] += 10; script->functionTemp[1] = clamp_angle(script->functionTemp[1]); - effectInstanceData = D_800A0BA8->data; - effectInstanceData->pos.x = merlee->pos.x; - effectInstanceData->pos.y = merlee->pos.y + 16.0f; - effectInstanceData->pos.z = merlee->pos.z; + effectData = WorldMerleeOrbEffect->data.energyOrbWave; + effectData->pos.x = merlee->pos.x; + effectData->pos.y = merlee->pos.y + 16.0f; + effectData->pos.z = merlee->pos.z; - effectInstanceData = D_800A0BAC->data; - effectInstanceData->pos.x = merlee->pos.x; - effectInstanceData->pos.y = merlee->pos.y + 16.0f; - effectInstanceData->pos.z = merlee->pos.z + 5.0f; + effectData = WorldMerleeWaveEffect->data.energyOrbWave; + effectData->pos.x = merlee->pos.x; + effectData->pos.y = merlee->pos.y + 16.0f; + effectData->pos.z = merlee->pos.z + 5.0f; if (D_800A0BB8 == 2) { - ((EffectInstanceData*)D_800A0BA8->data)->unk_30 = 0.00001f; - ((EffectInstanceData*)D_800A0BAC->data)->unk_30 = 0.00001f; - D_800A0BA8->flags |= EFFECT_INSTANCE_FLAGS_10; - D_800A0BAC->flags |= EFFECT_INSTANCE_FLAGS_10; + WorldMerleeOrbEffect->data.energyOrbWave->scale = 0.00001f; + WorldMerleeWaveEffect->data.energyOrbWave->scale = 0.00001f; + WorldMerleeOrbEffect->flags |= EFFECT_INSTANCE_FLAGS_10; + WorldMerleeWaveEffect->flags |= EFFECT_INSTANCE_FLAGS_10; return ApiStatus_DONE1; } if (D_800A0BB8 == 1) { - effectInstanceData = D_800A0BA8->data; - effectInstanceData->unk_30 += 0.35; - if (effectInstanceData->unk_30 > 3.5) { - effectInstanceData->unk_30 = 3.5f; + effectData = WorldMerleeOrbEffect->data.energyOrbWave; + effectData->scale += 0.35; + if (effectData->scale > 3.5) { + effectData->scale = 3.5f; } if (D_800A0BA0 != 0) { D_800A0BA0--; } else { - effectInstanceData = D_800A0BAC->data; - effectInstanceData->unk_30 += 0.5; - if (effectInstanceData->unk_30 > 5.0) { + effectData = WorldMerleeWaveEffect->data.energyOrbWave; + effectData->scale += 0.5; + if (effectData->scale > 5.0) { D_800A0BB8 = 2; } } diff --git a/src/7E9D0.c b/src/7E9D0.c index 44d4827bf9..46c6277769 100644 --- a/src/7E9D0.c +++ b/src/7E9D0.c @@ -392,7 +392,7 @@ void set_action_state(s32 actionState) { } if (playerStatus->unk_D8 != NULL) { - ((Effect46FXData*)playerStatus->unk_D8->data)->unk_24 = 10; + playerStatus->unk_D8->data.unk_46->unk_24 = 10; playerStatus->unk_D8 = NULL; } } diff --git a/src/C50A0.c b/src/C50A0.c index 9d85a32633..fc6513da30 100644 --- a/src/C50A0.c +++ b/src/C50A0.c @@ -46,7 +46,7 @@ void func_801356C4(ItemEntity*); void func_801356CC(ItemEntity*); void func_801356D4(ItemEntity*); void update_item_entity_temp(ItemEntity*); -s32 draw_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s16 posX, s16 posY, u16 clipULx, +s32 draw_image_with_clipping(IMG_PTR raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s16 posX, s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy); void func_8013673C(ItemEntity* itemEntity, s32 posX, s32 posY); void func_801369D0(ItemEntity* itemEntity, s32 posX, s32 posY); @@ -101,7 +101,7 @@ Lights1 D_8014C6C8 = gdSPDefLights1(255, 255, 255, 0, 0, 0, 0, 0, 0); s16 D_8014C6E0[] = { 32, 40 }; s16 D_8014C6E4[] = { 8, 4 }; -s32 draw_ci_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s32* palette, s16 posX, +s32 draw_ci_image_with_clipping(IMG_PTR raster, s32 width, s32 height, s32 fmt, s32 bitDepth, PAL_PTR palette, s16 posX, s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy, u8 opacity) { s32 ret; @@ -180,8 +180,8 @@ s32 sparkle_script_step(ItemEntity* itemEntity) { return TRUE; case SPARKLE_OP_SetCI: itemEntity->sparkleNextUpdate = *readPos++; - itemEntity->sparkleRaster = (s8*)*readPos++; - itemEntity->sparklePalette = (s8*)*readPos++; + itemEntity->sparkleRaster = (IMG_PTR)*readPos++; + itemEntity->sparklePalette = (PAL_PTR)*readPos++; itemEntity->sparkleWidth = *readPos++; itemEntity->sparkleHeight = *readPos++; itemEntity->sparkleReadPos = readPos; diff --git a/src/EC71B0.c b/src/EC71B0.c index d5100833de..0d79d1eaaa 100644 --- a/src/EC71B0.c +++ b/src/EC71B0.c @@ -12,11 +12,11 @@ ApiStatus func_80240344_EC74F4(Evt* script, s32 isInitialCall) { EffectInstance* effect = fx_misc_particles(3, -272.0f, 80.0f, 20.0f, 200.0f, 120.0f, 4.0f, 8, 0); - ((MiscParticlesFXData*)effect->data)->unk_38 = 240; - ((MiscParticlesFXData*)effect->data)->unk_3C = 240; - ((MiscParticlesFXData*)effect->data)->unk_40 = 240; - ((MiscParticlesFXData*)effect->data)->unk_48 = 230; - ((MiscParticlesFXData*)effect->data)->unk_4C = 230; - ((MiscParticlesFXData*)effect->data)->unk_50 = 240; + effect->data.miscParticles->unk_38 = 240; + effect->data.miscParticles->unk_3C = 240; + effect->data.miscParticles->unk_40 = 240; + effect->data.miscParticles->unk_48 = 230; + effect->data.miscParticles->unk_4C = 230; + effect->data.miscParticles->unk_50 = 240; return ApiStatus_DONE2; } diff --git a/src/a5dd0_len_114e0.c b/src/a5dd0_len_114e0.c index da5939af2f..889f774b27 100644 --- a/src/a5dd0_len_114e0.c +++ b/src/a5dd0_len_114e0.c @@ -392,7 +392,7 @@ Gfx D_8014B400[21][5] = { }, }; -u32 mdl_textureBaseAddress = 0x8028E000; +void* mdl_textureBaseAddress = 0x8028E000; u8 mdl_bgMultiplyColorA = 0; u8 mdl_bgMultiplyColorR = 0; @@ -1063,7 +1063,7 @@ extern s32 texPannerMainU[MAX_TEX_PANNERS]; extern s32 texPannerMainV[MAX_TEX_PANNERS]; extern s32 texPannerAuxU[MAX_TEX_PANNERS]; extern s32 texPannerAuxV[MAX_TEX_PANNERS]; -extern u8* mdl_nextTextureAddress; +extern void* mdl_nextTextureAddress; extern u16 mdl_currentTransformGroupChildIndex; extern u16 D_80153226; extern ModelNode* D_80153370; @@ -2971,9 +2971,9 @@ void appendGfx_model(Model* model); INCLUDE_ASM(void, "a5dd0_len_114e0", appendGfx_model, Model*); void func_80114B58(u32 romOffset, TextureHandle* handle, TextureHeader* header, s32 mainSize, s32 mainPalSize, s32 auxSize, s32 auxPalSize) { - handle->raster = (u32*) mdl_nextTextureAddress; + handle->raster = (IMG_PTR) mdl_nextTextureAddress; if (mainPalSize != 0) { - handle->palette = (u32*) (mdl_nextTextureAddress + mainSize); + handle->palette = (PAL_PTR) (mdl_nextTextureAddress + mainSize); } else { handle->palette = NULL; } @@ -2981,9 +2981,9 @@ void func_80114B58(u32 romOffset, TextureHandle* handle, TextureHeader* header, romOffset += mainSize + mainPalSize; mdl_nextTextureAddress += mainSize + mainPalSize; if (auxSize != 0) { - handle->auxRaster = (u32*) mdl_nextTextureAddress; + handle->auxRaster = (IMG_PTR) mdl_nextTextureAddress; if (auxPalSize != 0) { - handle->auxPalette = (u32*) (mdl_nextTextureAddress + auxSize); + handle->auxPalette = (PAL_PTR) (mdl_nextTextureAddress + auxSize); } else { handle->auxPalette = NULL; } diff --git a/src/battle/area_arn/actor/tubbas_heart.c b/src/battle/area_arn/actor/tubbas_heart.c index 8762db6213..17c4de2610 100644 --- a/src/battle/area_arn/actor/tubbas_heart.c +++ b/src/battle/area_arn/actor/tubbas_heart.c @@ -151,10 +151,10 @@ ApiStatus func_80218680_4FF0D0(Evt* script, s32 isInitialCall) { s32 z = evt_get_variable(script, *args++); f32 scale = evt_get_float_variable(script, *args++); - ((Effect6BFXData*)effect->data)->pos.x = x; - ((Effect6BFXData*)effect->data)->pos.y = y; - ((Effect6BFXData*)effect->data)->pos.z = z; - ((Effect6BFXData*)effect->data)->scale = scale; + effect->data.energyInOut->pos.x = x; + effect->data.energyInOut->pos.y = y; + effect->data.energyInOut->pos.z = z; + effect->data.energyInOut->scale = scale; return ApiStatus_DONE2; } diff --git a/src/battle/area_isk_part_2/actor/tutankoopa.c b/src/battle/area_isk_part_2/actor/tutankoopa.c index ec4984c53f..bb615b6d42 100644 --- a/src/battle/area_isk_part_2/actor/tutankoopa.c +++ b/src/battle/area_isk_part_2/actor/tutankoopa.c @@ -229,9 +229,9 @@ ApiStatus func_8021875C_4EFBFC(Evt* script, s32 isInitialCall) { s32 var3 = evt_get_variable(script, *args++); EffectInstance* effect = fx_floating_rock(2, var1, 150.0f, var3, var2, -0.5f, -0.9f, 0.5f, 60); - ((EffectInstanceData*)effect->data)->unk_30 = 0; - ((EffectInstanceData*)effect->data)->unk_38 = 0; - ((EffectInstanceData*)effect->data)->unk_34 = 0; + effect->data.floatingRock->unk_30.x = 0; + effect->data.floatingRock->unk_30.z = 0; + effect->data.floatingRock->unk_30.y = 0; return ApiStatus_DONE2; } diff --git a/src/battle/area_kpa3/6BBC60.c b/src/battle/area_kpa3/6BBC60.c index ebc3c415e5..cb9eee9563 100644 --- a/src/battle/area_kpa3/6BBC60.c +++ b/src/battle/area_kpa3/6BBC60.c @@ -12,17 +12,17 @@ ApiStatus func_80218BC4_6BC754(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - UnkStruct0* unkStruct0 = (UnkStruct0*)evt_get_variable(script, *args++); + EffectInstance* tattleEffect = (EffectInstance*) evt_get_variable(script, *args++); - unkStruct0->unk_0C->unk_08 = -1000.0f; + tattleEffect->data.tattleWindow->pos.y = -1000.0f; return ApiStatus_DONE2; } ApiStatus func_80218BFC_6BC78C(Evt* script, s32 isInitialCall) { - UnkStruct0* unkStruct0 = (UnkStruct0*)evt_get_variable(script, *script->ptrReadPos); + EffectInstance* tattleEffect = (EffectInstance*) evt_get_variable(script, *script->ptrReadPos); - unkStruct0->unk_0C->unk_08 = 144.0f; - unkStruct0->flags |= 0x10; + tattleEffect->data.tattleWindow->pos.y = 144.0f; + tattleEffect->flags |= EFFECT_INSTANCE_FLAGS_10; return ApiStatus_DONE2; } diff --git a/src/battle/area_mac/actor/lee.c b/src/battle/area_mac/actor/lee.c index 2e298d3afe..54abf855a1 100644 --- a/src/battle/area_mac/actor/lee.c +++ b/src/battle/area_mac/actor/lee.c @@ -922,17 +922,17 @@ EvtScript N(8021F6E0) = { ApiStatus func_80218DF4_465284(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - UnkStruct0* unkStruct0 = (UnkStruct0*)evt_get_variable(script, *args++); + EffectInstance* tattleEffect = (EffectInstance*) evt_get_variable(script, *args++); - unkStruct0->unk_0C->unk_08 = -1000.0f; + tattleEffect->data.tattleWindow->pos.y = -1000.0f; return ApiStatus_DONE2; } ApiStatus func_80218E2C_4652BC(Evt* script, s32 isInitialCall) { - UnkStruct0* unkStruct0 = (UnkStruct0*) evt_get_variable(script, *script->ptrReadPos); + EffectInstance* tattleEffect = (EffectInstance*) evt_get_variable(script, *script->ptrReadPos); - unkStruct0->unk_0C->unk_08 = 144.0f; - unkStruct0->flags |= 0x10; + tattleEffect->data.tattleWindow->pos.y = 144.0f; + tattleEffect->flags |= EFFECT_INSTANCE_FLAGS_10; return ApiStatus_DONE2; } @@ -2848,25 +2848,25 @@ EvtScript N(idle_80225B68) = { ApiStatus func_80219658_465AE8(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - WattEffectData* unkDuplighost = (WattEffectData*)get_actor(script->owner1.enemyID)->state.varTable[3]; + WattEffectData* wattEffects = (WattEffectData*)get_actor(script->owner1.enemyID)->state.varTable[3]; - unkDuplighost->unk_04 = evt_get_variable(script, *args++); + wattEffects->unk_04 = evt_get_variable(script, *args++); return ApiStatus_DONE2; } ApiStatus func_802196A4_465B34(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - WattEffectData* unkDuplighost = (WattEffectData*)get_actor(script->owner1.enemyID)->state.varTable[3]; + WattEffectData* wattEffects = (WattEffectData*)get_actor(script->owner1.enemyID)->state.varTable[3]; - unkDuplighost->unk_0C = evt_get_variable(script, *args++); + wattEffects->unk_0C = evt_get_variable(script, *args++); return ApiStatus_DONE2; } ApiStatus func_802196F0_465B80(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - WattEffectData* unkDuplighost = (WattEffectData*)get_actor(script->owner1.enemyID)->state.varTable[3]; + WattEffectData* wattEffects = (WattEffectData*)get_actor(script->owner1.enemyID)->state.varTable[3]; - unkDuplighost->unk_10 = evt_get_variable(script, *args++); + wattEffects->unk_10 = evt_get_variable(script, *args++); return ApiStatus_DONE2; } diff --git a/src/battle/area_omo2/actor/light_bulb.c b/src/battle/area_omo2/actor/light_bulb.c index c0730f43c8..eac6460a56 100644 --- a/src/battle/area_omo2/actor/light_bulb.c +++ b/src/battle/area_omo2/actor/light_bulb.c @@ -370,10 +370,10 @@ ApiStatus func_80218250_52B8F0(Evt* script, s32 isInitialCall) { for (i = 0; i < ARRAY_COUNT(bpArray); i++) { EffectInstance* effect = fx_ice_shard(bpArray[i].unk_00, bpArray[i].unk_04, bpArray[i].unk_08, bpArray[i].unk_0C, bpArray[i].unk_10, bpArray[i].unk_14); - ((IceShardFXData*)effect->data)->unk_4C = bpArray[i].unk_18; - ((IceShardFXData*)effect->data)->unk_50 = bpArray[i].unk_1C; - ((IceShardFXData*)effect->data)->unk_54 = bpArray[i].unk_20; - ((IceShardFXData*)effect->data)->unk_58 = bpArray[i].unk_24; + effect->data.iceShard->unk_4C = bpArray[i].unk_18; + effect->data.iceShard->unk_50 = bpArray[i].unk_1C; + effect->data.iceShard->unk_54 = bpArray[i].unk_20; + effect->data.iceShard->unk_58 = bpArray[i].unk_24; } return ApiStatus_DONE2; diff --git a/src/battle/area_omo2/actor/toy_tank.c b/src/battle/area_omo2/actor/toy_tank.c index ad6ac50f93..ecc1265875 100644 --- a/src/battle/area_omo2/actor/toy_tank.c +++ b/src/battle/area_omo2/actor/toy_tank.c @@ -46,7 +46,7 @@ ApiStatus N(UpdateBulbGlow)(Evt* script, s32 isInitialCall) { s32 y = evt_get_variable(script, *args++); s32 z = evt_get_variable(script, *args++); s32 rotation = evt_get_variable(script, *args++); - BulbGlowFXData* effectData = ((EffectInstance*) evt_get_variable(script, *args++))->data; + BulbGlowFXData* effectData = ((EffectInstance*) evt_get_variable(script, *args++))->data.bulbGlow; effectData->pos.x = x; effectData->pos.y = y; diff --git a/src/battle/area_pra2/actor/crystal_bit.c b/src/battle/area_pra2/actor/crystal_bit.c index 078940b703..e6f82d6550 100644 --- a/src/battle/area_pra2/actor/crystal_bit.c +++ b/src/battle/area_pra2/actor/crystal_bit.c @@ -230,16 +230,16 @@ ApiStatus UpdateCrystalBitEffect(Evt* script, s32 isInitialCall) { ActorPart* actorPart = get_actor_part(actor, 1); EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args); - ((MiscParticlesFXData*)effect->data)->scaleX = actorPart->scale.x * 24.0f; - ((MiscParticlesFXData*)effect->data)->scaleY = actorPart->scale.y * 24.0f; + effect->data.miscParticles->scaleX = actorPart->scale.x * 24.0f; + effect->data.miscParticles->scaleY = actorPart->scale.y * 24.0f; if (actorPart->flags & ACTOR_PART_FLAG_INVISIBLE) { - ((MiscParticlesFXData*)effect->data)->pos.x = actor->currentPos.x; - ((MiscParticlesFXData*)effect->data)->pos.y = -1000.0f; - ((MiscParticlesFXData*)effect->data)->pos.z = actor->currentPos.z; + effect->data.miscParticles->pos.x = actor->currentPos.x; + effect->data.miscParticles->pos.y = -1000.0f; + effect->data.miscParticles->pos.z = actor->currentPos.z; } else { - ((MiscParticlesFXData*)effect->data)->pos.x = actor->currentPos.x; - ((MiscParticlesFXData*)effect->data)->pos.y = actor->currentPos.y; - ((MiscParticlesFXData*)effect->data)->pos.z = actor->currentPos.z; + effect->data.miscParticles->pos.x = actor->currentPos.x; + effect->data.miscParticles->pos.y = actor->currentPos.y; + effect->data.miscParticles->pos.z = actor->currentPos.z; } return ApiStatus_BLOCK; diff --git a/src/battle/area_pra2/actor/crystal_king.c b/src/battle/area_pra2/actor/crystal_king.c index 58cd26ac16..203c798831 100644 --- a/src/battle/area_pra2/actor/crystal_king.c +++ b/src/battle/area_pra2/actor/crystal_king.c @@ -171,12 +171,12 @@ ApiStatus func_80218280_6609D0(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args); - ((HuffPuffBreathFXData*)effect->data)->unk_18 = 0xF8; - ((HuffPuffBreathFXData*)effect->data)->unk_1C = 0xF8; - ((HuffPuffBreathFXData*)effect->data)->unk_20 = 0xFF; - ((HuffPuffBreathFXData*)effect->data)->unk_28 = 0x80; - ((HuffPuffBreathFXData*)effect->data)->unk_2C = 0xE0; - ((HuffPuffBreathFXData*)effect->data)->unk_30 = 0xFF; + effect->data.huffPuffBreath->unk_18 = 0xF8; + effect->data.huffPuffBreath->unk_1C = 0xF8; + effect->data.huffPuffBreath->unk_20 = 0xFF; + effect->data.huffPuffBreath->unk_28 = 0x80; + effect->data.huffPuffBreath->unk_2C = 0xE0; + ((HuffPuffBreathFXData*)effect->data.huffPuffBreath)->unk_30 = 0xFF; return ApiStatus_DONE2; } @@ -184,12 +184,12 @@ ApiStatus func_802182E4_660A34(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args); - ((LightningBoltFXData*)effect->data)->unk_30 = 0xFF; - ((LightningBoltFXData*)effect->data)->unk_34 = 0xFF; - ((LightningBoltFXData*)effect->data)->unk_38 = 0xFF; - ((LightningBoltFXData*)effect->data)->unk_40 = 0xC8; - ((LightningBoltFXData*)effect->data)->unk_44 = 0xF0; - ((LightningBoltFXData*)effect->data)->unk_48 = 0xFF; + effect->data.lightningBolt->unk_30 = 0xFF; + effect->data.lightningBolt->unk_34 = 0xFF; + effect->data.lightningBolt->unk_38 = 0xFF; + effect->data.lightningBolt->unk_40 = 0xC8; + effect->data.lightningBolt->unk_44 = 0xF0; + effect->data.lightningBolt->unk_48 = 0xFF; return ApiStatus_DONE2; } @@ -197,12 +197,12 @@ ApiStatus func_80218344_660A94(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); - ((ColdBreathFXData*)effect->data)->unk_18 = 0xFF; - ((ColdBreathFXData*)effect->data)->unk_1C = 0xFF; - ((ColdBreathFXData*)effect->data)->unk_20 = 0xFF; - ((ColdBreathFXData*)effect->data)->unk_28 = 0xC8; - ((ColdBreathFXData*)effect->data)->unk_2C = 0xF0; - ((ColdBreathFXData*)effect->data)->unk_30 = 0xFF; + effect->data.coldBreath->unk_18 = 0xFF; + effect->data.coldBreath->unk_1C = 0xFF; + effect->data.coldBreath->unk_20 = 0xFF; + effect->data.coldBreath->unk_28 = 0xC8; + effect->data.coldBreath->unk_2C = 0xF0; + effect->data.coldBreath->unk_30 = 0xFF; return ApiStatus_DONE2; } diff --git a/src/battle/area_sam2/actor/monstar.c b/src/battle/area_sam2/actor/monstar.c index a1a79b0a6c..c1068ee5b6 100644 --- a/src/battle/area_sam2/actor/monstar.c +++ b/src/battle/area_sam2/actor/monstar.c @@ -8,17 +8,6 @@ #define NAMESPACE b_area_sam2_monstar -// probably the same as FoldImageRecPart -typedef struct UnknownMonstarStruct { - /* 0x00 */ u8* raster; - /* 0x04 */ u8* palette; - /* 0x08 */ u16 width; - /* 0x0A */ u16 height; - /* 0x0C */ s32 unk_0C; - /* 0x10 */ s32 unk_10; - /* 0x14 */ Gfx* dlist; -} UnknownMonstarStruct; // size = 0x18; - extern Gfx N(dlist)[]; extern EvtScript N(init); @@ -148,13 +137,14 @@ EvtScript N(init) = { #include "battle/area_sam2/actor/img.png.inc.c" #include "battle/area_sam2/actor/img.pal.inc.c" -UnknownMonstarStruct D_8021A2B8_63F498 = { +FoldImageRecPart D_8021A2B8_63F498 = { .raster = battle_area_sam2_actor_img_png, .palette = battle_area_sam2_actor_img_pal, .width = battle_area_sam2_actor_img_png_width, .height = battle_area_sam2_actor_img_png_height, - .unk_0C = -4, - .unk_10 = 0, + .xOffset = -1, + .yOffset = -4, + .opacity = 0, .dlist = N(dlist), }; diff --git a/src/battle/common/actor/ghost_goombario.inc.c b/src/battle/common/actor/ghost_goombario.inc.c index 55f87798fe..326e29a404 100644 --- a/src/battle/common/actor/ghost_goombario.inc.c +++ b/src/battle/common/actor/ghost_goombario.inc.c @@ -14,7 +14,7 @@ ApiStatus N(UnkTattleEffectFunc1)(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*)evt_get_variable(script, *args++); - ((EffectInstanceData*)effect->data)->pos.y = -1000.0f; + effect->data.tattleWindow->pos.y = -1000.0f; return ApiStatus_DONE2; } @@ -22,7 +22,7 @@ ApiStatus N(UnkTattleEffectFunc2)(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*)evt_get_variable(script, *args++); - ((EffectInstanceData*)effect->data)->pos.y = 144.0f; + effect->data.tattleWindow->pos.y = 144.0f; effect->flags |= EFFECT_INSTANCE_FLAGS_10; return ApiStatus_DONE2; } diff --git a/src/battle/common/actor/ghost_watt.inc.c b/src/battle/common/actor/ghost_watt.inc.c index ef7eeca98b..4288df2cb2 100644 --- a/src/battle/common/actor/ghost_watt.inc.c +++ b/src/battle/common/actor/ghost_watt.inc.c @@ -45,9 +45,9 @@ ApiStatus N(UnkWattEffectFunc1)(Evt* script, s32 isInitialCall) { wattEffectData->effect2->flags |= EFFECT_INSTANCE_FLAGS_10; wattEffectData->effect2 = NULL; } - ((StaticStatusFXData*)wattEffectData->effect1->data)->unk_04 = x; - ((StaticStatusFXData*)wattEffectData->effect1->data)->unk_08 = y; - ((StaticStatusFXData*)wattEffectData->effect1->data)->unk_0C = z; + wattEffectData->effect1->data.staticStatus->unk_04 = x; + wattEffectData->effect1->data.staticStatus->unk_08 = y; + wattEffectData->effect1->data.staticStatus->unk_0C = z; break; case 1: if (wattEffectData->effect1 != NULL) { @@ -58,9 +58,9 @@ ApiStatus N(UnkWattEffectFunc1)(Evt* script, s32 isInitialCall) { wattEffectData->effect2 = fx_static_status(1, x, y, z, (actor->debuff != STATUS_SHRINK) ? 1.0f : 0.4f, 5, 0); } - ((StaticStatusFXData*)wattEffectData->effect2->data)->unk_04 = x; - ((StaticStatusFXData*)wattEffectData->effect2->data)->unk_08 = y; - ((StaticStatusFXData*)wattEffectData->effect2->data)->unk_0C = z; + wattEffectData->effect2->data.staticStatus->unk_04 = x; + wattEffectData->effect2->data.staticStatus->unk_08 = y; + wattEffectData->effect2->data.staticStatus->unk_0C = z; break; } } else { diff --git a/src/battle/item/food.c b/src/battle/item/food.c index 7022562e8d..536b3dd386 100644 --- a/src/battle/item/food.c +++ b/src/battle/item/food.c @@ -31,11 +31,11 @@ ApiStatus N(func_802A12EC_7333BC)(Evt* script, s32 isInitialCall) { partner->koDuration = 0; } if (partner->koDuration > 0) { - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = partner->koDuration; + partner->debuffEffect->data.disableX->unk_3C = partner->koDuration; } else { partner->koStatus = 0; - dispatch_event_partner(EVENT_34); - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = 0; + dispatch_event_partner(EVENT_RECOVER_PARTNER); + partner->debuffEffect->data.disableX->unk_3C = 0; } return ApiStatus_DONE2; diff --git a/src/battle/item/insecticide_herb.c b/src/battle/item/insecticide_herb.c index beda851efc..14b31bd36b 100644 --- a/src/battle/item/insecticide_herb.c +++ b/src/battle/item/insecticide_herb.c @@ -38,12 +38,12 @@ ApiStatus N(func_802A12E0_72AA30)(Evt* script, s32 isInitialCall) { effect = fx_cold_breath(0, a, b, c, 1.0f, 30); - ((ColdBreathFXData*)effect->data)->unk_18 = 244; - ((ColdBreathFXData*)effect->data)->unk_1C = 244; - ((ColdBreathFXData*)effect->data)->unk_20 = 220; - ((ColdBreathFXData*)effect->data)->unk_28 = 210; - ((ColdBreathFXData*)effect->data)->unk_2C = 210; - ((ColdBreathFXData*)effect->data)->unk_30 = 190; + effect->data.coldBreath->unk_18 = 244; + effect->data.coldBreath->unk_1C = 244; + effect->data.coldBreath->unk_20 = 220; + effect->data.coldBreath->unk_28 = 210; + effect->data.coldBreath->unk_2C = 210; + effect->data.coldBreath->unk_30 = 190; return ApiStatus_DONE2; } diff --git a/src/battle/item/life_shroom.c b/src/battle/item/life_shroom.c index b084705d35..2324dbad7d 100644 --- a/src/battle/item/life_shroom.c +++ b/src/battle/item/life_shroom.c @@ -31,11 +31,11 @@ ApiStatus N(func_802A12EC_72E81C)(Evt* script, s32 isInitialCall) { partner->koDuration = 0; } if (partner->koDuration > 0) { - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = partner->koDuration; + partner->debuffEffect->data.disableX->unk_3C = partner->koDuration; } else { partner->koStatus = 0; - dispatch_event_partner(EVENT_34); - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = 0; + dispatch_event_partner(EVENT_RECOVER_PARTNER); + partner->debuffEffect->data.disableX->unk_3C = 0; } return ApiStatus_DONE2; diff --git a/src/battle/item/mushroom.c b/src/battle/item/mushroom.c index a23cae6bc3..39991515da 100644 --- a/src/battle/item/mushroom.c +++ b/src/battle/item/mushroom.c @@ -31,11 +31,11 @@ ApiStatus N(func_802A12EC_715B3C)(Evt* script, s32 isInitialCall) { partner->koDuration = 0; } if (partner->koDuration > 0) { - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = partner->koDuration; + partner->debuffEffect->data.disableX->unk_3C = partner->koDuration; } else { partner->koStatus = 0; - dispatch_event_partner(EVENT_34); - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = 0; + dispatch_event_partner(EVENT_RECOVER_PARTNER); + partner->debuffEffect->data.disableX->unk_3C = 0; } return ApiStatus_DONE2; diff --git a/src/battle/item/super_soda.c b/src/battle/item/super_soda.c index 6c6bf01e25..918299c15d 100644 --- a/src/battle/item/super_soda.c +++ b/src/battle/item/super_soda.c @@ -31,11 +31,11 @@ ApiStatus N(func_802A12EC_724FCC)(Evt* script, s32 isInitialCall) { partner->koDuration = 0; } if (partner->koDuration > 0) { - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = partner->koDuration; + partner->debuffEffect->data.disableX->unk_3C = partner->koDuration; } else { partner->koStatus = 0; - dispatch_event_partner(EVENT_34); - ((DisableXFXData*)partner->debuffEffect->data)->unk_3C = 0; + dispatch_event_partner(EVENT_RECOVER_PARTNER); + partner->debuffEffect->data.disableX->unk_3C = 0; } return ApiStatus_DONE2; @@ -64,7 +64,7 @@ ApiStatus N(func_802A1378_725058)(Evt* script, s32 isInitialCall) { break; } - ((DisableXFXData*)actor->debuffEffect->data)->unk_3C = 0; + actor->debuffEffect->data.disableX->unk_3C = 0; } btl_update_ko_status(); diff --git a/src/battle/item/tasty_tonic.c b/src/battle/item/tasty_tonic.c index 654ccd466c..eb5b7bde48 100644 --- a/src/battle/item/tasty_tonic.c +++ b/src/battle/item/tasty_tonic.c @@ -24,7 +24,7 @@ ApiStatus N(func_802A123C_72223C)(Evt* script, s32 isInitialCall) { case ACTOR_CLASS_PARTNER: dispatch_event_partner(EVENT_RECOVER_STATUS); } - ((DisableXFXData*)actor->debuffEffect->data)->unk_3C = 0; + actor->debuffEffect->data.disableX->unk_3C = 0; } return ApiStatus_DONE2; diff --git a/src/battle/partner/bombette.c b/src/battle/partner/bombette.c index 9afb611bf5..7cf6d1fd61 100644 --- a/src/battle/partner/bombette.c +++ b/src/battle/partner/bombette.c @@ -560,7 +560,7 @@ EvtScript N(handleEvent_802387F0) = { EVT_CASE_EQ(EVENT_33) EVT_SET_CONST(LW(1), NPC_ANIM_battle_bombette_Palette_00_Anim_12) EVT_EXEC_WAIT(D_80296014) - EVT_CASE_EQ(EVENT_34) + EVT_CASE_EQ(EVENT_RECOVER_PARTNER) EVT_SET_CONST(LW(0), 1) EVT_SET_CONST(LW(1), NPC_ANIM_battle_bombette_Palette_00_Anim_4) EVT_SET_CONST(LW(2), NPC_ANIM_battle_bombette_Palette_00_Anim_8) diff --git a/src/battle/partner/goombario.c b/src/battle/partner/goombario.c index 22614675d9..6a0ca0e70b 100644 --- a/src/battle/partner/goombario.c +++ b/src/battle/partner/goombario.c @@ -177,7 +177,7 @@ ApiStatus func_80238E04_6F1EE4(Evt* script, s32 isInitialCall) { ApiStatus func_80238E48_6F1F28(Evt* script, s32 isInitialCall) { EffectInstance* effect = D_8023CDA0; - ((EffectInstanceData*)effect->data)->pos.y = 144.0f; + effect->data.tattleWindow->pos.y = 144.0f; effect->flags |= EFFECT_INSTANCE_FLAGS_10; return ApiStatus_DONE2; diff --git a/src/battle/partner/goompa.c b/src/battle/partner/goompa.c index 982ee951e5..ee94366c44 100644 --- a/src/battle/partner/goompa.c +++ b/src/battle/partner/goompa.c @@ -123,7 +123,7 @@ EvtScript N(handleEvent_8023819C) = { EVT_SET_CONST(LW(1), NPC_ANIM_goompa_Palette_00_Anim_7) EVT_EXEC_WAIT(DoNormalHit) EVT_CASE_EQ(EVENT_33) - EVT_CASE_EQ(EVENT_34) + EVT_CASE_EQ(EVENT_RECOVER_PARTNER) EVT_SET_CONST(LW(0), 1) EVT_SET_CONST(LW(1), NPC_ANIM_goompa_Palette_00_Anim_1) EVT_SET_CONST(LW(2), NPC_ANIM_goompa_Palette_00_Anim_3) diff --git a/src/battle/partner/kooper.c b/src/battle/partner/kooper.c index 9eeac65a91..5aab990184 100644 --- a/src/battle/partner/kooper.c +++ b/src/battle/partner/kooper.c @@ -317,7 +317,7 @@ EvtScript N(handleEvent_802385E0) = { EVT_CASE_EQ(EVENT_33) EVT_SET_CONST(LW(1), NPC_ANIM_battle_kooper_Palette_00_Anim_11) EVT_EXEC_WAIT(D_80296014) - EVT_CASE_EQ(EVENT_34) + EVT_CASE_EQ(EVENT_RECOVER_PARTNER) EVT_SET_CONST(LW(0), 1) EVT_SET_CONST(LW(1), NPC_ANIM_battle_kooper_Palette_00_Anim_4) EVT_SET_CONST(LW(2), NPC_ANIM_battle_kooper_Palette_00_Anim_6) diff --git a/src/battle/partner/lakilester.c b/src/battle/partner/lakilester.c index db58fdf6e4..cb6ab6684c 100644 --- a/src/battle/partner/lakilester.c +++ b/src/battle/partner/lakilester.c @@ -53,7 +53,6 @@ ApiStatus func_80238C14_70C924(Evt* script, s32 isInitialCall) { ApiStatus func_80238C58_70C968(Evt* script, s32 isInitialCall) { BattleStatus* battleStatus = &gBattleStatus; Actor* actor = battleStatus->playerActor; - EffectInstanceData* effectData; // TODO remove this struct and replace it with the effect-specific one if (isInitialCall) { script->functionTemp[0] = 0; @@ -69,8 +68,7 @@ ApiStatus func_80238C58_70C968(Evt* script, s32 isInitialCall) { if (D_8023D1E0 >= 1.0) { return ApiStatus_DONE2; } - effectData = battleStatus->cloudNineEffect->data; - effectData->rotation.x += 0.2; + battleStatus->cloudNineEffect->data.endingDecals->unk_10 += 0.2; D_8023D1E0 += 0.2; break; } diff --git a/src/battle/partner/watt.c b/src/battle/partner/watt.c index fd0249dd70..bffcb388d2 100644 --- a/src/battle/partner/watt.c +++ b/src/battle/partner/watt.c @@ -86,7 +86,7 @@ ApiStatus func_8023859C_70408C(Evt* script, s32 isInitialCall) { ThunderboltRingFXData* data; D_8023C1B4 = fx_thunderbolt_ring(0, var1, var2, var3, 1.0f, 10); - data = D_8023C1B4->data; + data = D_8023C1B4->data.thunderboltRing; data->unk_30 = 3; return ApiStatus_DONE2; @@ -106,7 +106,7 @@ ApiStatus func_80238668_704158(Evt* script, s32 isInitialCall) { script->functionTemp[0]--; if (script->functionTemp[0] == 0) { - ((BulbGlowFXData*)D_8023C1B0->data)->unk_14 = 5; + D_8023C1B0->data.bulbGlow->unk_14 = 5; return ApiStatus_DONE2; } @@ -142,7 +142,7 @@ ApiStatus func_80238B3C_70462C(Evt* script, s32 isInitialCall) { ThunderboltRingFXData* data; D_8023C1B4 = fx_thunderbolt_ring(0, var1, var2, var3, 1.0f, 60); - data = D_8023C1B4->data; + data = D_8023C1B4->data.thunderboltRing; data->unk_30 = 2; return ApiStatus_DONE2; diff --git a/src/battle/star/refresh/78B600.c b/src/battle/star/refresh/78B600.c index 24cc430a6a..9da95d937d 100644 --- a/src/battle/star/refresh/78B600.c +++ b/src/battle/star/refresh/78B600.c @@ -22,7 +22,7 @@ ApiStatus func_802A17D4_78BDD4(Evt* script, s32 isInitialCall) { if (actor->koStatus != 0) { actor->koDuration = 0; actor->koStatus = 0; - ((DisableXFXData*)actor->debuffEffect->data)->unk_3C = 0; + actor->debuffEffect->data.disableX->unk_3C = 0; } btl_update_ko_status(); diff --git a/src/bss.c b/src/bss.c index ebbaa4d054..5a4b8845e6 100644 --- a/src/bss.c +++ b/src/bss.c @@ -151,8 +151,8 @@ BSS s8 D_800A0B94; BSS char D_800A0B98[0x8]; BSS s32 D_800A0BA0; BSS float D_800A0BA4; -BSS s32 D_800A0BA8; -BSS s32 D_800A0BAC; +BSS s32 WorldMerleeOrbEffect; +BSS s32 WorldMerleeWaveEffect; BSS s32 D_800A0BB0; BSS s32 D_800A0BB4; BSS s16 D_800A0BB8; diff --git a/src/bss3.c b/src/bss3.c index eb7380ea5c..5ec4b347a7 100644 --- a/src/bss3.c +++ b/src/bss3.c @@ -95,7 +95,7 @@ BSS s8 texPannerMainU[0x40]; BSS s8 texPannerMainV[0x40]; BSS s8 texPannerAuxU[0x40]; BSS s8 texPannerAuxV[0x40]; -BSS s32 mdl_nextTextureAddress; +BSS void* mdl_nextTextureAddress; BSS s16 mdl_currentTransformGroupChildIndex; BSS s16 D_8015336E; BSS s32 D_80153370; diff --git a/src/common/ShrinkActor.inc.c b/src/common/ShrinkActor.inc.c index e74e292247..38d08a08a8 100644 --- a/src/common/ShrinkActor.inc.c +++ b/src/common/ShrinkActor.inc.c @@ -14,7 +14,7 @@ ApiStatus N(ShrinkActor)(Evt* script, s32 isInitialCall) { EffectInstance* effect = fx_shape_spell(0, var1, (f32) var2 + 5.0, var3, var4, var5, var6, var7); if (actor->debuff == STATUS_SHRINK) { - ((FootprintFXData*)effect->data)->unk_28 = 0.4f; + effect->data.footprint->unk_28 = 0.4f; } return ApiStatus_DONE2; diff --git a/src/common/UnkEffect6FFunc.inc.c b/src/common/UnkEffect6FFunc.inc.c index 08629fcc43..182db24c4b 100644 --- a/src/common/UnkEffect6FFunc.inc.c +++ b/src/common/UnkEffect6FFunc.inc.c @@ -15,12 +15,12 @@ ApiStatus N(UnkEffect6FFunc)(Evt* script, s32 isInitialCall) { s32 temp_s0_9 = evt_get_variable(script, *args++); effect = fx_cold_breath(1, temp_s6, temp_s5, temp_s4, temp_f20, temp_s2); - ((Effect6FFXData*)effect->data)->rotation.z = temp_s3; - ((Effect6FFXData*)effect->data)->scale.x = temp_s1; - ((Effect6FFXData*)effect->data)->scale.y = temp_s0_9; - ((Effect6FFXData*)effect->data)->color.x = 255; - ((Effect6FFXData*)effect->data)->color.y = 255; - ((Effect6FFXData*)effect->data)->color.z = 255; + effect->data.coldBreath->unk_18 = temp_s3; + effect->data.coldBreath->unk_1C = temp_s1; + effect->data.coldBreath->unk_20 = temp_s0_9; + effect->data.coldBreath->unk_28 = 255; + effect->data.coldBreath->unk_2C = 255; + effect->data.coldBreath->unk_30 = 255; return ApiStatus_DONE2; } diff --git a/src/common/UnkFireBreathFXFunc.inc.c b/src/common/UnkFireBreathFXFunc.inc.c index 16fd410c36..08edd54fab 100644 --- a/src/common/UnkFireBreathFXFunc.inc.c +++ b/src/common/UnkFireBreathFXFunc.inc.c @@ -1,14 +1,15 @@ #include "common.h" +#include "effects.h" ApiStatus N(UnkFireBreathFXFunc)(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - EffectInstance* effect = (EffectInstance*)evt_get_variable(script, *args++); - FireBreathFXData* data = (FireBreathFXData*)effect->data; + EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); + FireBreathFXData* data = effect->data.fireBreath; data->scale = 0.04f; data->unk_30 = 0.04f; - ((FireBreathFXData*)effect->data)->unk_34 = 1.875f; - ((FireBreathFXData*)effect->data)->scaleChangeFactor = 0.05f; + effect->data.fireBreath->unk_34 = 1.875f; + effect->data.fireBreath->scaleChangeFactor = 0.05f; return ApiStatus_DONE2; } diff --git a/src/common/UnkLightningFXFunc.inc.c b/src/common/UnkLightningFXFunc.inc.c index 6ecddacc5e..f4f63b9518 100644 --- a/src/common/UnkLightningFXFunc.inc.c +++ b/src/common/UnkLightningFXFunc.inc.c @@ -1,14 +1,15 @@ #include "common.h" +#include "effects.h" ApiStatus N(UnkLightningFXFunc)(Evt* script, s32 isInitialCall) { EffectInstance* effect = (EffectInstance*)script->varTable[15]; - ((LightningFXData*)effect->data)->unk_30 = 85; - ((LightningFXData*)effect->data)->unk_34 = 42; - ((LightningFXData*)effect->data)->unk_38 = 255; - ((LightningFXData*)effect->data)->unk_40 = 255; - ((LightningFXData*)effect->data)->unk_44 = 175; - ((LightningFXData*)effect->data)->unk_48 = 239; + effect->data.lightning->unk_30 = 85; + effect->data.lightning->unk_34 = 42; + effect->data.lightning->unk_38 = 255; + effect->data.lightning->unk_40 = 255; + effect->data.lightning->unk_44 = 175; + effect->data.lightning->unk_48 = 239; return ApiStatus_DONE2; } diff --git a/src/common/UnkWaterFountainFunc.inc.c b/src/common/UnkWaterFountainFunc.inc.c index ebabb38847..9b795d086b 100644 --- a/src/common/UnkWaterFountainFunc.inc.c +++ b/src/common/UnkWaterFountainFunc.inc.c @@ -20,12 +20,12 @@ ApiStatus N(UnkWaterFountainFunc)(Evt* script, s32 isInitialCall) { temp_f20_2 = atan2(temp_f28, temp_f26, temp_f20, temp_f22 + 40.0f); effect = fx_water_fountain(0, temp_f20 - 10.0f, temp_f22 + 60.0f, temp_f24 + 20.0f, 2.5f, 40); - ((WaterFountainFXData*)effect->data)->unk_38 = temp_f20_2; - ((WaterFountainFXData*)effect->data)->unk_18 = 2; - ((WaterFountainFXData*)effect->data)->unk_1C = 2; - ((WaterFountainFXData*)effect->data)->unk_20 = 2; - ((WaterFountainFXData*)effect->data)->unk_28 = 80; - ((WaterFountainFXData*)effect->data)->unk_2C = 80; - ((WaterFountainFXData*)effect->data)->unk_30 = 80; + effect->data.waterFountain->unk_38 = temp_f20_2; + effect->data.waterFountain->unk_18 = 2; + effect->data.waterFountain->unk_1C = 2; + effect->data.waterFountain->unk_20 = 2; + effect->data.waterFountain->unk_28 = 80; + effect->data.waterFountain->unk_2C = 80; + effect->data.waterFountain->unk_30 = 80; return ApiStatus_DONE2; } diff --git a/src/d0a70_len_4fe0.c b/src/d0a70_len_4fe0.c index f978ec9b8c..f06d7c4ece 100644 --- a/src/d0a70_len_4fe0.c +++ b/src/d0a70_len_4fe0.c @@ -397,7 +397,7 @@ void fold_init_state(FoldState* state) { } } -void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { +void fold_update(u32 idx, FoldType type, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { FoldState* state = &(*D_80156954)[idx]; s32 oldFlags; s32 t1; @@ -406,9 +406,9 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, return; } - switch (arg1) { - case 0: - case 3: + switch (type) { + case FOLD_TYPE_NONE: + case FOLD_TYPE_3: oldFlags = state->flags; fold_clear_state_gfx(state); fold_init_state(state); @@ -427,38 +427,38 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, state->flags = state->flags; // required to match } return; - case 1: + case FOLD_TYPE_1: state->unk_05 = 0; state->renderType = 0; state->unk_1C[0][0] = -1; return; - case 2: + case FOLD_TYPE_2: state->unk_06 = 0; state->meshType = 0; state->unk_1C[1][0] = -1; return; - case 17: + case FOLD_TYPE_11: if (state->buf != NULL) { heap_free(state->buf); } state->bufSize = arg2 * 4; state->buf = heap_malloc(state->bufSize); return; - case 15: - case 16: - if (arg1 == state->unk_06 && arg2 == state->unk_1C[1][0] && arg3 == state->unk_1C[1][1]) { + case FOLD_TYPE_F: + case FOLD_TYPE_10: + if (type == state->unk_06 && arg2 == state->unk_1C[1][0] && arg3 == state->unk_1C[1][1]) { return; } break; - case 5: - if (state->unk_05 == arg1 && state->unk_1C[0][0] == arg2 && state->unk_1C[0][1] == arg3 && + case FOLD_TYPE_5: + if (state->unk_05 == type && state->unk_1C[0][0] == arg2 && state->unk_1C[0][1] == arg3 && state->unk_1C[0][2] == arg4) { return; } break; default: - if (arg1 != 0xD && state->unk_06 == 0xD) { + if (type != FOLD_TYPE_D && state->unk_06 == 0xD) { state->meshType = 0; state->subdivX = 1; state->subdivY = 1; @@ -466,18 +466,18 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, break; } - if (arg1 != 5 && state->unk_05 == 5) { + if (type != FOLD_TYPE_5 && state->unk_05 == 5) { state->unk_05 = 0; } - if (arg1 == 4 || arg1 == 5) { - state->unk_05 = arg1; + if (type == FOLD_TYPE_4 || type == FOLD_TYPE_5) { + state->unk_05 = type; state->unk_1C[0][0] = arg2; state->unk_1C[0][1] = arg3; state->unk_1C[0][2] = arg4; state->unk_1C[0][3] = arg5; - } else if (arg1 >= 6 && arg1 <= 16) { - state->unk_06 = arg1; + } else if (type >= FOLD_TYPE_6 && type <= FOLD_TYPE_10) { + state->unk_06 = type; state->unk_1C[1][0] = arg2; state->unk_1C[1][1] = arg3; state->unk_1C[1][2] = arg4; @@ -490,27 +490,27 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, } state->meshType = 0; - switch (arg1) { - case 3: + switch (type) { + case FOLD_TYPE_3: state->meshType = 0; state->renderType = 0; break; - case 4: + case FOLD_TYPE_4: state->subdivX = 4; state->subdivY = 4; state->meshType = 1; func_8013EE48(state); break; - case 5: + case FOLD_TYPE_5: state->meshType = 2; state->renderType = 0xB; state->unk_3C[0][0] = 0.0f; state->unk_3C[0][1] = 0.0f; state->flags |= FOLD_STATE_FLAG_200; break; - case 6: - case 7: - case 8: + case FOLD_TYPE_6: + case FOLD_TYPE_7: + case FOLD_TYPE_8: if (arg2 >= 0xFF && arg3 >= 0xFF && arg4 >= 0xFF && arg5 >= 0xFF) { state->renderType = 0; } else if (arg5 >= 0xFF) { @@ -521,15 +521,15 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, state->renderType = 3; } break; - case 9: - case 10: + case FOLD_TYPE_9: + case FOLD_TYPE_A: if (arg5 == 255.0) { state->renderType = 4; } else { state->renderType = 5; } break; - case 11: + case FOLD_TYPE_B: if (arg2 < state->bufSize) { t1 = (u32) arg3 >> 0x18; // required to match state->buf[arg2 * 4 + 0] = (u32) arg3 >> 0x18; @@ -548,7 +548,7 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, } } break; - case 12: + case FOLD_TYPE_C: if (arg2 < state->bufSize) { t1 = (u32) arg3 >> 0x18; // required to match state->buf[arg2 * 4 + 0] = t1; @@ -567,14 +567,14 @@ void fold_update(u32 idx, FoldType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, } } break; - case 13: + case FOLD_TYPE_D: state->renderType = 0xC; break; - case 14: + case FOLD_TYPE_E: state->renderType = 0xD; break; - case 15: - case 16: + case FOLD_TYPE_F: + case FOLD_TYPE_10: state->meshType = 4; if (arg3 >= 0xFF) { state->renderType = 0xE; diff --git a/src/effects.c b/src/effects.c index b3912e693d..5f13841248 100644 --- a/src/effects.c +++ b/src/effects.c @@ -173,15 +173,16 @@ s32 D_8007FEB8[] = { }; /// Used for unbound function points in effect structs. -void stub_effect_delegate(EffectInstance* effectInst) { +void stub_effect_delegate(EffectInstance* effect) { } -void set_effect_pos_offset(EffectGraphics* effect, f32 x, f32 y, f32 z) { - EffectInstanceData* instanceData = effect->freeDelay; - instanceData->pos.x = x; - instanceData->pos.y = y; - instanceData->pos.z = z; +void set_effect_pos_offset(EffectInstance* effect, f32 x, f32 y, f32 z) { + s32* data = effect->data.any; + + ((f32*)data)[1] = x; + ((f32*)data)[2] = y; + ((f32*)data)[3] = z; } void clear_effect_data(void) { @@ -391,23 +392,23 @@ EffectInstance* create_effect_instance(EffectBlueprint* effectBp) { return newEffectInst; } -void remove_effect(EffectInstance* effectInstsance) { +void remove_effect(EffectInstance* effectInstance) { s32 i; for (i = 0; i < ARRAY_COUNT(gEffectInstances); i++) { - if (gEffectInstances[i] == effectInstsance) { + if (gEffectInstances[i] == effectInstance) { break; } } ASSERT(i < ARRAY_COUNT(gEffectInstances)); - if (effectInstsance->data == NULL) { - general_heap_free(effectInstsance); + if (effectInstance->data.any == NULL) { + general_heap_free(effectInstance); gEffectInstances[i] = NULL; } else { - general_heap_free(effectInstsance->data); - general_heap_free(effectInstsance); + general_heap_free(effectInstance->data.any); + general_heap_free(effectInstance); gEffectInstances[i] = NULL; } } @@ -419,8 +420,8 @@ void remove_all_effects(void) { EffectInstance* effect = gEffectInstances[i]; if (effect != NULL && effect->flags & 4) { - if (effect->data != NULL) { - general_heap_free(effect->data); + if (effect->data.any != NULL) { + general_heap_free(effect->data.any); } general_heap_free(effect); gEffectInstances[i] = NULL; diff --git a/src/effects/attack_result_text.c b/src/effects/attack_result_text.c index 160f7d5281..480f4acc0d 100644 --- a/src/effects/attack_result_text.c +++ b/src/effects/attack_result_text.c @@ -50,7 +50,7 @@ EffectInstance* attack_result_text_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, effect = shim_create_effect_instance(&bp); effect->numParts = numParts; - data = effect->data = shim_general_heap_malloc(effect->numParts * sizeof(*data)); + data = effect->data.attackResultText = shim_general_heap_malloc(effect->numParts * sizeof(*data)); ASSERT(data != NULL); @@ -89,7 +89,7 @@ void attack_result_text_init(EffectInstance* effect) { } void attack_result_text_update(EffectInstance* effect) { - AttackResultTextFXData* data = effect->data; + AttackResultTextFXData* data = effect->data.attackResultText; s32 unk_00 = data->unk_00; s32 old_unk_1C; s32 unk_1C; diff --git a/src/effects/aura.c b/src/effects/aura.c index 9bf50283e9..34ab359420 100644 --- a/src/effects/aura.c +++ b/src/effects/aura.c @@ -19,7 +19,7 @@ Gfx* D_E0076EB0[] = { D_090023B0, D_090023B0, D_09002410, D_09002410 }; Gfx* D_E0076EC0[] = { D_090023C8, D_090023C8, D_09002428, D_09002428 }; Gfx* D_E0076ED0[] = { D_09002000, D_09002000, D_090020E8, D_090021D0 }; -void aura_appendGfx(void* effect); +void aura_appendGfx(void* argEffect); void aura_init(EffectInstance* effect); void aura_update(EffectInstance* effect); void aura_render(EffectInstance* effect); @@ -42,25 +42,25 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance* effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.aura = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.aura != NULL); - part->unk_64.s = 0; + part->renderYaw = 0.0f; - zero = part->unk_64.f; + zero = 0.0f; part->unk_40 = zero; part->unk_34 = zero; part->unk_58 = zero; part->unk_4C = zero; - part->unk_2C = 100; + part->fadeTime = 100; part->type = arg0; - part->unk_30 = 0; + part->lifeTime = 0; part->primA = 0; - part->pos.x = arg1; - part->pos.y = arg2; - part->pos.z = arg3; + part->posA.x = arg1; + part->posA.y = arg2; + part->posA.z = arg3; switch (arg0) { case 0: @@ -71,9 +71,9 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance* part->envG = 247; part->engB = 155; part->engA = 0; + part->scale.x = arg4 * 2.0; + part->scale.y = arg4 * 0.6; part->unk_24 = arg4; - part->unk_20 = arg4 * 0.6; - part->unk_1C = arg4 * 2.0; part->unk_38 = -0.9f; part->unk_44 = 0.04f; part->unk_3C = 0.04f; @@ -91,8 +91,8 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance* part->envG = 0; part->engB = 0; part->engA = 0; - part->unk_1C = arg4; - part->unk_20 = arg4; + part->scale.x = arg4; + part->scale.y = arg4; part->unk_24 = arg4; part->unk_38 = zero; part->unk_50 = zero; @@ -111,8 +111,8 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance* part->engB = 255; part->envG = 0; part->engA = 81; - part->unk_1C = arg4; - part->unk_20 = arg4; + part->scale.x = arg4; + part->scale.y = arg4; part->unk_24 = arg4; part->unk_38 = zero; part->unk_50 = zero; @@ -131,8 +131,8 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance* part->engB = 255; part->envG = 0; part->engA = 63; - part->unk_1C = arg4; - part->unk_20 = arg4; + part->scale.x = arg4; + part->scale.y = arg4; part->unk_24 = arg4; part->unk_38 = 0.0f; part->unk_50 = 0.0f; @@ -145,9 +145,9 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance* break; } - part->unk_10 = part->pos.x; - part->unk_14 = part->pos.y; - part->unk_18 = part->pos.z; + part->posB.x = part->posA.x; + part->posB.y = part->posA.y; + part->posB.z = part->posA.z; *outEffect = effect; } @@ -158,52 +158,52 @@ void aura_init(EffectInstance* effect) { void aura_update(EffectInstance* effect) { AuraFXData* data; s32 type; - s32 unk_2C; - s32 unk_30; + s32 fadeTime; + s32 lifeTime; - data = effect->data; + data = effect->data.aura; if (effect->flags & 0x10) { effect->flags &= ~0x10; - data->unk_2C = 5; + data->fadeTime = 5; } - data->unk_30++; - if (data->unk_30 > 324000) { - data->unk_30 = 256; + data->lifeTime++; + if (data->lifeTime > 90*60*60) { + data->lifeTime = 256; } - if (data->unk_2C <= 10) { - data->unk_2C--; + if (data->fadeTime <= 10) { + data->fadeTime--; } - if (data->unk_2C < 0) { + if (data->fadeTime < 0) { shim_remove_effect(effect); return; } type = data->type; - unk_2C = data->unk_2C; - unk_30 = data->unk_30; + fadeTime = data->fadeTime; + lifeTime = data->lifeTime; if (type < 2) { - if (unk_30 <= 10) { + if (lifeTime <= 10) { data->primA += (128 - data->primA) * 0.5; } } else { - if (unk_30 <= 10) { - data->primA = (unk_30 * 0xFF) / 10; + if (lifeTime <= 10) { + data->primA = (lifeTime * 0xFF) / 10; } } - if (unk_2C < 10) { + if (fadeTime < 10) { data->primA *= 0.5; } if (type == 0) { data->unk_38 += (data->unk_3C - data->unk_38) * 0.02; data->unk_44 += (data->unk_48 - data->unk_44) * 0.02; - data->unk_1C += (data->unk_24 - data->unk_1C) * 0.04; - data->unk_20 += (data->unk_24 - data->unk_20) * 0.04; + data->scale.x += (data->unk_24 - data->scale.x) * 0.04; + data->scale.y += (data->unk_24 - data->scale.y) * 0.04; } else { data->unk_38 += (data->unk_3C - data->unk_38) * 0.02; data->unk_44 += (data->unk_48 - data->unk_44) * 0.02; @@ -239,9 +239,9 @@ void aura_update(EffectInstance* effect) { data->unk_58 -= 128.0f; } - data->unk_10 += (data->pos.x - data->unk_10) * 0.1; - data->unk_14 += (data->pos.y - data->unk_14) * 0.1; - data->unk_18 += (data->pos.z - data->unk_18) * 0.1; + data->posB.x += (data->posA.x - data->posB.x) * 0.1; + data->posB.y += (data->posA.y - data->posB.y) * 0.1; + data->posB.z += (data->posA.z - data->posB.z) * 0.1; } void aura_render(EffectInstance* effect) { @@ -263,50 +263,50 @@ void func_E007684C(void) { void func_E0076854(void) { } -void aura_appendGfx(void* effect) { - Matrix4f sp18, sp58, sp98; - EffectInstance* eff = (EffectInstance*)effect; - AuraFXData* data = ((EffectInstance*)effect)->data; +void aura_appendGfx(void* argEffect) { + Matrix4f translateMtx, tempMtx, transformMtx; + EffectInstance* effect = argEffect; + AuraFXData* data = effect->data.aura; s32 type = data->type; s32 primA = data->primA; s32 v1, v2; - gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data)); + gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effect->graphics->data)); gSPDisplayList(gMasterGfxPos++, D_E0076ED0[type]); - shim_guTranslateF(sp18, data->unk_10, data->unk_14, data->unk_18); + shim_guTranslateF(translateMtx, data->posB.x, data->posB.y, data->posB.z); if (type == 2) { - shim_guRotateF(sp58, data->unk_64.f, 0.0f, 1.0f, 0.0f); + shim_guRotateF(tempMtx, data->renderYaw, 0.0f, 1.0f, 0.0f); } else { - shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f); + shim_guRotateF(tempMtx, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f); } - shim_guMtxCatF(sp58, sp18, sp98); - shim_guScaleF(sp58, data->unk_1C, data->unk_20, 1.0f); - shim_guMtxCatF(sp58, sp98, sp98); + shim_guMtxCatF(tempMtx, translateMtx, transformMtx); + shim_guScaleF(tempMtx, data->scale.x, data->scale.y, 1.0f); + shim_guMtxCatF(tempMtx, transformMtx, transformMtx); if (type == 0) { - shim_guTranslateF(sp58, (-(data->unk_1C - data->unk_24) / data->unk_24) * 10.0f, 0.0f, 0.0f); - shim_guMtxCatF(sp58, sp98, sp98); + shim_guTranslateF(tempMtx, (-(data->scale.x - data->unk_24) / data->unk_24) * 10.0f, 0.0f, 0.0f); + shim_guMtxCatF(tempMtx, transformMtx, transformMtx); } - shim_guMtxF2L(sp98, &gDisplayContext->matrixStack[gMatrixListPos]); + shim_guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gMasterGfxPos++, D_E0076EC0[type]); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); - shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z); + shim_guTranslateF(translateMtx, data->posA.x, data->posA.y, data->posA.z); if (type == 2) { - shim_guRotateF(sp58, data->unk_64.f, 0.0f, 1.0f, 0.0f); + shim_guRotateF(tempMtx, data->renderYaw, 0.0f, 1.0f, 0.0f); } else { - shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f); + shim_guRotateF(tempMtx, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f); } - shim_guMtxCatF(sp58, sp18, sp98); - shim_guScaleF(sp58, data->unk_1C, data->unk_20, 1.0f); - shim_guMtxCatF(sp58, sp98, sp98); + shim_guMtxCatF(tempMtx, translateMtx, transformMtx); + shim_guScaleF(tempMtx, data->scale.x, data->scale.y, 1.0f); + shim_guMtxCatF(tempMtx, transformMtx, transformMtx); if (type == 0) { - shim_guTranslateF(sp58, (-(data->unk_1C - data->unk_24) / data->unk_24) * 10.0f, 0.0f, 0.0f); - shim_guMtxCatF(sp58, sp98, sp98); + shim_guTranslateF(tempMtx, (-(data->scale.x - data->unk_24) / data->unk_24) * 10.0f, 0.0f, 0.0f); + shim_guMtxCatF(tempMtx, transformMtx, transformMtx); } - shim_guMtxF2L(sp98, &gDisplayContext->matrixStack[gMatrixListPos]); + shim_guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gMasterGfxPos++, D_E0076EB0[type]); diff --git a/src/effects/balloon.c b/src/effects/balloon.c index 1e463a3641..055706c116 100644 --- a/src/effects/balloon.c +++ b/src/effects/balloon.c @@ -31,7 +31,7 @@ EffectInstance* balloon_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; + effect->data.balloon = data; part = data; ASSERT(data != NULL); @@ -53,7 +53,7 @@ void balloon_init(EffectInstance* effect) { } void balloon_update(EffectInstance* effect) { - BalloonFXData* part = (BalloonFXData*)effect->data; + BalloonFXData* part = effect->data.balloon; part->unk_1C--; part->unk_20++; @@ -86,7 +86,7 @@ void balloon_render(EffectInstance* effect) { void balloon_appendGfx(void* effect) { Matrix4f sp18; Matrix4f sp58; - BalloonFXData* data = ((EffectInstance*)effect)->data; + BalloonFXData* data = ((EffectInstance*)effect)->data.balloon; s32 idx = data->unk_00; gDPPipeSync(gMasterGfxPos++); diff --git a/src/effects/big_smoke_puff.c b/src/effects/big_smoke_puff.c index 7e1eebcaca..f041140a50 100644 --- a/src/effects/big_smoke_puff.c +++ b/src/effects/big_smoke_puff.c @@ -46,7 +46,7 @@ void big_smoke_puff_main(f32 x, f32 y, f32 z) { effect->numParts = numParts; data = shim_general_heap_malloc(effect->numParts * sizeof(*data)); - effect->data = data; + effect->data.bigSmokePuff = data; ASSERT(data != NULL); @@ -75,7 +75,7 @@ void big_smoke_puff_init(EffectInstance* effect) { } void big_smoke_puff_update(EffectInstance* effect) { - BigSmokePuffFXData* data = effect->data; + BigSmokePuffFXData* data = effect->data.bigSmokePuff; s32 cond = FALSE; s32 i; @@ -121,7 +121,7 @@ void big_smoke_puff_render(EffectInstance* effect) { void big_smoke_puff_appendGfx(void* effect) { EffectInstance* eff = (EffectInstance*)effect; - BigSmokePuffFXData* data = ((EffectInstance*)effect)->data; + BigSmokePuffFXData* data = ((EffectInstance*)effect)->data.bigSmokePuff; Matrix4f mtx; s32 i; diff --git a/src/effects/big_snowflakes.c b/src/effects/big_snowflakes.c index 796f785629..37fbd36326 100644 --- a/src/effects/big_snowflakes.c +++ b/src/effects/big_snowflakes.c @@ -16,7 +16,7 @@ void big_snowflakes_appendGfx(void* effect); void big_snowflakes_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { EffectBlueprint bp; EffectInstance* effect; - BigSnowflakeFXData* data; + BigSnowflakesFXData* data; s32 numParts = 9; s32 i; @@ -31,7 +31,7 @@ void big_snowflakes_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { effect->numParts = numParts; data = shim_general_heap_malloc(effect->numParts * sizeof(*data)); - effect->data = data; + effect->data.bigSnowflakes = data; ASSERT(data != NULL); @@ -61,7 +61,7 @@ void big_snowflakes_init(EffectInstance* effect) { } void big_snowflakes_update(EffectInstance* effect) { - BigSnowflakeFXData* data = effect->data; + BigSnowflakesFXData* data = effect->data.bigSnowflakes; s32 unk_28; s32 i; @@ -108,7 +108,7 @@ void big_snowflakes_render(EffectInstance* effect) { } void big_snowflakes_appendGfx(void* effect) { - BigSnowflakeFXData* data = ((EffectInstance*)effect)->data; + BigSnowflakesFXData* data = ((EffectInstance*)effect)->data.bigSnowflakes; Matrix4f sp18; Matrix4f sp58; Matrix4f sp98; diff --git a/src/effects/blast.c b/src/effects/blast.c index 20c0369549..5a1bdc553e 100644 --- a/src/effects/blast.c +++ b/src/effects/blast.c @@ -1,10 +1,11 @@ #include "common.h" #include "effects_internal.h" -void blast_appendGfx(void* effect); + void blast_init(EffectInstance* effect); void blast_update(EffectInstance* effect); void blast_render(EffectInstance* effect); +void blast_appendGfx(void* effect); void blast_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) { EffectBlueprint bp; @@ -24,9 +25,9 @@ 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)); + part = effect->data.blast = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.blast != NULL); shim_mem_clear(part, numParts * sizeof(*part)); @@ -48,7 +49,7 @@ void blast_init(EffectInstance* effect) { } void blast_update(EffectInstance* effect) { - BlastFXData* part = effect->data; + BlastFXData* part = effect->data.blast; part->unk_20 = part->unk_18++ * 9.0f / part->unk_1C; part->timeLeft--; diff --git a/src/effects/bulb_glow.c b/src/effects/bulb_glow.c index deb1d85add..9f6e1e7173 100644 --- a/src/effects/bulb_glow.c +++ b/src/effects/bulb_glow.c @@ -11,14 +11,14 @@ void bulb_glow_init(void) { INCLUDE_ASM(s32, "effects/bulb_glow", bulb_glow_update); void bulb_glow_render(EffectInstance* effect) { - BulbGlowFXData* effect60 = effect->data; + BulbGlowFXData* data = effect->data.bulbGlow; RenderTask renderTask; RenderTask* renderTaskPtr = &renderTask; RenderTask* retTask; renderTask.appendGfxArg = effect; renderTask.appendGfx = bulb_glow_appendGfx; - if (effect60->unk_00 == 5) { + if (data->unk_00 == 5) { renderTask.distance = 0; renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA; } else { diff --git a/src/effects/butterflies.c b/src/effects/butterflies.c index a2a3423627..8ed997c9fd 100644 --- a/src/effects/butterflies.c +++ b/src/effects/butterflies.c @@ -32,7 +32,7 @@ void butterflies_appendGfx(void* effect); EffectInstance* butterflies_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { EffectBlueprint bp; EffectInstance* effect; - ButterflyFXData* part; + ButterfliesFXData* part; s32 numParts = 1; s32 i; @@ -45,8 +45,8 @@ EffectInstance* butterflies_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { effect = shim_create_effect_instance(&bp); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + part = effect->data.butterflies = shim_general_heap_malloc(numParts * sizeof(*part)); + ASSERT(effect->data.butterflies != NULL); part->unk_04 = 1000; part->unk_00 = arg0; @@ -69,7 +69,7 @@ void butterflies_init(EffectInstance* effect) { } void butterflies_update(EffectInstance* effect) { - ButterflyFXData* temp_s0; + ButterfliesFXData* temp_s0; f32 temp_f20; f32 temp_f20_2; f32 temp_f22; @@ -82,7 +82,7 @@ void butterflies_update(EffectInstance* effect) { f32 var_f22; f32 var_f24; - temp_s0 = effect->data; + temp_s0 = effect->data.butterflies; if (effect->flags & 0x10) { effect->flags &= ~0x10; temp_s0->unk_04 = 900; @@ -163,7 +163,7 @@ void butterflies_render(EffectInstance* effect) { void butterflies_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - ButterflyFXData* data = effectTemp->data; + ButterfliesFXData* data = effectTemp->data.butterflies; Matrix4f sp18; Matrix4f sp58; diff --git a/src/effects/cloud_puff.c b/src/effects/cloud_puff.c index cdfff4983a..d34afa842f 100644 --- a/src/effects/cloud_puff.c +++ b/src/effects/cloud_puff.c @@ -27,8 +27,8 @@ void cloud_puff_main(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { effect = shim_create_effect_instance(&bp); effect->numParts = numParts; part = shim_general_heap_malloc(numParts * sizeof(*part)); - effect->data = part; - ASSERT(effect->data != NULL); + effect->data.cloudPuff = part; + ASSERT(effect->data.cloudPuff != NULL); shim_mem_clear(part, numParts * sizeof(*part)); @@ -60,7 +60,7 @@ void cloud_puff_init(EffectInstance* effect) { } void cloud_puff_update(EffectInstance* effect) { - CloudPuffFXData* part = (CloudPuffFXData*)effect->data; + CloudPuffFXData* part = effect->data.cloudPuff; s32 cond = FALSE; s32 i; @@ -114,7 +114,7 @@ void cloud_puff_render(EffectInstance* effect) { void cloud_puff_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - CloudPuffFXData* part = effectTemp->data; + CloudPuffFXData* part = effectTemp->data.cloudPuff; Matrix4f sp20; Matrix4f sp60; s32 i; diff --git a/src/effects/cloud_trail.c b/src/effects/cloud_trail.c index b3c6d9650e..c1b8f372e2 100644 --- a/src/effects/cloud_trail.c +++ b/src/effects/cloud_trail.c @@ -26,9 +26,9 @@ void cloud_trail_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { effect = shim_create_effect_instance(&bp); effect->numParts = 1; part = shim_general_heap_malloc(numParts * sizeof(*part)); - effect->data = part; + effect->data.cloudTrail = part; - ASSERT(effect->data != NULL); + ASSERT(effect->data.cloudTrail != NULL); shim_mem_clear(part, numParts * sizeof(*part)); @@ -60,7 +60,7 @@ void cloud_trail_init(EffectInstance* effect) { } void cloud_trail_update(EffectInstance* effect) { - CloudTrailFXData* part = (CloudTrailFXData*)effect->data; + CloudTrailFXData* part = effect->data.cloudTrail; s32 cond = FALSE; s32 i; @@ -115,7 +115,7 @@ void cloud_trail_render(EffectInstance* effect) { void cloud_trail_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - CloudTrailFXData* part = effectTemp->data; + CloudTrailFXData* part = effectTemp->data.cloudTrail; Matrix4f sp20; Matrix4f sp60; s32 i; diff --git a/src/effects/damage_indicator.c b/src/effects/damage_indicator.c index bc7a206e17..59581def7b 100644 --- a/src/effects/damage_indicator.c +++ b/src/effects/damage_indicator.c @@ -96,8 +96,8 @@ void damage_indicator_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - effect->data = part = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + effect->data.damageIndicator = part = shim_general_heap_malloc(numParts * sizeof(*part)); + ASSERT(effect->data.damageIndicator != NULL); part->unk_00 = arg0; part->unk_04.x = arg1; @@ -133,7 +133,7 @@ void damage_indicator_update(EffectInstance* effect) { s32 temp_a2; s32 temp_t0; s32 duration; - DamageIndicatorFXData* part = effect->data; + DamageIndicatorFXData* part = effect->data.damageIndicator; f32 phi_f12; s32 i; diff --git a/src/effects/debuff.c b/src/effects/debuff.c index 148428f084..cbc5c850dc 100644 --- a/src/effects/debuff.c +++ b/src/effects/debuff.c @@ -29,7 +29,7 @@ EffectInstance* debuff_main(s32 arg0, f32 x, f32 y, f32 z) { effect = shim_create_effect_instance(&bp); effect->numParts = numParts; - effect->data = data = shim_general_heap_malloc(numParts * sizeof(*data)); + effect->data.debuff = data = shim_general_heap_malloc(numParts * sizeof(*data)); ASSERT(data != NULL); @@ -83,7 +83,7 @@ void debuff_init(EffectInstance* effect) { } void debuff_update(EffectInstance* effect) { - DebuffFXData* data = effect->data; + DebuffFXData* data = effect->data.debuff; s32 temp; s32 i; @@ -132,7 +132,7 @@ void debuff_render(EffectInstance* effect) { void debuff_appendGfx(void* effect) { EffectInstance* eff = (EffectInstance*)effect; - DebuffFXData* data = eff->data; + DebuffFXData* data = eff->data.debuff; Gfx* dlist = D_E00628C0[0]; Gfx* dlist2 = D_E00628C4[0]; Matrix4f sp18; diff --git a/src/effects/disable_x.c b/src/effects/disable_x.c index 225aef2478..596ab5c7d8 100644 --- a/src/effects/disable_x.c +++ b/src/effects/disable_x.c @@ -50,8 +50,8 @@ EffectInstance* disable_x_main(s32 type, f32 x, f32 y, f32 z, s32 arg4) { effect = shim_create_effect_instance(&bp); effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; - ASSERT(effect->data != NULL); + effect->data.disableX = data; + ASSERT(effect->data.disableX != NULL); data->type = type; data->scale = 1.0f; @@ -102,7 +102,7 @@ void disable_x_init(EffectInstance* effect) { void disable_x_update(EffectInstance* effect) { static const f32 D_E0082D30[12] = { 5.0f, 4.0f, 4.0f, 3.0f, 2.0f, 1.0f, 0.7f, 1.2f, 1.0f, 0.0f, 0.0f, 0.0f }; - DisableXFXData* data = effect->data; + DisableXFXData* data = effect->data.disableX; s32 unk_28; s32 unk_2C; f32 unk_34; @@ -202,7 +202,7 @@ void disable_x_render(EffectInstance* effect) { } void func_E0082528(EffectInstance* effect) { - DisableXFXData* data = effect->data; + DisableXFXData* data = effect->data.disableX; if (data->unk_04 != 0) { func_E00828B4(effect); @@ -254,7 +254,7 @@ void func_E00826C4(DisableXFXData* data) { } void func_E00828B4(EffectInstance* effect) { - DisableXFXData* data = effect->data; + DisableXFXData* data = effect->data.disableX; s32 type; s32 unk_38; s32 i; @@ -283,7 +283,7 @@ void func_E00828B4(EffectInstance* effect) { } void func_E0082A84(EffectInstance* effect) { - DisableXFXData* data = effect->data; + DisableXFXData* data = effect->data.disableX; s32 unk_38; s32 i; diff --git a/src/effects/effect_75.c b/src/effects/effect_75.c index d861bf8e96..ac44796d47 100644 --- a/src/effects/effect_75.c +++ b/src/effects/effect_75.c @@ -15,7 +15,7 @@ void fx_75_init(void) { INCLUDE_ASM(s32, "effects/effect_75", fx_75_update); void fx_75_render(EffectInstance* effect) { - Effect75FXData* data = effect->data; + Effect75FXData* data = effect->data.unk_75; RenderTask renderTask; RenderTask* renderTaskPtr = &renderTask; RenderTask* retTask; diff --git a/src/effects/effect_86.c b/src/effects/effect_86.c index a61ec64977..2074d28141 100644 --- a/src/effects/effect_86.c +++ b/src/effects/effect_86.c @@ -30,8 +30,8 @@ void fx_86_appendGfx(void* effect); EffectInstance* fx_86_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) { EffectBlueprint bp; EffectInstance* effect; - Effect134* data; - Effect134* part; + Effect86FXData* data; + Effect86FXData* part; s32 numParts = 1; bp.init = fx_86_init; @@ -45,7 +45,7 @@ EffectInstance* fx_86_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; + effect->data.unk_86 = data; part = data; ASSERT(data != NULL); @@ -76,7 +76,7 @@ void fx_86_init(EffectInstance* effect) { } void fx_86_update(EffectInstance* effect) { - Effect134* data = effect->data; + Effect86FXData* data = effect->data.unk_86; if (effect->flags & 0x10) { effect->flags &= ~0x10; @@ -109,7 +109,7 @@ void fx_86_render(EffectInstance* effect) { void fx_86_appendGfx(void* effect) { Matrix4f sp10; Matrix4f sp50; - Effect134* part = ((EffectInstance*)effect)->data; + Effect86FXData* part = ((EffectInstance*)effect)->data.unk_86; Camera* camera = &gCameras[gCurrentCameraID]; s32 primAlpha = part->unk_24; s32 dlistIdx = part->unk_00; diff --git a/src/effects/emote.c b/src/effects/emote.c index a4c1c680fe..2c6e8340d8 100644 --- a/src/effects/emote.c +++ b/src/effects/emote.c @@ -55,7 +55,7 @@ INCLUDE_ASM(s32, "effects/emote", func_E0020000); void emote_main(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance** arg8) { EffectBlueprint bp; EffectBlueprint* bpPtr = &bp; - EmoteFXData* part; + EmoteFXData* data; EffectInstance* effect; s32 numParts; @@ -74,39 +74,39 @@ void emote_main(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + data = effect->data.emote = shim_general_heap_malloc(numParts * sizeof(*data)); - ASSERT(effect->data != NULL); - part->unk_3C = arg1; - part->unk_00 = arg0; - part->unk_30 = arg0; + ASSERT(effect->data.emote != NULL); + data->unk_3C = arg1; + data->unk_00 = arg0; + data->unk_30 = arg0; if (arg7 <= 0) { arg7 = 10000; } - part->unk_2C = arg7; - part->unk_34 = 0; + data->unk_2C = arg7; + data->unk_34 = 0; if (arg0 == 1) { s32 i; - for (i = 0; i < numParts; i++, part++) { - part->unk_10 = arg2; - part->unk_14 = arg3; - part->unk_18 = arg4; - part->unk_1C = arg6; - part->unk_20 = arg5; - part->unk_3C = arg1; - func_E0020000(part, i); + for (i = 0; i < numParts; i++, data++) { + data->unk_10 = arg2; + data->unk_14 = arg3; + data->unk_18 = arg4; + data->unk_1C = arg6; + data->unk_20 = arg5; + data->unk_3C = arg1; + func_E0020000(data, i); } } else { - part->unk_10 = arg2; - part->unk_14 = arg3; - part->unk_18 = arg4; - part->unk_1C = arg6; - part->unk_20 = arg5; - part->unk_3C = arg1; - func_E0020000(part, 1); + data->unk_10 = arg2; + data->unk_14 = arg3; + data->unk_18 = arg4; + data->unk_1C = arg6; + data->unk_20 = arg5; + data->unk_3C = arg1; + func_E0020000(data, 1); } *arg8 = effect; } @@ -115,7 +115,7 @@ void emote_init(EffectInstance* effect) { } void emote_update(EffectInstance* effect) { - EmoteFXData* part = effect->data; + EmoteFXData* part = effect->data.emote; s32 temp_a0 = D_E0020D80[part->unk_30][part->unk_34]; s32 type = part->unk_00; diff --git a/src/effects/ending_decals.c b/src/effects/ending_decals.c index f746b8bde6..7842d11398 100644 --- a/src/effects/ending_decals.c +++ b/src/effects/ending_decals.c @@ -1,10 +1,6 @@ #include "common.h" #include "effects_internal.h" -typedef struct EndingDecalsFXData { - /* 0x00 */ s32 unk_00; -} EndingDecalsFXData; // size = 0x?? - void ending_decals_appendGfx(void* effect); INCLUDE_ASM(s32, "effects/ending_decals", ending_decals_main); @@ -15,7 +11,7 @@ void ending_decals_init(void) { INCLUDE_ASM(s32, "effects/ending_decals", ending_decals_update); void ending_decals_render(EffectInstance* effect) { - EndingDecalsFXData* effect52 = effect->data; + EndingDecalsFXData* data = effect->data.endingDecals; RenderTask renderTask; RenderTask* renderTaskPtr = &renderTask; RenderTask* retTask; @@ -23,7 +19,7 @@ void ending_decals_render(EffectInstance* effect) { renderTask.appendGfxArg = effect; renderTask.appendGfx = ending_decals_appendGfx; renderTask.distance = 10; - if (effect52->unk_00 == 0) { + if (data->unk_00 == 0) { renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA; } else { renderTaskPtr->renderMode = RENDER_MODE_2D; diff --git a/src/effects/energy_orb_wave.c b/src/effects/energy_orb_wave.c index 4f62f31726..ea5ea7bac9 100644 --- a/src/effects/energy_orb_wave.c +++ b/src/effects/energy_orb_wave.c @@ -1,10 +1,6 @@ #include "common.h" #include "effects_internal.h" -typedef struct EnergyOrbWaveFXData { - /* 0x00 */ s32 unk_00; -} EnergyOrbWaveFXData; // size = ?? - void energy_orb_wave_appendGfx(void* effect); INCLUDE_ASM(s32, "effects/energy_orb_wave", energy_orb_wave_main); @@ -15,7 +11,7 @@ void energy_orb_wave_init(void) { INCLUDE_ASM(s32, "effects/energy_orb_wave", energy_orb_wave_update); void energy_orb_wave_render(EffectInstance* effect) { - EnergyOrbWaveFXData* effect82 = effect->data; + EnergyOrbWaveFXData* effect82 = effect->data.energyOrbWave; RenderTask renderTask; RenderTask* retTask; RenderTask* renderTaskPointer = &renderTask; diff --git a/src/effects/fire_breath.c b/src/effects/fire_breath.c index 945115c91e..b7be42d602 100644 --- a/src/effects/fire_breath.c +++ b/src/effects/fire_breath.c @@ -36,8 +36,8 @@ EffectInstance* fire_breath_main( effect = shim_create_effect_instance(&bp); effect->numParts = numParts; - data = effect->data = shim_general_heap_malloc(numParts * sizeof(*data)); - ASSERT(effect->data != NULL); + data = effect->data.fireBreath = shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(effect->data.fireBreath != NULL); data->type = type; data->numChildren = numExtra; @@ -92,7 +92,7 @@ void fire_breath_init(EffectInstance* effect) { } void fire_breath_update(EffectInstance* effect) { - FireBreathFXData* data = effect->data; + FireBreathFXData* data = effect->data.fireBreath; s32 maxLifetime; s32 lifetime; s32 spawnTimer; @@ -132,15 +132,15 @@ void fire_breath_update(EffectInstance* effect) { data->endPos.z, data->numChildren - 1, data->spawnDelay, maxLifetime ); - ((FireBreathFXData*)spawned->data)->primR = data->primR; - ((FireBreathFXData*)spawned->data)->primG = data->primG; - ((FireBreathFXData*)spawned->data)->primB = data->primB; - ((FireBreathFXData*)spawned->data)->envR = data->envR; - ((FireBreathFXData*)spawned->data)->envG = data->envG; - ((FireBreathFXData*)spawned->data)->envB = data->envB; - ((FireBreathFXData*)spawned->data)->unk_30 = ((FireBreathFXData*)spawned->data)->scale = data->unk_30; - ((FireBreathFXData*)spawned->data)->unk_34 = data->unk_34; - ((FireBreathFXData*)spawned->data)->scaleChangeFactor = data->scaleChangeFactor; + spawned->data.fireBreath->primR = data->primR; + spawned->data.fireBreath->primG = data->primG; + spawned->data.fireBreath->primB = data->primB; + spawned->data.fireBreath->envR = data->envR; + spawned->data.fireBreath->envG = data->envG; + spawned->data.fireBreath->envB = data->envB; + spawned->data.fireBreath->unk_30 = spawned->data.fireBreath->scale = data->unk_30; + spawned->data.fireBreath->unk_34 = data->unk_34; + spawned->data.fireBreath->scaleChangeFactor = data->scaleChangeFactor; } if (lifetime < 10 && data->type == FIRE_BREATH_LARGE) { @@ -159,7 +159,7 @@ void fire_breath_update(EffectInstance* effect) { } void fire_breath_render(EffectInstance* effect) { - FireBreathFXData* data = effect->data; + FireBreathFXData* data = effect->data.fireBreath; RenderTask renderTask; RenderTask* retTask; RenderTask* renderTaskPointer = &renderTask; @@ -181,7 +181,7 @@ void fire_breath_render(EffectInstance* effect) { void fire_breath_appendGfx(void* effect) { Matrix4f sp18; Matrix4f sp58; - FireBreathFXData* data = ((EffectInstance*)effect)->data; + FireBreathFXData* data = ((EffectInstance*)effect)->data.fireBreath; s32 type = data->type; s32 envAlpha = (data->unk_5C - (s32)data->unk_5C) * 256.0f; Gfx* dlist = D_E006EC00[type]; diff --git a/src/effects/fire_flower.c b/src/effects/fire_flower.c index a0604de66b..f9c592853b 100644 --- a/src/effects/fire_flower.c +++ b/src/effects/fire_flower.c @@ -27,9 +27,9 @@ EffectInstance* fire_flower_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg effect = shim_create_effect_instance(&bp); effect->numParts = numParts; part = shim_general_heap_malloc(numParts * sizeof(*part)); - effect->data = part; + effect->data.fireFlower = part; - ASSERT(effect->data != NULL); + ASSERT(effect->data.fireFlower != NULL); part->unk_04 = 0; part->unk_00 = arg0; diff --git a/src/effects/flame.c b/src/effects/flame.c index f887c1e181..8e15eebb46 100644 --- a/src/effects/flame.c +++ b/src/effects/flame.c @@ -1,13 +1,6 @@ #include "common.h" #include "effects_internal.h" -typedef struct FlameFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; -} FlameFXData; // size = 0x?? - void flame_appendGfx(void* effect); u32 D_E0040840[2] = { 0xFF6DFF5C, 0x66BFFF4B }; @@ -24,7 +17,7 @@ void flame_init(void) { INCLUDE_ASM(s32, "effects/flame", flame_update); void flame_render(EffectInstance* effect) { - FlameFXData* effect32 = effect->data; + FlameFXData* data = effect->data.flame; RenderTask renderTask; RenderTask* renderTaskPtr = &renderTask; RenderTask* retTask; @@ -34,7 +27,7 @@ void flame_render(EffectInstance* effect) { f32 outZ; f32 outS; - shim_transform_point(gCameras[gCurrentCameraID].perspectiveMatrix[0], effect32->unk_04, effect32->unk_08, effect32->unk_0C, 1.0f, &outX, &outY, &outZ, &outS); + shim_transform_point(gCameras[gCurrentCameraID].perspectiveMatrix[0], data->unk_04, data->unk_08, data->unk_0C, 1.0f, &outX, &outY, &outZ, &outS); outDist = outZ + 5000; if (outDist < 0) { diff --git a/src/effects/floating_flower.c b/src/effects/floating_flower.c index 4fd3148d5a..b323a53827 100644 --- a/src/effects/floating_flower.c +++ b/src/effects/floating_flower.c @@ -26,9 +26,9 @@ void floating_flower_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) { effect = shim_create_effect_instance(&bp); effect->numParts = 1; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.floatingFlower = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.floatingFlower != NULL); part->unk_00 = arg0; part->unk_04 = arg1; @@ -76,7 +76,7 @@ void floating_flower_init(EffectInstance* effect) { } void floating_flower_update(EffectInstance* effect) { - FloatingFlowerFXData* data = effect->data; + FloatingFlowerFXData* data = effect->data.floatingFlower; s32 unk_00 = data->unk_00; if (data->unk_34 < 150) { @@ -143,7 +143,7 @@ void floating_flower_render(EffectInstance* effect) { void floating_flower_appendGfx(void* effect) { Matrix4f sp20, other; EffectInstance* effectTemp = effect; - FloatingFlowerFXData* part = effectTemp->data; + FloatingFlowerFXData* part = effectTemp->data.floatingFlower; u32 alpha; u8 rgb, a; diff --git a/src/effects/floating_rock.c b/src/effects/floating_rock.c index 891afd18dc..829fa609b8 100644 --- a/src/effects/floating_rock.c +++ b/src/effects/floating_rock.c @@ -1,11 +1,6 @@ #include "common.h" #include "effects_internal.h" -typedef struct FloatingRockFXData { - /* 0x00 */ char unk_00[0xC]; - /* 0x0C */ f32 unk_0C; -} FloatingRockFXData; // size = 0x?? - void floating_rock_appendGfx(void* effect); INCLUDE_ASM(s32, "effects/floating_rock", floating_rock_main); @@ -16,7 +11,7 @@ void floating_rock_init(void) { INCLUDE_ASM(s32, "effects/floating_rock", floating_rock_update); void floating_rock_render(EffectInstance *effect) { - FloatingRockFXData* effect76 = effect->data; + FloatingRockFXData* effect76 = effect->data.floatingRock; RenderTask renderTask; RenderTask* retTask; diff --git a/src/effects/flower_splash.c b/src/effects/flower_splash.c index 368c5e6a3c..bdfa55fdb1 100644 --- a/src/effects/flower_splash.c +++ b/src/effects/flower_splash.c @@ -62,8 +62,8 @@ void flower_splash_main(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; - ASSERT(effect->data != NULL); + effect->data.flowerSplash = data; + ASSERT(effect->data.flowerSplash != NULL); shim_mem_clear(data, numParts * sizeof(*data)); @@ -98,7 +98,7 @@ void flower_splash_init(EffectInstance* effect) { } void flower_splash_update(EffectInstance* effect) { - FlowerFXData* data = (FlowerFXData*)effect->data; + FlowerFXData* data = effect->data.flowerSplash; s32 cond = FALSE; s32 i; @@ -139,7 +139,7 @@ void func_E00104F4(EffectInstance* effect) { void flower_splash_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - FlowerFXData* data = effectTemp->data; + FlowerFXData* data = effectTemp->data.flowerSplash; s32 i; gDPPipeSync(gMasterGfxPos++); diff --git a/src/effects/flower_trail.c b/src/effects/flower_trail.c index e308d5cd0b..e50b124329 100644 --- a/src/effects/flower_trail.c +++ b/src/effects/flower_trail.c @@ -64,8 +64,8 @@ void flower_trail_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg effect->numParts = numParts; part = shim_general_heap_malloc(numParts * sizeof(*part)); - effect->data = part; - ASSERT(effect->data != NULL); + effect->data.flowerTrail = part; + ASSERT(effect->data.flowerTrail != NULL); shim_mem_clear(part, numParts * sizeof(*part)); @@ -116,7 +116,7 @@ void flower_trail_init(EffectInstance* effect) { } void flower_trail_update(EffectInstance* effect) { - FlowerFXData* part = (FlowerFXData*)effect->data; + FlowerFXData* part = effect->data.flowerTrail; s32 cond = FALSE; s32 i; @@ -157,7 +157,7 @@ void func_E0012548(EffectInstance* effect) { void flower_trail_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - FlowerFXData* part = effectTemp->data; + FlowerFXData* part = effectTemp->data.flowerTrail; Gfx* dlist; s32 i; diff --git a/src/effects/footprint.c b/src/effects/footprint.c index 61944406dc..6d30a99d35 100644 --- a/src/effects/footprint.c +++ b/src/effects/footprint.c @@ -38,9 +38,9 @@ void footprint_main(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, effect = shim_create_effect_instance(&bp); effect->numParts = 1; part = shim_general_heap_malloc(numParts * sizeof(*part)); - effect->data = part; + effect->data.footprint = part; - ASSERT(effect->data != NULL); + ASSERT(effect->data.footprint != NULL); shim_mem_clear(part, numParts * sizeof(*part)); @@ -75,7 +75,7 @@ void footprint_init(EffectInstance* effect) { } void footprint_update(EffectInstance* effect) { - FootprintFXData* part = (FootprintFXData*)effect->data; + FootprintFXData* part = effect->data.footprint; s32 cond = FALSE; s32 i; @@ -116,7 +116,7 @@ void func_E00183BC(EffectInstance* effect) { void footprint_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - FootprintFXData* part = effectTemp->data; + FootprintFXData* part = effectTemp->data.footprint; s32 i; gDPPipeSync(gMasterGfxPos++); diff --git a/src/effects/gather_magic.c b/src/effects/gather_magic.c index 828440cf99..99fb236834 100644 --- a/src/effects/gather_magic.c +++ b/src/effects/gather_magic.c @@ -23,8 +23,8 @@ EffectInstance* gather_magic_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 ar effect = shim_create_effect_instance(&bp); effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; - ASSERT(effect->data != NULL); + effect->data.gatherMagic = data; + ASSERT(effect->data.gatherMagic != NULL); data->unk_04 = arg0; data->unk_1C = 0; diff --git a/src/effects/landing_dust.c b/src/effects/landing_dust.c index fb03afa244..208a724575 100644 --- a/src/effects/landing_dust.c +++ b/src/effects/landing_dust.c @@ -105,8 +105,8 @@ void landing_dust_main(s32 type, f32 x, f32 y, f32 z, f32 arg4) { effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; - ASSERT(effect->data != NULL); + effect->data.landingDust = data; + ASSERT(effect->data.landingDust != NULL); shim_mem_clear(data, numParts * sizeof(*data)); @@ -213,7 +213,7 @@ void landing_dust_init(EffectInstance* effect) { } void landing_dust_update(EffectInstance* effect) { - LandingDustFXData* data = effect->data; + LandingDustFXData* data = effect->data.landingDust; data->unk_40 = D_E000CD24[data->unk_38][data->unk_3C++]; @@ -258,7 +258,7 @@ void landing_dust_render(EffectInstance* effect) { } void landing_dust_appendGfx(void* effect) { - LandingDustFXData* part = ((EffectInstance*)effect)->data; + LandingDustFXData* part = ((EffectInstance*)effect)->data.landingDust; s32 type = part->type; s32 temp_t0 = part->unk_40; Matrix4f mtx1; diff --git a/src/effects/lightning_bolt.c b/src/effects/lightning_bolt.c index 1f98b4c920..2030091f65 100644 --- a/src/effects/lightning_bolt.c +++ b/src/effects/lightning_bolt.c @@ -21,7 +21,7 @@ f32 func_E00BC1D8(f32 arg0) { INCLUDE_ASM(s32, "effects/lightning_bolt", lightning_bolt_update); void lightning_bolt_render(EffectInstance *effect) { - LightningBoltFXData* effect94 = effect->data; + LightningBoltFXData* effect94 = effect->data.lightningBolt; RenderTask renderTask; RenderTask* retTask; RenderTask* renderTaskPointer = &renderTask; diff --git a/src/effects/music_note.c b/src/effects/music_note.c index 1fa9c0bd4b..2d7ba0e7c8 100644 --- a/src/effects/music_note.c +++ b/src/effects/music_note.c @@ -18,20 +18,6 @@ Gfx* D_E004C660[] = { D_09001038, D_090010C0, D_09001148, D_090011D0, D_09001258 s8 D_E004C67C[] = { 0xFE, 0xAC, 0xAC, 0xFE, 0xAC, 0xD5, 0xFE, 0xB4, 0x9A, 0xD5, 0xB4, 0xFE, 0xB4, 0xB4, 0xFE, 0xB4, 0xDD, 0xFE, 0xB4, 0xFE, 0xFE, 0xB4, 0xFE, 0xD5, 0xB4, 0xFE, 0xB4, 0xD5, 0xFE, 0xB4, 0xFE, 0xFE, 0xB4, 0xFE, 0xD5, 0xAC, }; -typedef struct MusicNoteFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; - /* 0x10 */ f32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ s32 timeLeft; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ f32 unk_24; - /* 0x28 */ f32 unk_28; - /* 0x2C */ f32 unk_2C; - /* 0x30 */ f32 unk_30; -} MusicNoteFXData; // size = 0x34 - void music_note_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { EffectBlueprint bp; EffectBlueprint* bpPtr = &bp; @@ -50,9 +36,9 @@ 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)); + part = effect->data.musicNote = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.musicNote != NULL); part->unk_00 = arg0; part->pos.x = arg1; @@ -91,7 +77,7 @@ void music_note_init(EffectInstance* effect) { } void music_note_update(EffectInstance* effect) { - MusicNoteFXData* part = effect->data; + MusicNoteFXData* part = effect->data.musicNote; s32 timeLeft; part->timeLeft--; diff --git a/src/effects/shape_spell.c b/src/effects/shape_spell.c index f21ef8705e..8554a74ad8 100644 --- a/src/effects/shape_spell.c +++ b/src/effects/shape_spell.c @@ -1,21 +1,6 @@ #include "common.h" #include "effects_internal.h" -typedef struct ShapeSpellFXData { - /* 0x00 */ s32 isChild; - /* 0x04 */ Vec3f pos; - /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ f32 unk_20; - /* 0x24 */ f32 unk_24; - /* 0x28 */ f32 unk_28; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 timeLeft; - /* 0x34 */ s32 unk_34; -} ShapeSpellFXData; // size = 0x38 - s32 D_E0024CC0[] = { 0x00FFD01A, 0x09001128, 0x090011A0, 0x784DD0FE, 0x09001150, 0x090011C8, 0xF0FE4C6E, 0x09001178, 0x090011F0, 0x00000000, 0x00000000, 0x00000000 }; void shape_spell_appendGfx(void* effect); @@ -39,9 +24,9 @@ EffectInstance* shape_spell_main(s32 isChild, f32 x, f32 y, f32 z, f32 arg4, f32 effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.shapeSpell = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.shapeSpell != NULL); part->unk_2C = 0; part->isChild = isChild; @@ -76,7 +61,7 @@ void shape_spell_init(EffectInstance* effect) { void shape_spell_update(EffectInstance* effect) { s32 flags = effect->flags; - ShapeSpellFXData* part = effect->data; + ShapeSpellFXData* part = effect->data.shapeSpell; s32 isChild; if (flags & 0x10) { @@ -101,7 +86,7 @@ void shape_spell_update(EffectInstance* effect) { part->pos.y + part->unk_14, part->pos.z + part->unk_18, 0.0f, 0.0f, 0.0f, 0x18 - )->data; + )->data.shapeSpell; newPart->unk_28 = part->unk_28; } diff --git a/src/effects/sleep_bubble.c b/src/effects/sleep_bubble.c index f870c0807f..52bda5b773 100644 --- a/src/effects/sleep_bubble.c +++ b/src/effects/sleep_bubble.c @@ -24,9 +24,9 @@ void sleep_bubble_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.sleepBubble = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.sleepBubble != NULL); part->unk_00 = arg0; part->pos.x = arg1; @@ -46,7 +46,7 @@ void sleep_bubble_init(EffectInstance* effect) { // seems extremely fake void sleep_bubble_update(EffectInstance* effect) { - SleepBubbleFXData* part = effect->data; + SleepBubbleFXData* part = effect->data.sleepBubble; f32* xPtr = &part->points->x; f32* yPtr; s32 xAngle, yAngle, i, timeLeft, unk_20; diff --git a/src/effects/small_gold_sparkle.c b/src/effects/small_gold_sparkle.c index bd40aa9793..004015fe94 100644 --- a/src/effects/small_gold_sparkle.c +++ b/src/effects/small_gold_sparkle.c @@ -42,7 +42,7 @@ EffectInstance* small_gold_sparkle_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; + effect->data.smallGoldSparkle = data; part = data; ASSERT(data != NULL); @@ -70,7 +70,7 @@ void small_gold_sparkle_init(EffectInstance* effect) { } void small_gold_sparkle_update(EffectInstance* effect) { - SmallGoldSparkleFXData* part = (SmallGoldSparkleFXData*) effect->data; + SmallGoldSparkleFXData* part = effect->data.smallGoldSparkle; s32 i; part->unk_14--; @@ -110,7 +110,7 @@ void small_gold_sparkle_render(EffectInstance* effect) { } void small_gold_sparkle_appendGfx(void* effect) { - SmallGoldSparkleFXData* part = ((EffectInstance*)effect)->data; + SmallGoldSparkleFXData* part = ((EffectInstance*)effect)->data.smallGoldSparkle; Matrix4f sp18; Matrix4f sp58; Matrix4f sp98; diff --git a/src/effects/snowflake.c b/src/effects/snowflake.c index aa23f8f0af..081004ec61 100644 --- a/src/effects/snowflake.c +++ b/src/effects/snowflake.c @@ -27,9 +27,9 @@ void snowflake_main(f32 arg0, f32 arg1, f32 arg2, s32 arg3, s32 arg4) { effect = shim_create_effect_instance(&bp); effect->numParts = 1; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.snowflake = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.snowflake != NULL); part->xPos = arg0; part->yPos = arg1; @@ -58,7 +58,7 @@ void snowflake_init(EffectInstance* effect) { } void snowflake_update(EffectInstance* effect) { - SnowflakeFXData* data = effect->data; + SnowflakeFXData* data = effect->data.snowflake; data->unk_28--; if (data->unk_28 < 0) { @@ -83,7 +83,7 @@ void snowflake_update(EffectInstance* effect) { void snowflake_render(EffectInstance* effect) { PlayerStatus* playerStatus = &gPlayerStatus; - SnowflakeFXData* effect14 = effect->data; + SnowflakeFXData* effect14 = effect->data.snowflake; RenderTask renderTask; RenderTask* renderTaskPtr = &renderTask; RenderTask* retTask; @@ -120,7 +120,7 @@ void snowflake_render(EffectInstance* effect) { void snowflake_appendGfx(void* effect) { Matrix4f sp18, sp58, sp98, spD8, sp118; EffectInstance* effectTemp = effect; - SnowflakeFXData* part = effectTemp->data; + SnowflakeFXData* part = effectTemp->data.snowflake; gDPPipeSync(gMasterGfxPos++); gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effectTemp->graphics->data)); diff --git a/src/effects/star.c b/src/effects/star.c index da1d7128df..2f5e5cf618 100644 --- a/src/effects/star.c +++ b/src/effects/star.c @@ -40,9 +40,9 @@ EffectInstance* star_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 effect = shim_create_effect_instance(&bp); effect->numParts = 1; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.star = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.star != NULL); part->unk_00 = 1; part->unk_04 = arg1; part->unk_08 = arg2; @@ -117,7 +117,7 @@ void star_init(EffectInstance* effect) { void star_update(EffectInstance* effect) { PlayerStatus* playerStatus = &gPlayerStatus; - StarFXData* data = effect->data; + StarFXData* data = effect->data.star; f32 x, y, z, length; f32 xTemp, yTemp, zTemp; @@ -179,7 +179,7 @@ void star_update(EffectInstance* effect) { } void star_render(EffectInstance* effect) { - StarFXData* effect15 = effect->data; + StarFXData* effect15 = effect->data.star; RenderTask renderTask; RenderTask* renderTaskPtr = &renderTask; RenderTask* retTask; diff --git a/src/effects/stat_change.c b/src/effects/stat_change.c index 4376ddede3..41151497c4 100644 --- a/src/effects/stat_change.c +++ b/src/effects/stat_change.c @@ -7,24 +7,6 @@ enum ArrowType { ARROW_TYPE_DEF_UP = 2, }; -typedef struct StatChangeFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; - /* 0x10 */ f32 scale; - /* 0x14 */ s32 timeLeft; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 arrowType; - /* 0x20 */ s32 arrowValue; - /* 0x24 */ s32 unk_24; - /* 0x28 */ f32 scaleX; - /* 0x2C */ f32 scaleY; - /* 0x30 */ f32 unk_30; - /* 0x34 */ f32 unk_34; - /* 0x38 */ f32 unk_38; - /* 0x3C */ s32 unk_3C; - /* 0x40 */ s32 unk_40; -} StatChangeFXData; - typedef struct ExtraArrowDataEntry { u8 unk_00; u8 unk_01; @@ -148,9 +130,9 @@ EffectInstance* stat_change_main(s32 arg0, f32 x, f32 y, f32 z, f32 scale, s32 t effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.statChange = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.statChange != NULL); part->unk_00 = arg0; part->pos.x = x; @@ -177,7 +159,7 @@ void stat_change_init(EffectInstance* effect) { } void stat_change_update(EffectInstance* effect) { - StatChangeFXData* part = effect->data; + StatChangeFXData* part = effect->data.statChange; s32 old_unk18; part->timeLeft--; diff --git a/src/effects/tattle_window.c b/src/effects/tattle_window.c index 56f1846bff..5ab522e73a 100644 --- a/src/effects/tattle_window.c +++ b/src/effects/tattle_window.c @@ -7,22 +7,6 @@ void tattle_window_render(EffectInstance* effect); void func_E00D8264(EffectInstance* effect); void func_E00D8630(EffectInstance* effect); -typedef struct TattleWindowFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ Vec3f pos; - /* 0x10 */ s32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ s32 unk_24; - /* 0x28 */ f32 unk_28; - /* 0x2C */ f32 unk_2C; - /* 0x30 */ f32 unk_30; - /* 0x34 */ u8 unk_34; - /* 0x35 */ u8 unk_35; -} TattleWindowFXData; // size = 0x38 - typedef struct D_E00D8818_Entry { s16 unk_00; u8 unk_02; @@ -72,9 +56,9 @@ EffectInstance* tattle_window_main(s32 arg0, f32 x, f32 y, f32 z, f32 arg4, s32 effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + part = effect->data.tattleWindow = shim_general_heap_malloc(numParts * sizeof(*part)); - ASSERT(effect->data != NULL); + ASSERT(effect->data.tattleWindow != NULL); part->unk_00 = arg0; part->unk_14 = 0; @@ -104,7 +88,7 @@ void tattle_window_init(EffectInstance* effect) { void tattle_window_update(EffectInstance* effect) { s32 unk_10, unk_10_2; s32 old_unk_14; - TattleWindowFXData* part = effect->data; + TattleWindowFXData* part = effect->data.tattleWindow; if (effect->flags & 0x10) { effect->flags &= ~0x10; diff --git a/src/effects/throw_spiny.c b/src/effects/throw_spiny.c index 0196ea203c..3732010b3e 100644 --- a/src/effects/throw_spiny.c +++ b/src/effects/throw_spiny.c @@ -17,34 +17,6 @@ Gfx* D_E00C8710[2] = { D_09000800_3D02F0, D_090008D8_3D03C8 }; u8 D_E00C8718[8] = { 110, 150, 130, 110, 100, 95, 100, 0 }; u8 D_E00C8720[8] = { 80, 60, 80, 100, 120, 110, 100, 0 }; -typedef struct ThrowSpinyFXData { -/* 0x00 */ s32 unk_00; -/* 0x04 */ Vec3f pos; -/* 0x10 */ f32 unk_10; -/* 0x14 */ f32 unk_14; -/* 0x18 */ f32 unk_18; -/* 0x1C */ f32 unk_1C; -/* 0x20 */ f32 unk_20; -/* 0x24 */ f32 unk_24; -/* 0x28 */ s32 life; -/* 0x2C */ s32 lifeDuration; -/* 0x30 */ s32 unk_30; -/* 0x34 */ s32 unk_34; -/* 0x38 */ s32 unk_38; -/* 0x3C */ s32 rgba; -/* 0x40 */ f32 unk_40; -/* 0x44 */ f32 unk_44; -/* 0x48 */ f32 gravity; -/* 0x4C */ f32 unk_4C; -/* 0x50 */ f32 yaw; -/* 0x54 */ f32 rotationSpeed; -/* 0x58 */ f32 xScale; -/* 0x5C */ f32 yScale; -/* 0x60 */ u32 state; -/* 0x64 */ s32 unk_64; -/* 0x68 */ s32 timeUntilFall; //how long until spiny falls to ground? -} ThrowSpinyFXData; //sizeof 0x6C - //during spiny surge EffectInstance* throw_spiny_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 time) { EffectBlueprint bp; @@ -63,8 +35,8 @@ EffectInstance* throw_spiny_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg effect = (EffectInstance*)shim_create_effect_instance(bpPtr); effect->numParts = numParts; - spinyObject = effect->data = shim_general_heap_malloc(numParts * sizeof(*spinyObject)); - ASSERT(effect->data != NULL); + spinyObject = effect->data.throwSpiny = shim_general_heap_malloc(numParts * sizeof(*spinyObject)); + ASSERT(effect->data.throwSpiny != NULL); spinyObject->unk_00 = arg0; spinyObject->lifeDuration = 0; @@ -114,7 +86,7 @@ void throw_spiny_init(EffectInstance* effect) { } void throw_spiny_update(EffectInstance* effectInstance) { - ThrowSpinyFXData* spinyObject = effectInstance->data; + ThrowSpinyFXData* spinyObject = effectInstance->data.throwSpiny; u32 state; f32 gravity; s32 lifeDuration; @@ -188,7 +160,7 @@ void throw_spiny_appendGfx(void* effect) { Matrix4f sp18; Matrix4f sp58; Camera* camera = &gCameras[gCurrentCameraID]; - ThrowSpinyFXData* data = ((EffectInstance*)effect)->data; + ThrowSpinyFXData* data = ((EffectInstance*)effect)->data.throwSpiny; s32 temp_s5 = data->rgba; s32 temp_s6 = data->unk_00; f32 scale = data->unk_40 * SPRITE_PIXEL_SCALE; diff --git a/src/effects/walking_dust.c b/src/effects/walking_dust.c index 7d39b075a4..3e19b7324f 100644 --- a/src/effects/walking_dust.c +++ b/src/effects/walking_dust.c @@ -36,8 +36,8 @@ void walking_dust_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg effect->numParts = numParts; data = shim_general_heap_malloc(numParts * sizeof(*data)); - effect->data = data; - ASSERT(effect->data != NULL); + effect->data.walkingDust = data; + ASSERT(effect->data.walkingDust != NULL); shim_mem_clear(data, numParts * sizeof(*data)); data->unk_6C = arg0 == 2; @@ -61,7 +61,7 @@ void walking_dust_init(EffectInstance* effect) { } void walking_dust_update(EffectInstance* effect) { - WalkingDustFXData* data = (WalkingDustFXData*)effect->data; + WalkingDustFXData* data = effect->data.walkingDust; data->unk_74 = D_E000E684[data->unk_6C][data->unk_70++]; @@ -94,7 +94,7 @@ void walking_dust_render(EffectInstance* effect) { void walking_dust_appendGfx(void* effect) { EffectInstance* effectTemp = effect; - WalkingDustFXData* data = effectTemp->data; + WalkingDustFXData* data = effectTemp->data.walkingDust; s32 temp_t3 = data->unk_04; s32 temp_t4 = data->unk_74; s32 cond = FALSE; diff --git a/src/entity/Chest.c b/src/entity/Chest.c index 36ae4e4639..b458342e1d 100644 --- a/src/entity/Chest.c +++ b/src/entity/Chest.c @@ -255,7 +255,7 @@ void entity_GiantChest_hide_effect(Entity* entity) { EffectInstance* effect = chest->gotItemEffect; if (effect != NULL) { - ((GotItemOutlineFXData*)effect->data)->unk_14 = 10; + effect->data.gotItemOutline->unk_14 = 10; } } diff --git a/src/evt/fx_api.c b/src/evt/fx_api.c index d90d2f8bef..699ae1ffb5 100644 --- a/src/evt/fx_api.c +++ b/src/evt/fx_api.c @@ -131,19 +131,20 @@ ApiStatus func_802D7B10(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -//TODO fix this! ApiStatus func_802D7B44(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*)evt_get_variable(script, *args++); - ((s32*)(effect->data))[5] = 10; // offset 0x14 in GotItemOutline effect data + + effect->data.gotItemOutline->unk_14 = 10; return ApiStatus_DONE2; } -//TODO fix this! ApiStatus func_802D7B74(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; EffectInstance* effect = (EffectInstance*)evt_get_variable(script, *args++); - ((s32*)(effect->data))[12] = 5; // offset 0x30 in unknown effect data + + // function is never called, so the effect type is assumed + effect->data.gotItemOutline->unk_30 = 5; return ApiStatus_DONE2; } @@ -302,7 +303,7 @@ ApiStatus SetSleepBubbleTimeLeft(Evt* script, s32 isInitialCall) { EffectInstance* effect = (EffectInstance*)evt_get_variable(script, *args++); s32 value = evt_get_variable(script, *args++); - ((SleepBubbleFXData*)(effect->data))->timeLeft = value; + effect->data.sleepBubble->timeLeft = value; return ApiStatus_DONE2; } diff --git a/src/msg.c b/src/msg.c index 38acbc4e7f..2c76b8f95a 100644 --- a/src/msg.c +++ b/src/msg.c @@ -12,7 +12,7 @@ typedef struct UnkMsgStruct8 { typedef MessageImageData* MessageImageDataList[1]; -extern s32 D_802EF0D0; +extern IMG_BIN D_802EF0D0; s32 D_8014C280[] = { 0x028001E0, 0x01FF0000, 0x028001E0, 0x01FF0000, }; @@ -133,8 +133,8 @@ u8 D_8014C588[] = { 105, 100, 77, 57, 40, 27, 16, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, // unsorted extern s32 D_8015131C; extern MessageDrawState D_80155D20; -extern s32 D_80159B50; -extern s32 D_8015C7E0; +extern IMG_BIN D_80159B50[]; +extern PAL_BIN D_8015C7E0[]; // BSS extern s32 gMsgBGScrollAmtX; @@ -150,25 +150,25 @@ extern MessageDrawState* msg_drawState; // another file? extern s16 D_802EB644[22]; -extern s32 D_802EB670; -extern s32 D_802EBA70; -extern s32 D_802EBB70; -extern s32 D_802EC3F0; -extern s32 D_802EC5F0; -extern s32 D_802EC670; -extern s32 D_802EC6F0; -extern s32 D_802EC770; -extern s32 D_802EC7F0; -extern s32 D_802EC870[]; -extern s32 D_802EC970[]; -extern s32 D_802ECAB0[]; -extern s32 D_802ECBF0[]; -extern s32 D_802ECCF0[]; -extern s32 D_802ECD10; -extern s32 D_802ECD30; +extern IMG_BIN D_802EB670[]; +extern IMG_BIN D_802EBA70[]; +extern IMG_BIN D_802EBB70[]; +extern PAL_BIN D_802EC3F0[]; // array of several in series +extern IMG_BIN D_802EC5F0[]; +extern IMG_BIN D_802EC670[]; +extern IMG_BIN D_802EC6F0[]; +extern IMG_BIN D_802EC770[]; +extern IMG_BIN D_802EC7F0[]; +extern IMG_BIN D_802EC870[]; +extern IMG_BIN D_802EC970[]; +extern IMG_BIN D_802ECAB0[]; +extern IMG_BIN D_802ECBF0[]; +extern IMG_BIN D_802ECCF0[]; +extern PAL_BIN D_802ECD10[]; +extern PAL_BIN D_802ECD30[]; -extern s32 D_802ED550; -extern s32 D_802ED670; +extern IMG_BIN D_802ED550[]; +extern PAL_BIN D_802ED670[]; extern s32 D_802ED970; extern s32 D_802EE8D0; extern MessageCharset* gMsgCharsets[5]; @@ -1012,7 +1012,7 @@ void draw_msg(s32 msgID, s32 posX, s32 posY, s32 opacity, s32 palette, u8 style) mallocSpace = general_heap_malloc(0x400); dma_load_msg(msgID, mallocSpace); printer->srcBuffer = mallocSpace; - get_msg_properties((s32)printer->srcBuffer, 0, &width, 0, 0, 0, 0, charset); + get_msg_properties((s32) printer->srcBuffer, 0, &width, 0, 0, 0, 0, charset); printer->msgWidth = width; } @@ -1059,7 +1059,7 @@ void msg_draw_rewind_arrow(s32 printerIndex) { MessagePrintState* printer = &gMessagePrinters[printerIndex]; if (printer->rewindArrowBlinkCounter < 6) { - draw_ci_image_with_clipping(&D_802ED550, 24, 24, G_IM_FMT_CI, G_IM_SIZ_4b, &D_802ED670, printer->rewindArrowPos.x, + draw_ci_image_with_clipping(D_802ED550, 24, 24, G_IM_FMT_CI, G_IM_SIZ_4b, D_802ED670, printer->rewindArrowPos.x, printer->rewindArrowPos.y, 10, 10, SCREEN_WIDTH - 20, SCREEN_HEIGHT - 20, 255); } @@ -1150,7 +1150,6 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit u16 spB6; u8 spB8; f32 windowScaleX; - s32* spC0; MessageCharset* msgCharset; f32 temp_f10; f32 temp_f20; @@ -1199,7 +1198,8 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit s32 frameAlpha; u16 fading; s32 phi_s0_5; - s32* phi_s6; + IMG_PTR signRaster; + PAL_PTR signPalette; s8 phi_s2_4; s32 phi_s3_2; s32 phi_v0_3; @@ -1577,14 +1577,14 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit msg_drawState->framePalette = 15; temp_s1_5 = 0xFF; if (printer->style == MSG_STYLE_SIGN) { - spC0 = &D_802EC770; + signRaster = D_802EC770; printer->windowSize.y = 72; msg_drawState->textColor = MSG_PAL_18; - phi_s6 = &D_802ECD10; + signPalette = D_802ECD10; } else { - spC0 = &D_802EC7F0; + signRaster = D_802EC7F0; msg_drawState->textColor = MSG_PAL_1C; - phi_s6 = &D_802ECD30; + signPalette = D_802ECD30; } msg_drawState->clipX[0] = 34; msg_drawState->clipY[0] = 40; @@ -1611,11 +1611,11 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit } } spAE = (u8)temp_s1_5; - draw_ci_image_with_clipping(&D_802EC5F0, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, phi_s6, 20, 28, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(&D_802EC670, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, phi_s6, 284, 28, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(&D_802EC6F0, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, phi_s6, 20, printer->windowSize.y + 12, 10, 10, 310, 230, + draw_ci_image_with_clipping(D_802EC5F0, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, 28, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(D_802EC670, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, 28, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(D_802EC6F0, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(spC0, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, phi_s6, 284, printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(signRaster, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); gDPLoadTextureTile_4b(gMasterGfxPos++, D_802EC870, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); gSPTextureRectangle(gMasterGfxPos++, 0x0090, 0x0070, 0x0470, 0x00B0, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); @@ -1870,7 +1870,7 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - additionalOffsetY); - draw_ci_image_with_clipping(&D_80159B50, 32, 32, G_IM_FMT_CI, G_IM_SIZ_4b, &D_8015C7E0, imgDrawPosX, imgDrawPosY, msg_drawState->clipX[0], + draw_ci_image_with_clipping(D_80159B50, 32, 32, G_IM_FMT_CI, G_IM_SIZ_4b, D_8015C7E0, imgDrawPosX, imgDrawPosY, msg_drawState->clipX[0], msg_drawState->clipY[0], msg_drawState->clipX[1] - msg_drawState->clipX[0], msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_t3); msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; @@ -2585,22 +2585,22 @@ void msg_draw_speech_bubble( gDPSetTextureLUT(gMasterGfxPos++, G_TT_RGBA16); gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, - (msg_drawState->framePalette << 5) + (s8*)&D_802EC3F0); // TODO fix (array?) + &D_802EC3F0[16 * msg_drawState->framePalette]); gDPTileSync(gMasterGfxPos++); gDPSetTile(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_4b, 0, 0x0100, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); gDPLoadSync(gMasterGfxPos++); gDPLoadTLUTCmd(gMasterGfxPos++, G_TX_LOADTILE, 15); gDPPipeSync(gMasterGfxPos++); - gDPLoadTextureTile_4b(gMasterGfxPos++, &D_802EB670, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, + gDPLoadTextureTile_4b(gMasterGfxPos++, D_802EB670, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gMasterGfxPos++, gMsgSpeechBoxLQuad, 4, 0); gSP2Triangles(gMasterGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); - gDPLoadTextureTile_4b(gMasterGfxPos++, &D_802EBA70, G_IM_FMT_CI, 8, 0, 0, 0, 7, 63, 0, + gDPLoadTextureTile_4b(gMasterGfxPos++, D_802EBA70, G_IM_FMT_CI, 8, 0, 0, 0, 7, 63, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, 6, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gMasterGfxPos++, gMsgSpeechBoxMQuad, 4, 0); gSP2Triangles(gMasterGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); - gDPLoadTextureTile_4b(gMasterGfxPos++, &D_802EBB70, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, + gDPLoadTextureTile_4b(gMasterGfxPos++, D_802EBB70, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gMasterGfxPos++, gMsgSpeechBoxRQuad, 4, 0); gSP2Triangles(gMasterGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); diff --git a/src/npc.c b/src/npc.c index 78bef5e69e..71b29a4435 100644 --- a/src/npc.c +++ b/src/npc.c @@ -66,7 +66,7 @@ void npc_iter_no_op(void) { } } -s32 _create_npc(NpcBlueprint* blueprint, s32** animList, s32 skipLoadingAnims) { +s32 _create_npc(NpcBlueprint* blueprint, u32** animList, s32 skipLoadingAnims) { Npc* npc; s32 i; s32 j; @@ -172,7 +172,7 @@ s32 _create_npc_basic(NpcBlueprint* blueprint) { return _create_npc(blueprint, NULL, FALSE); } -s32 _create_npc_standard(NpcBlueprint* blueprint, s32** animList) { +s32 _create_npc_standard(NpcBlueprint* blueprint, u32** animList) { _create_npc(blueprint, animList, FALSE); } @@ -935,7 +935,7 @@ void disable_npc_shadow(Npc* npc) { } } -void set_npc_sprite(Npc* npc, s32 anim, s32** extraAnimList) { +void set_npc_sprite(Npc* npc, s32 anim, u32** extraAnimList) { ASSERT((npc->flags & NPC_FLAG_1000000) || spr_free_sprite(npc->spriteInstanceID) == 0); npc->extraAnimList = extraAnimList; @@ -1247,7 +1247,7 @@ void npc_remove_decoration_none(Npc* npc, s32 idx) { } void npc_update_decoration_bowser_aura(Npc* npc, s32 idx) { - EffectInstanceData* instanceData; + AuraFXData* data; switch (npc->decorationInitialised[idx]) { case 0: @@ -1260,17 +1260,17 @@ void npc_update_decoration_bowser_aura(Npc* npc, s32 idx) { return; } - instanceData = npc->decorations[idx]->data; - instanceData->pos.x = npc->pos.x; - instanceData->pos.y = npc->pos.y; - instanceData->pos.z = npc->pos.z; - instanceData->scale.x = (npc->scale.x * npc->collisionRadius) * 0.01; - instanceData->scale.y = (npc->scale.y * npc->collisionHeight) * 0.01; - instanceData->unk_64 = npc->renderYaw; + data = npc->decorations[idx]->data.aura; + data->posA.x = npc->pos.x; + data->posA.y = npc->pos.y; + data->posA.z = npc->pos.z; + data->scale.x = (npc->scale.x * npc->collisionRadius) * 0.01; + data->scale.y = (npc->scale.y * npc->collisionHeight) * 0.01; + data->renderYaw = npc->renderYaw; } void npc_remove_decoration_bowser_aura(Npc* npc, s32 idx) { - ((EffectInstanceData*)npc->decorations[idx]->data)->unk_2C = 5; + npc->decorations[idx]->data.aura->fadeTime = 5; } void npc_update_decoration_sweat(Npc* npc, s32 idx) { @@ -1298,7 +1298,7 @@ void npc_remove_decoration_sweat(Npc* npc, s32 idx) { } void npc_update_decoration_seeing_stars(Npc* npc, s32 idx) { - EffectInstanceData* instanceData; + StarsOrbitingFXData* data; switch (npc->decorationInitialised[idx]) { case 0: @@ -1312,10 +1312,10 @@ void npc_update_decoration_seeing_stars(Npc* npc, s32 idx) { } - instanceData = npc->decorations[idx]->data; - instanceData->pos.x = npc->pos.x; - instanceData->pos.y = npc->pos.y + npc->collisionHeight; - instanceData->pos.z = npc->pos.z; + data = npc->decorations[idx]->data.starsOrbiting; + data->pos.x = npc->pos.x; + data->pos.y = npc->pos.y + npc->collisionHeight; + data->pos.z = npc->pos.z; } void npc_remove_decoration_seeing_stars(Npc* npc, s32 idx) { @@ -1323,20 +1323,19 @@ void npc_remove_decoration_seeing_stars(Npc* npc, s32 idx) { } void npc_update_decoration_glow_in_front(Npc* npc, s32 idx) { - EffectInstanceData* instanceData; + EnergyOrbWaveFXData* data; switch (npc->decorationInitialised[idx]) { case 0: - npc->decorations[idx] = fx_energy_orb_wave(2, npc->pos.x, npc->pos.y + npc->collisionHeight * 0.5, npc->pos.z, - npc->scale.x * 0.8 + 0.2f, -1); + npc->decorations[idx] = fx_energy_orb_wave(2, npc->pos.x, npc->pos.y + npc->collisionHeight * 0.5, npc->pos.z, npc->scale.x * 0.8 + 0.2f, -1); npc->decorationInitialised[idx] = 1; break; case 1: - instanceData = npc->decorations[idx]->data; - instanceData->pos.x = npc->pos.x; - instanceData->pos.y = npc->pos.y + npc->collisionHeight * 0.5 * npc->scale.x; - instanceData->pos.z = npc->pos.z; - instanceData->unk_30 = npc->scale.x * 0.8 + 0.2f; + data = npc->decorations[idx]->data.energyOrbWave; + data->pos.x = npc->pos.x; + data->pos.y = npc->pos.y + npc->collisionHeight * 0.5 * npc->scale.x; + data->pos.z = npc->pos.z; + data->scale = npc->scale.x * 0.8 + 0.2f; break; } } @@ -1346,20 +1345,19 @@ void npc_remove_decoration_glow_in_front(Npc* npc, s32 idx) { } void npc_update_decoration_glow_behind(Npc* npc, s32 idx) { - EffectInstanceData* instanceData; + EnergyOrbWaveFXData* data; switch (npc->decorationInitialised[idx]) { case 0: - npc->decorations[idx] = fx_energy_orb_wave(2, npc->pos.x, npc->pos.y + npc->collisionHeight * 0.5, npc->pos.z - 5.0f, 1.0f, - 0); + npc->decorations[idx] = fx_energy_orb_wave(2, npc->pos.x, npc->pos.y + npc->collisionHeight * 0.5, npc->pos.z - 5.0f, 1.0f, 0); npc->decorationInitialised[idx] = 1; break; case 1: - instanceData = npc->decorations[idx]->data; - instanceData->pos.x = npc->pos.x; - instanceData->pos.y = npc->pos.y + npc->collisionHeight * 0.5; - instanceData->pos.z = npc->pos.z - 5.0f; - instanceData->unk_30 = 1.0f; + data = npc->decorations[idx]->data.energyOrbWave; + data->pos.x = npc->pos.x; + data->pos.y = npc->pos.y + npc->collisionHeight * 0.5; + data->pos.z = npc->pos.z - 5.0f; + data->scale = 1.0f; break; } } diff --git a/src/sprite.c b/src/sprite.c index 7b811aaa53..e092b7a29e 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -94,7 +94,7 @@ PlayerSpriteSet spr_playerSpriteSets[] = { void spr_appendGfx_component_flat( Quad* vertices, - void* raster, void* palette, + IMG_PTR raster, PAL_PTR palette, s32 width, s32 height, f32 arg5, Matrix4f mtx, @@ -702,7 +702,7 @@ s32 spr_get_npc_raster_info(SpriteRasterInfo* out, s32 npcSpriteID, s32 rasterIn return FALSE; } -u16** spr_get_npc_palettes(s32 npcSpriteID) { +PAL_PTR* spr_get_npc_palettes(s32 npcSpriteID) { SpriteAnimData* sprite = spr_npcSprites[npcSpriteID]; if (sprite != NULL) { diff --git a/src/sprite.h b/src/sprite.h index c7c0e45afd..c6e3fc6206 100644 --- a/src/sprite.h +++ b/src/sprite.h @@ -70,7 +70,7 @@ typedef struct PlayerSpriteSet { /// Sprite data header. typedef struct SpriteAnimData { /* 0x00 */ SpriteRasterCacheEntry** rastersOffset; - /* 0x04 */ u16** palettesOffset; + /* 0x04 */ PAL_PTR* palettesOffset; /* 0x08 */ s32 maxComponents; /* 0x0C */ s32 colorVariations; } SpriteAnimData; // size = 0x10 @@ -104,7 +104,7 @@ void spr_update_player_raster_cache(void); s32 spr_update_player_sprite(s32 arg0, s32 arg1, f32 arg2); -s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, s16** paletteList, Matrix4f mtx); +s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR* paletteList, Matrix4f mtx); s32 func_802DDEC4(s32 arg0); @@ -119,11 +119,11 @@ void spr_get_player_raster_info(SpriteRasterInfo* out, s32 playerSpriteID, s32 r u16** spr_get_player_palettes(s32 spriteIndex); /// @param animID - Set MSB for tail allocation (i.e. `0x80XXYYZZ`) -s32 spr_load_npc_sprite(s32 animID, s32* extraAnimList); +s32 spr_load_npc_sprite(s32 animID, u32* extraAnimList); s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale); -s32 spr_draw_npc_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, s16** paletteList, Matrix4f mtx); +s32 spr_draw_npc_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR* paletteList, Matrix4f mtx); s32 func_802DE5C8(s32 arg0); diff --git a/src/world/area_end/end_00/DF6A20.c b/src/world/area_end/end_00/DF6A20.c index 383356817c..7add49356a 100644 --- a/src/world/area_end/end_00/DF6A20.c +++ b/src/world/area_end/end_00/DF6A20.c @@ -15,6 +15,7 @@ extern u8 N(CreditsMessageBuffers)[23][256]; extern Mtx N(CreditsProjMatrices)[2]; s32 msg_get_print_char_width(s32 character, s32 charset, s32 variation, f32 msgScale, s32 overrideCharWidth, u8 flags); +void msg_get_glyph(s32 font, s32 variation, s32 charIndex, s32 palette, MesasgeFontGlyphData* out); void dma_load_msg(u32 msgID, void* dest); #include "world/common/atomic/Credits_1.inc.c" @@ -40,7 +41,7 @@ void N(credits_update_line)(CreditsLine* line) { line->state = 0; } - get_msg_properties(line->message, &msgHeight, &msgWidth, &msgMaxLineChars, NULL, NULL, NULL, 0); + get_msg_properties((s32) line->message, &msgHeight, &msgWidth, &msgMaxLineChars, NULL, NULL, NULL, 0); curChar->font = 0; curChar->variation = 0; @@ -235,7 +236,7 @@ void N(credits_update_line)(CreditsLine* line) { if ((line->state == CREDITS_LINE_APPEARING) && doneCurrentState) { s32 temp = 0; - get_msg_properties(line->message, NULL, NULL, &temp, NULL, NULL, NULL, 0); + get_msg_properties((s32) line->message, NULL, NULL, &temp, NULL, NULL, NULL, 0); line->time = 0; line->state++; if (line->holdTime <= 0) { @@ -281,7 +282,7 @@ ApiStatus func_80242744_DF9144(Evt* script, s32 isInitialCall) { s32 heapSize = evt_get_variable(script, *args++); s32 outVar = *args++; - evt_set_variable(script, outVar, _heap_malloc(&gSpriteHeapPtr, heapSize)); + evt_set_variable(script, outVar, (s32) _heap_malloc(&gSpriteHeapPtr, heapSize)); return ApiStatus_DONE2; } @@ -289,7 +290,7 @@ ApiStatus func_802427A4_DF91A4(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 pointer = *args++; - _heap_free(&gSpriteHeapPtr, evt_get_variable(script, pointer)); + _heap_free(&gSpriteHeapPtr, (void*) evt_get_variable(script, pointer)); return ApiStatus_DONE2; } diff --git a/src/world/area_end/end_00/DF9300.c b/src/world/area_end/end_00/DF9300.c index cf6eb279fb..3591717146 100644 --- a/src/world/area_end/end_00/DF9300.c +++ b/src/world/area_end/end_00/DF9300.c @@ -1,14 +1,3 @@ #include "end_00.h" -#include "battle/battle.h" + #include "world/common/PlayFX3D.inc.c" - -INCLUDE_ASM(s32, "world/area_end/end_00/DF9300", func_80242A30_DF9430); - -ApiStatus func_80242AD4_DF94D4(Evt *script, s32 isInitialCall) { - Bytecode* args = script->ptrReadPos; - EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); - - // TODO figure out the correct effect data struct - ((s32*) effect->data)[1] = 1; - return ApiStatus_DONE2; -} diff --git a/src/world/area_end/end_00/DF9510.c b/src/world/area_end/end_00/DF9510.c index 48019490d7..82e07088c0 100644 --- a/src/world/area_end/end_00/DF9510.c +++ b/src/world/area_end/end_00/DF9510.c @@ -1,7 +1,7 @@ #include "end_00.h" #ifdef NON_MATCHING -ApiStatus func_80242AD4_DF94D4(Evt *script, s32 isInitialCall) { +ApiStatus end_00_DisposeFX3D(Evt *script, s32 isInitialCall) { D_80249D60_E00760 = evt_get_variable(script, *script->ptrReadPos); return ApiStatus_DONE2; } diff --git a/src/world/area_end/end_01/E05390.c b/src/world/area_end/end_01/E05390.c index 3408085966..062854811f 100644 --- a/src/world/area_end/end_01/E05390.c +++ b/src/world/area_end/end_01/E05390.c @@ -15,6 +15,7 @@ extern u8 N(CreditsMessageBuffers)[23][256]; extern Mtx N(CreditsProjMatrices)[2]; s32 msg_get_print_char_width(s32 character, s32 charset, s32 variation, f32 msgScale, s32 overrideCharWidth, u8 flags); +void msg_get_glyph(s32 font, s32 variation, s32 charIndex, s32 palette, MesasgeFontGlyphData* out); void dma_load_msg(u32 msgID, void* dest); #include "world/common/atomic/Credits_1.inc.c" @@ -42,7 +43,7 @@ void N(credits_update_line)(CreditsLine* line) { line->state = 0; } - get_msg_properties(line->message, &msgHeight, &msgWidth, &msgMaxLineChars, NULL, NULL, NULL, 0); + get_msg_properties((s32) line->message, &msgHeight, &msgWidth, &msgMaxLineChars, NULL, NULL, NULL, 0); curChar->font = 0; curChar->variation = 0; @@ -237,7 +238,7 @@ void N(credits_update_line)(CreditsLine* line) { if ((line->state == CREDITS_LINE_APPEARING) && doneCurrentState) { s32 temp = 0; - get_msg_properties(line->message, NULL, NULL, &temp, NULL, NULL, NULL, 0); + get_msg_properties((s32) line->message, NULL, NULL, &temp, NULL, NULL, NULL, 0); line->time = 0; line->state++; if (line->holdTime <= 0) { @@ -283,7 +284,7 @@ ApiStatus func_80242754_E07AB4(Evt* script, s32 isInitialCall) { s32 heapSize = evt_get_variable(script, *args++); s32 outVar = *args++; - evt_set_variable(script, outVar, _heap_malloc(&gSpriteHeapPtr, heapSize)); + evt_set_variable(script, outVar, (s32) _heap_malloc(&gSpriteHeapPtr, heapSize)); return ApiStatus_DONE2; } @@ -291,7 +292,7 @@ ApiStatus func_802427B4_E07B14(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 pointer = *args++; - _heap_free(&gSpriteHeapPtr, evt_get_variable(script, pointer)); + _heap_free(&gSpriteHeapPtr, (void*) evt_get_variable(script, pointer)); return ApiStatus_DONE2; } diff --git a/src/world/area_end/end_01/E07C20.c b/src/world/area_end/end_01/E07C20.c index 26ce442328..89abf8c472 100644 --- a/src/world/area_end/end_01/E07C20.c +++ b/src/world/area_end/end_01/E07C20.c @@ -1,18 +1,113 @@ #include "end_01.h" extern u8 D_80245D37_E0B097; +extern s32 D_80245D34_E0B094; -INCLUDE_ASM(s32, "world/area_end/end_01/E07C20", func_802428C0_E07C20); +ApiStatus func_802428C0_E07C20(Evt* script, s32 isInitialCall) { + func_8011B950(0x5B, -1, 1, 0); + set_background_color_blend(0, 0, 0, 255); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "world/area_end/end_01/E07C20", func_80242900_E07C60); +ApiStatus func_80242900_E07C60(Evt* script, s32 isInitialCall) { + if (isInitialCall) { + script->functionTemp[1] = 255; + } + + script->functionTemp[1] -= 10; + if (script->functionTemp[1] < 0) { + script->functionTemp[1] = 0; + } + + set_background_color_blend(0, 0, 0, script->functionTemp[1]); + + if (script->functionTemp[1] == 0) { + func_8011B950(0x5B, -1, 0, 0); + return ApiStatus_DONE2; + } else { + return ApiStatus_BLOCK; + } +} -INCLUDE_ASM(s32, "world/area_end/end_01/E07C20", func_80242978_E07CD8); +ApiStatus func_80242978_E07CD8(Evt* script, s32 isInitialCall) { + Npc* npc; -INCLUDE_ASM(s32, "world/area_end/end_01/E07C20", func_80242A68_E07DC8); + if (isInitialCall) { + script->functionTempPtr[2] = get_npc_safe(script->varTable[10]); + script->functionTemp[0] = 0; + } + npc = script->functionTempPtr[2]; + npc->rotation.y = update_lerp(4, 810.0f, 0.0f, script->functionTemp[0], 45); + npc->alpha = update_lerp(4, 0.0f, 255.0f, script->functionTemp[0], 45); -INCLUDE_ASM(s32, "world/area_end/end_01/E07C20", func_80242B68_E07EC8); + script->functionTemp[0]++; + if (script->functionTemp[0] < 0x2E) { + return ApiStatus_BLOCK; + } else { + return ApiStatus_DONE1; + } +} -INCLUDE_ASM(s32, "world/area_end/end_01/E07C20", func_80242C68_E07FC8); +ApiStatus func_80242A68_E07DC8(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 npcID = evt_get_variable(script, *args++); + Npc* npc; + + if (isInitialCall) { + script->functionTempPtr[1] = resolve_npc(script, npcID); + npc = script->functionTempPtr[1]; + script->functionTemp[2] = npc->pos.x; + script->functionTempF[3] = 180.0f; + script->functionTemp[0] = 72; + } + + npc = script->functionTempPtr[1]; + script->functionTempF[3] = clamp_angle(script->functionTempF[3] - 5.0f); + npc->pos.x = npc->pos.x + (cos_deg(script->functionTempF[3]) * 6.0f); + npc->pos.z = npc->pos.z + (sin_deg(script->functionTempF[3]) * 2.5f); + npc->renderYaw = clamp_angle(180.0f - script->functionTempF[3]); + + script->functionTemp[0]--; + if (script->functionTemp[0] == 0) { + return ApiStatus_DONE1; + } else { + return ApiStatus_BLOCK; + } +} + +ApiStatus func_80242B68_E07EC8(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 npcID = evt_get_variable(script, *args++); + Npc* npc; + + if (isInitialCall) { + script->functionTempPtr[1] = resolve_npc(script, npcID); + npc = script->functionTempPtr[1]; + script->functionTemp[2] = npc->pos.x; + script->functionTempF[3] = 180.0f; + script->functionTemp[0] = 72; + } + + npc = script->functionTempPtr[1]; + script->functionTempF[3] = clamp_angle(script->functionTempF[3] + 5.0f); + npc->pos.x = npc->pos.x + (cos_deg(script->functionTempF[3]) * 6.0f); + npc->pos.z = npc->pos.z + (sin_deg(script->functionTempF[3]) * 2.5f); + npc->renderYaw = clamp_angle(180.0f - script->functionTempF[3]); + + script->functionTemp[0]--; + if (script->functionTemp[0] == 0) { + return ApiStatus_DONE1; + } else { + return ApiStatus_BLOCK; + } +} + +ApiStatus func_80242C68_E07FC8(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + D_80245D34_E0B094 = evt_get_variable(script, *args++); + + return ApiStatus_DONE2; +} void func_80242C94_E07FF4(void) { gDPSetCombineLERP(gMasterGfxPos++, TEXEL0, 0, SHADE, 0, SHADE, 0, PRIMITIVE, 0, TEXEL0, 0, SHADE, 0, SHADE, 0, diff --git a/src/world/area_flo/flo_07/CAC1F0.c b/src/world/area_flo/flo_07/CAC1F0.c index 178fe93116..f4308a373c 100644 --- a/src/world/area_flo/flo_07/CAC1F0.c +++ b/src/world/area_flo/flo_07/CAC1F0.c @@ -8,11 +8,11 @@ ApiStatus N(func_80240344_CAC534)(Evt* script, s32 isInitialCall) { EffectInstance* effect = fx_misc_particles(3, -272.0f, 80.0f, 20.0f, 200.0f, 120.0f, 4.0f, 8, 0); - ((MiscParticlesFXData*)effect->data)->unk_38 = 240; - ((MiscParticlesFXData*)effect->data)->unk_3C = 240; - ((MiscParticlesFXData*)effect->data)->unk_40 = 240; - ((MiscParticlesFXData*)effect->data)->unk_48 = 230; - ((MiscParticlesFXData*)effect->data)->unk_4C = 230; - ((MiscParticlesFXData*)effect->data)->unk_50 = 240; + effect->data.miscParticles->unk_38 = 240; + effect->data.miscParticles->unk_3C = 240; + effect->data.miscParticles->unk_40 = 240; + effect->data.miscParticles->unk_48 = 230; + effect->data.miscParticles->unk_4C = 230; + effect->data.miscParticles->unk_50 = 240; return ApiStatus_DONE2; } diff --git a/src/world/area_flo/flo_18/CDC6A0.c b/src/world/area_flo/flo_18/CDC6A0.c index 0a77cd133c..5f2e5ff65c 100644 --- a/src/world/area_flo/flo_18/CDC6A0.c +++ b/src/world/area_flo/flo_18/CDC6A0.c @@ -1752,12 +1752,12 @@ ApiStatus N(func_8024030C_CDC9AC)(Evt* script, s32 isInitialCall) { ApiStatus N(func_80240340_CDC9E0)(Evt* script, s32 isInitialCall) { EffectInstance* effect = (EffectInstance*) script->varTable[15]; - ((LightningFXData*)effect->data)->unk_30 = 69; - ((LightningFXData*)effect->data)->unk_34 = 255; - ((LightningFXData*)effect->data)->unk_38 = 217; - ((LightningFXData*)effect->data)->unk_40 = 176; - ((LightningFXData*)effect->data)->unk_44 = 254; - ((LightningFXData*)effect->data)->unk_48 = 124; + effect->data.lightning->unk_30 = 69; + effect->data.lightning->unk_34 = 255; + effect->data.lightning->unk_38 = 217; + effect->data.lightning->unk_40 = 176; + effect->data.lightning->unk_44 = 254; + effect->data.lightning->unk_48 = 124; return ApiStatus_DONE2; } diff --git a/src/world/area_isk/isk_02/978750.c b/src/world/area_isk/isk_02/978750.c index 8686767ba0..cd0043f764 100644 --- a/src/world/area_isk/isk_02/978750.c +++ b/src/world/area_isk/isk_02/978750.c @@ -1,3 +1,14 @@ #include "isk_02.h" -INCLUDE_ASM(s32, "world/area_isk/isk_02/978750", func_80240040_978750); +ApiStatus func_80240040_978750(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + f32 x = evt_get_variable(script, *args++); + f32 y = evt_get_variable(script, *args++); + + if (dist2D(x, y, gPlayerStatus.position.x, gPlayerStatus.position.z) > 250.0f) { + script->varTable[0] = FALSE; + } else { + script->varTable[0] = TRUE; + } + return ApiStatus_DONE2; +} diff --git a/src/world/area_isk/isk_05/97DAD0.c b/src/world/area_isk/isk_05/97DAD0.c index 4fc8d476be..deaa08f620 100644 --- a/src/world/area_isk/isk_05/97DAD0.c +++ b/src/world/area_isk/isk_05/97DAD0.c @@ -3,6 +3,22 @@ static char* N(exit_str_0) = "isk_04"; static char* N(exit_str_1) = ""; +typedef struct UnkIsk14 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ Vec3f pos; + /* 0x1C */ Vec3f rot; + /* 0x28 */ Vec3f scale; + /* 0x34 */ f32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ f32 width; + /* 0x40 */ f32 height; +} UnkIsk14; // size: unknown + +extern UnkIsk14 D_80242614_9800E4; + #include "world/common/enemy/StoneChompAI.inc.c" #include "world/common/UnkFunc53.inc.c" @@ -13,7 +29,33 @@ INCLUDE_ASM(s32, "world/area_isk/isk_05/97DAD0", func_802415C0_97F090); INCLUDE_ASM(s32, "world/area_isk/isk_05/97DAD0", func_80241610_97F0E0); -INCLUDE_ASM(s32, "world/area_isk/isk_05/97DAD0", func_80241B28_97F5F8); +void func_80241610_97F0E0(); + +ApiStatus func_80241B28_97F5F8(Evt* script, s32 isInitialCall) { + SpriteRasterInfo rasterInfo; + Npc* npc = get_npc_unsafe(script->owner1.enemy->npcID); + + D_80242614_9800E4.unk_08 = 53; //TODO get spriteID for this constant + D_80242614_9800E4.unk_0C = 0; + spr_get_npc_raster_info(&rasterInfo, 53, 0); //TODO get spriteID for this constant + D_80242614_9800E4.width = rasterInfo.width; + D_80242614_9800E4.height = rasterInfo.height; + D_80242614_9800E4.pos.x = npc->pos.x; + D_80242614_9800E4.pos.y = npc->pos.y + (D_80242614_9800E4.height * SPRITE_WORLD_SCALE_D * 0.5); + D_80242614_9800E4.pos.z = npc->pos.z; + D_80242614_9800E4.rot.x = 0; + D_80242614_9800E4.rot.y = 0; + D_80242614_9800E4.rot.z = 0; + D_80242614_9800E4.scale.x = SPRITE_WORLD_SCALE; + D_80242614_9800E4.scale.y = SPRITE_WORLD_SCALE; + D_80242614_9800E4.scale.z = SPRITE_WORLD_SCALE; + D_80242614_9800E4.unk_34 = 85.0f; + D_80242614_9800E4.unk_38 = 0; + D_80242614_9800E4.unk_00 = 0; + D_80242614_9800E4.unk_04 = create_generic_entity_frontUI(NULL, func_80241610_97F0E0); + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "world/area_isk/isk_05/97DAD0", func_80241C34_97F704); diff --git a/src/world/area_isk/isk_07/982440.c b/src/world/area_isk/isk_07/982440.c index fa8415d8d8..78974023fb 100644 --- a/src/world/area_isk/isk_07/982440.c +++ b/src/world/area_isk/isk_07/982440.c @@ -5,4 +5,31 @@ static char* N(exit_str_1) = "isk_04"; #include "world/common/SetNpcB5_3.inc.c" -INCLUDE_ASM(s32, "world/area_isk/isk_07/982440", func_80240014_982454); +ApiStatus func_80240014_982454(Evt* script, s32 isInitialCall) { + EncounterStatus* encounterStatus = &gCurrentEncounter; + s32 i, j; + s32 count; + + script->varTable[1] = 0; + count = 0; + for (i = 0; i < encounterStatus->numEncounters; i++) { + Encounter* encounter = encounterStatus->encounterList[i]; + if (encounter != NULL) { + s32 hasEnemy = FALSE; + for (j = 0; j < encounter->count; j++) { + if (encounter->enemy[j] != NULL) { + hasEnemy = TRUE; + } + } + if (hasEnemy) { + count++; + } + } + } + + if (count != 1) { + return ApiStatus_DONE2; + } + script->varTable[1] = count; + return ApiStatus_DONE2; +} diff --git a/src/world/area_isk/isk_07/982530.c b/src/world/area_isk/isk_07/982530.c index 32b248d93f..58689fa344 100644 --- a/src/world/area_isk/isk_07/982530.c +++ b/src/world/area_isk/isk_07/982530.c @@ -1,3 +1,11 @@ #include "isk_07.h" +#include "mapfs/isk_07_hit.h" + +ApiStatus func_802400F0_982530(Evt* script, s32 isInitialCall) { + if (gCollisionStatus.currentFloor == COLLIDER_o2022) { + return ApiStatus_BLOCK; + } else { + return ApiStatus_DONE2; + } +} -INCLUDE_ASM(s32, "world/area_isk/isk_07/982530", func_802400F0_982530); diff --git a/src/world/area_isk/isk_09/9864E0.c b/src/world/area_isk/isk_09/9864E0.c index 3a509beca5..602cd872f4 100644 --- a/src/world/area_isk/isk_09/9864E0.c +++ b/src/world/area_isk/isk_09/9864E0.c @@ -1,4 +1,5 @@ #include "isk_09.h" +#include "entity.h" static char* N(exit_str_0) = "isk_08"; static char* N(exit_str_1) = ""; @@ -11,4 +12,8 @@ static char* N(exit_str_1) = ""; #include "world/common/CheckItemFlags40.inc.c" -INCLUDE_ASM(s32, "world/area_isk/isk_09/9864E0", func_802402BC_98679C); +ApiStatus func_802402BC_98679C(Evt* script, s32 isInitialCall) { + Entity* bigChest = get_entity_by_index(script->varTable[0]); + bigChest->dataBuf.chest->unk_30 = TRUE; + return ApiStatus_DONE2; +} diff --git a/src/world/area_isk/isk_09/9867D0.c b/src/world/area_isk/isk_09/9867D0.c index 560f801773..d587246e56 100644 --- a/src/world/area_isk/isk_09/9867D0.c +++ b/src/world/area_isk/isk_09/9867D0.c @@ -1,3 +1,11 @@ #include "isk_09.h" -INCLUDE_ASM(s32, "world/area_isk/isk_09/9867D0", func_802402F0_9867D0); +ApiStatus func_802402F0_9867D0(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 colliderID = evt_get_variable(script, *args++); + if (gCollisionStatus.currentFloor != colliderID) { + return ApiStatus_DONE2; + } else { + return ApiStatus_BLOCK; + } +} diff --git a/src/world/area_isk/isk_10/988B60.c b/src/world/area_isk/isk_10/988B60.c index b6befc8ec2..a77f6e3c25 100644 --- a/src/world/area_isk/isk_10/988B60.c +++ b/src/world/area_isk/isk_10/988B60.c @@ -7,4 +7,17 @@ static char* N(exit_str_3) = ""; #include "world/common/atomic/SuperBlock.inc.c" -INCLUDE_ASM(s32, "world/area_isk/isk_10/988B60", func_80240D38_989898); +ApiStatus func_80240D38_989898(Evt* script, s32 isInitialCall) { + s32 status = -1; + + if (gPlayerStatus.lastGoodPosition.y > -600.0) { + status = 0; + } + if (gPlayerStatus.lastGoodPosition.y < -770.0) { + status = 1; + } + if (status >= 0) { + evt_set_variable(script, GW(9), status); + } + return ApiStatus_BLOCK; +} diff --git a/src/world/area_isk/isk_11/98AA10.c b/src/world/area_isk/isk_11/98AA10.c index 0cbafd7664..d3efc0f43c 100644 --- a/src/world/area_isk/isk_11/98AA10.c +++ b/src/world/area_isk/isk_11/98AA10.c @@ -1,8 +1,18 @@ #include "isk_11.h" +#include "effects.h" static char* N(exit_str_0) = "isk_08"; static char* N(exit_str_1) = "isk_12"; static char* N(exit_str_2) = "isk_19"; static char* N(exit_str_3) = ""; -INCLUDE_ASM(s32, "world/area_isk/isk_11/98AA10", func_80240000_98AA10); +ApiStatus func_80240000_98AA10(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + f32 posX = evt_get_float_variable(script, *args++); + f32 posY = evt_get_float_variable(script, *args++); + f32 posZ = evt_get_float_variable(script, *args++); + s32 duration = evt_get_variable(script, *args++); + + fx_lens_flare(0, posX, posY, posZ, duration); + return ApiStatus_DONE2; +} diff --git a/src/world/area_isk/isk_11/98AAC0.c b/src/world/area_isk/isk_11/98AAC0.c index f7b1ad65b1..58f8a543ac 100644 --- a/src/world/area_isk/isk_11/98AAC0.c +++ b/src/world/area_isk/isk_11/98AAC0.c @@ -1,3 +1,9 @@ #include "isk_11.h" -INCLUDE_ASM(s32, "world/area_isk/isk_11/98AAC0", func_802400B0_98AAC0); +ApiStatus func_802400B0_98AAC0(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 itemID = evt_get_variable(script, *args++); + + evt_set_variable(script, *args++, gItemTable[itemID & 0xFFF0FFFF].nameMsg); + return ApiStatus_DONE2; +} diff --git a/src/world/area_iwa/iwa_11/926C70.c b/src/world/area_iwa/iwa_11/926C70.c index b3cd3f1aac..78de5d8952 100644 --- a/src/world/area_iwa/iwa_11/926C70.c +++ b/src/world/area_iwa/iwa_11/926C70.c @@ -1,3 +1,21 @@ #include "iwa_11.h" -INCLUDE_ASM(s32, "world/area_iwa/iwa_11/926C70", func_80240280_926C70); +extern s32 D_80242148_928B38[14][7]; + +s32 func_80240280_926C70(Evt* script, s32 isInitialCall) { + s32 value = script->varTable[0]; + s32 index, i; + + for (i = 0; i < 14; i++) { + if (value < D_80242148_928B38[i][0]) { + break; + } + } + index = i - 1; + + for (i = 0; i < 6; i++) { + script->varTable[i + 5] = D_80242148_928B38[index][i + 1]; + } + + return ApiStatus_DONE2; +} diff --git a/src/world/area_mac/mac_05/855560.c b/src/world/area_mac/mac_05/855560.c index 846d1bd645..b337a92246 100644 --- a/src/world/area_mac/mac_05/855560.c +++ b/src/world/area_mac/mac_05/855560.c @@ -19,7 +19,3 @@ INCLUDE_ASM(s32, "world/area_mac/mac_05/855560", mac_05_unkVtxFunc001); #include "world/common/UnkPlayerPosFunc.inc.c" #include "world/common/PlayFX3D.inc.c" - -INCLUDE_ASM(s32, "world/area_mac/mac_05/855560", func_80243CD4_855E44); - -INCLUDE_ASM(s32, "world/area_mac/mac_05/855560", func_80243D78_855EE8); diff --git a/src/world/area_mac/mac_06/865000.c b/src/world/area_mac/mac_06/865000.c index 153611d5b7..6663243326 100644 --- a/src/world/area_mac/mac_06/865000.c +++ b/src/world/area_mac/mac_06/865000.c @@ -19,7 +19,3 @@ INCLUDE_ASM(s32, "world/area_mac/mac_06/865000", mac_06_unkVtxFunc001); #include "world/common/UnkPlayerPosFunc.inc.c" #include "world/common/PlayFX3D.inc.c" - -INCLUDE_ASM(s32, "world/area_mac/mac_06/865000", func_80240DA4_8658E4); - -INCLUDE_ASM(s32, "world/area_mac/mac_06/865000", func_80240E48_865988); diff --git a/src/world/area_mgm/mgm_02/E15D80.c b/src/world/area_mgm/mgm_02/E15D80.c index daba1b542c..aba54995a0 100644 --- a/src/world/area_mgm/mgm_02/E15D80.c +++ b/src/world/area_mgm/mgm_02/E15D80.c @@ -35,8 +35,8 @@ extern s32 mgm_02_BoxColliderIDs[NUM_BOXES]; extern s32 mgm_02_PanelModelIDs[NUM_PANELS]; extern s32 D_80248600[NUM_PANELS]; //TODO set name: mgm_02_PanelModelsAssigned -extern s32 mgm_02_PeachPanelImg; -extern s32 mgm_02_PeachPanelPal; +extern IMG_BIN mgm_02_PeachPanelImg; +extern PAL_BIN mgm_02_PeachPanelPal; extern EvtScript D_80242A3C_E187BC; // EVT_ReadSign diff --git a/src/world/area_sbk/sbk_02/92A2B0.c b/src/world/area_sbk/sbk_02/92A2B0.c index 06010a2e6e..6182fed6ff 100644 --- a/src/world/area_sbk/sbk_02/92A2B0.c +++ b/src/world/area_sbk/sbk_02/92A2B0.c @@ -25,7 +25,8 @@ s32 N(GetTattle)(void) { ApiStatus func_80240338_92A5E8(Evt* script, s32 isInitialCall) { EffectInstance* effect = (EffectInstance*)evt_get_variable(script, EVT_MAP_VAR(0)); - ((EffectInstanceData*)effect->data)->unk_3C = 0; + + effect->data.sun->unk_3C = 0; return ApiStatus_DONE2; } diff --git a/src/world/common/LoadPartyImage.inc.c b/src/world/common/LoadPartyImage.inc.c index 47aba27aa2..b8ac4b9b0a 100644 --- a/src/world/common/LoadPartyImage.inc.c +++ b/src/world/common/LoadPartyImage.inc.c @@ -6,16 +6,9 @@ #endif ApiStatus N(LoadPartyImage)(Evt* script, s32 isInitialCall) { - static u16 palette[256]; - static u8 raster[0x3D90]; - static struct { - /* 0x00 */ void* raster; - /* 0x04 */ void* palette; - /* 0x08 */ s16 width; - /* 0x0A */ s16 height; - /* 0x0C */ s32 unk_0C; - /* 0x10 */ s32 unk_10; - } images[1]; + static PAL_BIN palette[256]; + static IMG_BIN raster[0x3D90]; // 10 bytes added for padding: 150 * 105 = 3D86 + static MessageImageData image; u32 decompressedSize; void* compressed = load_asset_by_name(PARTY_IMAGE, &decompressedSize); @@ -23,13 +16,13 @@ ApiStatus N(LoadPartyImage)(Evt* script, s32 isInitialCall) { decode_yay0(compressed, &palette); general_heap_free(compressed); - images[0].raster = &raster; - images[0].width = 150; - images[0].height = 105; - images[0].unk_0C = 2; - images[0].palette = &palette; - images[0].unk_10 = 1; - set_message_images(images); + image.raster = raster; + image.palette = palette; + image.width = 150; + image.height = 105; + image.format = G_IM_FMT_CI; + image.bitDepth = G_IM_SIZ_8b; + set_message_images(&image); return ApiStatus_DONE2; } diff --git a/src/world/common/PlayFX3D.inc.c b/src/world/common/PlayFX3D.inc.c index 4540ae8b16..b8adcc9b38 100644 --- a/src/world/common/PlayFX3D.inc.c +++ b/src/world/common/PlayFX3D.inc.c @@ -17,3 +17,24 @@ ApiStatus N(PlayFX3D)(Evt* script, s32 isInitialStatus) { script->varTable[0] = outVal; return ApiStatus_DONE2; } + +ApiStatus N(UpdatePosFX3D)(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); + f32 x = evt_get_float_variable(script, *args++); + f32 y = evt_get_float_variable(script, *args++); + f32 z = evt_get_float_variable(script, *args++); + + effect->data.unk_3D->pos.x = x; + effect->data.unk_3D->pos.y = y; + effect->data.unk_3D->pos.z = z; + return ApiStatus_DONE2; +} + +ApiStatus N(DisposeFX3D)(Evt *script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); + + effect->data.unk_3D->unk_04 = 1; + return ApiStatus_DONE2; +} diff --git a/src/world/common/StarSpiritEffectFunc.inc.c b/src/world/common/StarSpiritEffectFunc.inc.c index 4e49b5fb8f..8a246c88a3 100644 --- a/src/world/common/StarSpiritEffectFunc.inc.c +++ b/src/world/common/StarSpiritEffectFunc.inc.c @@ -52,9 +52,9 @@ ApiStatus N(StarSpiritEffectFunc3)(Evt* script, s32 isInitialCall) { ptr->unk_04 = update_lerp(5, ptr->unk_10, ptr->unk_1C, ptr->unk_46, ptr->unk_3C); ptr->unk_00 = update_lerp(0, ptr->unk_0C, ptr->unk_18, ptr->unk_46, ptr->unk_3C); ptr->unk_08 = update_lerp(0, ptr->unk_14, ptr->unk_20, ptr->unk_46, ptr->unk_3C); - ((StarSpiritsEnergyFXData*)ptr->unk_50->data)->unk_08 = ptr->unk_00; - ((StarSpiritsEnergyFXData*)ptr->unk_50->data)->unk_0C = ptr->unk_04; - ((StarSpiritsEnergyFXData*)ptr->unk_50->data)->unk_10 = ptr->unk_08; + ptr->unk_50->data.starSpiritsEnergy->unk_08 = ptr->unk_00; + ptr->unk_50->data.starSpiritsEnergy->unk_0C = ptr->unk_04; + ptr->unk_50->data.starSpiritsEnergy->unk_10 = ptr->unk_08; ptr->unk_46++; if (ptr->unk_46 >= ptr->unk_3C) { ptr->unk_44 = 1; @@ -66,16 +66,16 @@ ApiStatus N(StarSpiritEffectFunc3)(Evt* script, s32 isInitialCall) { if (ptr->unk_46 >= 60) { ptr->unk_44 = 2; ptr->unk_46 = 0; - ((StarSpiritsEnergyFXData*)ptr->unk_50->data)->unk_70 = 1; - ((StarSpiritsEnergyFXData*)ptr->unk_50->data)->unk_74 = 0; + ptr->unk_50->data.starSpiritsEnergy->unk_70 = 1; + ptr->unk_50->data.starSpiritsEnergy->unk_74 = 0; } break; case 2: ptr->unk_46++; if (ptr->unk_46 >= 60) { ptr->unk_54 = fx_spirit_card(1, ptr->unk_18, ptr->unk_1C, ptr->unk_20, 1.0f, 0); - ((SpiritCardFXData*)ptr->unk_54->data)->unk_34 = ptr->unk_38; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_20 = 0; + ptr->unk_54->data.spiritCard->unk_34 = ptr->unk_38; + ptr->unk_54->data.spiritCard->unk_20 = 0; ptr->unk_40 = create_shadow_type(0, ptr->unk_18, ptr->unk_28, ptr->unk_20); ptr->unk_44 = 3; ptr->unk_46 = 0; @@ -126,10 +126,10 @@ ApiStatus N(StarSpiritEffectFunc3)(Evt* script, s32 isInitialCall) { case 1: ptr->unk_2C = clamp_angle(ptr->unk_2C + ptr->unk_30); case 2: - ((SpiritCardFXData*)ptr->unk_54->data)->unk_24 = ptr->unk_2C; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_04 = ptr->unk_18; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_08 = ptr->unk_04; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_0C = ptr->unk_20; + ptr->unk_54->data.spiritCard->unk_24 = ptr->unk_2C; + ptr->unk_54->data.spiritCard->unk_04 = ptr->unk_18; + ptr->unk_54->data.spiritCard->unk_08 = ptr->unk_04; + ptr->unk_54->data.spiritCard->unk_0C = ptr->unk_20; break; } @@ -155,8 +155,8 @@ ApiStatus N(StarSpiritEffectFunc5)(Evt* script, s32 isInitialCall) { ptr->unk_20 = evt_get_float_variable(script, *args++); ptr->unk_28 = evt_get_float_variable(script, *args++); ptr->unk_54 = fx_spirit_card(1, ptr->unk_18, ptr->unk_24, ptr->unk_20, 1.0f, 0); - ((SpiritCardFXData*)ptr->unk_54->data)->unk_34 = ptr->unk_38; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_20 = 0; + ptr->unk_54->data.spiritCard->unk_34 = ptr->unk_38; + ptr->unk_54->data.spiritCard->unk_20 = 0; ptr->unk_40 = create_shadow_type(0, ptr->unk_18, ptr->unk_28, ptr->unk_20); ptr->unk_4C = 270; } @@ -174,9 +174,9 @@ ApiStatus N(StarSpiritEffectFunc6)(Evt* script, s32 isInitialCall) { ptr->unk_18, ptr->unk_20) <= 30.0f) { ptr->unk_4E = 3; } - ((SpiritCardFXData*)ptr->unk_54->data)->unk_04 = ptr->unk_18; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_08 = ptr->unk_04; - ((SpiritCardFXData*)ptr->unk_54->data)->unk_0C = ptr->unk_20; + ptr->unk_54->data.spiritCard->unk_04 = ptr->unk_18; + ptr->unk_54->data.spiritCard->unk_08 = ptr->unk_04; + ptr->unk_54->data.spiritCard->unk_0C = ptr->unk_20; return ApiStatus_BLOCK; } diff --git a/src/world/common/atomic/Quizmo.inc.c b/src/world/common/atomic/Quizmo.inc.c index ecfb0d7684..f84e04f118 100644 --- a/src/world/common/atomic/Quizmo.inc.c +++ b/src/world/common/atomic/Quizmo.inc.c @@ -233,7 +233,7 @@ ApiStatus N(Quizmo_UpdateRecords)(Evt* script, s32 isInitialCall) { } ApiStatus N(Quizmo_CreateStage)(Evt* script, s32 isInitialCall) { - EffectDataQuizStage* stageData; + QuizmoStageFXData* stageData; if (isInitialCall) { N(Quizmo_StageEffect) = fx_quizmo_stage(0, @@ -250,7 +250,7 @@ ApiStatus N(Quizmo_CreateStage)(Evt* script, s32 isInitialCall) { evt_get_variable(script, EVT_ARRAY(3)), 1.0f, 0); - stageData = N(Quizmo_StageEffect)->data; + stageData = N(Quizmo_StageEffect)->data.quizmoStage; stageData->microphoneRaiseAmt = 0; stageData->leftWallRaiseAmt = 0; stageData->rightWallRaiseAmt = 0; @@ -258,7 +258,7 @@ ApiStatus N(Quizmo_CreateStage)(Evt* script, s32 isInitialCall) { stageData->rearWallRaiseAmt = 0; } - stageData = N(Quizmo_StageEffect)->data; + stageData = N(Quizmo_StageEffect)->data.quizmoStage; stageData->leftWallRaiseAmt += 10; stageData->podiumRaiseAmt += 10; @@ -274,14 +274,14 @@ ApiStatus N(Quizmo_CreateStage)(Evt* script, s32 isInitialCall) { } ApiStatus N(Quizmo_DestroyEffects)(Evt* script, s32 isInitialCall) { - EffectDataQuizStage* stageData; + QuizmoStageFXData* stageData; if (isInitialCall) { N(Quizmo_AudienceEffect)->flags |= EFFECT_INSTANCE_FLAGS_10; N(Quizmo_VannaTEffect)->flags |= EFFECT_INSTANCE_FLAGS_10; } - stageData = N(Quizmo_StageEffect)->data; + stageData = N(Quizmo_StageEffect)->data.quizmoStage; stageData->microphoneRaiseAmt -= 10; stageData->leftWallRaiseAmt -= 10; stageData->rightWallRaiseAmt -= 10; @@ -299,13 +299,13 @@ ApiStatus N(Quizmo_DestroyEffects)(Evt* script, s32 isInitialCall) { } ApiStatus N(Quizmo_SetStageLightsDelay)(Evt* script, s32 isInitialCall) { - ((EffectDataQuizStage*)N(Quizmo_StageEffect)->data)->lightScrollDelay = evt_get_variable(script, *script->ptrReadPos); + N(Quizmo_StageEffect)->data.quizmoStage->lightScrollDelay = evt_get_variable(script, *script->ptrReadPos); return ApiStatus_DONE2; } ApiStatus N(Quizmo_UnkStageEffectMode)(Evt* script, s32 isInitialCall) { s32 var = evt_get_variable(script, *script->ptrReadPos); - EffectDataQuizStage* stageData = N(Quizmo_StageEffect)->data; + QuizmoStageFXData* stageData = N(Quizmo_StageEffect)->data.quizmoStage; switch (var) { case 0: @@ -326,17 +326,17 @@ ApiStatus N(Quizmo_UnkStageEffectMode)(Evt* script, s32 isInitialCall) { } ApiStatus N(Quizmo_SetVannaAnim_Idle)(Evt* script, s32 isInitialCall) { - ((EffectDataQuizVannaT*)N(Quizmo_VannaTEffect)->data)->anim = 0; + N(Quizmo_VannaTEffect)->data.quizmoAssistant->anim = 0; return ApiStatus_DONE2; } ApiStatus N(Quizmo_SetVannaAnim_Clap)(Evt* script, s32 isInitialCall) { - ((EffectDataQuizVannaT*)N(Quizmo_VannaTEffect)->data)->anim = 1; + N(Quizmo_VannaTEffect)->data.quizmoAssistant->anim = 1; return ApiStatus_DONE2; } ApiStatus N(Quizmo_SetVannaAnim_Wave)(Evt* script, s32 isInitialCall) { - ((EffectDataQuizVannaT*)N(Quizmo_VannaTEffect)->data)->anim = 2; + N(Quizmo_VannaTEffect)->data.quizmoAssistant->anim = 2; return ApiStatus_DONE2; } diff --git a/src/world/common/atomic/SuperBlock.inc.c b/src/world/common/atomic/SuperBlock.inc.c index c0f2eedee8..e24ea4b7cc 100644 --- a/src/world/common/atomic/SuperBlock.inc.c +++ b/src/world/common/atomic/SuperBlock.inc.c @@ -174,14 +174,6 @@ ApiStatus N(SuperBlock_RadiateFaintEnergyFX)(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -typedef struct BlurFlameEffectData { - s32 unk_00; - s32 unk_04; - s32 unk_08; - s32 unk_0C; - Vec3f position; -} BlurFlameEffectData; - typedef struct EnergyOrbSet { s32 scatterState; s32 gatherState; @@ -216,8 +208,7 @@ ApiStatus N(SuperBlock_AnimateEnergyOrbs)(Evt* script, s32 isInitialCall) { for (i = 0; i < SUPER_BLOCK_NUM_ORBS; i++) { userData->orbEffects[i] = (EffectInstance*)fx_motion_blur_flame(0, userData->superBlock->position.x, - userData->superBlock->position.y + 12.5f, - userData->superBlock->position.z, 1.0f, -1); + userData->superBlock->position.y + 12.5f, userData->superBlock->position.z, 1.0f, -1); t1 = 0.0f; userData->posZ[i] = t1; userData->posY[i] = t1; @@ -311,9 +302,9 @@ ApiStatus N(SuperBlock_AnimateEnergyOrbs)(Evt* script, s32 isInitialCall) { } for (i = 0; i < SUPER_BLOCK_NUM_ORBS; i++) { - ((BlurFlameEffectData*)userData->orbEffects[i]->data)->position.x = userData->posX[i]; - ((BlurFlameEffectData*)userData->orbEffects[i]->data)->position.y = userData->posY[i]; - ((BlurFlameEffectData*)userData->orbEffects[i]->data)->position.z = userData->posZ[i]; + userData->orbEffects[i]->data.motionBlurFlame->position.x = userData->posX[i]; + userData->orbEffects[i]->data.motionBlurFlame->position.y = userData->posY[i]; + userData->orbEffects[i]->data.motionBlurFlame->position.z = userData->posZ[i]; } return ApiStatus_BLOCK; diff --git a/ver/us/asm/data/1AF2D0.data.s b/ver/us/asm/data/1AF2D0.data.s index 0adf5500e5..7d6fef6c6b 100644 --- a/ver/us/asm/data/1AF2D0.data.s +++ b/ver/us/asm/data/1AF2D0.data.s @@ -219,13 +219,13 @@ dlabel MerleeRunOut .word 0x00000043, 0x00000001, HasMerleeCastsLeft, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000001, 0x00000002, 0x00000000, 0x00000013, 0x00000000, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000003, ShowMessageBox, 0x00000003, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel MerleeAttackBonus -.word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000001, func_80261530, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000013, 0x00000043, 0x00000004, SetBattleCamTarget, 0x00000000, 0x00000050, 0x00000000, 0x00000043, 0x00000002, SetBattleCamOffsetZ, 0x00000000, 0x00000043, 0x00000002, SetBattleCamZoom, 0x000000F6, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000014, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, CreateNpc, 0xFFFFFFF6, 0x00BB0001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFF6, 0x00040000, 0x00000001, 0x00000043, 0x00000003, SetNpcRenderMode, 0xFFFFFFF6, 0x00000022, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFF6, 0x00000000, 0x00000041, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, func_802616F4, 0x00000059, 0x00000000, 0x00000043, 0x00000001, func_80261648, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFF6, 0x00BB0000, 0x00000043, 0x00000001, func_802619B4, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000002, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000004, 0x00000043, 0x00000001, func_802615C8, 0x00000008, 0x00000001, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, func_802616B4, 0x00000043, 0x00000002, DeleteNpc, 0xFFFFFFF6, 0x00000059, 0x00000000, 0x00000043, 0x00000003, PlaySoundAtActor, 0x00000000, 0x00002075, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_802613BC, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80261478, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A81B4, 0x00000043, 0x00000006, SetJumpAnimations, 0x00000000, 0x00000000, 0x00010007, 0x00010008, 0x00010009, 0x00000043, 0x00000005, SetGoalPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80273444, 0x00000012, 0x00000000, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010009, 0x00000008, 0x00000001, 0x00000004, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000043, 0x00000003, ShowMessageBox, 0x00000000, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000046, 0x00000001, MerleeRunOut, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000001, BattleMerleeFadeStageToBlack, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000013, 0x00000043, 0x00000004, SetBattleCamTarget, 0x00000000, 0x00000050, 0x00000000, 0x00000043, 0x00000002, SetBattleCamOffsetZ, 0x00000000, 0x00000043, 0x00000002, SetBattleCamZoom, 0x000000F6, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000014, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, CreateNpc, 0xFFFFFFF6, 0x00BB0001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFF6, 0x00040000, 0x00000001, 0x00000043, 0x00000003, SetNpcRenderMode, 0xFFFFFFF6, 0x00000022, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFF6, 0x00000000, 0x00000041, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, BattleMerleeUpdateFX, 0x00000059, 0x00000000, 0x00000043, 0x00000001, BattleFadeInMerlee, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFF6, 0x00BB0000, 0x00000043, 0x00000001, func_802619B4, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000002, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000004, 0x00000043, 0x00000001, BattleMerleeFadeStageFromBlack, 0x00000008, 0x00000001, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, BattleFadeOutMerlee, 0x00000043, 0x00000002, DeleteNpc, 0xFFFFFFF6, 0x00000059, 0x00000000, 0x00000043, 0x00000003, PlaySoundAtActor, 0x00000000, 0x00002075, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, PlayBattleMerleeGatherFX, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, PlayBattleMerleeOrbFX, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A81B4, 0x00000043, 0x00000006, SetJumpAnimations, 0x00000000, 0x00000000, 0x00010007, 0x00010008, 0x00010009, 0x00000043, 0x00000005, SetGoalPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80273444, 0x00000012, 0x00000000, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010009, 0x00000008, 0x00000001, 0x00000004, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000043, 0x00000003, ShowMessageBox, 0x00000000, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000046, 0x00000001, MerleeRunOut, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel MerleeDefenseBonus -.word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000001, func_80261530, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000013, 0x00000043, 0x00000004, SetBattleCamTarget, 0x00000000, 0x00000050, 0x00000000, 0x00000043, 0x00000002, SetBattleCamOffsetZ, 0x00000000, 0x00000043, 0x00000002, SetBattleCamZoom, 0x000000F6, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000014, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, CreateNpc, 0xFFFFFFF6, 0x00BB0001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFF6, 0x00040000, 0x00000001, 0x00000043, 0x00000003, SetNpcRenderMode, 0xFFFFFFF6, 0x00000022, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFF6, 0x00000000, 0x00000041, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, func_802616F4, 0x00000059, 0x00000000, 0x00000043, 0x00000001, func_80261648, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFF6, 0x00BB0000, 0x00000043, 0x00000001, func_802619B4, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000002, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000004, 0x00000043, 0x00000001, func_802615C8, 0x00000008, 0x00000001, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, func_802616B4, 0x00000043, 0x00000002, DeleteNpc, 0xFFFFFFF6, 0x00000059, 0x00000000, 0x00000043, 0x00000003, PlaySoundAtActor, 0x00000000, 0x00002075, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_802613BC, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80261478, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000003, GetStatusFlags, 0x00000000, 0xFE363C80, 0x00000010, 0x00000002, 0xFE363C80, 0x0035D000, 0x00000008, 0x00000001, 0x00000016, 0x00000012, 0x00000000, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A81B4, 0x00000043, 0x00000006, SetJumpAnimations, 0x00000000, 0x00000000, 0x00010007, 0x00010008, 0x00010009, 0x00000043, 0x00000005, SetGoalPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80273444, 0x00000012, 0x00000000, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010009, 0x00000008, 0x00000001, 0x00000004, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000013, 0x00000000, 0x00000043, 0x00000003, ShowMessageBox, 0x00000001, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000046, 0x00000001, MerleeRunOut, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000001, BattleMerleeFadeStageToBlack, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000013, 0x00000043, 0x00000004, SetBattleCamTarget, 0x00000000, 0x00000050, 0x00000000, 0x00000043, 0x00000002, SetBattleCamOffsetZ, 0x00000000, 0x00000043, 0x00000002, SetBattleCamZoom, 0x000000F6, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000014, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, CreateNpc, 0xFFFFFFF6, 0x00BB0001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFF6, 0x00040000, 0x00000001, 0x00000043, 0x00000003, SetNpcRenderMode, 0xFFFFFFF6, 0x00000022, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFF6, 0x00000000, 0x00000041, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, BattleMerleeUpdateFX, 0x00000059, 0x00000000, 0x00000043, 0x00000001, BattleFadeInMerlee, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFF6, 0x00BB0000, 0x00000043, 0x00000001, func_802619B4, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000002, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000004, 0x00000043, 0x00000001, BattleMerleeFadeStageFromBlack, 0x00000008, 0x00000001, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, BattleFadeOutMerlee, 0x00000043, 0x00000002, DeleteNpc, 0xFFFFFFF6, 0x00000059, 0x00000000, 0x00000043, 0x00000003, PlaySoundAtActor, 0x00000000, 0x00002075, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, PlayBattleMerleeGatherFX, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, PlayBattleMerleeOrbFX, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000003, GetStatusFlags, 0x00000000, 0xFE363C80, 0x00000010, 0x00000002, 0xFE363C80, 0x0035D000, 0x00000008, 0x00000001, 0x00000016, 0x00000012, 0x00000000, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A81B4, 0x00000043, 0x00000006, SetJumpAnimations, 0x00000000, 0x00000000, 0x00010007, 0x00010008, 0x00010009, 0x00000043, 0x00000005, SetGoalPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80273444, 0x00000012, 0x00000000, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010009, 0x00000008, 0x00000001, 0x00000004, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000013, 0x00000000, 0x00000043, 0x00000003, ShowMessageBox, 0x00000001, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000046, 0x00000001, MerleeRunOut, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel MerleeExpBonus -.word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000001, func_80261530, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000013, 0x00000043, 0x00000004, SetBattleCamTarget, 0x00000000, 0x00000050, 0x00000000, 0x00000043, 0x00000002, SetBattleCamOffsetZ, 0x00000000, 0x00000043, 0x00000002, SetBattleCamZoom, 0x000000F6, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000014, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, CreateNpc, 0xFFFFFFF6, 0x00BB0001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFF6, 0x00040000, 0x00000001, 0x00000043, 0x00000003, SetNpcRenderMode, 0xFFFFFFF6, 0x00000022, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFF6, 0x00000000, 0x00000041, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, func_802616F4, 0x00000059, 0x00000000, 0x00000043, 0x00000001, func_80261648, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFF6, 0x00BB0000, 0x00000043, 0x00000001, func_802619B4, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000002, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000004, 0x00000043, 0x00000001, func_802615C8, 0x00000008, 0x00000001, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, func_802616B4, 0x00000043, 0x00000002, DeleteNpc, 0xFFFFFFF6, 0x00000059, 0x00000000, 0x00000043, 0x00000003, PlaySoundAtActor, 0x00000000, 0x00002075, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_802613BC, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80261478, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A81B4, 0x00000043, 0x00000006, SetJumpAnimations, 0x00000000, 0x00000000, 0x00010007, 0x00010008, 0x00010009, 0x00000043, 0x00000005, SetGoalPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80273444, 0x00000012, 0x00000000, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010009, 0x00000008, 0x00000001, 0x00000004, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000043, 0x00000003, ShowMessageBox, 0x00000002, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000046, 0x00000001, MerleeRunOut, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000001, BattleMerleeFadeStageToBlack, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000013, 0x00000043, 0x00000004, SetBattleCamTarget, 0x00000000, 0x00000050, 0x00000000, 0x00000043, 0x00000002, SetBattleCamOffsetZ, 0x00000000, 0x00000043, 0x00000002, SetBattleCamZoom, 0x000000F6, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000014, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, CreateNpc, 0xFFFFFFF6, 0x00BB0001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFF6, 0x00040000, 0x00000001, 0x00000043, 0x00000003, SetNpcRenderMode, 0xFFFFFFF6, 0x00000022, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFF6, 0x00000000, 0x00000041, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, BattleMerleeUpdateFX, 0x00000059, 0x00000000, 0x00000043, 0x00000001, BattleFadeInMerlee, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFF6, 0x00BB0000, 0x00000043, 0x00000001, func_802619B4, 0x00000043, 0x00000002, UseBattleCamPreset, 0x00000002, 0x00000043, 0x00000002, MoveBattleCamOver, 0x00000004, 0x00000043, 0x00000001, BattleMerleeFadeStageFromBlack, 0x00000008, 0x00000001, 0x00000014, 0x00000058, 0x00000000, 0x00000043, 0x00000001, BattleFadeOutMerlee, 0x00000043, 0x00000002, DeleteNpc, 0xFFFFFFF6, 0x00000059, 0x00000000, 0x00000043, 0x00000003, PlaySoundAtActor, 0x00000000, 0x00002075, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, PlayBattleMerleeGatherFX, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, PlayBattleMerleeOrbFX, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A81B4, 0x00000043, 0x00000006, SetJumpAnimations, 0x00000000, 0x00000000, 0x00010007, 0x00010008, 0x00010009, 0x00000043, 0x00000005, SetGoalPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_80273444, 0x00000012, 0x00000000, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010009, 0x00000008, 0x00000001, 0x00000004, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000043, 0x00000003, ShowMessageBox, 0x00000002, 0x0000003C, 0x00000043, 0x00000001, WaitForMessageBoxDone, 0x00000046, 0x00000001, MerleeRunOut, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel PlayerHappy .word 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000000, 0x00000043, 0x00000002, UseBattleCamPresetWait, 0x00000002, 0x00000043, 0x00000004, SetAnimation, 0x00000000, 0x00000000, 0x00010032, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000004, func_802619E8, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C80, 0x00000000, 0x00000027, 0x00000002, 0xFE363C81, 0x00000023, 0x00000024, 0x00000002, 0xFE363C83, 0xFE363C8A, 0x00000027, 0x00000002, 0xFE363C83, 0xFE363C8B, 0x0000000D, 0x00000002, 0xFE363C83, 0x00000000, 0x00000043, 0x00000005, FXRecoverHP, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000013, 0x00000000, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C80, 0x00000014, 0x00000027, 0x00000002, 0xFE363C81, 0x00000019, 0x0000000D, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000005, FXRecoverFP, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C8C, 0x00000013, 0x00000000, 0x00000024, 0x00000002, 0xFE363C83, 0xFE363C8A, 0x00000027, 0x00000002, 0xFE363C83, 0xFE363C8B, 0x00000043, 0x00000005, GetActorPos, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C81, 0x00000019, 0x00000043, 0x00000005, ShowStartRecoveryShimmer, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000008, 0x00000001, 0x0000000A, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8A, 0x0000000D, 0x00000002, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0xFE363C80, 0x00000043, 0x00000001, IncrementPlayerHP, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000013, 0x00000000, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8B, 0x0000000D, 0x00000002, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0xFE363C80, 0x00000043, 0x00000001, IncrementPlayerHP, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000013, 0x00000000, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8C, 0x0000000D, 0x00000002, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0xFE363C80, 0x00000043, 0x00000001, IncrementPlayerFP, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000013, 0x00000000, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000000, 0x00010002, 0x00000043, 0x00000001, func_80261B40, 0x00000043, 0x00000003, UseIdleAnimation, 0x00000000, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x00000000 diff --git a/ver/us/asm/data/world/area_end/end_00/DFE5B0.data.s b/ver/us/asm/data/world/area_end/end_00/DFE5B0.data.s index 2264883436..d76c6c0c3b 100644 --- a/ver/us/asm/data/world/area_end/end_00/DFE5B0.data.s +++ b/ver/us/asm/data/world/area_end/end_00/DFE5B0.data.s @@ -30,7 +30,7 @@ dlabel D_80248770_DFF170 .word 0x00000043, 0x00000004, SetNpcFlagBits, 0x0000001E, 0x00008048, 0x00000001, 0x00000008, 0x00000001, 0x000000B4, 0x00000043, 0x00000005, NpcMoveTo, 0x0000001E, 0xFFFFF8EE, 0x0000002B, 0x00000046, 0x00000043, 0x00000003, SetNpcAnimation, 0x0000001E, 0x002C000B, 0x00000008, 0x00000001, 0x00000028, 0x00000043, 0x00000003, SetNpcAnimation, 0x0000001E, 0x002C0014, 0x00000008, 0x00000001, 0x00000014, 0x00000043, 0x00000003, SetNpcAnimation, 0x0000001E, 0x002C0016, 0x00000043, 0x00000005, GetNpcPos, 0x0000001E, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x0000000F, PlayEffect, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000001, 0x00000014, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableNpcShadow, 0x0000001E, 0x00000000, 0x00000043, 0x00000008, NpcFlyTo, 0x0000001E, 0xFE363C80, 0x000000C8, 0xFE363C82, 0x0000000A, 0x00000000, 0x00000000, 0x00000043, 0x00000005, SetNpcPos, 0x0000001E, 0xFFFFF8DA, 0x000000C8, 0x00000028, 0x00000043, 0x00000008, NpcFlyTo, 0x0000001E, 0xFFFFF8DA, 0x0000000C, 0x00000028, 0x00000014, 0x00000000, 0x00000000, 0x00000043, 0x00000003, SetNpcYaw, 0x0000001E, 0x0000005A, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, SetNpcAnimation, 0x0000001E, 0x002C0017, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000045, 0x00000002, D_80247BB0_DFE5B0, 0xFE363C8A, 0x00000005, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000043, 0x00000005, GetCamPosition, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000D, 0x00000002, 0xFE363C80, 0xFFFFF7EA, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000044, 0x00000001, D_80247CF8_DFE6F8, 0x00000044, 0x00000001, D_80247E4C_DFE84C, 0x00000044, 0x00000001, D_80247FA0_DFE9A0, 0x00000044, 0x00000001, D_802480F4_DFEAF4, 0x00000044, 0x00000001, D_80248248_DFEC48, 0x00000044, 0x00000001, D_80248400_DFEE00, 0x00000044, 0x00000001, D_802485B8_DFEFB8, 0x00000044, 0x00000001, D_80248770_DFF170, 0x00000005, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000043, 0x00000005, GetCamPosition, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000D, 0x00000002, 0xFE363C80, 0xFFFFF9C0, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_80248A78_DFF478 -.word 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000005, MakeLerp, 0x00000014, 0xFFFFFFEC, 0x00000028, 0x00000004, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000043, 0x00000005, MakeLerp, 0xFFFFFFEC, 0x00000014, 0x00000028, 0x00000004, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000045, 0x00000002, D_80248A78_DFF478, 0xFE363C8A, 0x00000005, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000043, 0x00000005, GetCamPosition, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000D, 0x00000002, 0xFE363C80, 0xFFFFF9CA, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000024, 0x00000002, 0xFE363C81, 0x0000000F, 0x00000043, 0x00000009, end_00_PlayFX3D, 0x00000000, 0xFFFFF9E3, 0xFE363C81, 0xFFFFFF38, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x0000001E, 0x00000043, 0x00000005, GetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000043, 0x00000005, GetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000005, 0x00000001, 0x00000005, 0x00000027, 0x00000002, 0xFE363C83, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000027, 0x00000002, 0xFE363C86, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x0000001F, 0x00DC0002, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000020, 0x00DC0005, 0x00000058, 0x00000000, 0x00000005, 0x00000001, 0x00000000, 0x00000005, 0x00000001, 0x00000014, 0x00000028, 0x00000002, 0xFE363C81, 0x00000001, 0x00000043, 0x00000005, func_80242A30_DF9430, 0xFE363C80, 0xFFFFF9E3, 0xFE363C81, 0xFFFFFF38, 0x00000028, 0x00000002, 0xFE363C83, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000028, 0x00000002, 0xFE363C86, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000005, 0x00000001, 0x00000014, 0x00000027, 0x00000002, 0xFE363C81, 0x00000001, 0x00000043, 0x00000005, func_80242A30_DF9430, 0xFE363C80, 0xFFFFF9E3, 0xFE363C81, 0xFFFFFF38, 0x00000027, 0x00000002, 0xFE363C83, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000027, 0x00000002, 0xFE363C86, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000006, 0x00000000, 0x00000059, 0x00000000, 0x00000024, 0x00000002, 0xFE363C83, 0xFE363C80, 0x00000005, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000043, 0x00000005, GetCamPosition, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000D, 0x00000002, 0xFE363C80, 0xFFFFFB5A, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000043, 0x00000002, func_80242AD4_DF94D4, 0xFE363C83, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000005, MakeLerp, 0x00000014, 0xFFFFFFEC, 0x00000028, 0x00000004, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000043, 0x00000005, MakeLerp, 0xFFFFFFEC, 0x00000014, 0x00000028, 0x00000004, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000045, 0x00000002, D_80248A78_DFF478, 0xFE363C8A, 0x00000005, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000043, 0x00000005, GetCamPosition, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000D, 0x00000002, 0xFE363C80, 0xFFFFF9CA, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000024, 0x00000002, 0xFE363C81, 0x0000000F, 0x00000043, 0x00000009, end_00_PlayFX3D, 0x00000000, 0xFFFFF9E3, 0xFE363C81, 0xFFFFFF38, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x0000001E, 0x00000043, 0x00000005, GetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000043, 0x00000005, GetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000005, 0x00000001, 0x00000005, 0x00000027, 0x00000002, 0xFE363C83, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000027, 0x00000002, 0xFE363C86, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x0000001F, 0x00DC0002, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000020, 0x00DC0005, 0x00000058, 0x00000000, 0x00000005, 0x00000001, 0x00000000, 0x00000005, 0x00000001, 0x00000014, 0x00000028, 0x00000002, 0xFE363C81, 0x00000001, 0x00000043, 0x00000005, end_00_UpdatePosFX3D, 0xFE363C80, 0xFFFFF9E3, 0xFE363C81, 0xFFFFFF38, 0x00000028, 0x00000002, 0xFE363C83, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000028, 0x00000002, 0xFE363C86, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000005, 0x00000001, 0x00000014, 0x00000027, 0x00000002, 0xFE363C81, 0x00000001, 0x00000043, 0x00000005, end_00_UpdatePosFX3D, 0xFE363C80, 0xFFFFF9E3, 0xFE363C81, 0xFFFFFF38, 0x00000027, 0x00000002, 0xFE363C83, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x0000001F, 0xFE363C82, 0xFE363C83, 0xFE363C84, 0x00000027, 0x00000002, 0xFE363C86, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x00000020, 0xFE363C85, 0xFE363C86, 0xFE363C87, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000006, 0x00000000, 0x00000059, 0x00000000, 0x00000024, 0x00000002, 0xFE363C83, 0xFE363C80, 0x00000005, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000043, 0x00000005, GetCamPosition, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000D, 0x00000002, 0xFE363C80, 0xFFFFFB5A, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000043, 0x00000002, end_00_DisposeFX3D, 0xFE363C83, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_80248F30_DFF930 .word 0x00000043, 0x00000005, GetNpcPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000026, 0x00000002, 0xFE363C81, 0xFE363C81, 0x00000005, 0x00000001, 0x00000000, 0x0000002C, 0x00000002, 0xFE363C81, 0xF24A7DFB, 0x00000043, 0x00000005, SetNpcPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000005, GetNpcPos, 0x00000023, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000026, 0x00000002, 0xFE363C80, 0xFE363C80, 0x00000005, 0x00000001, 0x00000000, 0x0000002C, 0x00000002, 0xFE363C80, 0xF24A7DFB, 0x00000043, 0x00000005, SetNpcPos, 0x00000023, 0xFE363C80, 0x00000000, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000005, SetNpcScale, 0x00000022, 0xF24A7D80, 0xF24A7D80, 0xF24A7D80, 0x00000056, 0x00000000, 0x00000043, 0x00000005, NpcMoveTo, 0x00000021, 0xFFFFFA59, 0xFFFFFFFE, 0x000000C8, 0x00000024, 0x00000002, 0xFE363C80, 0x00000021, 0x00000045, 0x00000002, D_80248F30_DFF930, 0xFE363C8A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A70009, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A7000C, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A7000D, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A70009, 0x00000008, 0x00000001, 0x0000003C, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A7000C, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A7000D, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A70009, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000021, 0x00A7000A, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000021, 0xFFFFFCEF, 0xFFFFFFFE, 0x0000012C, 0x00000043, 0x00000005, SetNpcPos, 0x00000021, 0x00000000, 0xFFFFFE0C, 0x00000000, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000043, 0x00000005, NpcMoveTo, 0x00000022, 0xFFFFFA7C, 0xFFFFFFFE, 0x000000C8, 0x00000024, 0x00000002, 0xFE363C80, 0x00000022, 0x00000045, 0x00000002, D_80248F30_DFF930, 0xFE363C8A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000022, 0x00A70009, 0x00000008, 0x00000001, 0x000000DC, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000022, 0x00A7000A, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000022, 0xFFFFFD12, 0xFFFFFFFE, 0x0000012C, 0x00000043, 0x00000005, SetNpcPos, 0x00000022, 0x00000000, 0xFFFFFE0C, 0x00000000, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000043, 0x00000005, NpcMoveTo, 0x00000023, 0xFFFFFA9C, 0x00000002, 0x000000B4, 0x00000024, 0x00000002, 0xFE363C80, 0x00000023, 0x00000045, 0x00000002, D_80248F30_DFF930, 0xFE363C8A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0001, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0007, 0x00000008, 0x00000001, 0x00000014, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0005, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0006, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000004, InterpNpcYaw, 0x00000023, 0x0000005A, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0005, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0006, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000004, InterpNpcYaw, 0x00000023, 0x0000010E, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0005, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0006, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0007, 0x00000008, 0x00000001, 0x00000014, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0001, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000023, 0x00BD0004, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000023, 0xFFFFFAB0, 0x00000002, 0x000000B4, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000024, 0xFFFFFAC2, 0x00000002, 0x000000B4, 0x00000024, 0x00000002, 0xFE363C80, 0x00000024, 0x00000045, 0x00000002, D_80248F30_DFF930, 0xFE363C8A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000024, 0x00940003, 0x00000008, 0x00000001, 0x0000006E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000024, 0x00940006, 0x00000008, 0x00000001, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000024, 0x00940003, 0x00000008, 0x00000001, 0x0000005A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000024, 0x00940004, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000024, 0xFFFFFACE, 0x00000002, 0x000000B4, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000008, 0x00000001, 0x0000000A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000025, 0xFFFFFAE0, 0x00000002, 0x000000B4, 0x00000024, 0x00000002, 0xFE363C80, 0x00000025, 0x00000045, 0x00000002, D_80248F30_DFF930, 0xFE363C8A, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000025, 0x00940003, 0x00000008, 0x00000001, 0x000000E6, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000025, 0x00940004, 0x00000049, 0x00000001, 0xFE363C8A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000025, 0xFFFFFAEC, 0x00000002, 0x000000B4, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000008, 0x00000001, 0x000000F0, 0x00000043, 0x00000005, NpcMoveTo, 0x00000026, 0xFFFFF9FC, 0x0000001E, 0x0000003C, 0x00000008, 0x00000001, 0x000000D2, 0x00000043, 0x00000005, SetNpcPos, 0x00000026, 0xFFFFFABA, 0x00000000, 0x0000001E, 0x00000043, 0x00000003, SetNpcYaw, 0x00000026, 0x0000005A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000026, 0xFFFFFBAA, 0x0000001E, 0x0000001E, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000026, 0x00680009, 0x00000043, 0x00000005, MakeLerp, 0x00000000, 0x0000005A, 0x00000005, 0x00000000, 0x00000005, 0x00000001, 0x00000005, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000005, SetNpcRotation, 0x00000026, 0x00000000, 0xFE363C80, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000008, 0x00000001, 0x00000014, 0x00000043, 0x0000000A, ShowEmote, 0x00000026, 0x00000004, 0x00000000, 0x0000003C, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000001, 0x0000003C, 0x00000043, 0x00000005, MakeLerp, 0x0000005A, 0x00000000, 0x00000005, 0x00000000, 0x00000005, 0x00000001, 0x00000005, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000005, SetNpcRotation, 0x00000026, 0x00000000, 0xFE363C80, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000026, 0x00680001, 0x00000043, 0x00000004, InterpNpcYaw, 0x00000026, 0x0000010E, 0x00000007, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000004, InterpNpcYaw, 0x00000026, 0x0000005A, 0x00000007, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000004, InterpNpcYaw, 0x00000026, 0x0000010E, 0x00000007, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000026, 0x00680004, 0x00000043, 0x00000003, SetNpcJumpscale, 0x00000026, 0xF24A7E80, 0x00000043, 0x00000006, NpcJump0, 0x00000026, 0xFFFFFB8C, 0x00000000, 0x0000001E, 0x0000000F, 0x00000043, 0x00000006, NpcJump0, 0x00000026, 0xFFFFFB6E, 0x00000000, 0x0000001E, 0x0000000F, 0x00000043, 0x00000006, NpcJump0, 0x00000026, 0xFFFFFB50, 0x00000000, 0x0000001E, 0x0000000F, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000008, 0x00000001, 0x000000F0, 0x00000043, 0x00000005, NpcMoveTo, 0x00000027, 0xFFFFFA38, 0x0000001E, 0x0000003C, 0x00000008, 0x00000001, 0x000000D2, 0x00000043, 0x00000005, SetNpcPos, 0x00000027, 0xFFFFFA7E, 0x00000000, 0x0000001E, 0x00000043, 0x00000003, SetNpcYaw, 0x00000027, 0x0000005A, 0x00000043, 0x00000005, NpcMoveTo, 0x00000027, 0xFFFFFD4E, 0x0000001E, 0x0000005A, 0x00000043, 0x00000005, SetNpcPos, 0x00000027, 0x00000000, 0xFFFFFE0C, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 diff --git a/ver/us/asm/data/world/area_mac/mac_05/862BC0.data.s b/ver/us/asm/data/world/area_mac/mac_05/862BC0.data.s index 21406cbc00..f3f43d0a1c 100644 --- a/ver/us/asm/data/world/area_mac/mac_05/862BC0.data.s +++ b/ver/us/asm/data/world/area_mac/mac_05/862BC0.data.s @@ -24,7 +24,7 @@ dlabel D_80250FA4_863114 .word 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_80250FB4_863124 -.word 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x0000000A, 0x00000002, 0xFE363C83, 0x00000000, 0x00000043, 0x00000001, mac_05_UnkPlayerPosFunc, 0x00000043, 0x00000006, PlaySoundAt, 0x8000004F, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000009, mac_05_PlayFX3D, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x0000001E, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x00000013, 0x00000000, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x00000043, 0x00000001, mac_05_UnkPlayerPosFunc, 0x00000043, 0x00000005, func_80243CD4_855E44, 0xFE363C83, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x0000001E, 0x0000003C, 0x0000001E, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x0000000A, 0x00000002, 0xFE363C83, 0x00000000, 0x00000043, 0x00000001, mac_05_UnkPlayerPosFunc, 0x00000043, 0x00000006, PlaySoundAt, 0x8000004F, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000009, mac_05_PlayFX3D, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x0000001E, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x00000013, 0x00000000, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x00000043, 0x00000001, mac_05_UnkPlayerPosFunc, 0x00000043, 0x00000005, mac_05_UpdatePosFX3D, 0xFE363C83, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x0000001E, 0x0000003C, 0x0000001E, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_8025110C_86327C .word 0x00000002, 0x00000000, 0x00000001, 0x00000000 @@ -45,4 +45,4 @@ dlabel D_80251654_8637C4 .word 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x0000001E, 0x0000003C, 0x0000001E, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_802516CC_86383C -.word 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x00000000, 0x00000008, 0x00000003, 0x00000000, 0x00000000, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C80, 0x0000002A, 0x00000002, 0xFE363C81, 0x00000003, 0x00000043, 0x00000006, RotateModel, 0x00000058, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000043, 0x00000006, RotateGroup, 0x0000005D, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x00000050, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000052, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8C, 0x00000029, 0x00000002, 0xFE363C80, 0x00000002, 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C80, 0xFE363C80, 0x0000001E, 0x0000003C, 0x00000003, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000001, 0x0000005A, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000001, mac_05_unkAngleFunc002, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000005A, 0x00000001, 0xFFFFFFFF, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000002, 0x0000005B, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000002, mac_05_unkAngleFunc003, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000005B, 0x00000002, 0xFFFFFFFF, 0x00000056, 0x00000000, 0x00000003, 0x00000001, 0x00000000, 0x00000043, 0x00000005, mac_05_UnkAngleFunc001, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000002D, 0x00000002, 0xFE363C80, 0xFFFFFFB0, 0x0000002D, 0x00000002, 0xFE363C81, 0xFFFFFFEE, 0x0000002D, 0x00000002, 0xFE363C82, 0x000001A4, 0x0000002C, 0x00000002, 0xFE363C80, 0x00000082, 0x0000002C, 0x00000002, 0xFE363C81, 0xFFFFFFEC, 0x0000002C, 0x00000002, 0xFE363C82, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateGroup, 0x0000005D, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, GetNpcYaw, 0x00000000, 0xFE363C80, 0x0000002E, 0x00000002, 0xFE363C80, 0xFFFFFFFF, 0x0000002C, 0x00000002, 0xFE363C80, 0xFFFFFFA6, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000005D, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0x00000064, 0xFFFFFFFF, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0x00000066, 0x00000004, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x0000005E, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000050, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000052, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000058, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateGroup, 0x0000005D, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0xFFFFFF9C, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0xFFFFFF9A, 0xFFFFFFFC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000005D, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000003, GetNpcAnimation, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0xFE363C8B, 0x00000024, 0x00000002, 0xFE363C8B, 0xFE363C80, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000004, ModifyColliderFlags, 0x00000001, 0x00000015, 0x7FFFFE00, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000001, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x0000000B, 0x00000002, 0xFE363C8B, 0x00B60009, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, PlaySound, 0x00000443, 0x00000043, 0x00000002, func_802D62E4, 0x00000043, 0x00000043, 0x00000002, func_80243D78_855EE8, 0xFE363C80, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0x00000000, 0x00000013, 0x00000000, 0x00000013, 0x00000000, 0x00000014, 0x00000001, 0xFE363C8B, 0x00000016, 0x00000001, 0x00B60003, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002037, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80250D58_862EC8, 0x00000016, 0x00000001, 0x00B60000, 0x00000024, 0x00000002, 0xFE363C8D, D_80250A5C_862BCC, 0x00000016, 0x00000001, 0x00B60002, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002036, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80250AD4_862C44, 0x00000016, 0x00000001, 0x00B60001, 0x00000024, 0x00000002, 0xFE363C8D, D_80251654_8637C4, 0x00000016, 0x00000001, 0x00B60004, 0x00000024, 0x00000002, 0xFE363C8D, D_802516CC_86383C, 0x00000016, 0x00000001, 0x00B60005, 0x00000024, 0x00000002, 0xFE363C8D, D_80250FA4_863114, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x00000016, 0x00000001, 0x00B60006, 0x00000024, 0x00000002, 0xFE363C8D, D_80251244_8633B4, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x00000016, 0x00000001, 0x00B60007, 0x00000024, 0x00000002, 0xFE363C8D, D_802513AC_86351C, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x00000016, 0x00000001, 0x00B60008, 0x00000024, 0x00000002, 0xFE363C8D, D_802514EC_86365C, 0x00000016, 0x00000001, 0x00B60009, 0x00000024, 0x00000002, 0xFE363C8D, D_80250FB4_863124, 0x00000016, 0x00000001, 0x00B6000A, 0x00000024, 0x00000002, 0xFE363C8D, D_8025110C_86327C, 0x00000016, 0x00000001, 0x00B6000C, 0x00000024, 0x00000002, 0xFE363C8D, D_8025111C_86328C, 0x00000023, 0x00000000, 0x00000013, 0x00000000, 0x00000046, 0x00000001, 0xFE363C8D, 0x00000027, 0x00000002, 0xFE363C8C, 0x00000001, 0x0000000D, 0x00000002, 0xFE363C8C, 0x000003E8, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000013, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000000, 0x00B60003, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000 +.word 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x00000000, 0x00000008, 0x00000003, 0x00000000, 0x00000000, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C80, 0x0000002A, 0x00000002, 0xFE363C81, 0x00000003, 0x00000043, 0x00000006, RotateModel, 0x00000058, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000043, 0x00000006, RotateGroup, 0x0000005D, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x00000050, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000052, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8C, 0x00000029, 0x00000002, 0xFE363C80, 0x00000002, 0x00000043, 0x00000008, mac_05_UnkFloatFunc001, 0xFE363C80, 0xFE363C80, 0x0000001E, 0x0000003C, 0x00000003, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000001, 0x0000005A, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000001, mac_05_unkAngleFunc002, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000005A, 0x00000001, 0xFFFFFFFF, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000002, 0x0000005B, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000002, mac_05_unkAngleFunc003, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000005B, 0x00000002, 0xFFFFFFFF, 0x00000056, 0x00000000, 0x00000003, 0x00000001, 0x00000000, 0x00000043, 0x00000005, mac_05_UnkAngleFunc001, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000002D, 0x00000002, 0xFE363C80, 0xFFFFFFB0, 0x0000002D, 0x00000002, 0xFE363C81, 0xFFFFFFEE, 0x0000002D, 0x00000002, 0xFE363C82, 0x000001A4, 0x0000002C, 0x00000002, 0xFE363C80, 0x00000082, 0x0000002C, 0x00000002, 0xFE363C81, 0xFFFFFFEC, 0x0000002C, 0x00000002, 0xFE363C82, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateGroup, 0x0000005D, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, GetNpcYaw, 0x00000000, 0xFE363C80, 0x0000002E, 0x00000002, 0xFE363C80, 0xFFFFFFFF, 0x0000002C, 0x00000002, 0xFE363C80, 0xFFFFFFA6, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000005D, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0x00000064, 0xFFFFFFFF, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0x00000066, 0x00000004, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x0000005E, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000050, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000052, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000058, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000056, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000054, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateGroup, 0x0000005D, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0xFFFFFF9C, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0xFFFFFF9A, 0xFFFFFFFC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x0000005E, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000050, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000052, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000058, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000056, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000054, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000005D, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000003, GetNpcAnimation, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0xFE363C8B, 0x00000024, 0x00000002, 0xFE363C8B, 0xFE363C80, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000004, ModifyColliderFlags, 0x00000001, 0x00000015, 0x7FFFFE00, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000001, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x0000000B, 0x00000002, 0xFE363C8B, 0x00B60009, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, PlaySound, 0x00000443, 0x00000043, 0x00000002, func_802D62E4, 0x00000043, 0x00000043, 0x00000002, mac_05_DisposeFX3D, 0xFE363C80, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0x00000000, 0x00000013, 0x00000000, 0x00000013, 0x00000000, 0x00000014, 0x00000001, 0xFE363C8B, 0x00000016, 0x00000001, 0x00B60003, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002037, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80250D58_862EC8, 0x00000016, 0x00000001, 0x00B60000, 0x00000024, 0x00000002, 0xFE363C8D, D_80250A5C_862BCC, 0x00000016, 0x00000001, 0x00B60002, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002036, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80250AD4_862C44, 0x00000016, 0x00000001, 0x00B60001, 0x00000024, 0x00000002, 0xFE363C8D, D_80251654_8637C4, 0x00000016, 0x00000001, 0x00B60004, 0x00000024, 0x00000002, 0xFE363C8D, D_802516CC_86383C, 0x00000016, 0x00000001, 0x00B60005, 0x00000024, 0x00000002, 0xFE363C8D, D_80250FA4_863114, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x00000016, 0x00000001, 0x00B60006, 0x00000024, 0x00000002, 0xFE363C8D, D_80251244_8633B4, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x00000016, 0x00000001, 0x00B60007, 0x00000024, 0x00000002, 0xFE363C8D, D_802513AC_86351C, 0x00000043, 0x00000003, EnableModel, 0x00000050, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000052, 0x00000000, 0x00000016, 0x00000001, 0x00B60008, 0x00000024, 0x00000002, 0xFE363C8D, D_802514EC_86365C, 0x00000016, 0x00000001, 0x00B60009, 0x00000024, 0x00000002, 0xFE363C8D, D_80250FB4_863124, 0x00000016, 0x00000001, 0x00B6000A, 0x00000024, 0x00000002, 0xFE363C8D, D_8025110C_86327C, 0x00000016, 0x00000001, 0x00B6000C, 0x00000024, 0x00000002, 0xFE363C8D, D_8025111C_86328C, 0x00000023, 0x00000000, 0x00000013, 0x00000000, 0x00000046, 0x00000001, 0xFE363C8D, 0x00000027, 0x00000002, 0xFE363C8C, 0x00000001, 0x0000000D, 0x00000002, 0xFE363C8C, 0x000003E8, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000013, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000000, 0x00B60003, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000 diff --git a/ver/us/asm/data/world/area_mac/mac_06/8666A0.data.s b/ver/us/asm/data/world/area_mac/mac_06/8666A0.data.s index 932e679245..ee9a967141 100644 --- a/ver/us/asm/data/world/area_mac/mac_06/8666A0.data.s +++ b/ver/us/asm/data/world/area_mac/mac_06/8666A0.data.s @@ -24,7 +24,7 @@ dlabel D_8024206C_866BAC .word 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_8024207C_866BBC -.word 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x0000000A, 0x00000002, 0xFE363C83, 0x00000000, 0x00000043, 0x00000001, mac_06_UnkPlayerPosFunc, 0x00000043, 0x00000006, PlaySoundAt, 0x8000004F, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000009, mac_06_PlayFX3D, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x0000001E, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x00000013, 0x00000000, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x00000043, 0x00000001, mac_06_UnkPlayerPosFunc, 0x00000043, 0x00000005, func_80240DA4_8658E4, 0xFE363C83, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x0000001E, 0x0000003C, 0x00000019, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x0000000A, 0x00000002, 0xFE363C83, 0x00000000, 0x00000043, 0x00000001, mac_06_UnkPlayerPosFunc, 0x00000043, 0x00000006, PlaySoundAt, 0x8000004F, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000009, mac_06_PlayFX3D, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x0000001E, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x00000013, 0x00000000, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C83, 0x00000043, 0x00000001, mac_06_UnkPlayerPosFunc, 0x00000043, 0x00000005, mac_06_UpdatePosFX3D, 0xFE363C83, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x0000001E, 0x0000003C, 0x00000019, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_802421D4_866D14 .word 0x00000002, 0x00000000, 0x00000001, 0x00000000 @@ -45,4 +45,4 @@ dlabel D_8024271C_86725C .word 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x0000001E, 0x0000003C, 0x0000001E, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_80242794_8672D4 -.word 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x00000000, 0x0000001E, 0x00000003, 0x00000000, 0x00000000, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C80, 0x0000002A, 0x00000002, 0xFE363C81, 0x00000003, 0x00000043, 0x00000006, RotateModel, 0x00000008, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000043, 0x00000006, RotateGroup, 0x0000000D, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x00000000, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000002, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8C, 0x00000029, 0x00000002, 0xFE363C80, 0x00000002, 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C80, 0xFE363C80, 0x0000001E, 0x0000003C, 0x00000003, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000001, 0x0000000A, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000001, mac_06_unkAngleFunc002, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000000A, 0x00000001, 0xFFFFFFFF, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000002, 0x0000000B, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000002, mac_06_unkAngleFunc003, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000000B, 0x00000002, 0xFFFFFFFF, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0x00000000, 0x00000056, 0x00000000, 0x00000003, 0x00000001, 0x00000000, 0x00000043, 0x00000005, mac_06_UnkAngleFunc001, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000002D, 0x00000002, 0xFE363C80, 0xFFFFFFB0, 0x0000002D, 0x00000002, 0xFE363C81, 0xFFFFFFEE, 0x0000002D, 0x00000002, 0xFE363C82, 0x000001A4, 0x0000002C, 0x00000002, 0xFE363C80, 0x00000082, 0x0000002C, 0x00000002, 0xFE363C81, 0xFFFFFFEC, 0x0000002C, 0x00000002, 0xFE363C82, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateGroup, 0x0000000D, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, GetNpcYaw, 0x00000000, 0xFE363C80, 0x0000002E, 0x00000002, 0xFE363C80, 0xFFFFFFFF, 0x0000002C, 0x00000002, 0xFE363C80, 0xFFFFFFA6, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000000D, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0x00000064, 0xFFFFFFFF, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0x00000066, 0x00000004, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x0000000E, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000000, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000002, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000008, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateGroup, 0x0000000D, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0xFFFFFF9C, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0xFFFFFF9A, 0xFFFFFFFC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000000D, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000003, GetNpcAnimation, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0xFE363C8B, 0x00000024, 0x00000002, 0xFE363C8B, 0xFE363C80, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000001, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x0000000B, 0x00000002, 0xFE363C8B, 0x00B60009, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, PlaySound, 0x00000443, 0x00000043, 0x00000002, func_802D62E4, 0x00000043, 0x00000043, 0x00000002, func_80240E48_865988, 0xFE363C80, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0x00000000, 0x00000013, 0x00000000, 0x00000013, 0x00000000, 0x00000014, 0x00000001, 0xFE363C8B, 0x00000016, 0x00000001, 0x00B60003, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002037, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80241E20_866960, 0x00000016, 0x00000001, 0x00B60000, 0x00000024, 0x00000002, 0xFE363C8D, D_80241B6C_8666AC, 0x00000016, 0x00000001, 0x00B60002, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002036, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80241BE4_866724, 0x00000016, 0x00000001, 0x00B60001, 0x00000024, 0x00000002, 0xFE363C8D, D_8024271C_86725C, 0x00000016, 0x00000001, 0x00B60004, 0x00000024, 0x00000002, 0xFE363C8D, D_80242794_8672D4, 0x00000016, 0x00000001, 0x00B60005, 0x00000024, 0x00000002, 0xFE363C8D, D_8024206C_866BAC, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x00000016, 0x00000001, 0x00B60006, 0x00000024, 0x00000002, 0xFE363C8D, D_8024230C_866E4C, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x00000016, 0x00000001, 0x00B60007, 0x00000024, 0x00000002, 0xFE363C8D, D_80242474_866FB4, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x00000016, 0x00000001, 0x00B60008, 0x00000024, 0x00000002, 0xFE363C8D, D_802425B4_8670F4, 0x00000016, 0x00000001, 0x00B60009, 0x00000024, 0x00000002, 0xFE363C8D, D_8024207C_866BBC, 0x00000016, 0x00000001, 0x00B6000A, 0x00000024, 0x00000002, 0xFE363C8D, D_802421D4_866D14, 0x00000016, 0x00000001, 0x00B6000C, 0x00000024, 0x00000002, 0xFE363C8D, D_802421E4_866D24, 0x00000023, 0x00000000, 0x00000013, 0x00000000, 0x00000046, 0x00000001, 0xFE363C8D, 0x00000027, 0x00000002, 0xFE363C8C, 0x00000001, 0x0000000D, 0x00000002, 0xFE363C8C, 0x000003E8, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000013, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000000, 0x00B60003, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +.word 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C8C, 0xFE363C80, 0x00000000, 0x0000001E, 0x00000003, 0x00000000, 0x00000000, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C80, 0x0000002A, 0x00000002, 0xFE363C81, 0x00000003, 0x00000043, 0x00000006, RotateModel, 0x00000008, 0xFE363C80, 0x00000000, 0x00000000, 0x00000001, 0x00000043, 0x00000006, RotateGroup, 0x0000000D, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x00000000, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000002, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C81, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000024, 0x00000002, 0xFE363C80, 0xFE363C8C, 0x00000029, 0x00000002, 0xFE363C80, 0x00000002, 0x00000043, 0x00000008, mac_06_UnkFloatFunc001, 0xFE363C80, 0xFE363C80, 0x0000001E, 0x0000003C, 0x00000003, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000001, 0x00000000, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000001, 0x0000000A, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000001, mac_06_unkAngleFunc002, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000000A, 0x00000001, 0xFFFFFFFF, 0x00000043, 0x00000004, MakeLocalVertexCopy, 0x00000002, 0x0000000B, 0x00000001, 0x00000043, 0x00000004, SetCustomGfxBuilders, 0x00000002, mac_06_unkAngleFunc003, 0x00000000, 0x00000043, 0x00000004, SetModelCustomGfx, 0x0000000B, 0x00000002, 0xFFFFFFFF, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0x00000000, 0x00000056, 0x00000000, 0x00000003, 0x00000001, 0x00000000, 0x00000043, 0x00000005, mac_06_UnkAngleFunc001, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000002D, 0x00000002, 0xFE363C80, 0xFFFFFFB0, 0x0000002D, 0x00000002, 0xFE363C81, 0xFFFFFFEE, 0x0000002D, 0x00000002, 0xFE363C82, 0x000001A4, 0x0000002C, 0x00000002, 0xFE363C80, 0x00000082, 0x0000002C, 0x00000002, 0xFE363C81, 0xFFFFFFEC, 0x0000002C, 0x00000002, 0xFE363C82, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, TranslateGroup, 0x0000000D, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, GetNpcYaw, 0x00000000, 0xFE363C80, 0x0000002E, 0x00000002, 0xFE363C80, 0xFFFFFFFF, 0x0000002C, 0x00000002, 0xFE363C80, 0xFFFFFFA6, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000000D, 0xFFFFFF9C, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0x00000064, 0xFFFFFFFF, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0xFFFFFFFB, 0xFFFFFFBC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0x00000066, 0x00000004, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0x0000003C, 0x0000001D, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0x0000003C, 0x0000001D, 0x00000033, 0x00000043, 0x00000006, RotateModel, 0x0000000E, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000000, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000002, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000008, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000006, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateModel, 0x00000004, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000006, RotateGroup, 0x0000000D, 0xFE363C80, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0xFFFFFF9C, 0x00000001, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0x00000005, 0x00000044, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0xFFFFFF9A, 0xFFFFFFFC, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0xFFFFFFC4, 0xFFFFFFE3, 0x00000033, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0xFFFFFFC4, 0xFFFFFFE3, 0xFFFFFFCD, 0x00000043, 0x00000005, TranslateModel, 0x0000000E, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000002, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000008, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000006, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateModel, 0x00000004, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000000D, 0x00000064, 0x00000000, 0x00000000, 0x00000043, 0x00000003, GetNpcAnimation, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0xFE363C8B, 0x00000024, 0x00000002, 0xFE363C8B, 0xFE363C80, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000001, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x0000000B, 0x00000002, 0xFE363C8B, 0x00B60009, 0x00000043, 0x00000004, GetNpcVar, 0x00000000, 0x00000000, 0xFE363C80, 0x0000000B, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, PlaySound, 0x00000443, 0x00000043, 0x00000002, func_802D62E4, 0x00000043, 0x00000043, 0x00000002, mac_06_DisposeFX3D, 0xFE363C80, 0x00000043, 0x00000004, SetNpcVar, 0x00000000, 0x00000000, 0x00000000, 0x00000013, 0x00000000, 0x00000013, 0x00000000, 0x00000014, 0x00000001, 0xFE363C8B, 0x00000016, 0x00000001, 0x00B60003, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002037, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80241E20_866960, 0x00000016, 0x00000001, 0x00B60000, 0x00000024, 0x00000002, 0xFE363C8D, D_80241B6C_8666AC, 0x00000016, 0x00000001, 0x00B60002, 0x00000043, 0x00000004, PlaySoundAtNpc, 0x00000000, 0x00002036, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8D, D_80241BE4_866724, 0x00000016, 0x00000001, 0x00B60001, 0x00000024, 0x00000002, 0xFE363C8D, D_8024271C_86725C, 0x00000016, 0x00000001, 0x00B60004, 0x00000024, 0x00000002, 0xFE363C8D, D_80242794_8672D4, 0x00000016, 0x00000001, 0x00B60005, 0x00000024, 0x00000002, 0xFE363C8D, D_8024206C_866BAC, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x00000016, 0x00000001, 0x00B60006, 0x00000024, 0x00000002, 0xFE363C8D, D_8024230C_866E4C, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x00000016, 0x00000001, 0x00B60007, 0x00000024, 0x00000002, 0xFE363C8D, D_80242474_866FB4, 0x00000043, 0x00000003, EnableModel, 0x00000000, 0x00000000, 0x00000043, 0x00000003, EnableModel, 0x00000002, 0x00000000, 0x00000016, 0x00000001, 0x00B60008, 0x00000024, 0x00000002, 0xFE363C8D, D_802425B4_8670F4, 0x00000016, 0x00000001, 0x00B60009, 0x00000024, 0x00000002, 0xFE363C8D, D_8024207C_866BBC, 0x00000016, 0x00000001, 0x00B6000A, 0x00000024, 0x00000002, 0xFE363C8D, D_802421D4_866D14, 0x00000016, 0x00000001, 0x00B6000C, 0x00000024, 0x00000002, 0xFE363C8D, D_802421E4_866D24, 0x00000023, 0x00000000, 0x00000013, 0x00000000, 0x00000046, 0x00000001, 0xFE363C8D, 0x00000027, 0x00000002, 0xFE363C8C, 0x00000001, 0x0000000D, 0x00000002, 0xFE363C8C, 0x000003E8, 0x00000024, 0x00000002, 0xFE363C8C, 0x00000000, 0x00000013, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0x00000000, 0x00B60003, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_00/DF9300/func_80242A30_DF9430.s b/ver/us/asm/nonmatchings/world/area_end/end_00/DF9300/func_80242A30_DF9430.s deleted file mode 100644 index ef06101c23..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_00/DF9300/func_80242A30_DF9430.s +++ /dev/null @@ -1,45 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80242A30_DF9430 -/* DF9430 80242A30 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* DF9434 80242A34 AFB10014 */ sw $s1, 0x14($sp) -/* DF9438 80242A38 0080882D */ daddu $s1, $a0, $zero -/* DF943C 80242A3C AFBF001C */ sw $ra, 0x1c($sp) -/* DF9440 80242A40 AFB20018 */ sw $s2, 0x18($sp) -/* DF9444 80242A44 AFB00010 */ sw $s0, 0x10($sp) -/* DF9448 80242A48 F7B60028 */ sdc1 $f22, 0x28($sp) -/* DF944C 80242A4C F7B40020 */ sdc1 $f20, 0x20($sp) -/* DF9450 80242A50 8E30000C */ lw $s0, 0xc($s1) -/* DF9454 80242A54 8E050000 */ lw $a1, ($s0) -/* DF9458 80242A58 0C0B1EAF */ jal evt_get_variable -/* DF945C 80242A5C 26100004 */ addiu $s0, $s0, 4 -/* DF9460 80242A60 8E050000 */ lw $a1, ($s0) -/* DF9464 80242A64 26100004 */ addiu $s0, $s0, 4 -/* DF9468 80242A68 0220202D */ daddu $a0, $s1, $zero -/* DF946C 80242A6C 0C0B210B */ jal evt_get_float_variable -/* DF9470 80242A70 0040902D */ daddu $s2, $v0, $zero -/* DF9474 80242A74 8E050000 */ lw $a1, ($s0) -/* DF9478 80242A78 26100004 */ addiu $s0, $s0, 4 -/* DF947C 80242A7C 0220202D */ daddu $a0, $s1, $zero -/* DF9480 80242A80 0C0B210B */ jal evt_get_float_variable -/* DF9484 80242A84 46000586 */ mov.s $f22, $f0 -/* DF9488 80242A88 0220202D */ daddu $a0, $s1, $zero -/* DF948C 80242A8C 8E050000 */ lw $a1, ($s0) -/* DF9490 80242A90 0C0B210B */ jal evt_get_float_variable -/* DF9494 80242A94 46000506 */ mov.s $f20, $f0 -/* DF9498 80242A98 8E42000C */ lw $v0, 0xc($s2) -/* DF949C 80242A9C E4560008 */ swc1 $f22, 8($v0) -/* DF94A0 80242AA0 8E42000C */ lw $v0, 0xc($s2) -/* DF94A4 80242AA4 E454000C */ swc1 $f20, 0xc($v0) -/* DF94A8 80242AA8 8E43000C */ lw $v1, 0xc($s2) -/* DF94AC 80242AAC E4600010 */ swc1 $f0, 0x10($v1) -/* DF94B0 80242AB0 8FBF001C */ lw $ra, 0x1c($sp) -/* DF94B4 80242AB4 8FB20018 */ lw $s2, 0x18($sp) -/* DF94B8 80242AB8 8FB10014 */ lw $s1, 0x14($sp) -/* DF94BC 80242ABC 8FB00010 */ lw $s0, 0x10($sp) -/* DF94C0 80242AC0 D7B60028 */ ldc1 $f22, 0x28($sp) -/* DF94C4 80242AC4 D7B40020 */ ldc1 $f20, 0x20($sp) -/* DF94C8 80242AC8 24020002 */ addiu $v0, $zero, 2 -/* DF94CC 80242ACC 03E00008 */ jr $ra -/* DF94D0 80242AD0 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_802428C0_E07C20.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_802428C0_E07C20.s deleted file mode 100644 index 954b3db869..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_802428C0_E07C20.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802428C0_E07C20 -/* E07C20 802428C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* E07C24 802428C4 2404005B */ addiu $a0, $zero, 0x5b -/* E07C28 802428C8 2405FFFF */ addiu $a1, $zero, -1 -/* E07C2C 802428CC 24060001 */ addiu $a2, $zero, 1 -/* E07C30 802428D0 AFBF0010 */ sw $ra, 0x10($sp) -/* E07C34 802428D4 0C046E54 */ jal func_8011B950 -/* E07C38 802428D8 0000382D */ daddu $a3, $zero, $zero -/* E07C3C 802428DC 0000202D */ daddu $a0, $zero, $zero -/* E07C40 802428E0 0080282D */ daddu $a1, $a0, $zero -/* E07C44 802428E4 0080302D */ daddu $a2, $a0, $zero -/* E07C48 802428E8 0C046F97 */ jal set_background_color_blend -/* E07C4C 802428EC 240700FF */ addiu $a3, $zero, 0xff -/* E07C50 802428F0 8FBF0010 */ lw $ra, 0x10($sp) -/* E07C54 802428F4 24020002 */ addiu $v0, $zero, 2 -/* E07C58 802428F8 03E00008 */ jr $ra -/* E07C5C 802428FC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242900_E07C60.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242900_E07C60.s deleted file mode 100644 index f658cae9bb..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242900_E07C60.s +++ /dev/null @@ -1,37 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80242900_E07C60 -/* E07C60 80242900 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* E07C64 80242904 AFB00010 */ sw $s0, 0x10($sp) -/* E07C68 80242908 0080802D */ daddu $s0, $a0, $zero -/* E07C6C 8024290C 10A00003 */ beqz $a1, .L8024291C -/* E07C70 80242910 AFBF0014 */ sw $ra, 0x14($sp) -/* E07C74 80242914 240200FF */ addiu $v0, $zero, 0xff -/* E07C78 80242918 AE020074 */ sw $v0, 0x74($s0) -.L8024291C: -/* E07C7C 8024291C 8E020074 */ lw $v0, 0x74($s0) -/* E07C80 80242920 2442FFF6 */ addiu $v0, $v0, -0xa -/* E07C84 80242924 04410002 */ bgez $v0, .L80242930 -/* E07C88 80242928 AE020074 */ sw $v0, 0x74($s0) -/* E07C8C 8024292C AE000074 */ sw $zero, 0x74($s0) -.L80242930: -/* E07C90 80242930 0000202D */ daddu $a0, $zero, $zero -/* E07C94 80242934 0080282D */ daddu $a1, $a0, $zero -/* E07C98 80242938 92070077 */ lbu $a3, 0x77($s0) -/* E07C9C 8024293C 0C046F97 */ jal set_background_color_blend -/* E07CA0 80242940 0080302D */ daddu $a2, $a0, $zero -/* E07CA4 80242944 8E020074 */ lw $v0, 0x74($s0) -/* E07CA8 80242948 14400007 */ bnez $v0, .L80242968 -/* E07CAC 8024294C 0000102D */ daddu $v0, $zero, $zero -/* E07CB0 80242950 2404005B */ addiu $a0, $zero, 0x5b -/* E07CB4 80242954 2405FFFF */ addiu $a1, $zero, -1 -/* E07CB8 80242958 0000302D */ daddu $a2, $zero, $zero -/* E07CBC 8024295C 0C046E54 */ jal func_8011B950 -/* E07CC0 80242960 00C0382D */ daddu $a3, $a2, $zero -/* E07CC4 80242964 24020002 */ addiu $v0, $zero, 2 -.L80242968: -/* E07CC8 80242968 8FBF0014 */ lw $ra, 0x14($sp) -/* E07CCC 8024296C 8FB00010 */ lw $s0, 0x10($sp) -/* E07CD0 80242970 03E00008 */ jr $ra -/* E07CD4 80242974 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242978_E07CD8.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242978_E07CD8.s deleted file mode 100644 index 3be3de1673..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242978_E07CD8.s +++ /dev/null @@ -1,67 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80242978_E07CD8 -/* E07CD8 80242978 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* E07CDC 8024297C AFB20020 */ sw $s2, 0x20($sp) -/* E07CE0 80242980 AFBF0024 */ sw $ra, 0x24($sp) -/* E07CE4 80242984 AFB1001C */ sw $s1, 0x1c($sp) -/* E07CE8 80242988 AFB00018 */ sw $s0, 0x18($sp) -/* E07CEC 8024298C F7B40028 */ sdc1 $f20, 0x28($sp) -/* E07CF0 80242990 10A00006 */ beqz $a1, .L802429AC -/* E07CF4 80242994 0080902D */ daddu $s2, $a0, $zero -/* E07CF8 80242998 8E4400AC */ lw $a0, 0xac($s2) -/* E07CFC 8024299C 0C00EAD2 */ jal get_npc_safe -/* E07D00 802429A0 00000000 */ nop -/* E07D04 802429A4 AE420078 */ sw $v0, 0x78($s2) -/* E07D08 802429A8 AE400070 */ sw $zero, 0x70($s2) -.L802429AC: -/* E07D0C 802429AC 3C05444A */ lui $a1, 0x444a -/* E07D10 802429B0 34A58000 */ ori $a1, $a1, 0x8000 -/* E07D14 802429B4 8E510078 */ lw $s1, 0x78($s2) -/* E07D18 802429B8 4480A000 */ mtc1 $zero, $f20 -/* E07D1C 802429BC 2410002D */ addiu $s0, $zero, 0x2d -/* E07D20 802429C0 AFB00010 */ sw $s0, 0x10($sp) -/* E07D24 802429C4 8E470070 */ lw $a3, 0x70($s2) -/* E07D28 802429C8 4406A000 */ mfc1 $a2, $f20 -/* E07D2C 802429CC 0C00A8ED */ jal update_lerp -/* E07D30 802429D0 24040004 */ addiu $a0, $zero, 4 -/* E07D34 802429D4 4405A000 */ mfc1 $a1, $f20 -/* E07D38 802429D8 3C06437F */ lui $a2, 0x437f -/* E07D3C 802429DC E6200048 */ swc1 $f0, 0x48($s1) -/* E07D40 802429E0 AFB00010 */ sw $s0, 0x10($sp) -/* E07D44 802429E4 8E470070 */ lw $a3, 0x70($s2) -/* E07D48 802429E8 0C00A8ED */ jal update_lerp -/* E07D4C 802429EC 24040004 */ addiu $a0, $zero, 4 -/* E07D50 802429F0 3C014F00 */ lui $at, 0x4f00 -/* E07D54 802429F4 44811000 */ mtc1 $at, $f2 -/* E07D58 802429F8 00000000 */ nop -/* E07D5C 802429FC 4600103E */ c.le.s $f2, $f0 -/* E07D60 80242A00 00000000 */ nop -/* E07D64 80242A04 45010005 */ bc1t .L80242A1C -/* E07D68 80242A08 263100AC */ addiu $s1, $s1, 0xac -/* E07D6C 80242A0C 4600010D */ trunc.w.s $f4, $f0 -/* E07D70 80242A10 44032000 */ mfc1 $v1, $f4 -/* E07D74 80242A14 08090A8E */ j .L80242A38 -/* E07D78 80242A18 A2230000 */ sb $v1, ($s1) -.L80242A1C: -/* E07D7C 80242A1C 46020001 */ sub.s $f0, $f0, $f2 -/* E07D80 80242A20 3C028000 */ lui $v0, 0x8000 -/* E07D84 80242A24 4600010D */ trunc.w.s $f4, $f0 -/* E07D88 80242A28 44032000 */ mfc1 $v1, $f4 -/* E07D8C 80242A2C 00000000 */ nop -/* E07D90 80242A30 00621825 */ or $v1, $v1, $v0 -/* E07D94 80242A34 A2230000 */ sb $v1, ($s1) -.L80242A38: -/* E07D98 80242A38 8E430070 */ lw $v1, 0x70($s2) -/* E07D9C 80242A3C 24630001 */ addiu $v1, $v1, 1 -/* E07DA0 80242A40 2862002E */ slti $v0, $v1, 0x2e -/* E07DA4 80242A44 AE430070 */ sw $v1, 0x70($s2) -/* E07DA8 80242A48 8FBF0024 */ lw $ra, 0x24($sp) -/* E07DAC 80242A4C 8FB20020 */ lw $s2, 0x20($sp) -/* E07DB0 80242A50 8FB1001C */ lw $s1, 0x1c($sp) -/* E07DB4 80242A54 8FB00018 */ lw $s0, 0x18($sp) -/* E07DB8 80242A58 D7B40028 */ ldc1 $f20, 0x28($sp) -/* E07DBC 80242A5C 38420001 */ xori $v0, $v0, 1 -/* E07DC0 80242A60 03E00008 */ jr $ra -/* E07DC4 80242A64 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242A68_E07DC8.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242A68_E07DC8.s deleted file mode 100644 index 73ab2622f1..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242A68_E07DC8.s +++ /dev/null @@ -1,69 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80242A68_E07DC8 -/* E07DC8 80242A68 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* E07DCC 80242A6C AFB10014 */ sw $s1, 0x14($sp) -/* E07DD0 80242A70 0080882D */ daddu $s1, $a0, $zero -/* E07DD4 80242A74 AFBF0018 */ sw $ra, 0x18($sp) -/* E07DD8 80242A78 AFB00010 */ sw $s0, 0x10($sp) -/* E07DDC 80242A7C 8E22000C */ lw $v0, 0xc($s1) -/* E07DE0 80242A80 00A0802D */ daddu $s0, $a1, $zero -/* E07DE4 80242A84 0C0B1EAF */ jal evt_get_variable -/* E07DE8 80242A88 8C450000 */ lw $a1, ($v0) -/* E07DEC 80242A8C 1200000C */ beqz $s0, .L80242AC0 -/* E07DF0 80242A90 0220202D */ daddu $a0, $s1, $zero -/* E07DF4 80242A94 0C0B36B0 */ jal resolve_npc -/* E07DF8 80242A98 0040282D */ daddu $a1, $v0, $zero -/* E07DFC 80242A9C AE220074 */ sw $v0, 0x74($s1) -/* E07E00 80242AA0 C4420038 */ lwc1 $f2, 0x38($v0) -/* E07E04 80242AA4 3C014334 */ lui $at, 0x4334 -/* E07E08 80242AA8 44810000 */ mtc1 $at, $f0 -/* E07E0C 80242AAC 24020048 */ addiu $v0, $zero, 0x48 -/* E07E10 80242AB0 AE220070 */ sw $v0, 0x70($s1) -/* E07E14 80242AB4 4600110D */ trunc.w.s $f4, $f2 -/* E07E18 80242AB8 E6240078 */ swc1 $f4, 0x78($s1) -/* E07E1C 80242ABC E620007C */ swc1 $f0, 0x7c($s1) -.L80242AC0: -/* E07E20 80242AC0 C620007C */ lwc1 $f0, 0x7c($s1) -/* E07E24 80242AC4 3C0140A0 */ lui $at, 0x40a0 -/* E07E28 80242AC8 44816000 */ mtc1 $at, $f12 -/* E07E2C 80242ACC 8E300074 */ lw $s0, 0x74($s1) -/* E07E30 80242AD0 0C00A6C9 */ jal clamp_angle -/* E07E34 80242AD4 460C0301 */ sub.s $f12, $f0, $f12 -/* E07E38 80242AD8 46000306 */ mov.s $f12, $f0 -/* E07E3C 80242ADC 0C00A8D4 */ jal cos_deg -/* E07E40 80242AE0 E62C007C */ swc1 $f12, 0x7c($s1) -/* E07E44 80242AE4 3C0140C0 */ lui $at, 0x40c0 -/* E07E48 80242AE8 44811000 */ mtc1 $at, $f2 -/* E07E4C 80242AEC 00000000 */ nop -/* E07E50 80242AF0 46020002 */ mul.s $f0, $f0, $f2 -/* E07E54 80242AF4 00000000 */ nop -/* E07E58 80242AF8 C6020038 */ lwc1 $f2, 0x38($s0) -/* E07E5C 80242AFC 46001080 */ add.s $f2, $f2, $f0 -/* E07E60 80242B00 E6020038 */ swc1 $f2, 0x38($s0) -/* E07E64 80242B04 0C00A8BB */ jal sin_deg -/* E07E68 80242B08 C62C007C */ lwc1 $f12, 0x7c($s1) -/* E07E6C 80242B0C 3C014020 */ lui $at, 0x4020 -/* E07E70 80242B10 44811000 */ mtc1 $at, $f2 -/* E07E74 80242B14 00000000 */ nop -/* E07E78 80242B18 46020002 */ mul.s $f0, $f0, $f2 -/* E07E7C 80242B1C 00000000 */ nop -/* E07E80 80242B20 C6020040 */ lwc1 $f2, 0x40($s0) -/* E07E84 80242B24 46001080 */ add.s $f2, $f2, $f0 -/* E07E88 80242B28 3C014334 */ lui $at, 0x4334 -/* E07E8C 80242B2C 44816000 */ mtc1 $at, $f12 -/* E07E90 80242B30 E6020040 */ swc1 $f2, 0x40($s0) -/* E07E94 80242B34 C620007C */ lwc1 $f0, 0x7c($s1) -/* E07E98 80242B38 0C00A6C9 */ jal clamp_angle -/* E07E9C 80242B3C 46006301 */ sub.s $f12, $f12, $f0 -/* E07EA0 80242B40 E6000034 */ swc1 $f0, 0x34($s0) -/* E07EA4 80242B44 8E230070 */ lw $v1, 0x70($s1) -/* E07EA8 80242B48 2463FFFF */ addiu $v1, $v1, -1 -/* E07EAC 80242B4C AE230070 */ sw $v1, 0x70($s1) -/* E07EB0 80242B50 8FBF0018 */ lw $ra, 0x18($sp) -/* E07EB4 80242B54 8FB10014 */ lw $s1, 0x14($sp) -/* E07EB8 80242B58 8FB00010 */ lw $s0, 0x10($sp) -/* E07EBC 80242B5C 2C620001 */ sltiu $v0, $v1, 1 -/* E07EC0 80242B60 03E00008 */ jr $ra -/* E07EC4 80242B64 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242B68_E07EC8.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242B68_E07EC8.s deleted file mode 100644 index 992decb49d..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242B68_E07EC8.s +++ /dev/null @@ -1,69 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80242B68_E07EC8 -/* E07EC8 80242B68 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* E07ECC 80242B6C AFB10014 */ sw $s1, 0x14($sp) -/* E07ED0 80242B70 0080882D */ daddu $s1, $a0, $zero -/* E07ED4 80242B74 AFBF0018 */ sw $ra, 0x18($sp) -/* E07ED8 80242B78 AFB00010 */ sw $s0, 0x10($sp) -/* E07EDC 80242B7C 8E22000C */ lw $v0, 0xc($s1) -/* E07EE0 80242B80 00A0802D */ daddu $s0, $a1, $zero -/* E07EE4 80242B84 0C0B1EAF */ jal evt_get_variable -/* E07EE8 80242B88 8C450000 */ lw $a1, ($v0) -/* E07EEC 80242B8C 1200000C */ beqz $s0, .L80242BC0 -/* E07EF0 80242B90 0220202D */ daddu $a0, $s1, $zero -/* E07EF4 80242B94 0C0B36B0 */ jal resolve_npc -/* E07EF8 80242B98 0040282D */ daddu $a1, $v0, $zero -/* E07EFC 80242B9C AE220074 */ sw $v0, 0x74($s1) -/* E07F00 80242BA0 C4420038 */ lwc1 $f2, 0x38($v0) -/* E07F04 80242BA4 3C014334 */ lui $at, 0x4334 -/* E07F08 80242BA8 44810000 */ mtc1 $at, $f0 -/* E07F0C 80242BAC 24020048 */ addiu $v0, $zero, 0x48 -/* E07F10 80242BB0 AE220070 */ sw $v0, 0x70($s1) -/* E07F14 80242BB4 4600110D */ trunc.w.s $f4, $f2 -/* E07F18 80242BB8 E6240078 */ swc1 $f4, 0x78($s1) -/* E07F1C 80242BBC E620007C */ swc1 $f0, 0x7c($s1) -.L80242BC0: -/* E07F20 80242BC0 C620007C */ lwc1 $f0, 0x7c($s1) -/* E07F24 80242BC4 3C0140A0 */ lui $at, 0x40a0 -/* E07F28 80242BC8 44816000 */ mtc1 $at, $f12 -/* E07F2C 80242BCC 8E300074 */ lw $s0, 0x74($s1) -/* E07F30 80242BD0 0C00A6C9 */ jal clamp_angle -/* E07F34 80242BD4 460C0300 */ add.s $f12, $f0, $f12 -/* E07F38 80242BD8 46000306 */ mov.s $f12, $f0 -/* E07F3C 80242BDC 0C00A8D4 */ jal cos_deg -/* E07F40 80242BE0 E62C007C */ swc1 $f12, 0x7c($s1) -/* E07F44 80242BE4 3C0140C0 */ lui $at, 0x40c0 -/* E07F48 80242BE8 44811000 */ mtc1 $at, $f2 -/* E07F4C 80242BEC 00000000 */ nop -/* E07F50 80242BF0 46020002 */ mul.s $f0, $f0, $f2 -/* E07F54 80242BF4 00000000 */ nop -/* E07F58 80242BF8 C6020038 */ lwc1 $f2, 0x38($s0) -/* E07F5C 80242BFC 46001080 */ add.s $f2, $f2, $f0 -/* E07F60 80242C00 E6020038 */ swc1 $f2, 0x38($s0) -/* E07F64 80242C04 0C00A8BB */ jal sin_deg -/* E07F68 80242C08 C62C007C */ lwc1 $f12, 0x7c($s1) -/* E07F6C 80242C0C 3C014020 */ lui $at, 0x4020 -/* E07F70 80242C10 44811000 */ mtc1 $at, $f2 -/* E07F74 80242C14 00000000 */ nop -/* E07F78 80242C18 46020002 */ mul.s $f0, $f0, $f2 -/* E07F7C 80242C1C 00000000 */ nop -/* E07F80 80242C20 C6020040 */ lwc1 $f2, 0x40($s0) -/* E07F84 80242C24 46001080 */ add.s $f2, $f2, $f0 -/* E07F88 80242C28 3C014334 */ lui $at, 0x4334 -/* E07F8C 80242C2C 44816000 */ mtc1 $at, $f12 -/* E07F90 80242C30 E6020040 */ swc1 $f2, 0x40($s0) -/* E07F94 80242C34 C620007C */ lwc1 $f0, 0x7c($s1) -/* E07F98 80242C38 0C00A6C9 */ jal clamp_angle -/* E07F9C 80242C3C 46006301 */ sub.s $f12, $f12, $f0 -/* E07FA0 80242C40 E6000034 */ swc1 $f0, 0x34($s0) -/* E07FA4 80242C44 8E230070 */ lw $v1, 0x70($s1) -/* E07FA8 80242C48 2463FFFF */ addiu $v1, $v1, -1 -/* E07FAC 80242C4C AE230070 */ sw $v1, 0x70($s1) -/* E07FB0 80242C50 8FBF0018 */ lw $ra, 0x18($sp) -/* E07FB4 80242C54 8FB10014 */ lw $s1, 0x14($sp) -/* E07FB8 80242C58 8FB00010 */ lw $s0, 0x10($sp) -/* E07FBC 80242C5C 2C620001 */ sltiu $v0, $v1, 1 -/* E07FC0 80242C60 03E00008 */ jr $ra -/* E07FC4 80242C64 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242C68_E07FC8.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242C68_E07FC8.s deleted file mode 100644 index c1681938ae..0000000000 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E07C20/func_80242C68_E07FC8.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80242C68_E07FC8 -/* E07FC8 80242C68 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* E07FCC 80242C6C AFBF0010 */ sw $ra, 0x10($sp) -/* E07FD0 80242C70 8C82000C */ lw $v0, 0xc($a0) -/* E07FD4 80242C74 0C0B1EAF */ jal evt_get_variable -/* E07FD8 80242C78 8C450000 */ lw $a1, ($v0) -/* E07FDC 80242C7C 8FBF0010 */ lw $ra, 0x10($sp) -/* E07FE0 80242C80 3C018024 */ lui $at, %hi(D_80245D34_E0B094) -/* E07FE4 80242C84 AC225D34 */ sw $v0, %lo(D_80245D34_E0B094)($at) -/* E07FE8 80242C88 24020002 */ addiu $v0, $zero, 2 -/* E07FEC 80242C8C 03E00008 */ jr $ra -/* E07FF0 80242C90 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_02/978750/func_80240040_978750.s b/ver/us/asm/nonmatchings/world/area_isk/isk_02/978750/func_80240040_978750.s deleted file mode 100644 index 51ccd05c65..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_02/978750/func_80240040_978750.s +++ /dev/null @@ -1,50 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240040_978750 -/* 978750 80240040 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 978754 80240044 AFB10014 */ sw $s1, 0x14($sp) -/* 978758 80240048 0080882D */ daddu $s1, $a0, $zero -/* 97875C 8024004C AFBF0018 */ sw $ra, 0x18($sp) -/* 978760 80240050 AFB00010 */ sw $s0, 0x10($sp) -/* 978764 80240054 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 978768 80240058 8E30000C */ lw $s0, 0xc($s1) -/* 97876C 8024005C 8E050000 */ lw $a1, ($s0) -/* 978770 80240060 0C0B1EAF */ jal evt_get_variable -/* 978774 80240064 26100004 */ addiu $s0, $s0, 4 -/* 978778 80240068 8E050000 */ lw $a1, ($s0) -/* 97877C 8024006C 4482A000 */ mtc1 $v0, $f20 -/* 978780 80240070 00000000 */ nop -/* 978784 80240074 4680A520 */ cvt.s.w $f20, $f20 -/* 978788 80240078 0C0B1EAF */ jal evt_get_variable -/* 97878C 8024007C 0220202D */ daddu $a0, $s1, $zero -/* 978790 80240080 3C038011 */ lui $v1, %hi(gPlayerStatus) -/* 978794 80240084 2463EFC8 */ addiu $v1, $v1, %lo(gPlayerStatus) -/* 978798 80240088 8C660028 */ lw $a2, 0x28($v1) -/* 97879C 8024008C 8C670030 */ lw $a3, 0x30($v1) -/* 9787A0 80240090 44827000 */ mtc1 $v0, $f14 -/* 9787A4 80240094 00000000 */ nop -/* 9787A8 80240098 468073A0 */ cvt.s.w $f14, $f14 -/* 9787AC 8024009C 0C00A7B5 */ jal dist2D -/* 9787B0 802400A0 4600A306 */ mov.s $f12, $f20 -/* 9787B4 802400A4 3C01437A */ lui $at, 0x437a -/* 9787B8 802400A8 44811000 */ mtc1 $at, $f2 -/* 9787BC 802400AC 00000000 */ nop -/* 9787C0 802400B0 4600103C */ c.lt.s $f2, $f0 -/* 9787C4 802400B4 00000000 */ nop -/* 9787C8 802400B8 45000003 */ bc1f .L802400C8 -/* 9787CC 802400BC 24020001 */ addiu $v0, $zero, 1 -/* 9787D0 802400C0 08090033 */ j .L802400CC -/* 9787D4 802400C4 AE200084 */ sw $zero, 0x84($s1) -.L802400C8: -/* 9787D8 802400C8 AE220084 */ sw $v0, 0x84($s1) -.L802400CC: -/* 9787DC 802400CC 8FBF0018 */ lw $ra, 0x18($sp) -/* 9787E0 802400D0 8FB10014 */ lw $s1, 0x14($sp) -/* 9787E4 802400D4 8FB00010 */ lw $s0, 0x10($sp) -/* 9787E8 802400D8 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 9787EC 802400DC 24020002 */ addiu $v0, $zero, 2 -/* 9787F0 802400E0 03E00008 */ jr $ra -/* 9787F4 802400E4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 9787F8 802400E8 00000000 */ nop -/* 9787FC 802400EC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_05/97DAD0/func_80241B28_97F5F8.s b/ver/us/asm/nonmatchings/world/area_isk/isk_05/97DAD0/func_80241B28_97F5F8.s deleted file mode 100644 index cc017e1b5f..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_05/97DAD0/func_80241B28_97F5F8.s +++ /dev/null @@ -1,78 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_80242F38_980A08 -.double 0.7142857142857143 - -.section .text - -glabel func_80241B28_97F5F8 -/* 97F5F8 80241B28 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 97F5FC 80241B2C AFBF0028 */ sw $ra, 0x28($sp) -/* 97F600 80241B30 AFB10024 */ sw $s1, 0x24($sp) -/* 97F604 80241B34 AFB00020 */ sw $s0, 0x20($sp) -/* 97F608 80241B38 8C820148 */ lw $v0, 0x148($a0) -/* 97F60C 80241B3C 0C00EABB */ jal get_npc_unsafe -/* 97F610 80241B40 84440008 */ lh $a0, 8($v0) -/* 97F614 80241B44 27A40010 */ addiu $a0, $sp, 0x10 -/* 97F618 80241B48 24050035 */ addiu $a1, $zero, 0x35 -/* 97F61C 80241B4C 3C108024 */ lui $s0, %hi(D_80242614_9800E4) -/* 97F620 80241B50 26102614 */ addiu $s0, $s0, %lo(D_80242614_9800E4) -/* 97F624 80241B54 00A0182D */ daddu $v1, $a1, $zero -/* 97F628 80241B58 0040882D */ daddu $s1, $v0, $zero -/* 97F62C 80241B5C 0000302D */ daddu $a2, $zero, $zero -/* 97F630 80241B60 AE030008 */ sw $v1, 8($s0) -/* 97F634 80241B64 0C0B7A76 */ jal spr_get_npc_raster_info -/* 97F638 80241B68 AE00000C */ sw $zero, 0xc($s0) -/* 97F63C 80241B6C C7A6001C */ lwc1 $f6, 0x1c($sp) -/* 97F640 80241B70 468031A0 */ cvt.s.w $f6, $f6 -/* 97F644 80241B74 3C018024 */ lui $at, %hi(D_80242F38_980A08) -/* 97F648 80241B78 D4202F38 */ ldc1 $f0, %lo(D_80242F38_980A08)($at) -/* 97F64C 80241B7C 460030A1 */ cvt.d.s $f2, $f6 -/* 97F650 80241B80 46201082 */ mul.d $f2, $f2, $f0 -/* 97F654 80241B84 00000000 */ nop -/* 97F658 80241B88 3C013FE0 */ lui $at, 0x3fe0 -/* 97F65C 80241B8C 44812800 */ mtc1 $at, $f5 -/* 97F660 80241B90 44802000 */ mtc1 $zero, $f4 -/* 97F664 80241B94 C7A00018 */ lwc1 $f0, 0x18($sp) -/* 97F668 80241B98 46800020 */ cvt.s.w $f0, $f0 -/* 97F66C 80241B9C E600003C */ swc1 $f0, 0x3c($s0) -/* 97F670 80241BA0 46241082 */ mul.d $f2, $f2, $f4 -/* 97F674 80241BA4 00000000 */ nop -/* 97F678 80241BA8 E6060040 */ swc1 $f6, 0x40($s0) -/* 97F67C 80241BAC C6200038 */ lwc1 $f0, 0x38($s1) -/* 97F680 80241BB0 E6000010 */ swc1 $f0, 0x10($s0) -/* 97F684 80241BB4 C620003C */ lwc1 $f0, 0x3c($s1) -/* 97F688 80241BB8 46000021 */ cvt.d.s $f0, $f0 -/* 97F68C 80241BBC 46220000 */ add.d $f0, $f0, $f2 -/* 97F690 80241BC0 0000202D */ daddu $a0, $zero, $zero -/* 97F694 80241BC4 3C0142AA */ lui $at, 0x42aa -/* 97F698 80241BC8 44811000 */ mtc1 $at, $f2 -/* 97F69C 80241BCC 46200020 */ cvt.s.d $f0, $f0 -/* 97F6A0 80241BD0 E6000014 */ swc1 $f0, 0x14($s0) -/* 97F6A4 80241BD4 C6240040 */ lwc1 $f4, 0x40($s1) -/* 97F6A8 80241BD8 3C013F36 */ lui $at, 0x3f36 -/* 97F6AC 80241BDC 3421DB6E */ ori $at, $at, 0xdb6e -/* 97F6B0 80241BE0 44810000 */ mtc1 $at, $f0 -/* 97F6B4 80241BE4 3C058024 */ lui $a1, %hi(func_80241610_97F0E0) -/* 97F6B8 80241BE8 24A51610 */ addiu $a1, $a1, %lo(func_80241610_97F0E0) -/* 97F6BC 80241BEC AE00001C */ sw $zero, 0x1c($s0) -/* 97F6C0 80241BF0 AE000020 */ sw $zero, 0x20($s0) -/* 97F6C4 80241BF4 AE000024 */ sw $zero, 0x24($s0) -/* 97F6C8 80241BF8 E6020034 */ swc1 $f2, 0x34($s0) -/* 97F6CC 80241BFC AE000038 */ sw $zero, 0x38($s0) -/* 97F6D0 80241C00 AE000000 */ sw $zero, ($s0) -/* 97F6D4 80241C04 E6000028 */ swc1 $f0, 0x28($s0) -/* 97F6D8 80241C08 E600002C */ swc1 $f0, 0x2c($s0) -/* 97F6DC 80241C0C E6000030 */ swc1 $f0, 0x30($s0) -/* 97F6E0 80241C10 0C048C8F */ jal create_generic_entity_frontUI -/* 97F6E4 80241C14 E6040018 */ swc1 $f4, 0x18($s0) -/* 97F6E8 80241C18 AE020004 */ sw $v0, 4($s0) -/* 97F6EC 80241C1C 8FBF0028 */ lw $ra, 0x28($sp) -/* 97F6F0 80241C20 8FB10024 */ lw $s1, 0x24($sp) -/* 97F6F4 80241C24 8FB00020 */ lw $s0, 0x20($sp) -/* 97F6F8 80241C28 24020002 */ addiu $v0, $zero, 2 -/* 97F6FC 80241C2C 03E00008 */ jr $ra -/* 97F700 80241C30 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_07/982440/func_80240014_982454.s b/ver/us/asm/nonmatchings/world/area_isk/isk_07/982440/func_80240014_982454.s deleted file mode 100644 index f58ed6b2b3..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_07/982440/func_80240014_982454.s +++ /dev/null @@ -1,51 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240014_982454 -/* 982454 80240014 0000502D */ daddu $t2, $zero, $zero -/* 982458 80240018 3C03800B */ lui $v1, %hi(gCurrentEncounter) -/* 98245C 8024001C 24630F10 */ addiu $v1, $v1, %lo(gCurrentEncounter) -/* 982460 80240020 AC800088 */ sw $zero, 0x88($a0) -/* 982464 80240024 8062001C */ lb $v0, 0x1c($v1) -/* 982468 80240028 18400018 */ blez $v0, .L8024008C -/* 98246C 8024002C 0140402D */ daddu $t0, $t2, $zero -/* 982470 80240030 0040582D */ daddu $t3, $v0, $zero -/* 982474 80240034 0060482D */ daddu $t1, $v1, $zero -.L80240038: -/* 982478 80240038 8D230028 */ lw $v1, 0x28($t1) -/* 98247C 8024003C 50600010 */ beql $v1, $zero, .L80240080 -/* 982480 80240040 254A0001 */ addiu $t2, $t2, 1 -/* 982484 80240044 0000282D */ daddu $a1, $zero, $zero -/* 982488 80240048 8C620000 */ lw $v0, ($v1) -/* 98248C 8024004C 18400009 */ blez $v0, .L80240074 -/* 982490 80240050 00A0302D */ daddu $a2, $a1, $zero -/* 982494 80240054 0040382D */ daddu $a3, $v0, $zero -.L80240058: -/* 982498 80240058 8C620004 */ lw $v0, 4($v1) -/* 98249C 8024005C 54400001 */ bnel $v0, $zero, .L80240064 -/* 9824A0 80240060 24060001 */ addiu $a2, $zero, 1 -.L80240064: -/* 9824A4 80240064 24A50001 */ addiu $a1, $a1, 1 -/* 9824A8 80240068 00A7102A */ slt $v0, $a1, $a3 -/* 9824AC 8024006C 1440FFFA */ bnez $v0, .L80240058 -/* 9824B0 80240070 24630004 */ addiu $v1, $v1, 4 -.L80240074: -/* 9824B4 80240074 54C00001 */ bnel $a2, $zero, .L8024007C -/* 9824B8 80240078 25080001 */ addiu $t0, $t0, 1 -.L8024007C: -/* 9824BC 8024007C 254A0001 */ addiu $t2, $t2, 1 -.L80240080: -/* 9824C0 80240080 014B102A */ slt $v0, $t2, $t3 -/* 9824C4 80240084 1440FFEC */ bnez $v0, .L80240038 -/* 9824C8 80240088 25290004 */ addiu $t1, $t1, 4 -.L8024008C: -/* 9824CC 8024008C 24020001 */ addiu $v0, $zero, 1 -/* 9824D0 80240090 15020003 */ bne $t0, $v0, .L802400A0 -/* 9824D4 80240094 24020002 */ addiu $v0, $zero, 2 -/* 9824D8 80240098 03E00008 */ jr $ra -/* 9824DC 8024009C AC880088 */ sw $t0, 0x88($a0) -.L802400A0: -/* 9824E0 802400A0 03E00008 */ jr $ra -/* 9824E4 802400A4 00000000 */ nop -/* 9824E8 802400A8 00000000 */ nop -/* 9824EC 802400AC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_07/982530/func_802400F0_982530.s b/ver/us/asm/nonmatchings/world/area_isk/isk_07/982530/func_802400F0_982530.s deleted file mode 100644 index 5c9fb0ade6..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_07/982530/func_802400F0_982530.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802400F0_982530 -/* 982530 802400F0 3C028016 */ lui $v0, %hi(gCollisionStatus+0x2) -/* 982534 802400F4 8442A552 */ lh $v0, %lo(gCollisionStatus+0x2)($v0) -/* 982538 802400F8 38420025 */ xori $v0, $v0, 0x25 -/* 98253C 802400FC 0002102B */ sltu $v0, $zero, $v0 -/* 982540 80240100 03E00008 */ jr $ra -/* 982544 80240104 00021040 */ sll $v0, $v0, 1 -/* 982548 80240108 00000000 */ nop -/* 98254C 8024010C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_09/9864E0/func_802402BC_98679C.s b/ver/us/asm/nonmatchings/world/area_isk/isk_09/9864E0/func_802402BC_98679C.s deleted file mode 100644 index 9c87d9498c..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_09/9864E0/func_802402BC_98679C.s +++ /dev/null @@ -1,17 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802402BC_98679C -/* 98679C 802402BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 9867A0 802402C0 AFBF0010 */ sw $ra, 0x10($sp) -/* 9867A4 802402C4 0C04417A */ jal get_entity_by_index -/* 9867A8 802402C8 8C840084 */ lw $a0, 0x84($a0) -/* 9867AC 802402CC 8C440040 */ lw $a0, 0x40($v0) -/* 9867B0 802402D0 24030001 */ addiu $v1, $zero, 1 -/* 9867B4 802402D4 A0830030 */ sb $v1, 0x30($a0) -/* 9867B8 802402D8 8FBF0010 */ lw $ra, 0x10($sp) -/* 9867BC 802402DC 24020002 */ addiu $v0, $zero, 2 -/* 9867C0 802402E0 03E00008 */ jr $ra -/* 9867C4 802402E4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 9867C8 802402E8 00000000 */ nop -/* 9867CC 802402EC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_09/9867D0/func_802402F0_9867D0.s b/ver/us/asm/nonmatchings/world/area_isk/isk_09/9867D0/func_802402F0_9867D0.s deleted file mode 100644 index 05470a7161..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_09/9867D0/func_802402F0_9867D0.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802402F0_9867D0 -/* 9867D0 802402F0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 9867D4 802402F4 AFBF0010 */ sw $ra, 0x10($sp) -/* 9867D8 802402F8 8C82000C */ lw $v0, 0xc($a0) -/* 9867DC 802402FC 0C0B1EAF */ jal evt_get_variable -/* 9867E0 80240300 8C450000 */ lw $a1, ($v0) -/* 9867E4 80240304 3C038016 */ lui $v1, %hi(gCollisionStatus+0x2) -/* 9867E8 80240308 8463A552 */ lh $v1, %lo(gCollisionStatus+0x2)($v1) -/* 9867EC 8024030C 8FBF0010 */ lw $ra, 0x10($sp) -/* 9867F0 80240310 00621826 */ xor $v1, $v1, $v0 -/* 9867F4 80240314 0003182B */ sltu $v1, $zero, $v1 -/* 9867F8 80240318 00031040 */ sll $v0, $v1, 1 -/* 9867FC 8024031C 03E00008 */ jr $ra -/* 986800 80240320 27BD0018 */ addiu $sp, $sp, 0x18 -/* 986804 80240324 00000000 */ nop -/* 986808 80240328 00000000 */ nop -/* 98680C 8024032C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_10/988B60/func_80240D38_989898.s b/ver/us/asm/nonmatchings/world/area_isk/isk_10/988B60/func_80240D38_989898.s deleted file mode 100644 index c952689296..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_10/988B60/func_80240D38_989898.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_80241EA0_98AA00 -.double -600.0 - -dlabel D_80241EA8_98AA08 -.double -770.0 - -.section .text - -glabel func_80240D38_989898 -/* 989898 80240D38 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 98989C 80240D3C 3C028011 */ lui $v0, %hi(gPlayerStatus+0x18) -/* 9898A0 80240D40 8442EFE0 */ lh $v0, %lo(gPlayerStatus+0x18)($v0) -/* 9898A4 80240D44 3C018024 */ lui $at, %hi(D_80241EA0_98AA00) -/* 9898A8 80240D48 D4201EA0 */ ldc1 $f0, %lo(D_80241EA0_98AA00)($at) -/* 9898AC 80240D4C 2406FFFF */ addiu $a2, $zero, -1 -/* 9898B0 80240D50 44821000 */ mtc1 $v0, $f2 -/* 9898B4 80240D54 00000000 */ nop -/* 9898B8 80240D58 468010A1 */ cvt.d.w $f2, $f2 -/* 9898BC 80240D5C 4622003C */ c.lt.d $f0, $f2 -/* 9898C0 80240D60 00000000 */ nop -/* 9898C4 80240D64 45000002 */ bc1f .L80240D70 -/* 9898C8 80240D68 AFBF0010 */ sw $ra, 0x10($sp) -/* 9898CC 80240D6C 0000302D */ daddu $a2, $zero, $zero -.L80240D70: -/* 9898D0 80240D70 3C018024 */ lui $at, %hi(D_80241EA8_98AA08) -/* 9898D4 80240D74 D4201EA8 */ ldc1 $f0, %lo(D_80241EA8_98AA08)($at) -/* 9898D8 80240D78 4620103C */ c.lt.d $f2, $f0 -/* 9898DC 80240D7C 00000000 */ nop -/* 9898E0 80240D80 45030001 */ bc1tl .L80240D88 -/* 9898E4 80240D84 24060001 */ addiu $a2, $zero, 1 -.L80240D88: -/* 9898E8 80240D88 04C00004 */ bltz $a2, .L80240D9C -/* 9898EC 80240D8C 00000000 */ nop -/* 9898F0 80240D90 3C05FD05 */ lui $a1, 0xfd05 -/* 9898F4 80240D94 0C0B2026 */ jal evt_set_variable -/* 9898F8 80240D98 34A50F89 */ ori $a1, $a1, 0xf89 -.L80240D9C: -/* 9898FC 80240D9C 8FBF0010 */ lw $ra, 0x10($sp) -/* 989900 80240DA0 0000102D */ daddu $v0, $zero, $zero -/* 989904 80240DA4 03E00008 */ jr $ra -/* 989908 80240DA8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 98990C 80240DAC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_11/98AA10/func_80240000_98AA10.s b/ver/us/asm/nonmatchings/world/area_isk/isk_11/98AA10/func_80240000_98AA10.s deleted file mode 100644 index 02f5420541..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_11/98AA10/func_80240000_98AA10.s +++ /dev/null @@ -1,48 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240000_98AA10 -/* 98AA10 80240000 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 98AA14 80240004 AFB1001C */ sw $s1, 0x1c($sp) -/* 98AA18 80240008 0080882D */ daddu $s1, $a0, $zero -/* 98AA1C 8024000C AFBF0020 */ sw $ra, 0x20($sp) -/* 98AA20 80240010 AFB00018 */ sw $s0, 0x18($sp) -/* 98AA24 80240014 F7B80038 */ sdc1 $f24, 0x38($sp) -/* 98AA28 80240018 F7B60030 */ sdc1 $f22, 0x30($sp) -/* 98AA2C 8024001C F7B40028 */ sdc1 $f20, 0x28($sp) -/* 98AA30 80240020 8E30000C */ lw $s0, 0xc($s1) -/* 98AA34 80240024 8E050000 */ lw $a1, ($s0) -/* 98AA38 80240028 0C0B210B */ jal evt_get_float_variable -/* 98AA3C 8024002C 26100004 */ addiu $s0, $s0, 4 -/* 98AA40 80240030 8E050000 */ lw $a1, ($s0) -/* 98AA44 80240034 26100004 */ addiu $s0, $s0, 4 -/* 98AA48 80240038 0220202D */ daddu $a0, $s1, $zero -/* 98AA4C 8024003C 0C0B210B */ jal evt_get_float_variable -/* 98AA50 80240040 46000606 */ mov.s $f24, $f0 -/* 98AA54 80240044 8E050000 */ lw $a1, ($s0) -/* 98AA58 80240048 26100004 */ addiu $s0, $s0, 4 -/* 98AA5C 8024004C 0220202D */ daddu $a0, $s1, $zero -/* 98AA60 80240050 0C0B210B */ jal evt_get_float_variable -/* 98AA64 80240054 46000586 */ mov.s $f22, $f0 -/* 98AA68 80240058 0220202D */ daddu $a0, $s1, $zero -/* 98AA6C 8024005C 8E050000 */ lw $a1, ($s0) -/* 98AA70 80240060 0C0B1EAF */ jal evt_get_variable -/* 98AA74 80240064 46000506 */ mov.s $f20, $f0 -/* 98AA78 80240068 4405C000 */ mfc1 $a1, $f24 -/* 98AA7C 8024006C 4406B000 */ mfc1 $a2, $f22 -/* 98AA80 80240070 4407A000 */ mfc1 $a3, $f20 -/* 98AA84 80240074 0000202D */ daddu $a0, $zero, $zero -/* 98AA88 80240078 0C01C094 */ jal fx_lens_flare -/* 98AA8C 8024007C AFA20010 */ sw $v0, 0x10($sp) -/* 98AA90 80240080 8FBF0020 */ lw $ra, 0x20($sp) -/* 98AA94 80240084 8FB1001C */ lw $s1, 0x1c($sp) -/* 98AA98 80240088 8FB00018 */ lw $s0, 0x18($sp) -/* 98AA9C 8024008C D7B80038 */ ldc1 $f24, 0x38($sp) -/* 98AAA0 80240090 D7B60030 */ ldc1 $f22, 0x30($sp) -/* 98AAA4 80240094 D7B40028 */ ldc1 $f20, 0x28($sp) -/* 98AAA8 80240098 24020002 */ addiu $v0, $zero, 2 -/* 98AAAC 8024009C 03E00008 */ jr $ra -/* 98AAB0 802400A0 27BD0040 */ addiu $sp, $sp, 0x40 -/* 98AAB4 802400A4 00000000 */ nop -/* 98AAB8 802400A8 00000000 */ nop -/* 98AABC 802400AC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_isk/isk_11/98AAC0/func_802400B0_98AAC0.s b/ver/us/asm/nonmatchings/world/area_isk/isk_11/98AAC0/func_802400B0_98AAC0.s deleted file mode 100644 index 8c18892124..0000000000 --- a/ver/us/asm/nonmatchings/world/area_isk/isk_11/98AAC0/func_802400B0_98AAC0.s +++ /dev/null @@ -1,32 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802400B0_98AAC0 -/* 98AAC0 802400B0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 98AAC4 802400B4 AFB10014 */ sw $s1, 0x14($sp) -/* 98AAC8 802400B8 0080882D */ daddu $s1, $a0, $zero -/* 98AACC 802400BC AFBF0018 */ sw $ra, 0x18($sp) -/* 98AAD0 802400C0 AFB00010 */ sw $s0, 0x10($sp) -/* 98AAD4 802400C4 8E30000C */ lw $s0, 0xc($s1) -/* 98AAD8 802400C8 8E050000 */ lw $a1, ($s0) -/* 98AADC 802400CC 0C0B1EAF */ jal evt_get_variable -/* 98AAE0 802400D0 26100004 */ addiu $s0, $s0, 4 -/* 98AAE4 802400D4 3C03FFF0 */ lui $v1, 0xfff0 -/* 98AAE8 802400D8 3463FFFF */ ori $v1, $v1, 0xffff -/* 98AAEC 802400DC 00431024 */ and $v0, $v0, $v1 -/* 98AAF0 802400E0 00021140 */ sll $v0, $v0, 5 -/* 98AAF4 802400E4 8E050000 */ lw $a1, ($s0) -/* 98AAF8 802400E8 3C068008 */ lui $a2, %hi(gItemTable) -/* 98AAFC 802400EC 00C23021 */ addu $a2, $a2, $v0 -/* 98AB00 802400F0 8CC678E0 */ lw $a2, %lo(gItemTable)($a2) -/* 98AB04 802400F4 0C0B2026 */ jal evt_set_variable -/* 98AB08 802400F8 0220202D */ daddu $a0, $s1, $zero -/* 98AB0C 802400FC 8FBF0018 */ lw $ra, 0x18($sp) -/* 98AB10 80240100 8FB10014 */ lw $s1, 0x14($sp) -/* 98AB14 80240104 8FB00010 */ lw $s0, 0x10($sp) -/* 98AB18 80240108 24020002 */ addiu $v0, $zero, 2 -/* 98AB1C 8024010C 03E00008 */ jr $ra -/* 98AB20 80240110 27BD0020 */ addiu $sp, $sp, 0x20 -/* 98AB24 80240114 00000000 */ nop -/* 98AB28 80240118 00000000 */ nop -/* 98AB2C 8024011C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_iwa/iwa_11/926C70/func_80240280_926C70.s b/ver/us/asm/nonmatchings/world/area_iwa/iwa_11/926C70/func_80240280_926C70.s deleted file mode 100644 index 43348b7508..0000000000 --- a/ver/us/asm/nonmatchings/world/area_iwa/iwa_11/926C70/func_80240280_926C70.s +++ /dev/null @@ -1,43 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240280_926C70 -/* 926C70 80240280 8C860084 */ lw $a2, 0x84($a0) -/* 926C74 80240284 0000282D */ daddu $a1, $zero, $zero -/* 926C78 80240288 3C038024 */ lui $v1, %hi(D_80242148_928B38) -/* 926C7C 8024028C 24632148 */ addiu $v1, $v1, %lo(D_80242148_928B38) -.L80240290: -/* 926C80 80240290 8C620000 */ lw $v0, ($v1) -/* 926C84 80240294 00C2102A */ slt $v0, $a2, $v0 -/* 926C88 80240298 54400006 */ bnel $v0, $zero, .L802402B4 -/* 926C8C 8024029C 24A3FFFF */ addiu $v1, $a1, -1 -/* 926C90 802402A0 24A50001 */ addiu $a1, $a1, 1 -/* 926C94 802402A4 28A2000E */ slti $v0, $a1, 0xe -/* 926C98 802402A8 1440FFF9 */ bnez $v0, .L80240290 -/* 926C9C 802402AC 2463001C */ addiu $v1, $v1, 0x1c -/* 926CA0 802402B0 24A3FFFF */ addiu $v1, $a1, -1 -.L802402B4: -/* 926CA4 802402B4 0000282D */ daddu $a1, $zero, $zero -/* 926CA8 802402B8 3C078024 */ lui $a3, %hi(D_80242148_928B38) -/* 926CAC 802402BC 24E72148 */ addiu $a3, $a3, %lo(D_80242148_928B38) -/* 926CB0 802402C0 000310C0 */ sll $v0, $v1, 3 -/* 926CB4 802402C4 00431023 */ subu $v0, $v0, $v1 -/* 926CB8 802402C8 00023080 */ sll $a2, $v0, 2 -/* 926CBC 802402CC 24A30005 */ addiu $v1, $a1, 5 -.L802402D0: -/* 926CC0 802402D0 24A20001 */ addiu $v0, $a1, 1 -/* 926CC4 802402D4 0040282D */ daddu $a1, $v0, $zero -/* 926CC8 802402D8 00031880 */ sll $v1, $v1, 2 -/* 926CCC 802402DC 00051080 */ sll $v0, $a1, 2 -/* 926CD0 802402E0 00461021 */ addu $v0, $v0, $a2 -/* 926CD4 802402E4 00471021 */ addu $v0, $v0, $a3 -/* 926CD8 802402E8 8C420000 */ lw $v0, ($v0) -/* 926CDC 802402EC 00831821 */ addu $v1, $a0, $v1 -/* 926CE0 802402F0 AC620084 */ sw $v0, 0x84($v1) -/* 926CE4 802402F4 28A20006 */ slti $v0, $a1, 6 -/* 926CE8 802402F8 1440FFF5 */ bnez $v0, .L802402D0 -/* 926CEC 802402FC 24A30005 */ addiu $v1, $a1, 5 -/* 926CF0 80240300 03E00008 */ jr $ra -/* 926CF4 80240304 24020002 */ addiu $v0, $zero, 2 -/* 926CF8 80240308 00000000 */ nop -/* 926CFC 8024030C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243CD4_855E44.s b/ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243CD4_855E44.s deleted file mode 100644 index 5fb29b9700..0000000000 --- a/ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243CD4_855E44.s +++ /dev/null @@ -1,45 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80243CD4_855E44 -/* 855E44 80243CD4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 855E48 80243CD8 AFB10014 */ sw $s1, 0x14($sp) -/* 855E4C 80243CDC 0080882D */ daddu $s1, $a0, $zero -/* 855E50 80243CE0 AFBF001C */ sw $ra, 0x1c($sp) -/* 855E54 80243CE4 AFB20018 */ sw $s2, 0x18($sp) -/* 855E58 80243CE8 AFB00010 */ sw $s0, 0x10($sp) -/* 855E5C 80243CEC F7B60028 */ sdc1 $f22, 0x28($sp) -/* 855E60 80243CF0 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 855E64 80243CF4 8E30000C */ lw $s0, 0xc($s1) -/* 855E68 80243CF8 8E050000 */ lw $a1, ($s0) -/* 855E6C 80243CFC 0C0B1EAF */ jal evt_get_variable -/* 855E70 80243D00 26100004 */ addiu $s0, $s0, 4 -/* 855E74 80243D04 8E050000 */ lw $a1, ($s0) -/* 855E78 80243D08 26100004 */ addiu $s0, $s0, 4 -/* 855E7C 80243D0C 0220202D */ daddu $a0, $s1, $zero -/* 855E80 80243D10 0C0B210B */ jal evt_get_float_variable -/* 855E84 80243D14 0040902D */ daddu $s2, $v0, $zero -/* 855E88 80243D18 8E050000 */ lw $a1, ($s0) -/* 855E8C 80243D1C 26100004 */ addiu $s0, $s0, 4 -/* 855E90 80243D20 0220202D */ daddu $a0, $s1, $zero -/* 855E94 80243D24 0C0B210B */ jal evt_get_float_variable -/* 855E98 80243D28 46000586 */ mov.s $f22, $f0 -/* 855E9C 80243D2C 0220202D */ daddu $a0, $s1, $zero -/* 855EA0 80243D30 8E050000 */ lw $a1, ($s0) -/* 855EA4 80243D34 0C0B210B */ jal evt_get_float_variable -/* 855EA8 80243D38 46000506 */ mov.s $f20, $f0 -/* 855EAC 80243D3C 8E42000C */ lw $v0, 0xc($s2) -/* 855EB0 80243D40 E4560008 */ swc1 $f22, 8($v0) -/* 855EB4 80243D44 8E42000C */ lw $v0, 0xc($s2) -/* 855EB8 80243D48 E454000C */ swc1 $f20, 0xc($v0) -/* 855EBC 80243D4C 8E43000C */ lw $v1, 0xc($s2) -/* 855EC0 80243D50 E4600010 */ swc1 $f0, 0x10($v1) -/* 855EC4 80243D54 8FBF001C */ lw $ra, 0x1c($sp) -/* 855EC8 80243D58 8FB20018 */ lw $s2, 0x18($sp) -/* 855ECC 80243D5C 8FB10014 */ lw $s1, 0x14($sp) -/* 855ED0 80243D60 8FB00010 */ lw $s0, 0x10($sp) -/* 855ED4 80243D64 D7B60028 */ ldc1 $f22, 0x28($sp) -/* 855ED8 80243D68 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 855EDC 80243D6C 24020002 */ addiu $v0, $zero, 2 -/* 855EE0 80243D70 03E00008 */ jr $ra -/* 855EE4 80243D74 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243D78_855EE8.s b/ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243D78_855EE8.s deleted file mode 100644 index cf136247a2..0000000000 --- a/ver/us/asm/nonmatchings/world/area_mac/mac_05/855560/func_80243D78_855EE8.s +++ /dev/null @@ -1,18 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80243D78_855EE8 -/* 855EE8 80243D78 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 855EEC 80243D7C AFBF0010 */ sw $ra, 0x10($sp) -/* 855EF0 80243D80 8C82000C */ lw $v0, 0xc($a0) -/* 855EF4 80243D84 0C0B1EAF */ jal evt_get_variable -/* 855EF8 80243D88 8C450000 */ lw $a1, ($v0) -/* 855EFC 80243D8C 8C44000C */ lw $a0, 0xc($v0) -/* 855F00 80243D90 24030001 */ addiu $v1, $zero, 1 -/* 855F04 80243D94 AC830004 */ sw $v1, 4($a0) -/* 855F08 80243D98 8FBF0010 */ lw $ra, 0x10($sp) -/* 855F0C 80243D9C 24020002 */ addiu $v0, $zero, 2 -/* 855F10 80243DA0 03E00008 */ jr $ra -/* 855F14 80243DA4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 855F18 80243DA8 00000000 */ nop -/* 855F1C 80243DAC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240DA4_8658E4.s b/ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240DA4_8658E4.s deleted file mode 100644 index 5a63753d10..0000000000 --- a/ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240DA4_8658E4.s +++ /dev/null @@ -1,45 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240DA4_8658E4 -/* 8658E4 80240DA4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 8658E8 80240DA8 AFB10014 */ sw $s1, 0x14($sp) -/* 8658EC 80240DAC 0080882D */ daddu $s1, $a0, $zero -/* 8658F0 80240DB0 AFBF001C */ sw $ra, 0x1c($sp) -/* 8658F4 80240DB4 AFB20018 */ sw $s2, 0x18($sp) -/* 8658F8 80240DB8 AFB00010 */ sw $s0, 0x10($sp) -/* 8658FC 80240DBC F7B60028 */ sdc1 $f22, 0x28($sp) -/* 865900 80240DC0 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 865904 80240DC4 8E30000C */ lw $s0, 0xc($s1) -/* 865908 80240DC8 8E050000 */ lw $a1, ($s0) -/* 86590C 80240DCC 0C0B1EAF */ jal evt_get_variable -/* 865910 80240DD0 26100004 */ addiu $s0, $s0, 4 -/* 865914 80240DD4 8E050000 */ lw $a1, ($s0) -/* 865918 80240DD8 26100004 */ addiu $s0, $s0, 4 -/* 86591C 80240DDC 0220202D */ daddu $a0, $s1, $zero -/* 865920 80240DE0 0C0B210B */ jal evt_get_float_variable -/* 865924 80240DE4 0040902D */ daddu $s2, $v0, $zero -/* 865928 80240DE8 8E050000 */ lw $a1, ($s0) -/* 86592C 80240DEC 26100004 */ addiu $s0, $s0, 4 -/* 865930 80240DF0 0220202D */ daddu $a0, $s1, $zero -/* 865934 80240DF4 0C0B210B */ jal evt_get_float_variable -/* 865938 80240DF8 46000586 */ mov.s $f22, $f0 -/* 86593C 80240DFC 0220202D */ daddu $a0, $s1, $zero -/* 865940 80240E00 8E050000 */ lw $a1, ($s0) -/* 865944 80240E04 0C0B210B */ jal evt_get_float_variable -/* 865948 80240E08 46000506 */ mov.s $f20, $f0 -/* 86594C 80240E0C 8E42000C */ lw $v0, 0xc($s2) -/* 865950 80240E10 E4560008 */ swc1 $f22, 8($v0) -/* 865954 80240E14 8E42000C */ lw $v0, 0xc($s2) -/* 865958 80240E18 E454000C */ swc1 $f20, 0xc($v0) -/* 86595C 80240E1C 8E43000C */ lw $v1, 0xc($s2) -/* 865960 80240E20 E4600010 */ swc1 $f0, 0x10($v1) -/* 865964 80240E24 8FBF001C */ lw $ra, 0x1c($sp) -/* 865968 80240E28 8FB20018 */ lw $s2, 0x18($sp) -/* 86596C 80240E2C 8FB10014 */ lw $s1, 0x14($sp) -/* 865970 80240E30 8FB00010 */ lw $s0, 0x10($sp) -/* 865974 80240E34 D7B60028 */ ldc1 $f22, 0x28($sp) -/* 865978 80240E38 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 86597C 80240E3C 24020002 */ addiu $v0, $zero, 2 -/* 865980 80240E40 03E00008 */ jr $ra -/* 865984 80240E44 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240E48_865988.s b/ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240E48_865988.s deleted file mode 100644 index 0e092448a2..0000000000 --- a/ver/us/asm/nonmatchings/world/area_mac/mac_06/865000/func_80240E48_865988.s +++ /dev/null @@ -1,18 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240E48_865988 -/* 865988 80240E48 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 86598C 80240E4C AFBF0010 */ sw $ra, 0x10($sp) -/* 865990 80240E50 8C82000C */ lw $v0, 0xc($a0) -/* 865994 80240E54 0C0B1EAF */ jal evt_get_variable -/* 865998 80240E58 8C450000 */ lw $a1, ($v0) -/* 86599C 80240E5C 8C44000C */ lw $a0, 0xc($v0) -/* 8659A0 80240E60 24030001 */ addiu $v1, $zero, 1 -/* 8659A4 80240E64 AC830004 */ sw $v1, 4($a0) -/* 8659A8 80240E68 8FBF0010 */ lw $ra, 0x10($sp) -/* 8659AC 80240E6C 24020002 */ addiu $v0, $zero, 2 -/* 8659B0 80240E70 03E00008 */ jr $ra -/* 8659B4 80240E74 27BD0018 */ addiu $sp, $sp, 0x18 -/* 8659B8 80240E78 00000000 */ nop -/* 8659BC 80240E7C 00000000 */ nop diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index b492364f3a..a2c81398df 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -2769,8 +2769,8 @@ D_800A0B94 = 0x800A0B94; // type:data rom:0x7BF94 D_800A0B98 = 0x800A0B98; // type:data rom:0x7BF98 D_800A0BA0 = 0x800A0BA0; // type:data rom:0x7BFA0 D_800A0BA4 = 0x800A0BA4; // type:data rom:0x7BFA4 -D_800A0BA8 = 0x800A0BA8; // type:data rom:0x7BFA8 -D_800A0BAC = 0x800A0BAC; // type:data rom:0x7BFAC +WorldMerleeOrbEffect = 0x800A0BA8; // type:data rom:0x7BFA8 +WorldMerleeWaveEffect = 0x800A0BAC; // type:data rom:0x7BFAC D_800A0BB0 = 0x800A0BB0; // type:data rom:0x7BFB0 D_800A0BB4 = 0x800A0BB4; // type:data rom:0x7BFB4 D_800A0BB8 = 0x800A0BB8; // type:data rom:0x7BFB8 @@ -6760,13 +6760,13 @@ ConsumeLifeShroom = 0x802611E8; // type:func rom:0x18FAC8 RestorePreDefeatState = 0x8026127C; // type:func rom:0x18FB5C func_80261388 = 0x80261388; // type:func rom:0x18FC68 func_802613A8 = 0x802613A8; // type:func rom:0x18FC88 -func_802613BC = 0x802613BC; // type:func rom:0x18FC9C -func_80261478 = 0x80261478; // type:func rom:0x18FD58 -func_80261530 = 0x80261530; // type:func rom:0x18FE10 -func_802615C8 = 0x802615C8; // type:func rom:0x18FEA8 -func_80261648 = 0x80261648; // type:func rom:0x18FF28 -func_802616B4 = 0x802616B4; // type:func rom:0x18FF94 -func_802616F4 = 0x802616F4; // type:func rom:0x18FFD4 +PlayBattleMerleeGatherFX = 0x802613BC; // type:func rom:0x18FC9C +PlayBattleMerleeOrbFX = 0x80261478; // type:func rom:0x18FD58 +BattleMerleeFadeStageToBlack = 0x80261530; // type:func rom:0x18FE10 +BattleMerleeFadeStageFromBlack = 0x802615C8; // type:func rom:0x18FEA8 +BattleFadeInMerlee = 0x80261648; // type:func rom:0x18FF28 +BattleFadeOutMerlee = 0x802616B4; // type:func rom:0x18FF94 +BattleMerleeUpdateFX = 0x802616F4; // type:func rom:0x18FFD4 func_802619B4 = 0x802619B4; // type:func rom:0x190294 HasMerleeCastsLeft = 0x802619C8; // type:func rom:0x1902A8 func_802619E8 = 0x802619E8; // type:func rom:0x1902C8 @@ -15450,8 +15450,8 @@ mac_05_unkAngleFunc003 = 0x802438A4; // type:func rom:0x855A14 mac_05_UnkFloatFunc001 = 0x80243948; // type:func rom:0x855AB8 mac_05_UnkPlayerPosFunc = 0x80243AB8; // type:func rom:0x855C28 mac_05_PlayFX3D = 0x80243BA4; // type:func rom:0x855D14 -func_80243CD4_855E44 = 0x80243CD4; // type:func rom:0x855E44 -func_80243D78_855EE8 = 0x80243D78; // type:func rom:0x855EE8 +mac_05_UpdatePosFX3D = 0x80243CD4; // type:func rom:0x855E44 +mac_05_DisposeFX3D = 0x80243D78; // type:func rom:0x855EE8 func_80243DB0_855F20 = 0x80243DB0; // type:func rom:0x855F20 func_80243F0C_85607C = 0x80243F0C; // type:func rom:0x85607C mac_05_Quizmo_varStash = 0x802450B0; // type:data rom:0x857220 @@ -15478,8 +15478,8 @@ mac_06_unkAngleFunc003 = 0x80240974; // type:func rom:0x8654B4 jan_00_UnkFloatFunc001 = 0x80240A18; // type:func rom:0x865558 mac_06_UnkPlayerPosFunc = 0x80240B88; // type:func rom:0x8656C8 mac_06_PlayFX3D = 0x80240C74; // type:func rom:0x8657B4 -func_80240DA4_8658E4 = 0x80240DA4; // type:func rom:0x8658E4 -func_80240E48_865988 = 0x80240E48; // type:func rom:0x865988 +mac_06_UpdatePosFX3D = 0x80240DA4; // type:func rom:0x8658E4 +mac_06_DisposeFX3D = 0x80240E48; // type:func rom:0x865988 func_80240E80_8659C0 = 0x80240E80; // type:func rom:0x8659C0 func_80241098_865BD8 = 0x80241098; // type:func rom:0x865BD8 func_80241290_865DD0 = 0x80241290; // type:func rom:0x865DD0 @@ -24855,8 +24855,8 @@ func_802427D8_DF91D8 = 0x802427D8; // type:func rom:0xDF91D8 end_00_SetNpcShadowScale = 0x80242830; // type:func rom:0xDF9230 func_80242898_DF9298 = 0x80242898; // type:func rom:0xDF9298 end_00_PlayFX3D = 0x80242900; // type:func rom:0xDF9300 -func_80242A30_DF9430 = 0x80242A30; // type:func rom:0xDF9430 -func_80242AD4_DF94D4 = 0x80242AD4; // type:func rom:0xDF94D4 +end_00_UpdatePosFX3D = 0x80242A30; // type:func rom:0xDF9430 +end_00_DisposeFX3D = 0x80242AD4; // type:func rom:0xDF94D4 func_80242B10_DF9510 = 0x80242B10; // type:func rom:0xDF9510 end_00_Font4Patterns = 0x80242C70; // type:data rom:0xDF9670 end_00_Font3Patterns = 0x80242CD8; // type:data rom:0xDF96D8 @@ -26934,8 +26934,8 @@ D_8029FB88 = 0x8029FB88; // type:data D_8029FB8C = 0x8029FB8C; // type:data D_8029FB90 = 0x8029FB90; // type:data D_8029FB94 = 0x8029FB94; // type:data -D_8029FB98 = 0x8029FB98; // type:data -D_8029FB9C = 0x8029FB9C; // type:data +BattleMerleeOrbEffect = 0x8029FB98; // type:data +BattleMerleeWaveEffect = 0x8029FB9C; // type:data D_8029FBA0 = 0x8029FBA0; // type:data D_8029FBA4 = 0x8029FBA4; // type:data D_8029FBA8 = 0x8029FBA8; // type:data diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index 9ff1579bd1..c1b33b3e83 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -849,8 +849,8 @@ D_8029FB88 = 0x8029FB88; D_8029FB8C = 0x8029FB8C; D_8029FB90 = 0x8029FB90; D_8029FB94 = 0x8029FB94; -D_8029FB98 = 0x8029FB98; -D_8029FB9C = 0x8029FB9C; +BattleMerleeOrbEffect = 0x8029FB98; +BattleMerleeWaveEffect = 0x8029FB9C; D_8029FBA0 = 0x8029FBA0; D_8029FBA4 = 0x8029FBA4; D_8029FBA8 = 0x8029FBA8;