diff --git a/include/common_structs.h b/include/common_structs.h index c5af5ab8b1..c6f9c445b7 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -2256,28 +2256,6 @@ typedef struct UnkEntityStruct { /* 0x38 */ f32 unk_38; } UnkEntityStruct; // size = 0x3C -typedef struct EntityModel { - /* 0x00 */ s32 flags; - /* 0x04 */ s8 renderMode; - /* 0x05 */ u8 unk_05; - /* 0x06 */ u8 unk_06; - /* 0x07 */ u8 unk_07; - /* 0x08 */ f32 nextFrameTime; ///< Set to 1.0 after each update - /* 0x0C */ f32 timeScale; ///< Default is 1.0 - /* 0x10 */ s32* cmdListReadPos; - /* 0x14 */ union { - Gfx* displayList; - SpriteRasterInfo* imageData; - } gfx; - /* 0x18 */ Mtx transform; - /* 0x58 */ s32* cmdListSavedPos; - /* 0x5C */ Vec3s* vertexArray; - /* 0x60 */ void (*fpSetupGfxCallback)(void*); - /* 0x64 */ void* setupGfxCallbackArg0; -} EntityModel; // size = 0x68 - -typedef EntityModel* EntityModelList[MAX_ENTITY_MODELS]; - typedef struct VirtualEntity { /* 0x00 */ s32 entityModelIndex; /* 0x04 */ Vec3f pos; @@ -2522,4 +2500,11 @@ typedef struct LavaPiranhaVine { /* 0x1DC */ s32 numPoints; } LavaPiranhaVine; +// TODO look into making options here better. it's really an array of 5 substructs, each having and [8][2] array +typedef struct PlayerCelebrationAnimOptions { + /* 0x00 */ s16 randomChance; + /* 0x02 */ s16 hpBasedChance; + /* 0x04 */ s32 options[0]; +} PlayerCelebrationAnimOptions; // size = 0x8 + #endif diff --git a/include/entity.h b/include/entity.h index 9311aa2da2..0ce041ed09 100644 --- a/include/entity.h +++ b/include/entity.h @@ -442,4 +442,35 @@ extern EntityBlueprint Entity_TrumpetPlant; extern EntityBlueprint Entity_Munchlesia; extern EntityBlueprint Entity_ArrowSign; +typedef struct EntityModel { + /* 0x00 */ s32 flags; + /* 0x04 */ s8 renderMode; + /* 0x05 */ u8 unk_05; + /* 0x06 */ u8 unk_06; + /* 0x07 */ u8 unk_07; + /* 0x08 */ f32 nextFrameTime; ///< Set to 1.0 after each update + /* 0x0C */ f32 timeScale; ///< Default is 1.0 + /* 0x10 */ EntityModelScript* cmdListReadPos; + /* 0x14 */ union { + Gfx* displayList; + SpriteRasterInfo* imageData; + } gfx; + /* 0x18 */ Mtx transform; + /* 0x58 */ EntityModelScript* cmdListSavedPos; + /* 0x5C */ Vec3s* vertexArray; + /* 0x60 */ void (*fpSetupGfxCallback)(void*); + /* 0x64 */ void* setupGfxCallbackArg0; +} EntityModel; // size = 0x68 + +typedef EntityModel* EntityModelList[MAX_ENTITY_MODELS]; + +EntityModel* get_entity_model(s32 idx); +s32 load_entity_model(EntityModelScript* cmdList); +s32 ALT_load_entity_model(EntityModelScript* cmdList); +void entity_set_render_script(Entity* entity, EntityModelScript* cmdList); +void set_entity_model_render_command_list(s32 idx, EntityModelScript* cmdList); + +void virtual_entity_list_render_world(void); +void virtual_entity_list_render_UI(void); + #endif diff --git a/include/enums.h b/include/enums.h index 892dd312c3..fd99791284 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2520,7 +2520,7 @@ enum Phases { PHASE_FIRST_STRIKE = 1, PHASE_RUN_AWAY_START = 3, PHASE_RUN_AWAY_RESET = 4, - PHASE_5 = 5, + PHASE_CELEBRATE = 5, PHASE_USE_DEFEND = 6, PHASE_RUN_AWAY_FAIL = 7, PHASE_USE_LIFE_SHROOM = 8, diff --git a/include/functions.h b/include/functions.h index f87232a2a7..aa4d09f093 100644 --- a/include/functions.h +++ b/include/functions.h @@ -78,11 +78,9 @@ f32 func_800E5348(void); void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style); -void set_entity_model_render_command_list(s32 idx, u32* commandList); void set_entity_model_flags(s32 idx, s32 newFlags); void clear_entity_model_flags(s32 idx, s32 newFlags); void exec_entity_model_commandlist(s32 idx); -s32 load_entity_model(s32* cmdList); RenderTask* queue_render_task(RenderTask* task); s32 create_mesh_animator(s16* animPos, s16* animBuffer); @@ -795,7 +793,6 @@ typedef union { s32 create_worker_world(WorldArgs, WorldArgs); void init_entity_models(void); -EntityModel* get_entity_model(s32 idx); f32 phys_get_spin_history(s32 lag, s32* x, s32* y, s32* z); void fold_update(u32, FoldType, s32, s32, s32, s32, s32); s32 fold_appendGfx_component(s32, FoldImageRecPart*, u32, Matrix4f); @@ -834,7 +831,6 @@ s32 entity_base_block_idle(Entity* entity); void add_SP(s32 amt); s32 recover_hp(s32 amt); s32 recover_fp(s32 amt); -void entity_set_render_script(Entity* entity, u32* commandList); s32 entity_can_collide_with_jumping_player(Entity* entity); void entity_base_block_init(Entity* entity); s32 entity_start_script(Entity* entity); diff --git a/src/17D6A0.c b/src/17D6A0.c index 7b06d66463..824c5a4d4a 100644 --- a/src/17D6A0.c +++ b/src/17D6A0.c @@ -23,47 +23,50 @@ extern ActorBlueprint battle_partner_lakilester; extern ActorBlueprint battle_partner_bow; extern ActorBlueprint battle_partner_twink; -s16 D_80280FC0[] = { - 10, 90, 0, 50, - 3, 11, 0, 50, - 1, 45, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 50, - 1, 49, 0, 50, - 1, 49, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 50, - 1, 50, 0, 50, - 1, 50, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 50, - 3, 10, 0, 50, - 3, 10, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 80, - 3, 10, 0, 20, - 3, 11, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, +PlayerCelebrationAnimOptions D_80280FC0 = { + 10, 90, + { + 50, 196619, + 50, ANIM_Mario_1002D, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 50, ANIM_Mario_DustOff, + 50, ANIM_Mario_DustOff, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 50, ANIM_Mario_ThumbsUp, + 50, ANIM_Mario_ThumbsUp, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 50, ANIM_Mario_3000A, + 50, ANIM_Mario_3000A, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 80, ANIM_Mario_3000A, + 20, ANIM_Mario_3000B, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + } }; s32 bActorNames[ACTOR_TYPE_COUNT] = { @@ -2714,7 +2717,7 @@ void func_8024EFE0(f32 x, f32 y, f32 z, s32 numMessages, s32 arg4, s32 arg5) { for (i = 0; i < numMessages; i++, message++) { sp10 = &D_80283744[numMessages]; message->unk_00 = 1; - message->unk_04 = load_entity_model(**sp10); + message->unk_04 = load_entity_model(*sp10); set_entity_model_flags(message->unk_04, ENTITY_MODEL_FLAGS_HIDDEN); bind_entity_model_setupGfx(message->unk_04, message, func_8024F768); message->pos.x = x; diff --git a/src/18C790.c b/src/18C790.c index 4d31263d99..646efbefe1 100644 --- a/src/18C790.c +++ b/src/18C790.c @@ -551,7 +551,7 @@ void btl_state_update_celebration(void) { if (partner != NULL) { partner->flags &= ~(ACTOR_FLAG_4000000 | ACTOR_FLAG_8000000); } - battleStatus->battlePhase = PHASE_5; + battleStatus->battlePhase = PHASE_CELEBRATE; script = start_script(&PlayerScriptDispatcher, EVT_PRIORITY_A, 0); player->takeTurnScript = script; player->takeTurnID = script->id; diff --git a/src/18F340.c b/src/18F340.c index 8c195da7b6..ba6fa4bf88 100644 --- a/src/18F340.c +++ b/src/18F340.c @@ -10,7 +10,7 @@ extern HudScript HES_Happy; extern HudScript HES_HPDrain; -extern EvtScript D_80286194; +extern EvtScript PlayerCelebrate; extern EvtScript D_802988F0; extern EvtScript D_80298724; extern EvtScript D_80298948; @@ -79,8 +79,57 @@ ApiStatus func_80260B70(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -ApiStatus func_80260BF4(Evt* script, s32 isInitialCall); -INCLUDE_ASM(s32, "18F340", func_80260BF4); +extern PlayerCelebrationAnimOptions D_80280FC0; + +ApiStatus ChoosePlayerCelebrationAnim(Evt* script, s32 isInitialCall) { + PlayerCelebrationAnimOptions* pcao = &D_80280FC0; + PlayerData* playerData = &gPlayerData; + s32 temp; + s32 i; + + if (rand_int(pcao->randomChance + pcao->hpBasedChance) < pcao->randomChance) { + temp = 0; + for (i = 0; i < 8; i++) { + temp += pcao->options[i * 2]; + } + temp = rand_int(temp); + for (i = 0; i < 8; i++) { + temp -= pcao->options[i * 2]; + if (temp <= 0) { + break; + } + } + + script->varTable[0] = pcao->options[i * 2 + 1]; + } else { + s32* opts; + f32 healthRatio = playerData->curHP / (f32) playerData->curMaxHP; + + if (healthRatio <= 0.25) { + opts = &pcao->options[16]; + } else if (healthRatio <= 0.5) { + opts = &pcao->options[32]; + } else if (healthRatio <= 0.75) { + opts = &pcao->options[48]; + } else { + opts = &pcao->options[64]; + } + + temp = 0; + for (i = 0; i < 8; i++) { + temp += opts[i * 2]; + } + temp = rand_int(temp); + for (i = 0; i < 8; i++) { + temp -= opts[i * 2]; + if (temp <= 0) { + break; + } + } + script->varTable[0] = opts[i * 2 + 1]; + } + return ApiStatus_DONE2; +} ApiStatus func_80260DB8(Evt* script, s32 isInitialCall) { gBattleStatus.flags1 |= BS_FLAGS1_ENEMY_FLED; @@ -683,8 +732,8 @@ EvtScript PlayerScriptDispatcher = { EVT_EXEC_WAIT(ExecutePlayerAction) EVT_CASE_EQ(PHASE_FIRST_STRIKE) EVT_EXEC_WAIT(PlayerFirstStrike) - EVT_CASE_EQ(PHASE_5) - EVT_EXEC_WAIT(D_80286194) + EVT_CASE_EQ(PHASE_CELEBRATE) + EVT_EXEC_WAIT(PlayerCelebrate) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(RunAwayStart) EVT_CASE_EQ(PHASE_RUN_AWAY_FAIL) @@ -986,14 +1035,14 @@ EvtScript HandleEvent_Player = { EVT_END }; -EvtScript D_80286194 = { +EvtScript PlayerCelebrate = { EVT_SET(LVar0, 0) EVT_LOOP(5) EVT_ADD(LVar0, 72) EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) EVT_WAIT(1) EVT_END_LOOP - EVT_CALL(func_80260BF4) + EVT_CALL(ChoosePlayerCelebrationAnim) EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, LVar0) EVT_WAIT(31) EVT_RETURN diff --git a/src/a5dd0_len_114e0.c b/src/a5dd0_len_114e0.c index 23c563b059..b94010d35c 100644 --- a/src/a5dd0_len_114e0.c +++ b/src/a5dd0_len_114e0.c @@ -1770,9 +1770,9 @@ s32 is_player_action_state(s8 actionState) { return actionState == gPlayerStatus.actionState; } -void entity_set_render_script(Entity* entity, u32* commandList) { +void entity_set_render_script(Entity* entity, EntityModelScript* cmdList) { if (!(entity->flags & ENTITY_FLAGS_HAS_ANIMATED_MODEL)) { - set_entity_model_render_command_list(entity->virtualModelIndex, commandList); + set_entity_model_render_command_list(entity->virtualModelIndex, cmdList); } } diff --git a/src/audio/28910_len_5090.c b/src/audio/28910_len_5090.c index 43605b25a7..5d94e139ae 100644 --- a/src/audio/28910_len_5090.c +++ b/src/audio/28910_len_5090.c @@ -118,23 +118,16 @@ void au_bgm_update_main(BGMPlayer* player) { } } -// Return values are being pushed into v0 in the wrong place -// May depend on data decomp -#ifdef NON_EQUIVALENT BGMPlayer* au_bgm_get_player_with_song_name(s32 songString) { - SndGlobals* globals = gBGMPlayerA->data; - - if (songString == globals->dataBGM[0]->name) { + if (songString != gBGMPlayerA->globals->dataBGM[0]->name) { + if (songString == gBGMPlayerA->globals->dataBGM[1]->name) { + return gBGMPlayerB; + } + } else { return gBGMPlayerA; } - if (songString == globals->dataBGM[1]->name) { - return gBGMPlayerB; - } return NULL; } -#else -INCLUDE_ASM(BGMPlayer*, "audio/28910_len_5090", au_bgm_get_player_with_song_name, s32 songString); -#endif AuResult au_bgm_dispatch_player_event(SongUpdateEvent* event) { BGMPlayer* player; @@ -929,7 +922,7 @@ void au_bgm_load_subsegment(BGMPlayer* player, u32 cmd) { s32 nextRelativePos; s32 bUsesPolyphony; s32 i; - + nextRelativePos = 0; bUsesPolyphony = FALSE; player->subSegmentStartPos = AU_FILE_RELATIVE(player->segmentStartPos, (cmd & 0xFFFF) << 2); @@ -950,10 +943,10 @@ void au_bgm_load_subsegment(BGMPlayer* player, u32 cmd) { track->unk_51 = parentTrack->unk_51; track->unk_52 = parentTrack->unk_52; track->unk_53 = parentTrack->unk_53; - + track->bgmReadPos = (track->bgmReadPos + (s32)player->subSegmentStartPos); track->delayTime = 1; - + track->parentTrackIdx = parentIdx; if (player->unk_233 != 0) { track->unk_5A = 1; @@ -968,7 +961,7 @@ void au_bgm_load_subsegment(BGMPlayer* player, u32 cmd) { track->unk_52 = nextRelativePos; nextRelativePos += count; track->unk_53 = nextRelativePos; - + track->bgmReadPos = (track->bgmReadPos + (s32)player->subSegmentStartPos); track->delayTime = 1; } @@ -1375,9 +1368,9 @@ void au_bgm_player_update_playing(BGMPlayer *player) { } if (track->changed.volume) { voice->adjustedVolume = ( - ((((player->masterVolume >> 0x15) - * (track->subTrackVolume >> 0x15)) - * (track->unkVolume >> 0x15)) >> 0x14) + ((((player->masterVolume >> 0x15) + * (track->subTrackVolume >> 0x15)) + * (track->unkVolume >> 0x15)) >> 0x14) * (track->segTrackVolume * note->volume)) >> 0x10; voice->unk_flags_3D |= AU_VOICE_3D_FLAGS_VOL_CHANGED; } diff --git a/src/audio/2BF90.c b/src/audio/2BF90.c index dadb4af97c..ec885aed41 100644 --- a/src/audio/2BF90.c +++ b/src/audio/2BF90.c @@ -339,7 +339,7 @@ void func_800522A8(AuAmbienceManager* arg0, AuAmbPlayer* lambda) { AlUnkOmega* omega = lambda->unk_1D4; u32 copied = 0; s32 i; - + for (i = lambda->firstVoiceIdx; i < lambda->lastVoiceIdx; i++) { AlUnkIota* iota = &arg0->mseqVoiceStates[i - lambda->firstVoiceIdx]; @@ -366,7 +366,7 @@ void func_8005232C(AuAmbienceManager* manager, AuAmbPlayer* lambda) { AlUnkIota* iota; AlUnkXi* xi; u32 i, j; - + globals = manager->globals; if (lambda->playState == MSEQ_PLAYER_PLAYING) { for (i = 0; i < ARRAY_COUNT(lambda->unk_1D4); i++) { @@ -392,7 +392,7 @@ void func_8005232C(AuAmbienceManager* manager, AuAmbPlayer* lambda) { } } } - + if (j < lambda->lastVoiceIdx) { iota = &manager->mseqVoiceStates[j - lambda->firstVoiceIdx]; iota->unk_00.s32 = lambda->unk_14.s32 + (omega->unk_00 << 0x10) + (omega->unk_01 << 8); diff --git a/src/battle/item/sleepy_sheep.c b/src/battle/item/sleepy_sheep.c index 1c2a4c2e0e..b74e1d4478 100644 --- a/src/battle/item/sleepy_sheep.c +++ b/src/battle/item/sleepy_sheep.c @@ -1,169 +1,100 @@ #include "sleepy_sheep.h" #include "entity.h" #include "ld_addrs.h" +#include "effects.h" #include "battle/item/sleepy_sheep1.png.h" #include "battle/item/sleepy_sheep2.png.h" #include "battle/item/sleepy_sheep3.png.h" #include "ItemRefund.inc.c" +s32 virtual_entity_create(EntityModelScript*); void virtual_entity_set_pos(s32, s32, s32, s32); void virtual_entity_set_scale(s32, f32, f32, f32); void virtual_entity_delete_by_index(s32); -#ifdef NON_EQUIVALENT - +extern s32 D_802A3E88_7214D8[]; +extern EntityModelScript* D_802A3F28_721578[10]; +extern f32 D_802A3F00_721550[]; extern Vec3f D_802A3F88; -extern s32* D_802A3F58; +extern s32 D_802A3F58[10]; -s32 N(D_802A3E88_7214D8)[] = { - 0, 0 -}; - -s32 N(D_802A3E88_7214E0)[] = { - 0x00000000, - 0xFFFFFFE2, 0x00000000, 0xFFFFFFCE, - 0xFFFFFFE5, 0x00000000, 0x0000001E, - 0xFFFFFFBA, 0x00000000, 0xFFFFFFFB, - 0xFFFFFF97, 0x00000000, 0x0000001E, - 0xFFFFFF92, 0x00000000, 0xFFFFFFCE, - 0xFFFFFF6F, 0x00000000, 0xFFFFFFFB, - 0xFFFFFF56, 0x00000000, 0xFFFFFFCE, - 0xFFFFFF42, 0x00000000, 0xFFFFFFE2, - 0xFFFFFF2E, 0x00000000, 0xFFFFFFF6 -}; - -f32 N(D_802A3F00_721550)[] = { - 0x3F800000, 0x3F800000, 0x3F400000, 0x3F800000, - 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, - 0x3F400000, 0x3F400000 -}; - -s32 N(D_802A3F28_721578)[] = { - 0x802A3260, 0x802A32A0, 0x802A32E0, 0x802A3260, - 0x802A32A0, 0x802A32E0, 0x802A3260, 0x802A32A0, - 0x802A32E0, 0x802A3260 -}; - -ApiStatus func_802A123C_71E88C(Evt* script, s32 isInitialCall) { +ApiStatus N(func_802A123C_71E88C)(Evt* script, s32 isInitialCall) { + Vec3f* posPtr = &D_802A3F88; + s32 entityID; + f32 x, y, z; + s32 cond; s32 i; - Vec3f vecf; - s32 flag; - Vec3f* D_802A3F88_ptr = &D_802A3F88; - s32* D_802A3E88_7214D8_ptr1; // = &N(D_802A3E88_7214D8); - s32* D_802A3E88_7214D8_ptr2; // = &N(D_802A3E88_7214D8); - s32* D_802A3E88_7214D8_ptr3; // = &N(D_802A3E88_7214D8); - s32* D_802A3F58_ptr; if (isInitialCall) { script->functionTemp[0] = 0; } switch (script->functionTemp[0]) { - case 0: { - s32* D_802A3F28_721578_ptr = &N(D_802A3F28_721578); - s32 loop1, loop2, loop3; - D_802A3F58_ptr = &D_802A3F58; - - D_802A3F88_ptr->x = -200.0f; - D_802A3F88_ptr->z = 10.0f; - - D_802A3E88_7214D8_ptr1 = N(D_802A3E88_7214D8) + 0; - D_802A3E88_7214D8_ptr2 = N(D_802A3E88_7214D8) + 1; - D_802A3E88_7214D8_ptr3 = N(D_802A3E88_7214D8) + 2; - - for (i = 0; i < 10; i++) { - D_802A3F58_ptr[i] = virtual_entity_create(D_802A3F28_721578_ptr[i]); - - virtual_entity_set_pos(D_802A3F58_ptr[i], - *D_802A3E88_7214D8_ptr1 + D_802A3F88_ptr->x, - *D_802A3E88_7214D8_ptr2, - *D_802A3E88_7214D8_ptr3 + D_802A3F88_ptr->z); - virtual_entity_set_scale(D_802A3F58_ptr[i], N(D_802A3F00_721550)[i], N(D_802A3F00_721550)[i], 1.0f); - D_802A3E88_7214D8_ptr1 += i * 3 + 0; - D_802A3E88_7214D8_ptr2 += i * 3 + 1; - D_802A3E88_7214D8_ptr3 += i * 3 + 2; + case 0: + posPtr->x = -200.0f; + posPtr->z = 10.0f; + for (i = 0; i < ARRAY_COUNT(D_802A3F58); i++) { + entityID = D_802A3F58[i] = virtual_entity_create(D_802A3F28_721578[i]); + x = D_802A3E88_7214D8[i * 3] + posPtr->x; + y = D_802A3E88_7214D8[i * 3 + 1]; + z = D_802A3E88_7214D8[i * 3 + 2] + posPtr->z; + virtual_entity_set_pos(entityID, x, y, z); + virtual_entity_set_scale(entityID, D_802A3F00_721550[i], D_802A3F00_721550[i], 1.0f); } + script->functionTemp[1] = (gGameStatusPtr->frameCounter % 10) & 0xFFFF; script->functionTemp[0] = 1; - script->functionTemp[1] = gGameStatusPtr->frameCounter % 10; - } - break; - + break; case 1: - D_802A3F88.x += 6.0f; - if (gGameStatusPtr->frameCounter % 3 == 0) { - script->functionTemp[1]++; - script->functionTemp[1] %= 10; + posPtr->x += 6.0f; + cond = FALSE; + if (!((gGameStatusPtr->frameCounter % 3) & 0xFFFF)) { + script->functionTemp[1] = (script->functionTemp[1] + 1) % 10; } - flag = 0; - D_802A3F58_ptr = &D_802A3F58; - D_802A3E88_7214D8_ptr1 = N(D_802A3E88_7214D8); - D_802A3E88_7214D8_ptr2 = N(D_802A3E88_7214D8); - D_802A3E88_7214D8_ptr3 = N(D_802A3E88_7214D8); - for (i = 0; i < 10; i++) { - f32 x, y, z; - - D_802A3E88_7214D8_ptr1 += i * 3 + 0; - D_802A3E88_7214D8_ptr2 += i * 3 + 1; - D_802A3E88_7214D8_ptr3 += i * 3 + 2; - - x = *D_802A3E88_7214D8_ptr1 + D_802A3F88.x; - y = *D_802A3E88_7214D8_ptr2; - z = *D_802A3E88_7214D8_ptr3 + D_802A3F88.z; - - virtual_entity_set_pos(D_802A3F58_ptr[i], x, y, z); - - if (flag == 0 && script->functionTemp[1] == i) { - f32 x2, y2; - if (gGameStatusPtr->frameCounter % 5 == 0) { - - y2 = y; - if (x > 0.0f) { - x2 = x; - if (x > 100.0f) { - x2 = x - 50.0f; - } - y2 = rand_int(x2); + for (i = 0; i < ARRAY_COUNT(D_802A3F58); i++) { + entityID = D_802A3F58[i]; + x = D_802A3E88_7214D8[i * 3] + posPtr->x; + y = D_802A3E88_7214D8[i * 3 + 1]; + z = D_802A3E88_7214D8[i * 3 + 2] + posPtr->z; + virtual_entity_set_pos(entityID, x, y, z); + if (!cond && script->functionTemp[1] == i && !((gGameStatusPtr->frameCounter % 5) & 0xFFFF)) { + if (x > 0.0f) { + y = x; + if (x > 100.0f) { + y = x - 50.0f; } - x2 = x; - if (x > 40.0f) { - x2 = -(x - 40.0f); - } - fx_landing_dust(3, x2, y2, z, 0); - flag = 1; + y = rand_int(y); } + + if (x > 40.0f) { + x = -(x - 40.0f); + } + fx_landing_dust(3, x, y, z, 0.0f); + cond = TRUE; } - D_802A3E88_7214D8_ptr1 += 0xC; - D_802A3E88_7214D8_ptr2 += 0xC; - D_802A3E88_7214D8_ptr3 += 0xC; } if (gGameStatusPtr->frameCounter & 1) { s32 randIdx = rand_int(9); - fx_landing_dust(2, N(D_802A3E88_7214D8)[randIdx * 3 + 0] + D_802A3F88_ptr->x, - N(D_802A3E88_7214D8)[randIdx * 3 + 1], - N(D_802A3E88_7214D8)[randIdx * 3 + 2] + D_802A3F88_ptr->z, 0); + + x = D_802A3E88_7214D8[randIdx * 3] + posPtr->x; + y = D_802A3E88_7214D8[randIdx * 3 + 1]; + z = D_802A3E88_7214D8[randIdx * 3 + 2] + posPtr->z; + + fx_landing_dust(2, x, y, z, 0.0f); } - if (D_802A3F88_ptr->x >= 320.0f) { + if (posPtr->x >= 320.0f) { script->functionTemp[0] = 2; - break; } - return ApiStatus_DONE2; - + break; case 2: - for (i = 0; i < 10; i++) { - virtual_entity_delete_by_index(*(&D_802A3F58 + i)); + for (i = 0; i < ARRAY_COUNT(D_802A3F58); i++) { + virtual_entity_delete_by_index(D_802A3F58[i]); } - return ApiStatus_DONE2; } - return ApiStatus_BLOCK; } -#else -INCLUDE_ASM(ApiStatus, "battle/item/sleepy_sheep", battle_item_sleepy_sheep_func_802A123C_71E88C, - Evt* script, s32 isInitialCall); -#endif ApiStatus N(func_802A1740_71ED90)(Evt* script, s32 isInitialCall) { BattleStatus* battleStatus = &gBattleStatus; @@ -181,7 +112,7 @@ ApiStatus N(func_802A1740_71ED90)(Evt* script, s32 isInitialCall) { Actor* targetActor = get_actor(target->actorID); ActorPart* targetPart = get_actor_part(targetActor, target->partID); - if ((targetActor->transparentStatus == 0) && !(targetPart->eventFlags & ACTOR_EVENT_FLAG_ILLUSORY)) { + if (targetActor->transparentStatus == 0 && !(targetPart->eventFlags & ACTOR_EVENT_FLAG_ILLUSORY)) { targetActor->yaw += 33.0f; targetActor->yaw = clamp_angle(targetActor->yaw); } @@ -199,13 +130,13 @@ ApiStatus N(func_802A1848_71EE98)(Evt* script, s32 isInitialCall) { BattleStatus* battleStatus = &gBattleStatus; Actor* player = battleStatus->playerActor; s32 i; - s32 ret; + s32 cond; if (isInitialCall) { script->functionTemp[0] = 0; } - ret = 0; + cond = FALSE; for (i = 0; i < player->targetListLength; i++) { s8 targetIdx = player->targetIndexList[i]; @@ -220,13 +151,16 @@ ApiStatus N(func_802A1848_71EE98)(Evt* script, s32 isInitialCall) { if (targetActor->yaw >= 360.0f) { targetActor->yaw = 360.0f; } - ret = 1; + cond = TRUE; } } } } - return (ret == 0) * ApiStatus_DONE2; + if (!cond) { + return ApiStatus_DONE2; + } + return ApiStatus_BLOCK; } #include "UseItem.inc.c" @@ -323,7 +257,7 @@ EntityModelScript N(modelCommandList) = { ems_End }; -EntityModelScript N(modelCommandList_unused1) = { +EntityModelScript N(modelCommandList2) = { ems_SetRenderMode(RENDER_MODE_ALPHATEST) ems_Draw(N(frame2_displayList),3) ems_Draw(N(frame1_displayList),2) @@ -333,7 +267,7 @@ EntityModelScript N(modelCommandList_unused1) = { ems_End }; -EntityModelScript N(modelCommandList_unused2) = { +EntityModelScript N(modelCommandList3) = { ems_SetRenderMode(RENDER_MODE_ALPHATEST) ems_Draw(N(frame1_displayList), 2) ems_Draw(N(frame3_displayList), 2) @@ -494,5 +428,29 @@ EvtScript N(main) = { }; s32 D_802A3E88_7214D8[] = { - 0, 0 + 0, 0, 0, + -30, 0, -50, + -27, 0, 30, + -70, 0, -5, + -105, 0, 30, + -110, 0, -50, + -145, 0, -5, + -170, 0, -50, + -190, 0, -30, + -210, 0, -10, +}; + +f32 D_802A3F00_721550[] = { 1.0f, 1.0f, 0.75f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.75f, 0.75f }; + +EntityModelScript* D_802A3F28_721578[] = { + &N(modelCommandList), + &N(modelCommandList2), + &N(modelCommandList3), + &N(modelCommandList), + &N(modelCommandList2), + &N(modelCommandList3), + &N(modelCommandList), + &N(modelCommandList2), + &N(modelCommandList3), + &N(modelCommandList) }; diff --git a/src/battle/partner/bombette.c b/src/battle/partner/bombette.c index 515e0610ea..7f5429483c 100644 --- a/src/battle/partner/bombette.c +++ b/src/battle/partner/bombette.c @@ -595,7 +595,7 @@ EvtScript N(takeTurn) = { EVT_EXEC_WAIT(N(firstStrike)) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/bow.c b/src/battle/partner/bow.c index 8f6c5798bb..51da752434 100644 --- a/src/battle/partner/bow.c +++ b/src/battle/partner/bow.c @@ -310,7 +310,7 @@ EvtScript N(takeTurn) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/goombario.c b/src/battle/partner/goombario.c index f103e3072b..d6618bfd4d 100644 --- a/src/battle/partner/goombario.c +++ b/src/battle/partner/goombario.c @@ -645,7 +645,7 @@ EvtScript N(takeTurn) = { EVT_EXEC_WAIT(N(firstStrike)) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/goompa.c b/src/battle/partner/goompa.c index c2ba519322..89cfaa8ac3 100644 --- a/src/battle/partner/goompa.c +++ b/src/battle/partner/goompa.c @@ -140,7 +140,7 @@ EvtScript N(takeTurn) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/kooper.c b/src/battle/partner/kooper.c index 8cb0ec8efe..72e634660e 100644 --- a/src/battle/partner/kooper.c +++ b/src/battle/partner/kooper.c @@ -346,7 +346,7 @@ EvtScript N(takeTurn) = { EVT_EXEC_WAIT(N(firstStrike)) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/lakilester.c b/src/battle/partner/lakilester.c index 3b8f8ba059..61397c2d08 100644 --- a/src/battle/partner/lakilester.c +++ b/src/battle/partner/lakilester.c @@ -267,7 +267,7 @@ EvtScript N(takeTurn) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/parakarry.c b/src/battle/partner/parakarry.c index 49e93af0b5..565444e6bc 100644 --- a/src/battle/partner/parakarry.c +++ b/src/battle/partner/parakarry.c @@ -781,7 +781,7 @@ EvtScript N(takeTurn) = { EVT_EXEC_WAIT(N(firstStrike)) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/sushie.c b/src/battle/partner/sushie.c index a8743a4ac6..4f9ebf17ca 100644 --- a/src/battle/partner/sushie.c +++ b/src/battle/partner/sushie.c @@ -549,7 +549,7 @@ EvtScript N(takeTurn) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/twink.c b/src/battle/partner/twink.c index c69f9f17ca..2ebcbf6dbb 100644 --- a/src/battle/partner/twink.c +++ b/src/battle/partner/twink.c @@ -173,7 +173,7 @@ EvtScript N(takeTurn) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/battle/partner/watt.c b/src/battle/partner/watt.c index 2ad9bfd657..1f50ba3cf2 100644 --- a/src/battle/partner/watt.c +++ b/src/battle/partner/watt.c @@ -622,7 +622,7 @@ EvtScript N(takeTurn) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_EXECUTE_ACTION) EVT_EXEC_WAIT(N(executeAction)) - EVT_CASE_EQ(PHASE_5) + EVT_CASE_EQ(PHASE_CELEBRATE) EVT_EXEC_WAIT(N(celebrate)) EVT_CASE_EQ(PHASE_RUN_AWAY_START) EVT_EXEC_WAIT(N(runAway)) diff --git a/src/entity/HeartBlock.c b/src/entity/HeartBlock.c index cf2520fe41..bd80e3d6d8 100644 --- a/src/entity/HeartBlock.c +++ b/src/entity/HeartBlock.c @@ -192,8 +192,8 @@ void entity_HeartBlockContent__anim_heal(Entity* entity, s32 arg1) { data->state++; entity->flags &= ~ENTITY_FLAGS_ALWAYS_FACE_CAMERA; data->rotationRate = -10.0f; - entity_set_render_script(entity, Entity_HeartBlockContent_RenderScriptHit); - entity->renderSetupFunc = &entity_HeartBlockContent_setupGfx; + entity_set_render_script(entity, &Entity_HeartBlockContent_RenderScriptHit); + entity->renderSetupFunc = entity_HeartBlockContent_setupGfx; } break; case 2: @@ -340,7 +340,7 @@ void entity_HeartBlockContent_init(Entity* entity) { void entity_HeartBlockContent_reset(Entity* entity) { entity_HeartBlockContent__reset(entity); - entity_set_render_script(entity, Entity_HeartBlockContent_RenderScriptIdle); + entity_set_render_script(entity, &Entity_HeartBlockContent_RenderScriptIdle); } void entity_HeartBlockContent_idle(Entity* entity) { @@ -353,7 +353,7 @@ void entity_HeartBlockContent_anim_heal(Entity* entity) { } void entity_HeartBlock_change_render_script(Entity* entity) { - entity_set_render_script(entity, Entity_HeartBlockContent_RenderScriptAfterHit); + entity_set_render_script(entity, &Entity_HeartBlockContent_RenderScriptAfterHit); } void entity_HeartBlock_show_tutorial_message(Entity* entity) { diff --git a/src/entity/HiddenPanel.c b/src/entity/HiddenPanel.c index edadcb463d..6bb0f7c3bb 100644 --- a/src/entity/HiddenPanel.c +++ b/src/entity/HiddenPanel.c @@ -319,7 +319,7 @@ void entity_HiddenPanel_init(Entity* entity) { if (gCurrentHiddenPanels.panelsCount & 1) { dlist = Gfx_AltHiddenPanel_RenderTop; - entity_set_render_script(entity, ERS_AltHiddenPanel); + entity_set_render_script(entity, &ERS_AltHiddenPanel); } else { dlist = Gfx_HiddenPanel_RenderTop; } diff --git a/src/entity/WoodenCrate.c b/src/entity/WoodenCrate.c index f370a73093..6e5a3355cc 100644 --- a/src/entity/WoodenCrate.c +++ b/src/entity/WoodenCrate.c @@ -229,7 +229,7 @@ s32 entity_WoodenCrate_idle(Entity* entity) { if (shouldBreak) { entity_WoodenCrate_reset_fragments(entity); - entity_set_render_script(entity, Entity_WoodenCrate_RenderShatteredScript); + entity_set_render_script(entity, &Entity_WoodenCrate_RenderShatteredScript); entity_start_script(entity); exec_entity_commandlist(entity); sfx_play_sound(SOUND_20AE); diff --git a/src/entity/default/BoardedFloor.c b/src/entity/default/BoardedFloor.c index 5ea04e777c..17d8166134 100644 --- a/src/entity/default/BoardedFloor.c +++ b/src/entity/default/BoardedFloor.c @@ -226,7 +226,7 @@ void Entity_BoardedFloor_shatter(Entity* entity) { data->fragmentPosY[i] += 1.0f; } - entity_set_render_script(entity, Entity_BoardedFloor_RenderScriptShattered); + entity_set_render_script(entity, &Entity_BoardedFloor_RenderScriptShattered); } EntityScript Entity_BoardedFloor_Script = { diff --git a/src/entity_model.c b/src/entity_model.c index 16ed9230d8..a888f55208 100644 --- a/src/entity_model.c +++ b/src/entity_model.c @@ -1,6 +1,7 @@ #include "common.h" +#include "entity.h" -s32 D_8014C260[] = { 0x00000000, 0x00000000 }; +EntityModelScript D_8014C260[] = { {ems_End}, {ems_End }}; Lights1 D_8014C268 = gdSPDefLights1(255, 255, 255, 0, 0, 0, 0, 0, 0); extern EntityModelList gWorldEntityModelList; @@ -85,7 +86,7 @@ void init_entity_models(void) { entity_fog_dist_max = 1000; } -s32 load_entity_model(s32* cmdList) { +s32 load_entity_model(EntityModelScript* cmdList) { EntityModel* newEntityModel; s32 i; @@ -123,7 +124,7 @@ s32 load_entity_model(s32* cmdList) { return i; } -s32 ALT_load_entity_model(s32* cmdList) { +s32 ALT_load_entity_model(EntityModelScript* cmdList) { EntityModel* newEntityModel; SpriteRasterInfo* imageData; s32 i; @@ -189,7 +190,7 @@ void exec_entity_model_commandlist(s32 idx) { s32 step_entity_model_commandlist(EntityModel* entityModel) { SpriteRasterInfo* imageData; - u32* curPos = entityModel->cmdListReadPos; + u32* curPos = entityModel->cmdListReadPos[0]; switch (*curPos++) { case 0: // kill model free_entity_model_by_ref(entityModel); @@ -197,25 +198,25 @@ s32 step_entity_model_commandlist(EntityModel* entityModel) { case 1: // set display list ptr entityModel->nextFrameTime = (f32) *curPos++; entityModel->gfx.displayList = (Gfx*) *curPos++; - entityModel->cmdListReadPos = curPos; + entityModel->cmdListReadPos = (EntityModelScript*) curPos; break; case 2: // restore saved position entityModel->cmdListReadPos = entityModel->cmdListSavedPos; return 1; case 3: // set saved position - entityModel->cmdListReadPos = entityModel->cmdListSavedPos = curPos; + entityModel->cmdListReadPos = entityModel->cmdListSavedPos = (EntityModelScript*) curPos; return 1; case 4: // set render mode entityModel->renderMode = *curPos++; - entityModel->cmdListReadPos = curPos; + entityModel->cmdListReadPos = (EntityModelScript*) curPos; return 1; case 5: // set flags entityModel->flags |= *curPos++; - entityModel->cmdListReadPos = curPos; + entityModel->cmdListReadPos = (EntityModelScript*) curPos; return 1; case 6: // clear flags entityModel->flags &= ~*curPos++; - entityModel->cmdListReadPos = curPos; + entityModel->cmdListReadPos = (EntityModelScript*) curPos; return 1; case 7: // set image data imageData = entityModel->gfx.imageData; @@ -224,7 +225,7 @@ s32 step_entity_model_commandlist(EntityModel* entityModel) { imageData->defaultPal = (PAL_PTR) *curPos++; imageData->width = *curPos++; imageData->height = *curPos++; - entityModel->cmdListReadPos = curPos; + entityModel->cmdListReadPos = (EntityModelScript*) curPos; break; } return 0; @@ -714,17 +715,15 @@ void draw_entity_model_E(s32 modelIdx, Mtx* transformMtx) { gDPPipeSync(gMasterGfxPos++); } -void set_entity_model_render_command_list(s32 idx, u32* commandList) { - u32* phi_a1; +void set_entity_model_render_command_list(s32 idx, EntityModelScript* cmdList) { EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~BATTLE_ENTITY_ID_MASK]; if (entityModel != NULL && entityModel->flags) { - phi_a1 = commandList; - if (commandList == NULL) { - phi_a1 = D_8014C260; + if (cmdList == NULL) { + cmdList = D_8014C260; } - entityModel->cmdListReadPos = phi_a1; - entityModel->cmdListSavedPos = phi_a1; + entityModel->cmdListReadPos = cmdList; + entityModel->cmdListSavedPos = cmdList; entityModel->nextFrameTime = 1.0f; entityModel->timeScale = 1.0f; } diff --git a/src/evt/virtual_entity.c b/src/evt/virtual_entity.c index 0727542875..e5194ae00f 100644 --- a/src/evt/virtual_entity.c +++ b/src/evt/virtual_entity.c @@ -1,12 +1,10 @@ #include "common.h" +#include "entity.h" extern VirtualEntityList bBattleVirtualEntityList; extern VirtualEntityList wWorldVirtualEntityList; extern VirtualEntityList* gCurrentVirtualEntityListPtr; -void virtual_entity_list_render_world(void); -void virtual_entity_list_render_UI(void); -s32 ALT_load_entity_model(s32* cmdList); s32 create_worker_backUI(void (*updateFunc)(void), void (*drawFunc)(void)); void virtual_entity_appendGfx_quad(u8 r, u8 g, u8 b, u8 a, u16 left, u16 top, u16 right, u16 bottom) { @@ -132,7 +130,7 @@ ApiStatus InitVirtualEntityList(Evt* script, s32 isInitialCall) { ApiStatus CreateVirtualEntityAt(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = evt_get_variable(script, *args++); - u32* cmdList = (u32*) evt_get_variable(script, *args++); + EntityModelScript* cmdList = (EntityModelScript*) evt_get_variable(script, *args++); VirtualEntity* virtualEntity = (*gCurrentVirtualEntityListPtr)[index]; virtualEntity->entityModelIndex = load_entity_model(cmdList); @@ -153,7 +151,7 @@ ApiStatus CreateVirtualEntityAt(Evt* script, s32 isInitialCall) { ApiStatus CreateVirtualEntity(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 outVar = *args++; - s32* unkStructPtr = (s32*)evt_get_variable(script, *args++); + EntityModelScript* cmdList = (EntityModelScript*)evt_get_variable(script, *args++); VirtualEntity* virtualEntity; s32 i; @@ -168,7 +166,7 @@ ApiStatus CreateVirtualEntity(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } - virtualEntity->entityModelIndex = load_entity_model(unkStructPtr); + virtualEntity->entityModelIndex = load_entity_model(cmdList); virtualEntity->pos.x = 0.0f; virtualEntity->pos.y = 0.0f; virtualEntity->pos.z = 0.0f; @@ -188,7 +186,7 @@ ApiStatus CreateVirtualEntity(Evt* script, s32 isInitialCall) { ApiStatus CreateVirtualEntity_ALT(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 outVar = *args++; - s32* unkStructPtr = (s32*) evt_get_variable(script, *args++); + EntityModelScript* cmdList = (EntityModelScript*) evt_get_variable(script, *args++); VirtualEntity* virtualEntity; s32 i; @@ -203,7 +201,7 @@ ApiStatus CreateVirtualEntity_ALT(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } - virtualEntity->entityModelIndex = ALT_load_entity_model(unkStructPtr); + virtualEntity->entityModelIndex = ALT_load_entity_model(cmdList); virtualEntity->pos.x = 0.0f; virtualEntity->pos.y = 0.0f; virtualEntity->pos.z = 0.0f; @@ -231,9 +229,9 @@ ApiStatus DeleteVirtualEntity(Evt* script, s32 isInitialCall) { ApiStatus SetVirtualEntityRenderCommands(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = evt_get_variable(script, *args++); - u32* commandList = (u32*) evt_get_variable(script, *args++); + EntityModelScript* cmdList = (EntityModelScript*) evt_get_variable(script, *args++); - set_entity_model_render_command_list((*gCurrentVirtualEntityListPtr)[index]->entityModelIndex, commandList); + set_entity_model_render_command_list((*gCurrentVirtualEntityListPtr)[index]->entityModelIndex, cmdList); return ApiStatus_DONE2; } @@ -531,7 +529,7 @@ VirtualEntity* virtual_entity_get_by_index(s32 index) { return (*gCurrentVirtualEntityListPtr)[index]; } -VirtualEntity* virtual_entity_create_at_index(s32 index, s32* entityModelData) { +VirtualEntity* virtual_entity_create_at_index(s32 index, EntityModelScript* entityModelData) { VirtualEntity* virtualEntity = (*gCurrentVirtualEntityListPtr)[index]; virtualEntity->entityModelIndex = load_entity_model(entityModelData); @@ -549,7 +547,7 @@ VirtualEntity* virtual_entity_create_at_index(s32 index, s32* entityModelData) { return (*gCurrentVirtualEntityListPtr)[index]; } -s32 virtual_entity_create(s32* cmdList) { +s32 virtual_entity_create(EntityModelScript* cmdList) { s32 i; VirtualEntity* virtualEntity; @@ -580,7 +578,7 @@ s32 virtual_entity_create(s32* cmdList) { return i; } -VirtualEntity* ALT_virtual_entity_create(s32* cmdList) { +VirtualEntity* ALT_virtual_entity_create(EntityModelScript* cmdList) { s32 i; VirtualEntity* virtualEntity; diff --git a/src/npc.c b/src/npc.c index 60f4a1aac8..505adb4c61 100644 --- a/src/npc.c +++ b/src/npc.c @@ -1,5 +1,6 @@ #include "common.h" #include "npc.h" +#include "entity.h" #include "effects.h" #include "sprite.h" #include "world/partners.h" diff --git a/src/world/area_tst/tst_04/tst_04_3_reflection.c b/src/world/area_tst/tst_04/tst_04_3_reflection.c index 0a83230dc0..58c43c81b2 100644 --- a/src/world/area_tst/tst_04/tst_04_3_reflection.c +++ b/src/world/area_tst/tst_04/tst_04_3_reflection.c @@ -1,5 +1,6 @@ #include "tst_04.h" #include "sprite.h" +#include "entity.h" #include "model.h" void N(worker_render_player_reflection)(void); diff --git a/src/world/area_tst/tst_11/tst_11_2_extra.c b/src/world/area_tst/tst_11/tst_11_2_extra.c index 86202706da..f07ac3ecde 100644 --- a/src/world/area_tst/tst_11/tst_11_2_extra.c +++ b/src/world/area_tst/tst_11/tst_11_2_extra.c @@ -1,4 +1,5 @@ #include "tst_11.h" +#include "entity.h" #include "sprite.h" void N(test_reflection_worker_render_wall)(void); diff --git a/src/world/common/atomic/Reflection.inc.c b/src/world/common/atomic/Reflection.inc.c index fc8c7d2f71..1cba05bee3 100644 --- a/src/world/common/atomic/Reflection.inc.c +++ b/src/world/common/atomic/Reflection.inc.c @@ -4,6 +4,7 @@ /// See also tst_11, which has a more primitive reflection implementation. #include "common.h" +#include "entity.h" #include "npc.h" #include "sprite.h" diff --git a/ver/us/asm/nonmatchings/18F340/func_80260BF4.s b/ver/us/asm/nonmatchings/18F340/func_80260BF4.s deleted file mode 100644 index 7c4f95fe80..0000000000 --- a/ver/us/asm/nonmatchings/18F340/func_80260BF4.s +++ /dev/null @@ -1,127 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80260BF4 -/* 18F4D4 80260BF4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 18F4D8 80260BF8 AFB20018 */ sw $s2, 0x18($sp) -/* 18F4DC 80260BFC 0080902D */ daddu $s2, $a0, $zero -/* 18F4E0 80260C00 AFB00010 */ sw $s0, 0x10($sp) -/* 18F4E4 80260C04 3C108028 */ lui $s0, %hi(D_80280FC0) -/* 18F4E8 80260C08 26100FC0 */ addiu $s0, $s0, %lo(D_80280FC0) -/* 18F4EC 80260C0C AFBF001C */ sw $ra, 0x1c($sp) -/* 18F4F0 80260C10 AFB10014 */ sw $s1, 0x14($sp) -/* 18F4F4 80260C14 86020000 */ lh $v0, ($s0) -/* 18F4F8 80260C18 86040002 */ lh $a0, 2($s0) -/* 18F4FC 80260C1C 0C00A67F */ jal rand_int -/* 18F500 80260C20 00442021 */ addu $a0, $v0, $a0 -/* 18F504 80260C24 86030000 */ lh $v1, ($s0) -/* 18F508 80260C28 3C118011 */ lui $s1, %hi(gPlayerData) -/* 18F50C 80260C2C 2631F290 */ addiu $s1, $s1, %lo(gPlayerData) -/* 18F510 80260C30 0043102A */ slt $v0, $v0, $v1 -/* 18F514 80260C34 10400019 */ beqz $v0, .L80260C9C -/* 18F518 80260C38 0000202D */ daddu $a0, $zero, $zero -/* 18F51C 80260C3C 0080182D */ daddu $v1, $a0, $zero -/* 18F520 80260C40 0200282D */ daddu $a1, $s0, $zero -.L80260C44: -/* 18F524 80260C44 8CA20004 */ lw $v0, 4($a1) -/* 18F528 80260C48 24630001 */ addiu $v1, $v1, 1 -/* 18F52C 80260C4C 00822021 */ addu $a0, $a0, $v0 -/* 18F530 80260C50 28620008 */ slti $v0, $v1, 8 -/* 18F534 80260C54 1440FFFB */ bnez $v0, .L80260C44 -/* 18F538 80260C58 24A50008 */ addiu $a1, $a1, 8 -/* 18F53C 80260C5C 0C00A67F */ jal rand_int -/* 18F540 80260C60 00000000 */ nop -/* 18F544 80260C64 0040202D */ daddu $a0, $v0, $zero -/* 18F548 80260C68 0000182D */ daddu $v1, $zero, $zero -/* 18F54C 80260C6C 0200282D */ daddu $a1, $s0, $zero -.L80260C70: -/* 18F550 80260C70 8CA20004 */ lw $v0, 4($a1) -/* 18F554 80260C74 00822023 */ subu $a0, $a0, $v0 -/* 18F558 80260C78 18800006 */ blez $a0, .L80260C94 -/* 18F55C 80260C7C 000310C0 */ sll $v0, $v1, 3 -/* 18F560 80260C80 24630001 */ addiu $v1, $v1, 1 -/* 18F564 80260C84 28620008 */ slti $v0, $v1, 8 -/* 18F568 80260C88 1440FFF9 */ bnez $v0, .L80260C70 -/* 18F56C 80260C8C 24A50008 */ addiu $a1, $a1, 8 -/* 18F570 80260C90 000310C0 */ sll $v0, $v1, 3 -.L80260C94: -/* 18F574 80260C94 08098364 */ j .L80260D90 -/* 18F578 80260C98 34420004 */ ori $v0, $v0, 4 -.L80260C9C: -/* 18F57C 80260C9C 82220002 */ lb $v0, 2($s1) -/* 18F580 80260CA0 82230003 */ lb $v1, 3($s1) -/* 18F584 80260CA4 44820000 */ mtc1 $v0, $f0 -/* 18F588 80260CA8 00000000 */ nop -/* 18F58C 80260CAC 46800020 */ cvt.s.w $f0, $f0 -/* 18F590 80260CB0 44831000 */ mtc1 $v1, $f2 -/* 18F594 80260CB4 00000000 */ nop -/* 18F598 80260CB8 468010A0 */ cvt.s.w $f2, $f2 -/* 18F59C 80260CBC 46020003 */ div.s $f0, $f0, $f2 -/* 18F5A0 80260CC0 3C013FD0 */ lui $at, 0x3fd0 -/* 18F5A4 80260CC4 44811800 */ mtc1 $at, $f3 -/* 18F5A8 80260CC8 44801000 */ mtc1 $zero, $f2 -/* 18F5AC 80260CCC 46000121 */ cvt.d.s $f4, $f0 -/* 18F5B0 80260CD0 4622203E */ c.le.d $f4, $f2 -/* 18F5B4 80260CD4 00000000 */ nop -/* 18F5B8 80260CD8 45000003 */ bc1f .L80260CE8 -/* 18F5BC 80260CDC 00000000 */ nop -/* 18F5C0 80260CE0 0809834D */ j .L80260D34 -/* 18F5C4 80260CE4 26100044 */ addiu $s0, $s0, 0x44 -.L80260CE8: -/* 18F5C8 80260CE8 3C013FE0 */ lui $at, 0x3fe0 -/* 18F5CC 80260CEC 44810800 */ mtc1 $at, $f1 -/* 18F5D0 80260CF0 44800000 */ mtc1 $zero, $f0 -/* 18F5D4 80260CF4 00000000 */ nop -/* 18F5D8 80260CF8 4620203E */ c.le.d $f4, $f0 -/* 18F5DC 80260CFC 00000000 */ nop -/* 18F5E0 80260D00 45000003 */ bc1f .L80260D10 -/* 18F5E4 80260D04 00000000 */ nop -/* 18F5E8 80260D08 0809834D */ j .L80260D34 -/* 18F5EC 80260D0C 26100084 */ addiu $s0, $s0, 0x84 -.L80260D10: -/* 18F5F0 80260D10 3C013FE8 */ lui $at, 0x3fe8 -/* 18F5F4 80260D14 44810800 */ mtc1 $at, $f1 -/* 18F5F8 80260D18 44800000 */ mtc1 $zero, $f0 -/* 18F5FC 80260D1C 00000000 */ nop -/* 18F600 80260D20 4620203E */ c.le.d $f4, $f0 -/* 18F604 80260D24 00000000 */ nop -/* 18F608 80260D28 45020002 */ bc1fl .L80260D34 -/* 18F60C 80260D2C 26100104 */ addiu $s0, $s0, 0x104 -/* 18F610 80260D30 261000C4 */ addiu $s0, $s0, 0xc4 -.L80260D34: -/* 18F614 80260D34 0000202D */ daddu $a0, $zero, $zero -/* 18F618 80260D38 0080182D */ daddu $v1, $a0, $zero -/* 18F61C 80260D3C 0200282D */ daddu $a1, $s0, $zero -.L80260D40: -/* 18F620 80260D40 8CA20000 */ lw $v0, ($a1) -/* 18F624 80260D44 24630001 */ addiu $v1, $v1, 1 -/* 18F628 80260D48 00822021 */ addu $a0, $a0, $v0 -/* 18F62C 80260D4C 28620008 */ slti $v0, $v1, 8 -/* 18F630 80260D50 1440FFFB */ bnez $v0, .L80260D40 -/* 18F634 80260D54 24A50008 */ addiu $a1, $a1, 8 -/* 18F638 80260D58 0C00A67F */ jal rand_int -/* 18F63C 80260D5C 00000000 */ nop -/* 18F640 80260D60 0040202D */ daddu $a0, $v0, $zero -/* 18F644 80260D64 0000182D */ daddu $v1, $zero, $zero -/* 18F648 80260D68 0200282D */ daddu $a1, $s0, $zero -.L80260D6C: -/* 18F64C 80260D6C 8CA20000 */ lw $v0, ($a1) -/* 18F650 80260D70 00822023 */ subu $a0, $a0, $v0 -/* 18F654 80260D74 18800006 */ blez $a0, .L80260D90 -/* 18F658 80260D78 000310C0 */ sll $v0, $v1, 3 -/* 18F65C 80260D7C 24630001 */ addiu $v1, $v1, 1 -/* 18F660 80260D80 28620008 */ slti $v0, $v1, 8 -/* 18F664 80260D84 1440FFF9 */ bnez $v0, .L80260D6C -/* 18F668 80260D88 24A50008 */ addiu $a1, $a1, 8 -/* 18F66C 80260D8C 000310C0 */ sll $v0, $v1, 3 -.L80260D90: -/* 18F670 80260D90 00501021 */ addu $v0, $v0, $s0 -/* 18F674 80260D94 8C420004 */ lw $v0, 4($v0) -/* 18F678 80260D98 AE420084 */ sw $v0, 0x84($s2) -/* 18F67C 80260D9C 8FBF001C */ lw $ra, 0x1c($sp) -/* 18F680 80260DA0 8FB20018 */ lw $s2, 0x18($sp) -/* 18F684 80260DA4 8FB10014 */ lw $s1, 0x14($sp) -/* 18F688 80260DA8 8FB00010 */ lw $s0, 0x10($sp) -/* 18F68C 80260DAC 24020002 */ addiu $v0, $zero, 2 -/* 18F690 80260DB0 03E00008 */ jr $ra -/* 18F694 80260DB4 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/audio/28910_len_5090/au_bgm_get_player_with_song_name.s b/ver/us/asm/nonmatchings/audio/28910_len_5090/au_bgm_get_player_with_song_name.s deleted file mode 100644 index 17695ce61e..0000000000 --- a/ver/us/asm/nonmatchings/audio/28910_len_5090/au_bgm_get_player_with_song_name.s +++ /dev/null @@ -1,25 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel au_bgm_get_player_with_song_name -/* 28B94 8004D794 3C05800A */ lui $a1, %hi(gBGMPlayerA) -/* 28B98 8004D798 8CA5A664 */ lw $a1, %lo(gBGMPlayerA)($a1) -/* 28B9C 8004D79C 8CA30000 */ lw $v1, ($a1) -/* 28BA0 8004D7A0 8C62005C */ lw $v0, 0x5c($v1) -/* 28BA4 8004D7A4 8C420008 */ lw $v0, 8($v0) -/* 28BA8 8004D7A8 10820009 */ beq $a0, $v0, .L8004D7D0 -/* 28BAC 8004D7AC 00000000 */ nop -/* 28BB0 8004D7B0 8C620060 */ lw $v0, 0x60($v1) -/* 28BB4 8004D7B4 8C420008 */ lw $v0, 8($v0) -/* 28BB8 8004D7B8 14820007 */ bne $a0, $v0, .L8004D7D8 -/* 28BBC 8004D7BC 00000000 */ nop -/* 28BC0 8004D7C0 3C02800A */ lui $v0, %hi(gBGMPlayerB) -/* 28BC4 8004D7C4 8C42A5FC */ lw $v0, %lo(gBGMPlayerB)($v0) -/* 28BC8 8004D7C8 03E00008 */ jr $ra -/* 28BCC 8004D7CC 00000000 */ nop -.L8004D7D0: -/* 28BD0 8004D7D0 03E00008 */ jr $ra -/* 28BD4 8004D7D4 00A0102D */ daddu $v0, $a1, $zero -.L8004D7D8: -/* 28BD8 8004D7D8 03E00008 */ jr $ra -/* 28BDC 8004D7DC 0000102D */ daddu $v0, $zero, $zero diff --git a/ver/us/asm/nonmatchings/battle/item/sleepy_sheep/battle_item_sleepy_sheep_func_802A123C_71E88C.s b/ver/us/asm/nonmatchings/battle/item/sleepy_sheep/battle_item_sleepy_sheep_func_802A123C_71E88C.s deleted file mode 100644 index 457de4cac3..0000000000 --- a/ver/us/asm/nonmatchings/battle/item/sleepy_sheep/battle_item_sleepy_sheep_func_802A123C_71E88C.s +++ /dev/null @@ -1,354 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_802A3E88_7214E0 -.word 0x00000000, 0xFFFFFFE2, 0x00000000, 0xFFFFFFCE, 0xFFFFFFE5, 0x00000000, 0x0000001E, 0xFFFFFFBA, 0x00000000, 0xFFFFFFFB, 0xFFFFFF97, 0x00000000, 0x0000001E, 0xFFFFFF92, 0x00000000, 0xFFFFFFCE, 0xFFFFFF6F, 0x00000000, 0xFFFFFFFB, 0xFFFFFF56, 0x00000000, 0xFFFFFFCE, 0xFFFFFF42, 0x00000000, 0xFFFFFFE2, 0xFFFFFF2E, 0x00000000, 0xFFFFFFF6 - -dlabel D_802A3F00_721550 -.word 0x3F800000, 0x3F800000, 0x3F400000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F400000, 0x3F400000 - -dlabel D_802A3F28_721578 -.word battle_item_sleepy_sheep_modelCommandList, 0x802A32A0, 0x802A32E0, battle_item_sleepy_sheep_modelCommandList, 0x802A32A0, 0x802A32E0, battle_item_sleepy_sheep_modelCommandList, 0x802A32A0, 0x802A32E0, battle_item_sleepy_sheep_modelCommandList - -.section .text - -glabel battle_item_sleepy_sheep_func_802A123C_71E88C -/* 71E88C 802A123C 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 71E890 802A1240 AFBE0038 */ sw $fp, 0x38($sp) -/* 71E894 802A1244 3C1E802A */ lui $fp, %hi(D_802A3F88) -/* 71E898 802A1248 27DE3F88 */ addiu $fp, $fp, %lo(D_802A3F88) -/* 71E89C 802A124C AFBF003C */ sw $ra, 0x3c($sp) -/* 71E8A0 802A1250 AFB70034 */ sw $s7, 0x34($sp) -/* 71E8A4 802A1254 AFB60030 */ sw $s6, 0x30($sp) -/* 71E8A8 802A1258 AFB5002C */ sw $s5, 0x2c($sp) -/* 71E8AC 802A125C AFB40028 */ sw $s4, 0x28($sp) -/* 71E8B0 802A1260 AFB30024 */ sw $s3, 0x24($sp) -/* 71E8B4 802A1264 AFB20020 */ sw $s2, 0x20($sp) -/* 71E8B8 802A1268 AFB1001C */ sw $s1, 0x1c($sp) -/* 71E8BC 802A126C AFB00018 */ sw $s0, 0x18($sp) -/* 71E8C0 802A1270 F7BA0058 */ sdc1 $f26, 0x58($sp) -/* 71E8C4 802A1274 F7B80050 */ sdc1 $f24, 0x50($sp) -/* 71E8C8 802A1278 F7B60048 */ sdc1 $f22, 0x48($sp) -/* 71E8CC 802A127C F7B40040 */ sdc1 $f20, 0x40($sp) -/* 71E8D0 802A1280 10A00002 */ beqz $a1, .L802A128C -/* 71E8D4 802A1284 AFA40060 */ sw $a0, 0x60($sp) -/* 71E8D8 802A1288 AC800070 */ sw $zero, 0x70($a0) -.L802A128C: -/* 71E8DC 802A128C 8FA80060 */ lw $t0, 0x60($sp) -/* 71E8E0 802A1290 8D030070 */ lw $v1, 0x70($t0) -/* 71E8E4 802A1294 24020001 */ addiu $v0, $zero, 1 -/* 71E8E8 802A1298 1062005A */ beq $v1, $v0, .L802A1404 -/* 71E8EC 802A129C 28620002 */ slti $v0, $v1, 2 -/* 71E8F0 802A12A0 10400005 */ beqz $v0, .L802A12B8 -/* 71E8F4 802A12A4 24020002 */ addiu $v0, $zero, 2 -/* 71E8F8 802A12A8 10600007 */ beqz $v1, .L802A12C8 -/* 71E8FC 802A12AC 0000102D */ daddu $v0, $zero, $zero -/* 71E900 802A12B0 080A85C0 */ j .L802A1700 -/* 71E904 802A12B4 00000000 */ nop -.L802A12B8: -/* 71E908 802A12B8 10620104 */ beq $v1, $v0, .L802A16CC -/* 71E90C 802A12BC 0000102D */ daddu $v0, $zero, $zero -/* 71E910 802A12C0 080A85C0 */ j .L802A1700 -/* 71E914 802A12C4 00000000 */ nop -.L802A12C8: -/* 71E918 802A12C8 0000882D */ daddu $s1, $zero, $zero -/* 71E91C 802A12CC 3C17802A */ lui $s7, %hi(D_802A3F00_721550) -/* 71E920 802A12D0 26F73F00 */ addiu $s7, $s7, %lo(D_802A3F00_721550) -/* 71E924 802A12D4 24160008 */ addiu $s6, $zero, 8 -/* 71E928 802A12D8 24150004 */ addiu $s5, $zero, 4 -/* 71E92C 802A12DC 3C14802A */ lui $s4, %hi(D_802A3E88_7214D8) -/* 71E930 802A12E0 26943E88 */ addiu $s4, $s4, %lo(D_802A3E88_7214D8) -/* 71E934 802A12E4 3C13802A */ lui $s3, %hi(D_802A3F58) -/* 71E938 802A12E8 26733F58 */ addiu $s3, $s3, %lo(D_802A3F58) -/* 71E93C 802A12EC 3C01C348 */ lui $at, 0xc348 -/* 71E940 802A12F0 44810000 */ mtc1 $at, $f0 -/* 71E944 802A12F4 3C014120 */ lui $at, 0x4120 -/* 71E948 802A12F8 44811000 */ mtc1 $at, $f2 -/* 71E94C 802A12FC 3C12802A */ lui $s2, %hi(D_802A3F28_721578) -/* 71E950 802A1300 26523F28 */ addiu $s2, $s2, %lo(D_802A3F28_721578) -/* 71E954 802A1304 E7C00000 */ swc1 $f0, ($fp) -/* 71E958 802A1308 E7C20008 */ swc1 $f2, 8($fp) -.L802A130C: -/* 71E95C 802A130C 8E440000 */ lw $a0, ($s2) -/* 71E960 802A1310 26520004 */ addiu $s2, $s2, 4 -/* 71E964 802A1314 0C0B5083 */ jal virtual_entity_create -/* 71E968 802A1318 26310001 */ addiu $s1, $s1, 1 -/* 71E96C 802A131C 3C08802A */ lui $t0, %hi(D_802A3E88_7214D8) -/* 71E970 802A1320 25083E88 */ addiu $t0, $t0, %lo(D_802A3E88_7214D8) -/* 71E974 802A1324 02A81821 */ addu $v1, $s5, $t0 -/* 71E978 802A1328 AE620000 */ sw $v0, ($s3) -/* 71E97C 802A132C C4740000 */ lwc1 $f20, ($v1) -/* 71E980 802A1330 4680A520 */ cvt.s.w $f20, $f20 -/* 71E984 802A1334 0040802D */ daddu $s0, $v0, $zero -/* 71E988 802A1338 0200202D */ daddu $a0, $s0, $zero -/* 71E98C 802A133C 4600A10D */ trunc.w.s $f4, $f20 -/* 71E990 802A1340 44062000 */ mfc1 $a2, $f4 -/* 71E994 802A1344 3C08802A */ lui $t0, %hi(D_802A3E88_7214D8) -/* 71E998 802A1348 25083E88 */ addiu $t0, $t0, %lo(D_802A3E88_7214D8) -/* 71E99C 802A134C 02C81021 */ addu $v0, $s6, $t0 -/* 71E9A0 802A1350 26D6000C */ addiu $s6, $s6, 0xc -/* 71E9A4 802A1354 26B5000C */ addiu $s5, $s5, 0xc -/* 71E9A8 802A1358 C6820000 */ lwc1 $f2, ($s4) -/* 71E9AC 802A135C 468010A0 */ cvt.s.w $f2, $f2 -/* 71E9B0 802A1360 C7C00000 */ lwc1 $f0, ($fp) -/* 71E9B4 802A1364 2694000C */ addiu $s4, $s4, 0xc -/* 71E9B8 802A1368 46001580 */ add.s $f22, $f2, $f0 -/* 71E9BC 802A136C C7C20008 */ lwc1 $f2, 8($fp) -/* 71E9C0 802A1370 C4400000 */ lwc1 $f0, ($v0) -/* 71E9C4 802A1374 46800020 */ cvt.s.w $f0, $f0 -/* 71E9C8 802A1378 46020600 */ add.s $f24, $f0, $f2 -/* 71E9CC 802A137C 4600B10D */ trunc.w.s $f4, $f22 -/* 71E9D0 802A1380 44052000 */ mfc1 $a1, $f4 -/* 71E9D4 802A1384 4600C10D */ trunc.w.s $f4, $f24 -/* 71E9D8 802A1388 44072000 */ mfc1 $a3, $f4 -/* 71E9DC 802A138C 0C0B50D9 */ jal virtual_entity_set_pos -/* 71E9E0 802A1390 26730004 */ addiu $s3, $s3, 4 -/* 71E9E4 802A1394 0200202D */ daddu $a0, $s0, $zero -/* 71E9E8 802A1398 8EE50000 */ lw $a1, ($s7) -/* 71E9EC 802A139C 26F70004 */ addiu $s7, $s7, 4 -/* 71E9F0 802A13A0 3C073F80 */ lui $a3, 0x3f80 -/* 71E9F4 802A13A4 0C0B50EB */ jal virtual_entity_set_scale -/* 71E9F8 802A13A8 00A0302D */ daddu $a2, $a1, $zero -/* 71E9FC 802A13AC 2A22000A */ slti $v0, $s1, 0xa -/* 71EA00 802A13B0 1440FFD6 */ bnez $v0, .L802A130C -/* 71EA04 802A13B4 00000000 */ nop -/* 71EA08 802A13B8 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 71EA0C 802A13BC 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 71EA10 802A13C0 94440134 */ lhu $a0, 0x134($v0) -/* 71EA14 802A13C4 3C02CCCC */ lui $v0, 0xcccc -/* 71EA18 802A13C8 3442CCCD */ ori $v0, $v0, 0xcccd -/* 71EA1C 802A13CC 00820019 */ multu $a0, $v0 -/* 71EA20 802A13D0 8FA80060 */ lw $t0, 0x60($sp) -/* 71EA24 802A13D4 24020001 */ addiu $v0, $zero, 1 -/* 71EA28 802A13D8 AD020070 */ sw $v0, 0x70($t0) -/* 71EA2C 802A13DC 00004010 */ mfhi $t0 -/* 71EA30 802A13E0 000818C2 */ srl $v1, $t0, 3 -/* 71EA34 802A13E4 00031080 */ sll $v0, $v1, 2 -/* 71EA38 802A13E8 00431021 */ addu $v0, $v0, $v1 -/* 71EA3C 802A13EC 00021040 */ sll $v0, $v0, 1 -/* 71EA40 802A13F0 00822023 */ subu $a0, $a0, $v0 -/* 71EA44 802A13F4 8FA80060 */ lw $t0, 0x60($sp) -/* 71EA48 802A13F8 3084FFFF */ andi $a0, $a0, 0xffff -/* 71EA4C 802A13FC 080A85BF */ j .L802A16FC -/* 71EA50 802A1400 AD040074 */ sw $a0, 0x74($t0) -.L802A1404: -/* 71EA54 802A1404 C7C00000 */ lwc1 $f0, ($fp) -/* 71EA58 802A1408 3C0140C0 */ lui $at, 0x40c0 -/* 71EA5C 802A140C 44811000 */ mtc1 $at, $f2 -/* 71EA60 802A1410 00000000 */ nop -/* 71EA64 802A1414 46020000 */ add.s $f0, $f0, $f2 -/* 71EA68 802A1418 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 71EA6C 802A141C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 71EA70 802A1420 E7C00000 */ swc1 $f0, ($fp) -/* 71EA74 802A1424 94430134 */ lhu $v1, 0x134($v0) -/* 71EA78 802A1428 3C02AAAA */ lui $v0, 0xaaaa -/* 71EA7C 802A142C 3442AAAB */ ori $v0, $v0, 0xaaab -/* 71EA80 802A1430 00620019 */ multu $v1, $v0 -/* 71EA84 802A1434 00004010 */ mfhi $t0 -/* 71EA88 802A1438 00082042 */ srl $a0, $t0, 1 -/* 71EA8C 802A143C 00041040 */ sll $v0, $a0, 1 -/* 71EA90 802A1440 00441021 */ addu $v0, $v0, $a0 -/* 71EA94 802A1444 00621823 */ subu $v1, $v1, $v0 -/* 71EA98 802A1448 3063FFFF */ andi $v1, $v1, 0xffff -/* 71EA9C 802A144C 14600011 */ bnez $v1, .L802A1494 -/* 71EAA0 802A1450 0000A82D */ daddu $s5, $zero, $zero -/* 71EAA4 802A1454 8FA80060 */ lw $t0, 0x60($sp) -/* 71EAA8 802A1458 3C026666 */ lui $v0, 0x6666 -/* 71EAAC 802A145C 8D040074 */ lw $a0, 0x74($t0) -/* 71EAB0 802A1460 34426667 */ ori $v0, $v0, 0x6667 -/* 71EAB4 802A1464 24840001 */ addiu $a0, $a0, 1 -/* 71EAB8 802A1468 00820018 */ mult $a0, $v0 -/* 71EABC 802A146C 000417C3 */ sra $v0, $a0, 0x1f -/* 71EAC0 802A1470 00004010 */ mfhi $t0 -/* 71EAC4 802A1474 00081883 */ sra $v1, $t0, 2 -/* 71EAC8 802A1478 00621823 */ subu $v1, $v1, $v0 -/* 71EACC 802A147C 00031080 */ sll $v0, $v1, 2 -/* 71EAD0 802A1480 00431021 */ addu $v0, $v0, $v1 -/* 71EAD4 802A1484 00021040 */ sll $v0, $v0, 1 -/* 71EAD8 802A1488 8FA80060 */ lw $t0, 0x60($sp) -/* 71EADC 802A148C 00822023 */ subu $a0, $a0, $v0 -/* 71EAE0 802A1490 AD040074 */ sw $a0, 0x74($t0) -.L802A1494: -/* 71EAE4 802A1494 0000882D */ daddu $s1, $zero, $zero -/* 71EAE8 802A1498 3C014220 */ lui $at, 0x4220 -/* 71EAEC 802A149C 4481D000 */ mtc1 $at, $f26 -/* 71EAF0 802A14A0 24140008 */ addiu $s4, $zero, 8 -/* 71EAF4 802A14A4 24130004 */ addiu $s3, $zero, 4 -/* 71EAF8 802A14A8 3C16802A */ lui $s6, %hi(D_802A3E88_7214D8) -/* 71EAFC 802A14AC 26D63E88 */ addiu $s6, $s6, %lo(D_802A3E88_7214D8) -/* 71EB00 802A14B0 02C0902D */ daddu $s2, $s6, $zero -/* 71EB04 802A14B4 3C10802A */ lui $s0, %hi(D_802A3F58) -/* 71EB08 802A14B8 26103F58 */ addiu $s0, $s0, %lo(D_802A3F58) -.L802A14BC: -/* 71EB0C 802A14BC 02761021 */ addu $v0, $s3, $s6 -/* 71EB10 802A14C0 C4540000 */ lwc1 $f20, ($v0) -/* 71EB14 802A14C4 4680A520 */ cvt.s.w $f20, $f20 -/* 71EB18 802A14C8 4600A10D */ trunc.w.s $f4, $f20 -/* 71EB1C 802A14CC 44062000 */ mfc1 $a2, $f4 -/* 71EB20 802A14D0 C6400000 */ lwc1 $f0, ($s2) -/* 71EB24 802A14D4 46800020 */ cvt.s.w $f0, $f0 -/* 71EB28 802A14D8 C7C20000 */ lwc1 $f2, ($fp) -/* 71EB2C 802A14DC 02961021 */ addu $v0, $s4, $s6 -/* 71EB30 802A14E0 46020580 */ add.s $f22, $f0, $f2 -/* 71EB34 802A14E4 C7C20008 */ lwc1 $f2, 8($fp) -/* 71EB38 802A14E8 C4400000 */ lwc1 $f0, ($v0) -/* 71EB3C 802A14EC 46800020 */ cvt.s.w $f0, $f0 -/* 71EB40 802A14F0 46020600 */ add.s $f24, $f0, $f2 -/* 71EB44 802A14F4 8E040000 */ lw $a0, ($s0) -/* 71EB48 802A14F8 4600B10D */ trunc.w.s $f4, $f22 -/* 71EB4C 802A14FC 44052000 */ mfc1 $a1, $f4 -/* 71EB50 802A1500 4600C10D */ trunc.w.s $f4, $f24 -/* 71EB54 802A1504 44072000 */ mfc1 $a3, $f4 -/* 71EB58 802A1508 0C0B50D9 */ jal virtual_entity_set_pos -/* 71EB5C 802A150C 00000000 */ nop -/* 71EB60 802A1510 56A00038 */ bnel $s5, $zero, .L802A15F4 -/* 71EB64 802A1514 2694000C */ addiu $s4, $s4, 0xc -/* 71EB68 802A1518 8FA80060 */ lw $t0, 0x60($sp) -/* 71EB6C 802A151C 8D020074 */ lw $v0, 0x74($t0) -/* 71EB70 802A1520 54510034 */ bnel $v0, $s1, .L802A15F4 -/* 71EB74 802A1524 2694000C */ addiu $s4, $s4, 0xc -/* 71EB78 802A1528 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 71EB7C 802A152C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 71EB80 802A1530 94440134 */ lhu $a0, 0x134($v0) -/* 71EB84 802A1534 3C02CCCC */ lui $v0, 0xcccc -/* 71EB88 802A1538 3442CCCD */ ori $v0, $v0, 0xcccd -/* 71EB8C 802A153C 00820019 */ multu $a0, $v0 -/* 71EB90 802A1540 00004010 */ mfhi $t0 -/* 71EB94 802A1544 00081882 */ srl $v1, $t0, 2 -/* 71EB98 802A1548 00031080 */ sll $v0, $v1, 2 -/* 71EB9C 802A154C 00431021 */ addu $v0, $v0, $v1 -/* 71EBA0 802A1550 00822023 */ subu $a0, $a0, $v0 -/* 71EBA4 802A1554 3084FFFF */ andi $a0, $a0, 0xffff -/* 71EBA8 802A1558 54800026 */ bnel $a0, $zero, .L802A15F4 -/* 71EBAC 802A155C 2694000C */ addiu $s4, $s4, 0xc -/* 71EBB0 802A1560 44800000 */ mtc1 $zero, $f0 -/* 71EBB4 802A1564 00000000 */ nop -/* 71EBB8 802A1568 4616003C */ c.lt.s $f0, $f22 -/* 71EBBC 802A156C 00000000 */ nop -/* 71EBC0 802A1570 45000013 */ bc1f .L802A15C0 -/* 71EBC4 802A1574 00000000 */ nop -/* 71EBC8 802A1578 3C0142C8 */ lui $at, 0x42c8 -/* 71EBCC 802A157C 44810000 */ mtc1 $at, $f0 -/* 71EBD0 802A1580 00000000 */ nop -/* 71EBD4 802A1584 4616003C */ c.lt.s $f0, $f22 -/* 71EBD8 802A1588 00000000 */ nop -/* 71EBDC 802A158C 45000005 */ bc1f .L802A15A4 -/* 71EBE0 802A1590 4600B506 */ mov.s $f20, $f22 -/* 71EBE4 802A1594 3C014248 */ lui $at, 0x4248 -/* 71EBE8 802A1598 44810000 */ mtc1 $at, $f0 -/* 71EBEC 802A159C 00000000 */ nop -/* 71EBF0 802A15A0 4600A501 */ sub.s $f20, $f20, $f0 -.L802A15A4: -/* 71EBF4 802A15A4 4600A10D */ trunc.w.s $f4, $f20 -/* 71EBF8 802A15A8 44042000 */ mfc1 $a0, $f4 -/* 71EBFC 802A15AC 0C00A67F */ jal rand_int -/* 71EC00 802A15B0 00000000 */ nop -/* 71EC04 802A15B4 4482A000 */ mtc1 $v0, $f20 -/* 71EC08 802A15B8 00000000 */ nop -/* 71EC0C 802A15BC 4680A520 */ cvt.s.w $f20, $f20 -.L802A15C0: -/* 71EC10 802A15C0 4616D03C */ c.lt.s $f26, $f22 -/* 71EC14 802A15C4 00000000 */ nop -/* 71EC18 802A15C8 45000003 */ bc1f .L802A15D8 -/* 71EC1C 802A15CC 24040003 */ addiu $a0, $zero, 3 -/* 71EC20 802A15D0 461AB001 */ sub.s $f0, $f22, $f26 -/* 71EC24 802A15D4 46000587 */ neg.s $f22, $f0 -.L802A15D8: -/* 71EC28 802A15D8 4405B000 */ mfc1 $a1, $f22 -/* 71EC2C 802A15DC 4406A000 */ mfc1 $a2, $f20 -/* 71EC30 802A15E0 4407C000 */ mfc1 $a3, $f24 -/* 71EC34 802A15E4 24150001 */ addiu $s5, $zero, 1 -/* 71EC38 802A15E8 0C01BEB4 */ jal fx_landing_dust -/* 71EC3C 802A15EC AFA00010 */ sw $zero, 0x10($sp) -/* 71EC40 802A15F0 2694000C */ addiu $s4, $s4, 0xc -.L802A15F4: -/* 71EC44 802A15F4 2673000C */ addiu $s3, $s3, 0xc -/* 71EC48 802A15F8 2652000C */ addiu $s2, $s2, 0xc -/* 71EC4C 802A15FC 26310001 */ addiu $s1, $s1, 1 -/* 71EC50 802A1600 2A22000A */ slti $v0, $s1, 0xa -/* 71EC54 802A1604 1440FFAD */ bnez $v0, .L802A14BC -/* 71EC58 802A1608 26100004 */ addiu $s0, $s0, 4 -/* 71EC5C 802A160C 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 71EC60 802A1610 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 71EC64 802A1614 94420134 */ lhu $v0, 0x134($v0) -/* 71EC68 802A1618 30420001 */ andi $v0, $v0, 1 -/* 71EC6C 802A161C 10400020 */ beqz $v0, .L802A16A0 -/* 71EC70 802A1620 00000000 */ nop -/* 71EC74 802A1624 0C00A67F */ jal rand_int -/* 71EC78 802A1628 24040009 */ addiu $a0, $zero, 9 -/* 71EC7C 802A162C 00021840 */ sll $v1, $v0, 1 -/* 71EC80 802A1630 00621821 */ addu $v1, $v1, $v0 -/* 71EC84 802A1634 24620001 */ addiu $v0, $v1, 1 -/* 71EC88 802A1638 00021080 */ sll $v0, $v0, 2 -/* 71EC8C 802A163C 3C01802A */ lui $at, %hi(D_802A3E88_7214D8) -/* 71EC90 802A1640 00220821 */ addu $at, $at, $v0 -/* 71EC94 802A1644 C4343E88 */ lwc1 $f20, %lo(D_802A3E88_7214D8)($at) -/* 71EC98 802A1648 4680A520 */ cvt.s.w $f20, $f20 -/* 71EC9C 802A164C 00031080 */ sll $v0, $v1, 2 -/* 71ECA0 802A1650 3C01802A */ lui $at, %hi(D_802A3E88_7214D8) -/* 71ECA4 802A1654 00220821 */ addu $at, $at, $v0 -/* 71ECA8 802A1658 C4203E88 */ lwc1 $f0, %lo(D_802A3E88_7214D8)($at) -/* 71ECAC 802A165C 46800020 */ cvt.s.w $f0, $f0 -/* 71ECB0 802A1660 C7C20000 */ lwc1 $f2, ($fp) -/* 71ECB4 802A1664 24630002 */ addiu $v1, $v1, 2 -/* 71ECB8 802A1668 46020000 */ add.s $f0, $f0, $f2 -/* 71ECBC 802A166C 00031880 */ sll $v1, $v1, 2 -/* 71ECC0 802A1670 C7C20008 */ lwc1 $f2, 8($fp) -/* 71ECC4 802A1674 44050000 */ mfc1 $a1, $f0 -/* 71ECC8 802A1678 3C01802A */ lui $at, %hi(D_802A3E88_7214D8) -/* 71ECCC 802A167C 00230821 */ addu $at, $at, $v1 -/* 71ECD0 802A1680 C4203E88 */ lwc1 $f0, %lo(D_802A3E88_7214D8)($at) -/* 71ECD4 802A1684 46800020 */ cvt.s.w $f0, $f0 -/* 71ECD8 802A1688 46020000 */ add.s $f0, $f0, $f2 -/* 71ECDC 802A168C 4406A000 */ mfc1 $a2, $f20 -/* 71ECE0 802A1690 44070000 */ mfc1 $a3, $f0 -/* 71ECE4 802A1694 24040002 */ addiu $a0, $zero, 2 -/* 71ECE8 802A1698 0C01BEB4 */ jal fx_landing_dust -/* 71ECEC 802A169C AFA00010 */ sw $zero, 0x10($sp) -.L802A16A0: -/* 71ECF0 802A16A0 C7C20000 */ lwc1 $f2, ($fp) -/* 71ECF4 802A16A4 3C0143A0 */ lui $at, 0x43a0 -/* 71ECF8 802A16A8 44810000 */ mtc1 $at, $f0 -/* 71ECFC 802A16AC 00000000 */ nop -/* 71ED00 802A16B0 4602003E */ c.le.s $f0, $f2 -/* 71ED04 802A16B4 00000000 */ nop -/* 71ED08 802A16B8 45000010 */ bc1f .L802A16FC -/* 71ED0C 802A16BC 24020002 */ addiu $v0, $zero, 2 -/* 71ED10 802A16C0 8FA80060 */ lw $t0, 0x60($sp) -/* 71ED14 802A16C4 080A85BF */ j .L802A16FC -/* 71ED18 802A16C8 AD020070 */ sw $v0, 0x70($t0) -.L802A16CC: -/* 71ED1C 802A16CC 0000882D */ daddu $s1, $zero, $zero -/* 71ED20 802A16D0 3C10802A */ lui $s0, %hi(D_802A3F58) -/* 71ED24 802A16D4 26103F58 */ addiu $s0, $s0, %lo(D_802A3F58) -.L802A16D8: -/* 71ED28 802A16D8 8E040000 */ lw $a0, ($s0) -/* 71ED2C 802A16DC 26100004 */ addiu $s0, $s0, 4 -/* 71ED30 802A16E0 0C0B50FD */ jal virtual_entity_delete_by_index -/* 71ED34 802A16E4 26310001 */ addiu $s1, $s1, 1 -/* 71ED38 802A16E8 2A22000A */ slti $v0, $s1, 0xa -/* 71ED3C 802A16EC 1440FFFA */ bnez $v0, .L802A16D8 -/* 71ED40 802A16F0 24020002 */ addiu $v0, $zero, 2 -/* 71ED44 802A16F4 080A85C0 */ j .L802A1700 -/* 71ED48 802A16F8 00000000 */ nop -.L802A16FC: -/* 71ED4C 802A16FC 0000102D */ daddu $v0, $zero, $zero -.L802A1700: -/* 71ED50 802A1700 8FBF003C */ lw $ra, 0x3c($sp) -/* 71ED54 802A1704 8FBE0038 */ lw $fp, 0x38($sp) -/* 71ED58 802A1708 8FB70034 */ lw $s7, 0x34($sp) -/* 71ED5C 802A170C 8FB60030 */ lw $s6, 0x30($sp) -/* 71ED60 802A1710 8FB5002C */ lw $s5, 0x2c($sp) -/* 71ED64 802A1714 8FB40028 */ lw $s4, 0x28($sp) -/* 71ED68 802A1718 8FB30024 */ lw $s3, 0x24($sp) -/* 71ED6C 802A171C 8FB20020 */ lw $s2, 0x20($sp) -/* 71ED70 802A1720 8FB1001C */ lw $s1, 0x1c($sp) -/* 71ED74 802A1724 8FB00018 */ lw $s0, 0x18($sp) -/* 71ED78 802A1728 D7BA0058 */ ldc1 $f26, 0x58($sp) -/* 71ED7C 802A172C D7B80050 */ ldc1 $f24, 0x50($sp) -/* 71ED80 802A1730 D7B60048 */ ldc1 $f22, 0x48($sp) -/* 71ED84 802A1734 D7B40040 */ ldc1 $f20, 0x40($sp) -/* 71ED88 802A1738 03E00008 */ jr $ra -/* 71ED8C 802A173C 27BD0060 */ addiu $sp, $sp, 0x60 diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 4382ee98d8..852d16f1d3 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -15914,6 +15914,11 @@ segments: subsegments: - [0xEFEB00, c] - [0xEFF440, bin] # some of this is audio-related and not part of this overlay + +############# +### Audio ### +############# + - [0xF00000, bin, SBN] - [0xF007C0, bin, bgm/Battle_Fanfare_02] # BGM start - [0xF02160, bin, bgm/Hey_You_03] - [0xF03740, bin, bgm/The_Goomba_King_s_Decree_07] @@ -16058,52 +16063,34 @@ segments: - [0xFAD8F0, bin, bgm/SMW_Remix_2F] - [0xFADE70, bin, bgm/New_Partner_82] # BGM end - [0xFAE860, bin] # more audio stuff + - [0x19425C0, bin] # INIT file +############### +### Sprites ### +############### + - [0x1942C40, bin] + - [0x1943000, bin] # sprite data build metadata (build date, major file divisions) - - [0x1943000, bin] # sprite data build metadata + # player sprite raster table: - [0x1943020, bin] # Player sprite table - - [0x1943BA0, bin] # Mario world sprites - - [0x199A8C0, bin] # Retro sprites - - [0x199BB00, bin] # Princess Peach sprites - - [0x19E0970, bin] # Player sprite Yay0 table (following 13 entries) - - start: 0x19E09A8 - type: Yay0 - align: 8 - - start: 0x19E1390 - type: Yay0 - align: 8 - - start: 0x19E1888 - type: Yay0 - align: 8 - - start: 0x19E2330 - type: Yay0 - align: 8 - - start: 0x19E2DE0 - type: Yay0 - align: 8 - - start: 0x19E3208 - type: Yay0 - align: 8 - - start: 0x19E3BA8 - type: Yay0 - align: 8 - - start: 0x19E3FD8 - type: Yay0 - align: 8 - - start: 0x19E4828 - type: Yay0 - align: 8 - - start: 0x19E4BE0 - type: Yay0 - align: 8 - - start: 0x19E5758 - type: Yay0 - align: 8 - - start: 0x19E5950 - type: Yay0 - align: 8 - - start: 0x19E62A0 - type: Yay0 - align: 8 + # - [0x1943BA0, bin] # Mario world sprites + # - [0x199A8C0, bin] # Retro sprites + # - [0x199BB00, bin] # Princess Peach sprites + + - [0x19E0970, bin] # Player sprite Yay0 table (offsets to the following 13 entries) + - { start: 0x19E09A8, type: Yay0, align: 8 } + - { start: 0x19E1390, type: Yay0, align: 8 } + - { start: 0x19E1888, type: Yay0, align: 8 } + - { start: 0x19E2330, type: Yay0, align: 8 } + - { start: 0x19E2DE0, type: Yay0, align: 8 } + - { start: 0x19E3208, type: Yay0, align: 8 } + - { start: 0x19E3BA8, type: Yay0, align: 8 } + - { start: 0x19E3FD8, type: Yay0, align: 8 } + - { start: 0x19E4828, type: Yay0, align: 8 } + - { start: 0x19E4BE0, type: Yay0, align: 8 } + - { start: 0x19E5758, type: Yay0, align: 8 } + - { start: 0x19E5950, type: Yay0, align: 8 } + - { start: 0x19E62A0, type: Yay0, align: 8 } + - start: 0x19E67B8 align: 8 type: pm_npc_sprites @@ -16343,7 +16330,7 @@ segments: - ParadeShyGuy - ParadeTwink - Leaf - - [0x1B82208, bin] # todo: figure out what this is + - [0x1B82208, bin] # end of sprite data - todo: figure out what this is - start: 0x1B83000 type: pm_msg files: diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 3412002eca..76e6df4b61 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -6798,7 +6798,7 @@ func_80260A60 = 0x80260A60; // type:func rom:0x18F340 IsPartnerImmobile = 0x80260AD4; // type:func rom:0x18F3B4 activate_defend_command = 0x80260B04; // type:func rom:0x18F3E4 func_80260B70 = 0x80260B70; // type:func rom:0x18F450 -func_80260BF4 = 0x80260BF4; // type:func rom:0x18F4D4 +ChoosePlayerCelebrationAnim = 0x80260BF4; // type:func rom:0x18F4D4 func_80260DB8 = 0x80260DB8; // type:func rom:0x18F698 func_80260DD8 = 0x80260DD8; // type:func rom:0x18F6B8 func_80260E38 = 0x80260E38; // type:func rom:0x18F718