From f394da14cb1f738d737116e38b7b2150200229e4 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 12 Oct 2022 06:13:08 +0900 Subject: [PATCH] Floaters (#816) * progrz * 3 big boys * play_movement_dust_effects * clean --- include/enums.h | 1 + include/variables.h | 4 - src/190B20.c | 26 +- src/19FAF0.c | 701 ++++++++++- src/battle/star/star_beam/796FC0.c | 537 +++++++- tools/find_similar_areas.py | 76 +- .../190B20/play_movement_dust_effects.s | 98 -- .../asm/nonmatchings/19FAF0/func_80274A18.s | 609 ---------- .../asm/nonmatchings/19FAF0/func_802752AC.s | 868 ------------- .../asm/nonmatchings/19FAF0/func_80275F00.s | 1078 ----------------- .../star_beam/796FC0/func_802A1518_7974D8.s | 8 +- 11 files changed, 1266 insertions(+), 2740 deletions(-) delete mode 100644 ver/us/asm/nonmatchings/190B20/play_movement_dust_effects.s delete mode 100644 ver/us/asm/nonmatchings/19FAF0/func_80274A18.s delete mode 100644 ver/us/asm/nonmatchings/19FAF0/func_802752AC.s delete mode 100644 ver/us/asm/nonmatchings/19FAF0/func_80275F00.s diff --git a/include/enums.h b/include/enums.h index d791a1af6d..a3a9af1e80 100644 --- a/include/enums.h +++ b/include/enums.h @@ -673,6 +673,7 @@ enum SoundIDs { SOUND_SEARCH_BUSH = 0x00000153, SOUND_158 = 0x00000158, SOUND_15E = 0x0000015E, + SOUND_160 = 0x00000160, SOUND_161 = 0x00000161, SOUND_162 = 0x00000162, SOUND_ENTER_PIPE = 0x00000163, diff --git a/include/variables.h b/include/variables.h index 4731d1a7e8..9b0fcac9ba 100644 --- a/include/variables.h +++ b/include/variables.h @@ -117,10 +117,6 @@ extern SpriteShadingProfile* D_80151328; extern Window gWindows[64]; -extern struct EffectInstance* D_802A37F0; -extern s32 D_802A37F8; -extern s32 D_802A3818; -extern s32 D_802A3834; extern s32 D_802A3838; extern s32 gGameState; diff --git a/src/190B20.c b/src/190B20.c index b9d2aa201e..a038ba59c1 100644 --- a/src/190B20.c +++ b/src/190B20.c @@ -766,12 +766,10 @@ void add_xz_vec3f_copy2(Vec3f* vector, f32 speed, f32 angleDeg) { vector->z += -speed * cosAngleRad; } -// matching after data migration -#ifdef NON_MATCHING void play_movement_dust_effects(s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angleDeg) { - f32 temp_f0; - f32 temp_f20; - f32 temp_f20_2; + f32 theta; + f32 sinTheta; + f32 cosTheta; if (var0 == 2) { fx_landing_dust(0, xPos, yPos + 0.0f, zPos, D_802938A4); @@ -779,15 +777,19 @@ void play_movement_dust_effects(s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angl D_802938A8 = 4; } else if (D_802938A8++ >= 4) { D_802938A8 = 0; - temp_f20 = DEG_TO_RAD(clamp_angle(-angleDeg)); - temp_f20_2 = sin_rad(temp_f20); - temp_f0 = cos_rad(temp_f20); - fx_walking_dust(0, xPos + (temp_f20_2 * 24.0f * 0.2f), yPos + 1.5f, zPos + (temp_f0 * 24.0f * 0.2f), temp_f20_2, temp_f0); + theta = DEG_TO_RAD(clamp_angle(-angleDeg)); + sinTheta = sin_rad(theta); + cosTheta = cos_rad(theta); + fx_walking_dust( + 0, + xPos + (sinTheta * 24.0f * 0.2f), + yPos + 1.5f, + zPos + (cosTheta * 24.0f * 0.2f), + sinTheta, + cosTheta + ); } } -#else -INCLUDE_ASM(void, "190B20", play_movement_dust_effects, s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angleDeg); -#endif ActorPart* get_actor_part(Actor* actor, s32 partIndex) { ActorPart* part = &actor->partsTable[0]; diff --git a/src/19FAF0.c b/src/19FAF0.c index 6e95d0738b..e2f43a8b87 100644 --- a/src/19FAF0.c +++ b/src/19FAF0.c @@ -1079,7 +1079,7 @@ ApiStatus func_80273444(Evt* script, s32 isInitialCall) { script->functionTemp[0] = FALSE; } - if (!script->functionTemp[0]) { + if (script->functionTemp[0] == 0) { player->state.moveTime = evt_get_variable(script, *args++); player->state.moveArcAmplitude = evt_get_variable(script, *args++); script->functionTemp[1] = evt_get_variable(script, *args++); @@ -1142,7 +1142,7 @@ ApiStatus func_80273444(Evt* script, s32 isInitialCall) { playerState->currentPos.y += playerVel; playerState->velocity -= playerState->acceleration; temp_f20_2 = playerState->speed; - add_xz_vec3f(&playerState->currentPos, temp_f20_2 + sin_rad(DEG_TO_RAD(playerState->unk_24), playerState->angle); + add_xz_vec3f(&playerState->currentPos, temp_f20_2 + sin_rad(DEG_TO_RAD(playerState->unk_24)), playerState->angle); playerState->unk_24 += playerState->unk_28; playerState->unk_24 = clamp_angle(playerState->unk_24); player->currentPos.x = playerState->currentPos.x; @@ -1711,11 +1711,702 @@ ApiStatus func_802749F8(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "19FAF0", func_80274A18); +ApiStatus func_80274A18(Evt* script, s32 isInitialCall) { + BattleStatus* battleStatus = &gBattleStatus; + Bytecode* args = script->ptrReadPos; + Actor* player = battleStatus->playerActor; + ActorState* playerState = &player->state; + f32 posX, posY, posZ; + f32 goalX, goalZ; + f32 temp; + f64 temp_f20_2; + f64 vel1, vel2; + f64 vel3, vel4; + f64 acc1, acc2; + f64 acc3, acc4; -INCLUDE_ASM(s32, "19FAF0", func_802752AC); + if (isInitialCall) { + player->state.moveTime = evt_get_variable(script, *args++); + player->state.moveArcAmplitude = evt_get_variable(script, *args++); + script->functionTemp[1] = 0; + script->functionTemp[0] = 0; + if (player->state.moveArcAmplitude == 1) { + script->functionTemp[0] = 2; + } + } -INCLUDE_ASM(s32, "19FAF0", func_80275F00); + if (script->functionTemp[0] == 0) { + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + goalX = playerState->goalPos.x; + goalZ = playerState->goalPos.z; + posX = playerState->currentPos.x; + posY = playerState->currentPos.y; + posZ = playerState->currentPos.z; + playerState->angle = atan2(posX, posZ, goalX, goalZ); + playerState->distance = dist2D(posX, posZ, goalX, goalZ); + if (playerState->moveTime == 0) { + playerState->moveTime = playerState->distance / playerState->speed; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } else { + playerState->speed = playerState->distance / playerState->moveTime; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } + + if (playerState->moveTime == 0) { + return ApiStatus_DONE2; + } + + playerState->unk_30.x = (playerState->goalPos.x - playerState->currentPos.x) / playerState->moveTime; + playerState->unk_30.y = (playerState->goalPos.y - playerState->currentPos.y) / playerState->moveTime; + playerState->unk_30.z = (playerState->goalPos.z - playerState->currentPos.z) / playerState->moveTime; + playerState->acceleration = PI_S / playerState->moveTime; + playerState->velocity = 0.0f; + playerState->speed += temp / playerState->moveTime; + if (playerState->moveArcAmplitude < 3) { + temp = playerState->distance; + temp -= 20.0; + temp /= 6.0; + temp += 47.0; + playerState->bounceDivisor = temp; + playerState->unk_24 = 90.0f; + playerState->unk_28 = 360 / playerState->moveTime; + if (playerState->moveArcAmplitude == 2) { + playerState->bounceDivisor = temp * 1.12; + } + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + vel1 = playerState->velocity; + acc1 = playerState->acceleration; + playerState->velocity = vel1 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * acc1) + acc1); + } else { + temp = playerState->distance; + temp -= 20.0; + temp /= 6.0; + temp += 47.0; + playerState->bounceDivisor = temp; + playerState->unk_24 = 90.0f; + playerState->unk_28 = 360 / playerState->moveTime; + if (playerState->moveArcAmplitude == 4) { + playerState->bounceDivisor = temp * 1.25; + } + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + vel2 = playerState->velocity; + acc2 = playerState->acceleration; + playerState->velocity = vel2 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.8 * acc2) + acc2); + } + set_animation(0, 0, playerState->animJumpRise); + sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + script->functionTemp[0] = 1; + } + + switch (script->functionTemp[0]) { + case 1: + if (playerState->velocity > PI_S / 2) { + set_animation(ACTOR_PLAYER, 0, playerState->animJumpFall); + } + playerState->currentPos.x += playerState->unk_30.x; + playerState->currentPos.y += playerState->unk_30.y; + playerState->currentPos.z += playerState->unk_30.z; + playerState->unk_18.x = player->currentPos.y; + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y + (playerState->bounceDivisor * sin_rad(playerState->velocity)); + player->currentPos.z = playerState->currentPos.z; + if (playerState->goalPos.y > player->currentPos.y && playerState->moveTime < 3) { + player->currentPos.y = playerState->goalPos.y; + } + playerState->unk_18.y = player->currentPos.y; + if (playerState->moveArcAmplitude < 3) { + vel3 = playerState->velocity; + acc3 = playerState->acceleration; + playerState->velocity = vel3 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * acc3) + acc3); + } else { + vel4 = playerState->velocity; + acc4 = playerState->acceleration; + playerState->velocity = vel4 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.8 * acc4) + acc4); + } + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + playerState->moveTime--; + if (playerState->moveTime == 0) { + player->currentPos.y = playerState->goalPos.y; + playerState->acceleration = 1.8f; + playerState->velocity = -(playerState->unk_18.x - playerState->unk_18.y); + set_animation(ACTOR_PLAYER, 0, playerState->animJumpLand); + return ApiStatus_DONE1; + } + break; + case 2: + if (battleStatus->unk_83 == 0) { + return ApiStatus_DONE2; + } + playerState->moveTime = 1; + playerState->acceleration = 1.8f; + playerState->unk_24 = 90.0f; + playerState->velocity = -(playerState->unk_18.x - playerState->unk_18.y); + playerState->bounceDivisor = fabsf(playerState->unk_18.x - playerState->unk_18.y) / 16.5; + playerState->unk_28 = 360 / playerState->moveTime; + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + script->functionTemp[0] = 3; + // fallthrough + case 3: + temp_f20_2 = playerState->currentPos.x; + playerState->currentPos.x = temp_f20_2 + ((playerState->bounceDivisor * sin_rad(DEG_TO_RAD(playerState->unk_24))) / 33.0); + playerState->currentPos.y -= (playerState->bounceDivisor * sin_rad(DEG_TO_RAD(playerState->unk_24))); + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y; + player->currentPos.z = playerState->currentPos.z; + if (gBattleStatus.flags1 & BS_FLAGS1_2000) { + return ApiStatus_DONE2; + } + playerState->moveTime--; + if (playerState->moveTime == 0) { + return ApiStatus_DONE1; + } + break; + } + + return ApiStatus_BLOCK; +} + +ApiStatus func_802752AC(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Actor* player = gBattleStatus.playerActor; + ActorState* playerState = &player->state; + f32 posX, posY, posZ; + f32 goalX, goalZ; + f32 temp; + f64 temp_f20; + f64 vel1, vel2; + f64 vel3, vel4; + f64 vel5, vel6; + f64 vel7, vel8; + f64 acc1, acc2; + f64 acc3, acc4; + f64 acc5, acc6; + f64 acc7, acc8; + + if (isInitialCall) { + player->state.moveTime = evt_get_variable(script, *args++); + player->state.moveArcAmplitude = evt_get_variable(script, *args++); + script->functionTemp[0] = 0; + if (player->state.moveArcAmplitude == 1 || + player->state.moveArcAmplitude == 5 || + player->state.moveArcAmplitude == 6) + { + script->functionTemp[0] = 10; + } + if (playerState->moveArcAmplitude == 2) { + script->functionTemp[0] = 20; + } + } + + switch (script->functionTemp[0]) { + case 0: + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + goalX = playerState->goalPos.x; + goalZ = playerState->goalPos.z; + posX = playerState->currentPos.x; + posY = playerState->currentPos.y; + posZ = playerState->currentPos.z; + playerState->angle = atan2(posX, posZ, goalX, goalZ); + playerState->distance = dist2D(posX, posZ, goalX, goalZ); + + if (playerState->moveTime == 0) { + playerState->moveTime = playerState->distance / playerState->speed; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } else { + playerState->speed = playerState->distance / playerState->moveTime; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } + + if (playerState->moveTime == 0) { + return ApiStatus_DONE2; + } + + playerState->unk_30.x = (playerState->goalPos.x - playerState->currentPos.x) / playerState->moveTime; + playerState->unk_30.y = (playerState->goalPos.y - playerState->currentPos.y) / playerState->moveTime; + playerState->unk_30.z = (playerState->goalPos.z - playerState->currentPos.z) / playerState->moveTime; + playerState->acceleration = (PI_S / 2) / playerState->moveTime; + playerState->velocity = 0.0f; + playerState->speed += temp / playerState->moveTime; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpRise); + sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + playerState->unk_24 = 90.0f; + playerState->bounceDivisor = 45.0f; + playerState->unk_28 = 360 / playerState->moveTime; + if (playerState->moveArcAmplitude == 4) { + playerState->bounceDivisor = 56.25f; + } + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + if (playerState->moveArcAmplitude == 0) { + vel1 = playerState->velocity; + acc1 = playerState->acceleration; + playerState->velocity = (vel1 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * acc1) + acc1)); + } else { + vel2 = playerState->velocity; + acc2 = playerState->acceleration; + playerState->velocity = (vel2 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.01 * acc2) + acc2)); + } + script->functionTemp[0] = 1; + break; + case 10: + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + goalX = playerState->goalPos.x; + goalZ = playerState->goalPos.z; + posX = playerState->currentPos.x; + posY = playerState->currentPos.y; + posZ = playerState->currentPos.z; + playerState->angle = atan2(posX, posZ, goalX, goalZ); + playerState->distance = dist2D(posX, posZ, goalX, goalZ); + if (playerState->moveTime == 0) { + playerState->moveTime = playerState->distance / playerState->speed; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } else { + playerState->speed = playerState->distance / playerState->moveTime; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } + + if (playerState->moveTime == 0) { + return ApiStatus_DONE2; + } + playerState->unk_30.x = (playerState->goalPos.x - playerState->currentPos.x) / playerState->moveTime; + playerState->unk_30.y = (playerState->goalPos.y - playerState->currentPos.y) / playerState->moveTime; + playerState->unk_30.z = (playerState->goalPos.z - playerState->currentPos.z) / playerState->moveTime; + playerState->velocity = (PI_S / 2); + playerState->acceleration = (PI_S / 4) / (playerState->moveTime + 1); + playerState->speed += temp / playerState->moveTime; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpLand); + playerState->unk_24 = 90.0f; + playerState->bounceDivisor = 45.0f; + playerState->unk_28 = (360 / playerState->moveTime); + if (playerState->moveArcAmplitude == 5) { + playerState->bounceDivisor = 56.25f; + } + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + if (playerState->moveArcAmplitude == 1) { + vel3 = playerState->velocity; + acc3 = playerState->acceleration; + playerState->velocity = (vel3 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * acc3) + acc3)); + } else { + vel4 = playerState->velocity; + acc4 = playerState->acceleration; + playerState->velocity = (vel4 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.01 * acc4) + acc4)); + } + playerState->currentPos.y = player->currentPos.y - playerState->bounceDivisor; + script->functionTemp[0] = 11; + break; + case 20: + playerState->moveTime = 1; + playerState->unk_24 = 90.0f; + playerState->bounceDivisor = (fabsf(playerState->unk_18.x - playerState->unk_18.y) / 16.5); + playerState->unk_28 = (360 / playerState->moveTime); + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + script->functionTemp[0] = 21; + break; + } + + switch (script->functionTemp[0]) { + case 1: + if (playerState->moveArcAmplitude == 0) { + vel5 = playerState->velocity; + acc5 = playerState->acceleration; + playerState->velocity = (vel5 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * acc5) + acc5)); + } else { + vel6 = playerState->velocity; + acc6 = playerState->acceleration; + playerState->velocity = (vel6 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.01 * acc6) + acc6)); + } + playerState->currentPos.x += playerState->unk_30.x; + playerState->currentPos.y += playerState->unk_30.y; + playerState->currentPos.z += playerState->unk_30.z; + playerState->unk_18.x = player->currentPos.y; + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y + (playerState->bounceDivisor * sin_rad(sin_rad(sin_rad(playerState->velocity) * (PI_S / 2)) * (PI_S / 2))); + player->currentPos.z = playerState->currentPos.z; + playerState->unk_18.y = player->currentPos.y; + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + playerState->moveTime--; + if (playerState->moveTime == 0) { + sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + set_animation(ACTOR_PLAYER, 0, playerState->animJumpFall); + player->rotationPivotOffset.y = 14; + player->rotation.z -= 66.0f; + playerState->moveTime = 7; + script->functionTemp[0] = 2; + } + break; + case 2: + player->rotationPivotOffset.y = 14; + player->rotation.z -= 66.0f; + playerState->moveTime--; + if (playerState->moveTime == 0) { + player->rotation.z = 0.0f; + player->rotationPivotOffset.y = 0; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpLand); + return ApiStatus_DONE1; + } + break; + case 11: + playerState->currentPos.x += playerState->unk_30.x; + playerState->currentPos.y += playerState->unk_30.y; + playerState->currentPos.z += playerState->unk_30.z; + playerState->unk_18.x = player->currentPos.y; + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y + (playerState->bounceDivisor * sin_rad(playerState->velocity)); + player->currentPos.z = playerState->currentPos.z; + if (playerState->goalPos.y > player->currentPos.y) { + player->currentPos.y = playerState->goalPos.y; + } + playerState->unk_18.y = player->currentPos.y; + + if (playerState->moveArcAmplitude == 1) { + vel7 = playerState->velocity; + acc7 = playerState->acceleration; + playerState->velocity = (vel7 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * acc7) + acc7)); + } else { + vel8 = playerState->velocity; + acc8 = playerState->acceleration; + playerState->velocity = (vel8 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.01 * acc8) + acc8)); + } + + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + playerState->moveTime--; + if (playerState->moveTime == 0) { + player->currentPos.y = playerState->goalPos.y; + set_animation(ACTOR_PLAYER, 0, 0x1000C); + return ApiStatus_DONE1; + } + break; + case 21: + temp_f20 = playerState->currentPos.x; + temp_f20 += (playerState->bounceDivisor * sin_rad(DEG_TO_RAD(playerState->unk_24))) / 33.0; + playerState->currentPos.x = temp_f20; + playerState->currentPos.y -= playerState->bounceDivisor * sin_rad(DEG_TO_RAD(playerState->unk_24)); + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y; + player->currentPos.z = playerState->currentPos.z; + if (gBattleStatus.flags1 & BS_FLAGS1_2000) { + return ApiStatus_DONE2; + } + playerState->moveTime--; + if (playerState->moveTime == 0) { + return ApiStatus_DONE1; + } + break; + } + + return ApiStatus_BLOCK; +} + +ApiStatus func_80275F00(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Actor* player = gBattleStatus.playerActor; + ActorState* playerState = &player->state; + f32 posX, posY, posZ; + f32 goalX, goalZ; + f32 speed; + f32 temp; + + f64 temp_f20; + f64 temp_f20_2; + f64 temp_f20_4; + f64 temp_f20_5; + f64 temp_f20_6; + f64 temp_f20_7; + + f64 temp_f22; + f64 temp_f22_2; + f64 temp_f22_3; + f64 temp_f22_4; + f64 temp_f22_5; + f64 temp_f22_6; + f64 temp_f22_7; + + if (isInitialCall) { + player->state.moveTime = evt_get_variable(script, *args++); + player->state.moveArcAmplitude = evt_get_variable(script, *args++); + script->functionTemp[1] = 0; + script->functionTemp[0] = 0; + if (player->state.moveArcAmplitude == 1) { + script->functionTemp[0] = 11; + } + if (player->state.moveArcAmplitude == 3) { + script->functionTemp[0] = 20; + } + if (player->state.moveArcAmplitude == 2 || player->state.moveArcAmplitude == 4) { + script->functionTemp[0] = 30; + } + } + + switch (script->functionTemp[0]) { + case 0: + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + goalX = playerState->goalPos.x; + goalZ = playerState->goalPos.z; + posX = playerState->currentPos.x; + posY = playerState->currentPos.y; + posZ = playerState->currentPos.z; + playerState->angle = atan2(posX, posZ, goalX, goalZ); + playerState->distance = dist2D(posX, posZ, goalX, goalZ); + if (playerState->moveTime == 0) { + playerState->moveTime = playerState->distance / playerState->speed; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } else { + playerState->speed = playerState->distance / playerState->moveTime; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } + playerState->acceleration = PI_S / playerState->moveTime; + playerState->velocity = 0.0f; + playerState->unk_30.x = (playerState->goalPos.x - playerState->currentPos.x) / playerState->moveTime; + playerState->unk_30.y = (playerState->goalPos.y - playerState->currentPos.y) / playerState->moveTime; + playerState->unk_30.z = (playerState->goalPos.z - playerState->currentPos.z) / playerState->moveTime; + playerState->speed += temp / playerState->moveTime; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpFall); + sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + sfx_play_sound_at_position(SOUND_TORNADO_JUMP, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + playerState->unk_24 = 90.0f; + + temp = playerState->distance; + temp -= 20.0; + temp /= 6.0; + temp += 47.0; + playerState->bounceDivisor = temp; + + temp_f20 = playerState->velocity; + temp_f22 = playerState->acceleration; + playerState->unk_28 = 360 / playerState->moveTime; + playerState->velocity = temp_f20 + (((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53) * temp_f22) + temp_f22); + script->functionTemp[0] = 1; + break; + case 10: + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + goalX = playerState->goalPos.x; + goalZ = playerState->goalPos.z; + posX = playerState->currentPos.x; + posY = playerState->currentPos.y; + posZ = playerState->currentPos.z; + playerState->angle = atan2(posX, posZ, goalX, goalZ); + playerState->distance = dist2D(posX, posZ, goalX, goalZ); + if (playerState->moveTime == 0) { + playerState->moveTime = playerState->distance / playerState->speed; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } else { + speed = playerState->distance / playerState->moveTime; + playerState->speed = speed; + temp = playerState->distance - (playerState->moveTime * speed); + } + playerState->acceleration = PI_S / playerState->moveTime; + playerState->velocity = 0.0f; + playerState->unk_30.x = (playerState->goalPos.x - playerState->currentPos.x) / playerState->moveTime; + playerState->unk_30.y = (playerState->goalPos.y - playerState->currentPos.y) / playerState->moveTime; + playerState->unk_30.z = (playerState->goalPos.z - playerState->currentPos.z) / playerState->moveTime; + playerState->speed += temp / playerState->moveTime; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpRise); + sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + sfx_play_sound_at_position(SOUND_TORNADO_JUMP, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + playerState->unk_24 = 90.0f; + temp_f20_2 = playerState->velocity; + temp_f22_2 = playerState->acceleration; + + temp = playerState->distance; + temp -= 20.0; + temp /= 6.0; + temp += 47.0; + playerState->bounceDivisor = temp; + + playerState->unk_28 = 360 / playerState->moveTime; + playerState->velocity = temp_f20_2 + (((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53) * temp_f22_2) + temp_f22_2); + script->functionTemp[0] = 11; + break; + case 20: + playerState->moveTime = 1; + set_animation(ACTOR_PLAYER, 1, 0x1000C); + player->rotation.y = 0.0f; + playerState->unk_24 = 90.0f; + playerState->bounceDivisor = fabsf(playerState->unk_18.x - playerState->unk_18.y) / 16.5; + playerState->unk_28 = 360 / playerState->moveTime; + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + script->functionTemp[0] = 21; + break; + case 30: + playerState->currentPos.x = player->currentPos.x; + playerState->currentPos.y = player->currentPos.y; + playerState->currentPos.z = player->currentPos.z; + goalX = playerState->goalPos.x; + goalZ = playerState->goalPos.z; + posX = playerState->currentPos.x; + posY = playerState->currentPos.y; + posZ = playerState->currentPos.z; + playerState->angle = atan2(posX, posZ, goalX, goalZ); + playerState->distance = dist2D(posX, posZ, goalX, goalZ); + if (playerState->moveTime == 0) { + playerState->moveTime = playerState->distance / playerState->speed; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } else { + playerState->speed = playerState->distance / playerState->moveTime; + temp = playerState->distance - (playerState->moveTime * playerState->speed); + } + playerState->acceleration = PI_S / (playerState->moveTime + 1); + playerState->velocity = 0.0f; + playerState->unk_30.x = (playerState->goalPos.x - playerState->currentPos.x) / playerState->moveTime; + playerState->unk_30.y = (playerState->goalPos.y - playerState->currentPos.y) / playerState->moveTime; + playerState->unk_30.z = (playerState->goalPos.z - playerState->currentPos.z) / playerState->moveTime; + playerState->speed += temp / playerState->moveTime; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpRise); + sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z); + playerState->unk_24 = 90.0f; + playerState->bounceDivisor = 45.0f; + playerState->unk_28 = 360 / playerState->moveTime; + if (playerState->moveArcAmplitude == 4) { + playerState->bounceDivisor = 56.25f; + } + playerState->unk_18.x = 0.0f; + playerState->unk_18.y = 0.0f; + temp_f22_3 = playerState->acceleration; + temp_f22_7 = playerState->velocity; + temp_f22_7 = temp_f22_7 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * temp_f22_3) + temp_f22_3); + playerState->velocity = temp_f22_7; + script->functionTemp[0] = 31; + break; + } + + switch (script->functionTemp[0]) { + case 1: + temp_f22_4 = playerState->velocity; + temp_f20_4 = playerState->acceleration; + playerState->velocity = temp_f22_4 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * temp_f20_4) + temp_f20_4); + playerState->currentPos.x += playerState->unk_30.x; + playerState->currentPos.y += playerState->unk_30.y; + playerState->currentPos.z += playerState->unk_30.z; + playerState->unk_18.x = player->currentPos.y; + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y + (playerState->bounceDivisor * sin_rad(playerState->velocity)); + player->currentPos.z = playerState->currentPos.z; + playerState->unk_18.y = player->currentPos.y; + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + player->rotation.y += 133.0f; + player->rotation.y = clamp_angle(player->rotation.y); + if (gBattleStatus.flags1 & BS_FLAGS1_2000) { + return ApiStatus_DONE2; + } + playerState->moveTime--; + if (playerState->moveTime == 4) { + return ApiStatus_DONE1; + } + break; + case 11: + temp_f22_6 = playerState->velocity; + temp_f20_7 = playerState->acceleration; + playerState->velocity = temp_f22_6 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * temp_f20_7) + temp_f20_7); + playerState->currentPos.x += playerState->unk_30.x; + playerState->currentPos.y += playerState->unk_30.y; + playerState->currentPos.z += playerState->unk_30.z; + playerState->unk_18.x = player->currentPos.y; + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y + (playerState->bounceDivisor * sin_rad(playerState->velocity)); + player->currentPos.z = playerState->currentPos.z; + if (playerState->goalPos.y > player->currentPos.y && playerState->moveTime < 3) { + player->currentPos.y = playerState->goalPos.y; + } + playerState->unk_18.y = player->currentPos.y; + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + set_animation(ACTOR_PLAYER, 0, playerState->animJumpFall); + player->rotation.y += 133.0f; + player->rotation.y = clamp_angle(player->rotation.y); + playerState->moveTime--; + if (playerState->moveTime == 0) { + playerState->acceleration = 1.8f; + playerState->velocity = -(playerState->unk_18.x - playerState->unk_18.y); + player->currentPos.y = playerState->goalPos.y; + player->rotation.y = 0.0f; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpLand); + play_movement_dust_effects(2, player->currentPos.x, player->currentPos.y, player->currentPos.z, player->yaw); + return ApiStatus_DONE1; + } + break; + case 21: + temp_f20_5 = playerState->currentPos.x; + temp_f20_5 += (playerState->bounceDivisor * sin_rad(DEG_TO_RAD(playerState->unk_24))) / 33.0; + playerState->currentPos.x = temp_f20_5; + playerState->currentPos.y -= playerState->bounceDivisor * sin_rad(DEG_TO_RAD(playerState->unk_24)); + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y; + player->currentPos.z = playerState->currentPos.z; + if (gBattleStatus.flags1 & BS_FLAGS1_2000) { + return ApiStatus_DONE2; + } + playerState->moveTime--; + if (playerState->moveTime == 0) { + return ApiStatus_DONE1; + } + break; + case 31: + temp_f22_5 = playerState->velocity; + temp_f20_6 = playerState->acceleration; + playerState->velocity = temp_f22_5 + ((sin_rad(DEG_TO_RAD(playerState->unk_24)) * 0.53 * temp_f20_6) + temp_f20_6); + playerState->currentPos.x += playerState->unk_30.x; + playerState->currentPos.y += playerState->unk_30.y; + playerState->currentPos.z += playerState->unk_30.z; + playerState->unk_18.x = player->currentPos.y; + player->currentPos.x = playerState->currentPos.x; + player->currentPos.y = playerState->currentPos.y + (playerState->bounceDivisor * sin_rad(playerState->velocity)); + player->currentPos.z = playerState->currentPos.z; + if (playerState->goalPos.y > player->currentPos.y && playerState->moveTime < 3) { + player->currentPos.y = playerState->goalPos.y; + } + playerState->unk_18.y = player->currentPos.y; + playerState->unk_24 += playerState->unk_28; + playerState->unk_24 = clamp_angle(playerState->unk_24); + set_animation(ACTOR_PLAYER, 0, playerState->animJumpFall); + player->rotation.y += 133.0f; + player->rotation.y = clamp_angle(player->rotation.y); + playerState->moveTime--; + if (playerState->moveTime == 0) { + player->currentPos.y = playerState->goalPos.y; + player->rotation.y = 0.0f; + set_animation(ACTOR_PLAYER, 0, playerState->animJumpLand); + playerState->acceleration = 1.8f; + playerState->velocity = -(playerState->unk_18.x - playerState->unk_18.y); + return ApiStatus_DONE1; + } + break; + } + + return ApiStatus_BLOCK; +} ApiStatus DidActionSucceed(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/src/battle/star/star_beam/796FC0.c b/src/battle/star/star_beam/796FC0.c index 9b1792b7f6..98f4a5c27c 100644 --- a/src/battle/star/star_beam/796FC0.c +++ b/src/battle/star/star_beam/796FC0.c @@ -1,33 +1,14 @@ #include "common.h" #include "script_api/battle.h" +#include "effects.h" #define NAMESPACE battle_star_star_beam #include "common/StarPower.inc.c" ApiStatus func_802A1518_7974D8(Evt* script, s32 isInitialCall); -INCLUDE_ASM(s32, "battle/star/star_beam/796FC0", func_802A1518_7974D8); - -ApiStatus func_802A2468_798428(Evt* script, s32 isInitialCall) { - script->varTable[0] = D_802A3838; - return ApiStatus_DONE2; -} - -ApiStatus func_802A247C_79843C(Evt* script, s32 isInitialCall) { - if (isInitialCall) { - script->functionTemp[0] = 230; - } - - set_background_color_blend(0, 0, 0, script->functionTemp[0]); - - script->functionTemp[0] -= 5; - if (script->functionTemp[0] <= 200) { - set_background_color_blend(0, 0, 0, 200); - return ApiStatus_DONE2; - } - - return ApiStatus_BLOCK; -} +ApiStatus func_802A2468_798428(Evt* script, s32 isInitialCall); +ApiStatus func_802A247C_79843C(Evt* script, s32 isInitialCall); EvtScript N(802A24F0) = { EVT_CALL(GetOwnerID, LVarA) @@ -283,19 +264,18 @@ EvtScript N(802A33A8) = { EVT_END }; -// TODO: type this data used by func_802A1518_7974D8 -s32 D_802A3514_7994D4[] = { - 0x00000023, 0x00000000, 0x00000005, 0x0000000A, 0x0000000F, 0x00000014, 0x00000019, 0x0000001E, -}; +s32 D_802A3514_7994D4[] = { 35, 0, 5, 10, 15, 20, 25, 30 }; +s32 D_802A3534_7994F4[] = { 35, 0, 5, 10, 15, 20, 25, 30 }; -s32 D_802A3534_7994F4[] = { - 0x00000023, 0x00000000, 0x00000005, 0x0000000A, 0x0000000F, 0x00000014, 0x00000019, 0x0000001E, -}; - -s32 D_802A3554_799514[] = { - 0x42B20000, 0x43340000, 0x00000000, 0xC2100000, 0x43340000, 0x00000000, 0x434C0000, 0x43340000, - 0x00000000, 0x41F00000, 0x42C20000, 0x43EE8000, 0x43660000, 0x42A20000, 0x00000000, 0x43010000, - 0x43340000, 0x00000000, 0xC2700000, 0x43340000, 0x00000000, 0xC36A0000, 0x421C0000, 0x00000000, +Vec3f D_802A3554_799514[] = { + { 89.0f, 180.0f, 0.0f }, + { -36.0f, 180.0f, 0.0f }, + { 204.0f, 180.0f, 0.0f }, + { 30.0f, 97.0f, 477.0f }, + { 230.0f, 81.0f, 0.0f }, + { 129.0f, 180.0f, 0.0f }, + { -60.0f, 180.0f, 0.0f }, + { -234.0f, 39.0f, 0.0f }, }; EvtScript N(usePower) = { @@ -337,3 +317,492 @@ EvtScript N(usePower) = { EVT_RETURN EVT_END }; + +BSS EffectInstance* D_802A37F0; +BSS char D_802A37F4[4]; +BSS s32 D_802A37F8[8]; +BSS s32 D_802A3818[8]; +BSS s32 D_802A3834[8]; + +// flots +#ifdef NON_MATCHING +ApiStatus func_802A1518_7974D8(Evt* script, s32 isInitialCall) { + PeachStarBeamFXData* sp28; + PeachStarBeamInner* part; + Bytecode* args = script->ptrReadPos; + Actor* player = gBattleStatus.playerActor; + ActorState* playerState = &player->state; + s32 i; + + f32 playerX, playerY, playerZ; + f32 playerGoalX, playerGoalY, playerGoalZ; + f32 goalX, goalY, goalZ; + f32 tx, ty, tz; + s32 cond; + Actor* target; + Evt* script; + f32 dist; + f32 dist2; + + f32 temp_f20; + f32 temp_f22; + f32 temp_f30; + s32 var_a0; + + if (isInitialCall) { + D_802A3838 = 0; + script->functionTemp[2] = evt_get_variable(script, *args++); + script->functionTemp[0] = 0; + } + + if (player->targetListLength == 1) { + target = get_actor(player->targetActorID); + if (target == NULL) { + return ApiStatus_DONE2; + } + + get_actor_part(target, player->targetPartIndex); + goalX = target->currentPos.x + target->headOffset.x; + if (target->flags & 0x800) { + goalY = (target->currentPos.y + target->headOffset.y) - target->size.y; + } else if (!(target->flags & 0x8000)) { + goalY = target->size.y + (target->currentPos.y + target->headOffset.y); + } else { + goalY = target->currentPos.y + target->headOffset.y + (target->size.y * 2); + } + goalZ = target->currentPos.z + target->headOffset.z; + } else { + goalX = 64.0f; + goalY = 80.0f; + goalZ = 0.0f; + } + + switch (script->functionTemp[0]) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + sp28 = D_802A37F0->data.peachStarBeam; + + for (i = 0; i < ARRAY_COUNT(sp28->parts); i++) { + if (script->functionTemp[2] != 0 || i != 0) { + part = &sp28->parts[i]; + + if (D_802A37F8[i] != 0) { + D_802A37F8[i]--; + } else { + D_802A37F8[i] = 20; + + if (D_802A3514_7994D4[i] <= 0) { + fx_misc_particles(4, part->unk_10.x, part->unk_10.y, part->unk_10.z, 20.0f, 20.0f, 1.0f, 10, 20); + } else { + fx_misc_particles(4, part->unk_04.x, part->unk_04.y, part->unk_04.z, 20.0f, 20.0f, 1.0f, 10, 20); + } + } + } + } + break; + case 10: + sp28 = D_802A37F0->data.peachStarBeam; + + for (i = 0; i < ARRAY_COUNT(sp28->parts); i++) { + if (script->functionTemp[2] != 0 || i != 0) { + part = &sp28->parts[i]; + + if (D_802A37F8[i] != 0) { + D_802A37F8[i]--; + } else { + D_802A37F8[i] = 20; + + if (D_802A3534_7994F4[i] <= 0) { + fx_misc_particles(4, part->unk_10.x, part->unk_10.y, part->unk_10.z, 20.0f, 20.0f, 1.0f, 10, 20); + } else { + fx_misc_particles(4, part->unk_04.x, part->unk_04.y, part->unk_04.z, 20.0f, 20.0f, 1.0f, 10, 20); + } + + } + } + } + break; + } + + switch (script->functionTemp[0]) { + case 0: + temp_f20 = player->currentPos.x; + temp_f30 = player->currentPos.z; + playerState->currentPos.x = temp_f20; + temp_f22 = player->currentPos.y + player->size.y + 30.0f; + playerState->currentPos.z = temp_f30; + playerState->goalPos.x = temp_f20; + playerState->goalPos.z = temp_f30; + playerState->goalPos.y = temp_f22; + playerState->currentPos.y = playerState->goalPos.y + 150.0f; + + if (script->functionTemp[2] == 0) { + D_802A37F0 = fx_peach_star_beam(0, temp_f20, temp_f22, temp_f30, 1.0f, 0); + } else { + D_802A37F0 = fx_peach_star_beam(1, temp_f20, temp_f22, temp_f30, 1.0f, 0); + } + + playerState->distance = 48.0f; + D_802A37F0->data.peachStarBeam->unk_3C = 0; + D_802A37F0->data.peachStarBeam->unk_48 = playerState->distance; + D_802A37F0->data.peachStarBeam->alpha = 0; + D_802A37F0->data.peachStarBeam->unk_58 = 30.0f; + D_802A37F0->data.peachStarBeam->unk_40 = 5.0f; + + for (i = 0; i < ARRAY_COUNT(D_802A37F8); i++) { + D_802A37F8[i] = rand_int(20); + } + + script->functionTemp[1] = 40; + if (script->functionTemp[2] == 0) { + sfx_play_sound(0x80000068); + } else { + sfx_play_sound(0x80000069); + } + script->functionTemp[0] = 1; + break; + case 1: + playerState->currentPos.y += (playerState->goalPos.y - playerState->currentPos.y) / 10.0f; + D_802A37F0->data.peachStarBeam->unk_4C = playerState->currentPos.x; + D_802A37F0->data.peachStarBeam->unk_50 = playerState->currentPos.y; + D_802A37F0->data.peachStarBeam->unk_54 = playerState->currentPos.z; + D_802A37F0->data.peachStarBeam->unk_3C = 0; + D_802A37F0->data.peachStarBeam->unk_48 = playerState->distance; + D_802A37F0->data.peachStarBeam->alpha = 0; + if (script->functionTemp[1] == 0) { + script->functionTemp[1] = 20; + script->functionTemp[0] = 2; + } else { + script->functionTemp[1]--; + } + break; + case 2: + if (script->functionTemp[1] == 0) { + btl_cam_use_preset(2); + btl_cam_move(10); + script->functionTemp[1] = 15; + script->functionTemp[0] = 3; + } else { + script->functionTemp[1]--; + } + break; + case 3: + playerState->distance += (24.0f - playerState->distance) * 0.125f; + D_802A37F0->data.peachStarBeam->unk_48 = playerState->distance; + if (script->functionTemp[1] == 0) { + playerState->goalPos.x = goalX; + playerState->goalPos.y = goalY; + playerState->goalPos.z = goalZ; + + for (i = 0; i < ARRAY_COUNT(D_802A3834); i++) { + D_802A3834[i] = 30; + } + + if (script->functionTemp[2] == 0) { + sfx_play_sound(0x648); + } else { + sfx_play_sound(0x649); + } + script->functionTemp[0] = 4; + } else { + script->functionTemp[1]--; + } + break; + case 4: + cond = FALSE; + playerState->distance += (48.0f - playerState->distance) * 0.25f; + D_802A37F0->data.peachStarBeam->unk_48 = playerState->distance; + + for (i = 0; i < 2; i++) { + if (i != 0) { + if (D_802A3514_7994D4[i] < 0) { + playerState->currentPos.x += playerState->goalPos.x - playerState->currentPos.x; + playerState->currentPos.y += playerState->goalPos.y - playerState->currentPos.y; + playerState->currentPos.z += playerState->goalPos.z - playerState->currentPos.z; + } else { + cond = TRUE; + if (D_802A3514_7994D4[i] != 0) { + D_802A3514_7994D4[i]--; + } else { + playerX = playerState->currentPos.x; + playerY = playerState->currentPos.y; + playerZ = playerState->currentPos.z; + playerGoalX = playerState->goalPos.x; + playerGoalY = playerState->goalPos.y; + playerGoalZ = playerState->goalPos.z; + dist = dist2D(playerX, playerZ, playerGoalX, playerGoalZ); + playerState->currentPos.x += (playerGoalX - playerX) / D_802A3818[i]; + playerState->currentPos.y += (playerGoalY - playerY) / D_802A3818[i]; + playerState->currentPos.z += (playerGoalZ - playerZ) / D_802A3818[i]; + if (D_802A3818[i] == 1) { + D_802A3514_7994D4[i] = -1; + playerState->currentPos.x = playerGoalX; + playerState->currentPos.y = playerGoalY; + playerState->currentPos.z = playerGoalZ; + } else { + playerState->currentPos.y += dist / 60.0f; + } + D_802A3818[i]--; + } + } + } + } + + D_802A37F0->data.peachStarBeam->unk_4C = playerState->currentPos.x; + D_802A37F0->data.peachStarBeam->unk_50 = playerState->currentPos.y; + D_802A37F0->data.peachStarBeam->unk_54 = playerState->currentPos.z; + D_802A37F0->data.peachStarBeam->pos.x = playerState->currentPos.x; + D_802A37F0->data.peachStarBeam->pos.y = 0.0f; + D_802A37F0->data.peachStarBeam->pos.z = playerState->currentPos.z; + + if (!cond) { + playerState->currentPos.x = playerState->goalPos.x; + playerState->currentPos.y = playerState->goalPos.y; + playerState->currentPos.z = playerState->goalPos.z; + D_802A37F0->data.peachStarBeam->unk_4C = playerState->currentPos.x; + D_802A37F0->data.peachStarBeam->unk_50 = playerState->currentPos.y; + D_802A37F0->data.peachStarBeam->unk_54 = playerState->currentPos.z; + D_802A37F0->data.peachStarBeam->pos.x = playerState->currentPos.x; + D_802A37F0->data.peachStarBeam->pos.y = 0.0f; + D_802A37F0->data.peachStarBeam->pos.z = playerState->currentPos.z; + + sp28 = D_802A37F0->data.peachStarBeam; + for (i = 0; i < ARRAY_COUNT(sp28->parts); i++) { + if ((script->functionTemp[2] != 0) || (i != 0)) { + part = &sp28->parts[i]; + D_802A3514_7994D4[i] = 1; + part->flags &= ~2; + } + } + btl_cam_use_preset(3); + btl_cam_move(30); + script->functionTemp[1] = 15; + script->functionTemp[0] = 5; + } + break; + case 5: + if (script->functionTemp[1] == 0) { + playerState->moveTime = 0; + D_802A37F0->data.peachStarBeam->unk_3C = 0; + D_802A37F0->data.peachStarBeam->alpha = 0; + if (script->functionTemp[2] != 0) { + D_802A37F0->data.peachStarBeam->primR = 240; + D_802A37F0->data.peachStarBeam->primG = 80; + D_802A37F0->data.peachStarBeam->primB = 200; + D_802A37F0->data.peachStarBeam->envR = 240; + D_802A37F0->data.peachStarBeam->envG = 240; + D_802A37F0->data.peachStarBeam->envB = 240; + } + script = start_script(battle_star_star_beam_802A33A8, 0xA, 0); + script->varTable[0] = playerState->currentPos.x; + script->varTable[1] = playerState->currentPos.y * 0.5f; + script->varTable[2] = playerState->currentPos.z; + script->varTable[10] = script->functionTemp[2]; + sfx_play_sound(0x24A); + script->functionTemp[1] = 45; + script->functionTemp[0] = 6; + } else { + script->functionTemp[1]--; + } + break; + case 6: + playerState->moveTime += 30; + if (playerState->moveTime > 255) { + playerState->moveTime = 255; + } + D_802A37F0->data.peachStarBeam->unk_3C = playerState->moveTime; + D_802A37F0->data.peachStarBeam->alpha = playerState->moveTime; + if (script->functionTemp[1] == 0) { + D_802A3838 = 1; + if (script->functionTemp[2] == 0 && player->targetListLength == 1) { + if (get_actor_part(get_actor(player->targetActorID), player->targetPartIndex)->eventFlags & 0x80000) { + script->functionTemp[0] = 20; + } else { + script->functionTemp[1] = 15; + script->functionTemp[0] = 7; + } + } else { + script->functionTemp[1] = 15; + script->functionTemp[0] = 7; + } + } else { + script->functionTemp[1]--; + } + break; + case 7: + if (script->functionTemp[1] == 0) { + script->functionTemp[1] = 10; + script->functionTemp[0] = 8; + } else { + script->functionTemp[1]--; + } + break; + case 8: + playerState->moveTime -= 30; + if (playerState->moveTime < 0) { + playerState->moveTime = 0; + } + D_802A37F0->data.peachStarBeam->unk_3C = playerState->moveTime; + D_802A37F0->data.peachStarBeam->alpha = playerState->moveTime; + if (script->functionTemp[1] == 0) { + script->functionTemp[1] = 10; + script->functionTemp[0] = 9; + } else { + script->functionTemp[1]--; + } + break; + case 9: + if (script->functionTemp[1] != 0) { + script->functionTemp[1]--; + break; + } + playerState->goalPos.x = goalX; + playerState->goalPos.y = goalY + 170.0f; + playerState->goalPos.z = goalZ; + script->functionTemp[1] = 20; + script->functionTemp[0] = 10; + break; + case 10: + if (script->functionTemp[1] != 0) { + script->functionTemp[1]--; + if (script->functionTemp[1] == 0) { + if (script->functionTemp[2] == 0) { + func_80149A6C(0x248, 1); + sfx_play_sound(0x648); + } else { + func_80149A6C(0x249, 1); + sfx_play_sound(0x649); + } + } + } + + cond = FALSE; + for (i = 0; i < ARRAY_COUNT(sp28->parts); i++) { + if (script->functionTemp[2] != 0 || i != 0) { + part = &sp28->parts[i]; + + if (D_802A3534_7994F4[i] >= 0) { + cond = TRUE; + if (D_802A3534_7994F4[i] != 0) { + D_802A3534_7994F4[i]--; + } else { + part->flags |= 2; + part->unk_10.y += (playerState->goalPos.y - part->unk_10.y) / 10.0f; + if (fabsf(part->unk_10.y - playerState->goalPos.y) < 1.0) { + D_802A3534_7994F4[i] = -1; + } + } + } + } + } + + if (!cond) { + D_802A3838 = 2; + D_802A37F0->flags |= 0x10; + return ApiStatus_DONE2; + } + break; + case 20: + D_802A37F0->data.peachStarBeam->unk_3C = 0; + D_802A37F0->data.peachStarBeam->alpha = 0; + + for (i = 0; i < ARRAY_COUNT(D_802A3834); i++) { + D_802A3834[i] = 15; + } + + if (script->functionTemp[2] == 0) { + func_80149A6C(0x248, 0); + } else { + func_80149A6C(0x249, 0); + } + script->functionTemp[0] = 0x15; + break; + case 21: + cond = FALSE; + sp28 = D_802A37F0->data.peachStarBeam; + + for (i = 0; i < ARRAY_COUNT(sp28->parts); i++) { + if ((script->functionTemp[2] != 0) || (i != 0)) { + part = &sp28->parts[i]; + + if (D_802A3514_7994D4[i] < 0) { + part->unk_10.x += D_802A3554_799514[i].x - part->unk_10.x; + part->unk_10.y += D_802A3554_799514[i].y - part->unk_10.y; + part->unk_10.z += D_802A3554_799514[i].z - part->unk_10.z; + } else { + cond = TRUE; + if (D_802A3514_7994D4[i] != 0) { + D_802A3514_7994D4[i]--; + } else { + part->flags |= 2; + tx = D_802A3554_799514[i].x; + ty = D_802A3554_799514[i].y; + tz = D_802A3554_799514[i].z; + dist2 = dist2D(part->unk_10.x, part->unk_10.z, tx, tz); + part->unk_10.x += (tx - part->unk_10.x) / D_802A3818[i]; + part->unk_10.y += (ty - part->unk_10.y) / D_802A3818[i]; + part->unk_10.z += (tz - part->unk_10.z) / D_802A3818[i]; + if (D_802A3818[i] == 1) { + D_802A3514_7994D4[i] = -1; + part->unk_10.x = tx; + part->unk_10.y = ty; + part->unk_10.z = tz; + } else { + part->unk_10.y = (part->unk_10.y + (dist2 / 60.0f)); + } + D_802A3818[i]--; + } + } + } + } + + if (!cond) { + D_802A3838 = 2; + D_802A37F0->flags |= 0x10; + return ApiStatus_DONE2; + } + break; + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + break; + } + return ApiStatus_BLOCK; +} +#else +INCLUDE_ASM(s32, "battle/star/star_beam/796FC0", func_802A1518_7974D8); +#endif + +ApiStatus func_802A2468_798428(Evt* script, s32 isInitialCall) { + script->varTable[0] = D_802A3838; + return ApiStatus_DONE2; +} + +ApiStatus func_802A247C_79843C(Evt* script, s32 isInitialCall) { + if (isInitialCall) { + script->functionTemp[0] = 230; + } + + set_background_color_blend(0, 0, 0, script->functionTemp[0]); + + script->functionTemp[0] -= 5; + if (script->functionTemp[0] <= 200) { + set_background_color_blend(0, 0, 0, 200); + return ApiStatus_DONE2; + } + + return ApiStatus_BLOCK; +} diff --git a/tools/find_similar_areas.py b/tools/find_similar_areas.py index 2f8935d309..6f50c4891e 100755 --- a/tools/find_similar_areas.py +++ b/tools/find_similar_areas.py @@ -6,7 +6,6 @@ from dataclasses import dataclass from pathlib import Path from typing import Optional -from Levenshtein import ratio import os import sys @@ -121,7 +120,6 @@ def parse_map() -> OrderedDict[str, Symbol]: return syms - @dataclass class Match: query_offset: int @@ -131,6 +129,16 @@ class Match: def __str__(self): return f"{self.query_offset} {self.target_offset} {self.length}" + +@dataclass +class Result: + query: str + target: str + query_start: int + target_start: int + length: int + + def get_pair_matches(query_hashes: list[int], sym_hashes: list[int]) -> list[Match]: ret = [] @@ -146,6 +154,30 @@ def get_hashes(bytes: Bytes, window_size: int) -> list[int]: ret.append(bytes.normalized[i : i + window_size]) return ret + +def group_matches(query: str, target: str, matches: list[Match]) -> list[Result]: + ret = [] + + matches.sort(key=lambda m: m.query_offset) + + match_groups = [] + last_start = matches[0].query_offset + for match in matches: + if match.query_offset == last_start + 1: + match_groups[-1].append(match) + else: + match_groups.append([match]) + last_start = match.query_offset + + for group in match_groups: + query_start = group[0].query_offset + target_start = group[0].target_offset + length = len(group) + ret.append(Result(query, target, query_start, target_start, length)) + + return ret + + def get_matches(query: str, window_size: int): query_bytes: Optional[Bytes] = get_symbol_bytes(query) @@ -169,40 +201,28 @@ def get_matches(query: str, window_size: int): sym_hashes = get_hashes(sym_bytes, window_size) matches: list[Match] = get_pair_matches(query_hashes, sym_hashes) - for match in matches: - print(f"{query} {symbol} {match}") + if matches: + results = group_matches(query, symbol, matches) + + decompiled_str = "" + if syms[symbol].is_decompiled: + decompiled_str = " (decompiled)" + print(symbol + ":" + decompiled_str) + + for result in results: + total_len = result.length + window_size + query_str = f"{query} [{result.query_start}-{result.query_start + total_len}]" + target_str = f"{symbol} [{result.target_start}-{result.target_start + total_len}]" + print(f"\t{query_str} matches {target_str} ({total_len})") return OrderedDict(sorted(ret.items(), key=lambda kv: kv[1], reverse=True)) def do_query(query, window_size): - matches = get_matches(query, window_size) - num_matches = len(matches) - - if num_matches == 0: - print(query + " - found no matches") - return - - i = 0 - more_str = ":" - if args.num_out < num_matches: - more_str = " (showing only " + str(args.num_out) + "):" - - print(query + " - found " + str(num_matches) + " matches total" + more_str) - for match in matches: - if i == args.num_out: - break - match_str = "{:.3f} - {}".format(matches[match], match) - if syms[match].is_decompiled: - match_str += " (decompiled)" - print(match_str) - i += 1 - print() + get_matches(query, window_size) parser = argparse.ArgumentParser(description="Tool to find duplicate portions of code from one function in code across the codebase") parser.add_argument("query", help="function") -parser.add_argument("-t", "--threshold", help="score threshold between 0 and 1 (higher is more restrictive)", type=float, default=0.9, required=False) -parser.add_argument("-n", "--num-out", help="number of results to display", type=int, default=100, required=False) parser.add_argument("-w", "--window-size", help="number of bytes to compare", type=int, default=20, required=False) args = parser.parse_args() diff --git a/ver/us/asm/nonmatchings/190B20/play_movement_dust_effects.s b/ver/us/asm/nonmatchings/190B20/play_movement_dust_effects.s deleted file mode 100644 index 04a5c04cc4..0000000000 --- a/ver/us/asm/nonmatchings/190B20/play_movement_dust_effects.s +++ /dev/null @@ -1,98 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel play_movement_dust_effects -/* 192BD0 802642F0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 192BD4 802642F4 F7B60028 */ sdc1 $f22, 0x28($sp) -/* 192BD8 802642F8 4485B000 */ mtc1 $a1, $f22 -/* 192BDC 802642FC F7B80030 */ sdc1 $f24, 0x30($sp) -/* 192BE0 80264300 4486C000 */ mtc1 $a2, $f24 -/* 192BE4 80264304 F7BA0038 */ sdc1 $f26, 0x38($sp) -/* 192BE8 80264308 4487D000 */ mtc1 $a3, $f26 -/* 192BEC 8026430C 24020002 */ addiu $v0, $zero, 2 -/* 192BF0 80264310 AFBF0018 */ sw $ra, 0x18($sp) -/* 192BF4 80264314 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 192BF8 80264318 1482000C */ bne $a0, $v0, .L8026434C -/* 192BFC 8026431C 24020001 */ addiu $v0, $zero, 1 -/* 192C00 80264320 44800000 */ mtc1 $zero, $f0 -/* 192C04 80264324 00000000 */ nop -/* 192C08 80264328 4600C600 */ add.s $f24, $f24, $f0 -/* 192C0C 8026432C 3C018029 */ lui $at, %hi(D_802938A4) -/* 192C10 80264330 C42038A4 */ lwc1 $f0, %lo(D_802938A4)($at) -/* 192C14 80264334 4406C000 */ mfc1 $a2, $f24 -/* 192C18 80264338 0000202D */ daddu $a0, $zero, $zero -/* 192C1C 8026433C 0C01BEB4 */ jal fx_landing_dust -/* 192C20 80264340 E7A00010 */ swc1 $f0, 0x10($sp) -/* 192C24 80264344 08099110 */ j .L80264440 -/* 192C28 80264348 00000000 */ nop -.L8026434C: -/* 192C2C 8026434C 14820004 */ bne $a0, $v0, .L80264360 -/* 192C30 80264350 24020004 */ addiu $v0, $zero, 4 -/* 192C34 80264354 3C018029 */ lui $at, %hi(D_802938A8) -/* 192C38 80264358 08099110 */ j .L80264440 -/* 192C3C 8026435C A42238A8 */ sh $v0, %lo(D_802938A8)($at) -.L80264360: -/* 192C40 80264360 3C048029 */ lui $a0, %hi(D_802938A8) -/* 192C44 80264364 248438A8 */ addiu $a0, $a0, %lo(D_802938A8) -/* 192C48 80264368 94820000 */ lhu $v0, ($a0) -/* 192C4C 8026436C 24430001 */ addiu $v1, $v0, 1 -/* 192C50 80264370 00021400 */ sll $v0, $v0, 0x10 -/* 192C54 80264374 00021403 */ sra $v0, $v0, 0x10 -/* 192C58 80264378 28420004 */ slti $v0, $v0, 4 -/* 192C5C 8026437C 14400030 */ bnez $v0, .L80264440 -/* 192C60 80264380 A4830000 */ sh $v1, ($a0) -/* 192C64 80264384 A4800000 */ sh $zero, ($a0) -/* 192C68 80264388 C7AC0050 */ lwc1 $f12, 0x50($sp) -/* 192C6C 8026438C 0C00A6C9 */ jal clamp_angle -/* 192C70 80264390 46006307 */ neg.s $f12, $f12 -/* 192C74 80264394 3C0140C9 */ lui $at, 0x40c9 -/* 192C78 80264398 34210FD0 */ ori $at, $at, 0xfd0 -/* 192C7C 8026439C 44811000 */ mtc1 $at, $f2 -/* 192C80 802643A0 00000000 */ nop -/* 192C84 802643A4 46020502 */ mul.s $f20, $f0, $f2 -/* 192C88 802643A8 00000000 */ nop -/* 192C8C 802643AC 3C0143B4 */ lui $at, 0x43b4 -/* 192C90 802643B0 44810000 */ mtc1 $at, $f0 -/* 192C94 802643B4 00000000 */ nop -/* 192C98 802643B8 4600A503 */ div.s $f20, $f20, $f0 -/* 192C9C 802643BC 0C00A85B */ jal sin_rad -/* 192CA0 802643C0 4600A306 */ mov.s $f12, $f20 -/* 192CA4 802643C4 4600A306 */ mov.s $f12, $f20 -/* 192CA8 802643C8 0C00A874 */ jal cos_rad -/* 192CAC 802643CC 46000506 */ mov.s $f20, $f0 -/* 192CB0 802643D0 3C0141C0 */ lui $at, 0x41c0 -/* 192CB4 802643D4 44812000 */ mtc1 $at, $f4 -/* 192CB8 802643D8 00000000 */ nop -/* 192CBC 802643DC 4604A182 */ mul.s $f6, $f20, $f4 -/* 192CC0 802643E0 00000000 */ nop -/* 192CC4 802643E4 46040102 */ mul.s $f4, $f0, $f4 -/* 192CC8 802643E8 00000000 */ nop -/* 192CCC 802643EC 3C013E4C */ lui $at, 0x3e4c -/* 192CD0 802643F0 3421CCCD */ ori $at, $at, 0xcccd -/* 192CD4 802643F4 44811000 */ mtc1 $at, $f2 -/* 192CD8 802643F8 00000000 */ nop -/* 192CDC 802643FC 46023182 */ mul.s $f6, $f6, $f2 -/* 192CE0 80264400 00000000 */ nop -/* 192CE4 80264404 46022102 */ mul.s $f4, $f4, $f2 -/* 192CE8 80264408 00000000 */ nop -/* 192CEC 8026440C 3C013FC0 */ lui $at, 0x3fc0 -/* 192CF0 80264410 44811000 */ mtc1 $at, $f2 -/* 192CF4 80264414 00000000 */ nop -/* 192CF8 80264418 4602C600 */ add.s $f24, $f24, $f2 -/* 192CFC 8026441C 4606B580 */ add.s $f22, $f22, $f6 -/* 192D00 80264420 4604D680 */ add.s $f26, $f26, $f4 -/* 192D04 80264424 4406C000 */ mfc1 $a2, $f24 -/* 192D08 80264428 4405B000 */ mfc1 $a1, $f22 -/* 192D0C 8026442C 4407D000 */ mfc1 $a3, $f26 -/* 192D10 80264430 0000202D */ daddu $a0, $zero, $zero -/* 192D14 80264434 E7B40010 */ swc1 $f20, 0x10($sp) -/* 192D18 80264438 0C01BECC */ jal fx_walking_dust -/* 192D1C 8026443C E7A00014 */ swc1 $f0, 0x14($sp) -.L80264440: -/* 192D20 80264440 8FBF0018 */ lw $ra, 0x18($sp) -/* 192D24 80264444 D7BA0038 */ ldc1 $f26, 0x38($sp) -/* 192D28 80264448 D7B80030 */ ldc1 $f24, 0x30($sp) -/* 192D2C 8026444C D7B60028 */ ldc1 $f22, 0x28($sp) -/* 192D30 80264450 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 192D34 80264454 03E00008 */ jr $ra -/* 192D38 80264458 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/ver/us/asm/nonmatchings/19FAF0/func_80274A18.s b/ver/us/asm/nonmatchings/19FAF0/func_80274A18.s deleted file mode 100644 index 065cb2a840..0000000000 --- a/ver/us/asm/nonmatchings/19FAF0/func_80274A18.s +++ /dev/null @@ -1,609 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029D8A0 -.double 47.0 - -dlabel D_8029D8A8 -.double 1.12 - -dlabel D_8029D8B0 -.double 0.53 - -dlabel D_8029D8B8 -.double 47.0 - -dlabel D_8029D8C0 -.double 0.8 - -dlabel D_8029D8C8 -.double 0.53 - -dlabel D_8029D8D0 -.double 0.8 - -dlabel D_8029D8D8 -.double 16.5 - -dlabel D_8029D8E0 -.double 33.0 - -.section .text - -glabel func_80274A18 -/* 1A32F8 80274A18 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 1A32FC 80274A1C AFB30024 */ sw $s3, 0x24($sp) -/* 1A3300 80274A20 0080982D */ daddu $s3, $a0, $zero -/* 1A3304 80274A24 AFB40028 */ sw $s4, 0x28($sp) -/* 1A3308 80274A28 3C14800E */ lui $s4, %hi(gBattleStatus) -/* 1A330C 80274A2C 2694C070 */ addiu $s4, $s4, %lo(gBattleStatus) -/* 1A3310 80274A30 AFBF002C */ sw $ra, 0x2c($sp) -/* 1A3314 80274A34 AFB20020 */ sw $s2, 0x20($sp) -/* 1A3318 80274A38 AFB1001C */ sw $s1, 0x1c($sp) -/* 1A331C 80274A3C AFB00018 */ sw $s0, 0x18($sp) -/* 1A3320 80274A40 F7BA0048 */ sdc1 $f26, 0x48($sp) -/* 1A3324 80274A44 F7B80040 */ sdc1 $f24, 0x40($sp) -/* 1A3328 80274A48 F7B60038 */ sdc1 $f22, 0x38($sp) -/* 1A332C 80274A4C F7B40030 */ sdc1 $f20, 0x30($sp) -/* 1A3330 80274A50 8E9200D8 */ lw $s2, 0xd8($s4) -/* 1A3334 80274A54 8E71000C */ lw $s1, 0xc($s3) -/* 1A3338 80274A58 10A00010 */ beqz $a1, .L80274A9C -/* 1A333C 80274A5C 2650000C */ addiu $s0, $s2, 0xc -/* 1A3340 80274A60 8E250000 */ lw $a1, ($s1) -/* 1A3344 80274A64 0C0B1EAF */ jal evt_get_variable -/* 1A3348 80274A68 26310004 */ addiu $s1, $s1, 4 -/* 1A334C 80274A6C A6420070 */ sh $v0, 0x70($s2) -/* 1A3350 80274A70 8E250000 */ lw $a1, ($s1) -/* 1A3354 80274A74 0C0B1EAF */ jal evt_get_variable -/* 1A3358 80274A78 0260202D */ daddu $a0, $s3, $zero -/* 1A335C 80274A7C A6420072 */ sh $v0, 0x72($s2) -/* 1A3360 80274A80 AE600074 */ sw $zero, 0x74($s3) -/* 1A3364 80274A84 AE600070 */ sw $zero, 0x70($s3) -/* 1A3368 80274A88 86430072 */ lh $v1, 0x72($s2) -/* 1A336C 80274A8C 24020001 */ addiu $v0, $zero, 1 -/* 1A3370 80274A90 14620002 */ bne $v1, $v0, .L80274A9C -/* 1A3374 80274A94 24020002 */ addiu $v0, $zero, 2 -/* 1A3378 80274A98 AE620070 */ sw $v0, 0x70($s3) -.L80274A9C: -/* 1A337C 80274A9C 8E620070 */ lw $v0, 0x70($s3) -/* 1A3380 80274AA0 144000FC */ bnez $v0, .L80274E94 -/* 1A3384 80274AA4 00000000 */ nop -/* 1A3388 80274AA8 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A338C 80274AAC C618000C */ lwc1 $f24, 0xc($s0) -/* 1A3390 80274AB0 C61A0014 */ lwc1 $f26, 0x14($s0) -/* 1A3394 80274AB4 E6000000 */ swc1 $f0, ($s0) -/* 1A3398 80274AB8 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A339C 80274ABC 4406C000 */ mfc1 $a2, $f24 -/* 1A33A0 80274AC0 4407D000 */ mfc1 $a3, $f26 -/* 1A33A4 80274AC4 C6160000 */ lwc1 $f22, ($s0) -/* 1A33A8 80274AC8 E6000004 */ swc1 $f0, 4($s0) -/* 1A33AC 80274ACC C654014C */ lwc1 $f20, 0x14c($s2) -/* 1A33B0 80274AD0 4600B306 */ mov.s $f12, $f22 -/* 1A33B4 80274AD4 4600A386 */ mov.s $f14, $f20 -/* 1A33B8 80274AD8 0C00A720 */ jal atan2 -/* 1A33BC 80274ADC E6140008 */ swc1 $f20, 8($s0) -/* 1A33C0 80274AE0 4600B306 */ mov.s $f12, $f22 -/* 1A33C4 80274AE4 4406C000 */ mfc1 $a2, $f24 -/* 1A33C8 80274AE8 4407D000 */ mfc1 $a3, $f26 -/* 1A33CC 80274AEC 4600A386 */ mov.s $f14, $f20 -/* 1A33D0 80274AF0 0C00A7B5 */ jal dist2D -/* 1A33D4 80274AF4 E6000048 */ swc1 $f0, 0x48($s0) -/* 1A33D8 80274AF8 86020064 */ lh $v0, 0x64($s0) -/* 1A33DC 80274AFC 46000106 */ mov.s $f4, $f0 -/* 1A33E0 80274B00 14400012 */ bnez $v0, .L80274B4C -/* 1A33E4 80274B04 E604004C */ swc1 $f4, 0x4c($s0) -/* 1A33E8 80274B08 C6000040 */ lwc1 $f0, 0x40($s0) -/* 1A33EC 80274B0C C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A33F0 80274B10 46002003 */ div.s $f0, $f4, $f0 -/* 1A33F4 80274B14 4600028D */ trunc.w.s $f10, $f0 -/* 1A33F8 80274B18 44035000 */ mfc1 $v1, $f10 -/* 1A33FC 80274B1C 00000000 */ nop -/* 1A3400 80274B20 00031400 */ sll $v0, $v1, 0x10 -/* 1A3404 80274B24 00021403 */ sra $v0, $v0, 0x10 -/* 1A3408 80274B28 44820000 */ mtc1 $v0, $f0 -/* 1A340C 80274B2C 00000000 */ nop -/* 1A3410 80274B30 46800020 */ cvt.s.w $f0, $f0 -/* 1A3414 80274B34 46020002 */ mul.s $f0, $f0, $f2 -/* 1A3418 80274B38 00000000 */ nop -/* 1A341C 80274B3C 46002086 */ mov.s $f2, $f4 -/* 1A3420 80274B40 A6030064 */ sh $v1, 0x64($s0) -/* 1A3424 80274B44 0809D2E0 */ j .L80274B80 -/* 1A3428 80274B48 46001201 */ sub.s $f8, $f2, $f0 -.L80274B4C: -/* 1A342C 80274B4C 44821000 */ mtc1 $v0, $f2 -/* 1A3430 80274B50 00000000 */ nop -/* 1A3434 80274B54 468010A0 */ cvt.s.w $f2, $f2 -/* 1A3438 80274B58 86020064 */ lh $v0, 0x64($s0) -/* 1A343C 80274B5C 46022083 */ div.s $f2, $f4, $f2 -/* 1A3440 80274B60 44820000 */ mtc1 $v0, $f0 -/* 1A3444 80274B64 00000000 */ nop -/* 1A3448 80274B68 46800020 */ cvt.s.w $f0, $f0 -/* 1A344C 80274B6C 46020002 */ mul.s $f0, $f0, $f2 -/* 1A3450 80274B70 00000000 */ nop -/* 1A3454 80274B74 C604004C */ lwc1 $f4, 0x4c($s0) -/* 1A3458 80274B78 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A345C 80274B7C 46002201 */ sub.s $f8, $f4, $f0 -.L80274B80: -/* 1A3460 80274B80 86030064 */ lh $v1, 0x64($s0) -/* 1A3464 80274B84 106001BD */ beqz $v1, .L8027527C -/* 1A3468 80274B88 24020002 */ addiu $v0, $zero, 2 -/* 1A346C 80274B8C 86020064 */ lh $v0, 0x64($s0) -/* 1A3470 80274B90 C602000C */ lwc1 $f2, 0xc($s0) -/* 1A3474 80274B94 3C014049 */ lui $at, 0x4049 -/* 1A3478 80274B98 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A347C 80274B9C 44810000 */ mtc1 $at, $f0 -/* 1A3480 80274BA0 C6040000 */ lwc1 $f4, ($s0) -/* 1A3484 80274BA4 44823000 */ mtc1 $v0, $f6 -/* 1A3488 80274BA8 00000000 */ nop -/* 1A348C 80274BAC 468031A0 */ cvt.s.w $f6, $f6 -/* 1A3490 80274BB0 46060003 */ div.s $f0, $f0, $f6 -/* 1A3494 80274BB4 46041081 */ sub.s $f2, $f2, $f4 -/* 1A3498 80274BB8 E600003C */ swc1 $f0, 0x3c($s0) -/* 1A349C 80274BBC 44830000 */ mtc1 $v1, $f0 -/* 1A34A0 80274BC0 00000000 */ nop -/* 1A34A4 80274BC4 46800020 */ cvt.s.w $f0, $f0 -/* 1A34A8 80274BC8 46001083 */ div.s $f2, $f2, $f0 -/* 1A34AC 80274BCC C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A34B0 80274BD0 E6020030 */ swc1 $f2, 0x30($s0) -/* 1A34B4 80274BD4 C6020004 */ lwc1 $f2, 4($s0) -/* 1A34B8 80274BD8 AE000044 */ sw $zero, 0x44($s0) -/* 1A34BC 80274BDC 46020001 */ sub.s $f0, $f0, $f2 -/* 1A34C0 80274BE0 C6040014 */ lwc1 $f4, 0x14($s0) -/* 1A34C4 80274BE4 46003086 */ mov.s $f2, $f6 -/* 1A34C8 80274BE8 46020003 */ div.s $f0, $f0, $f2 -/* 1A34CC 80274BEC E6000034 */ swc1 $f0, 0x34($s0) -/* 1A34D0 80274BF0 46003006 */ mov.s $f0, $f6 -/* 1A34D4 80274BF4 46004003 */ div.s $f0, $f8, $f0 -/* 1A34D8 80274BF8 C6020008 */ lwc1 $f2, 8($s0) -/* 1A34DC 80274BFC 86020066 */ lh $v0, 0x66($s0) -/* 1A34E0 80274C00 46022101 */ sub.s $f4, $f4, $f2 -/* 1A34E4 80274C04 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A34E8 80274C08 28420003 */ slti $v0, $v0, 3 -/* 1A34EC 80274C0C 46001080 */ add.s $f2, $f2, $f0 -/* 1A34F0 80274C10 46062103 */ div.s $f4, $f4, $f6 -/* 1A34F4 80274C14 E6040038 */ swc1 $f4, 0x38($s0) -/* 1A34F8 80274C18 10400045 */ beqz $v0, .L80274D30 -/* 1A34FC 80274C1C E6020040 */ swc1 $f2, 0x40($s0) -/* 1A3500 80274C20 86020064 */ lh $v0, 0x64($s0) -/* 1A3504 80274C24 24030168 */ addiu $v1, $zero, 0x168 -/* 1A3508 80274C28 14400002 */ bnez $v0, .L80274C34 -/* 1A350C 80274C2C 0062001A */ div $zero, $v1, $v0 -/* 1A3510 80274C30 0007000D */ break 7 -.L80274C34: -/* 1A3514 80274C34 2401FFFF */ addiu $at, $zero, -1 -/* 1A3518 80274C38 14410004 */ bne $v0, $at, .L80274C4C -/* 1A351C 80274C3C 3C018000 */ lui $at, 0x8000 -/* 1A3520 80274C40 14610002 */ bne $v1, $at, .L80274C4C -/* 1A3524 80274C44 00000000 */ nop -/* 1A3528 80274C48 0006000D */ break 6 -.L80274C4C: -/* 1A352C 80274C4C 00001812 */ mflo $v1 -/* 1A3530 80274C50 C608004C */ lwc1 $f8, 0x4c($s0) -/* 1A3534 80274C54 3C014034 */ lui $at, 0x4034 -/* 1A3538 80274C58 44811800 */ mtc1 $at, $f3 -/* 1A353C 80274C5C 44801000 */ mtc1 $zero, $f2 -/* 1A3540 80274C60 46004021 */ cvt.d.s $f0, $f8 -/* 1A3544 80274C64 46220001 */ sub.d $f0, $f0, $f2 -/* 1A3548 80274C68 3C014018 */ lui $at, 0x4018 -/* 1A354C 80274C6C 44811800 */ mtc1 $at, $f3 -/* 1A3550 80274C70 44801000 */ mtc1 $zero, $f2 -/* 1A3554 80274C74 46200220 */ cvt.s.d $f8, $f0 -/* 1A3558 80274C78 46004021 */ cvt.d.s $f0, $f8 -/* 1A355C 80274C7C 46220003 */ div.d $f0, $f0, $f2 -/* 1A3560 80274C80 46200220 */ cvt.s.d $f8, $f0 -/* 1A3564 80274C84 3C01802A */ lui $at, %hi(D_8029D8A0) -/* 1A3568 80274C88 D422D8A0 */ ldc1 $f2, %lo(D_8029D8A0)($at) -/* 1A356C 80274C8C 46004021 */ cvt.d.s $f0, $f8 -/* 1A3570 80274C90 46220000 */ add.d $f0, $f0, $f2 -/* 1A3574 80274C94 3C0142B4 */ lui $at, 0x42b4 -/* 1A3578 80274C98 44811000 */ mtc1 $at, $f2 -/* 1A357C 80274C9C 46200220 */ cvt.s.d $f8, $f0 -/* 1A3580 80274CA0 44830000 */ mtc1 $v1, $f0 -/* 1A3584 80274CA4 00000000 */ nop -/* 1A3588 80274CA8 46800020 */ cvt.s.w $f0, $f0 -/* 1A358C 80274CAC 86030066 */ lh $v1, 0x66($s0) -/* 1A3590 80274CB0 24020002 */ addiu $v0, $zero, 2 -/* 1A3594 80274CB4 E6020024 */ swc1 $f2, 0x24($s0) -/* 1A3598 80274CB8 E6080050 */ swc1 $f8, 0x50($s0) -/* 1A359C 80274CBC 14620008 */ bne $v1, $v0, .L80274CE0 -/* 1A35A0 80274CC0 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A35A4 80274CC4 3C01802A */ lui $at, %hi(D_8029D8A8) -/* 1A35A8 80274CC8 D422D8A8 */ ldc1 $f2, %lo(D_8029D8A8)($at) -/* 1A35AC 80274CCC 46004021 */ cvt.d.s $f0, $f8 -/* 1A35B0 80274CD0 46220002 */ mul.d $f0, $f0, $f2 -/* 1A35B4 80274CD4 00000000 */ nop -/* 1A35B8 80274CD8 46200020 */ cvt.s.d $f0, $f0 -/* 1A35BC 80274CDC E6000050 */ swc1 $f0, 0x50($s0) -.L80274CE0: -/* 1A35C0 80274CE0 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A35C4 80274CE4 3C0140C9 */ lui $at, 0x40c9 -/* 1A35C8 80274CE8 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A35CC 80274CEC 44810000 */ mtc1 $at, $f0 -/* 1A35D0 80274CF0 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A35D4 80274CF4 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A35D8 80274CF8 AE000018 */ sw $zero, 0x18($s0) -/* 1A35DC 80274CFC 46006302 */ mul.s $f12, $f12, $f0 -/* 1A35E0 80274D00 00000000 */ nop -/* 1A35E4 80274D04 AE00001C */ sw $zero, 0x1c($s0) -/* 1A35E8 80274D08 4600A521 */ cvt.d.s $f20, $f20 -/* 1A35EC 80274D0C 3C0143B4 */ lui $at, 0x43b4 -/* 1A35F0 80274D10 44810000 */ mtc1 $at, $f0 -/* 1A35F4 80274D14 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A35F8 80274D18 0C00A85B */ jal sin_rad -/* 1A35FC 80274D1C 46006303 */ div.s $f12, $f12, $f0 -/* 1A3600 80274D20 3C01802A */ lui $at, %hi(D_8029D8B0) -/* 1A3604 80274D24 D422D8B0 */ ldc1 $f2, %lo(D_8029D8B0)($at) -/* 1A3608 80274D28 0809D390 */ j .L80274E40 -/* 1A360C 80274D2C 46000021 */ cvt.d.s $f0, $f0 -.L80274D30: -/* 1A3610 80274D30 86020064 */ lh $v0, 0x64($s0) -/* 1A3614 80274D34 24030168 */ addiu $v1, $zero, 0x168 -/* 1A3618 80274D38 14400002 */ bnez $v0, .L80274D44 -/* 1A361C 80274D3C 0062001A */ div $zero, $v1, $v0 -/* 1A3620 80274D40 0007000D */ break 7 -.L80274D44: -/* 1A3624 80274D44 2401FFFF */ addiu $at, $zero, -1 -/* 1A3628 80274D48 14410004 */ bne $v0, $at, .L80274D5C -/* 1A362C 80274D4C 3C018000 */ lui $at, 0x8000 -/* 1A3630 80274D50 14610002 */ bne $v1, $at, .L80274D5C -/* 1A3634 80274D54 00000000 */ nop -/* 1A3638 80274D58 0006000D */ break 6 -.L80274D5C: -/* 1A363C 80274D5C 00001812 */ mflo $v1 -/* 1A3640 80274D60 C608004C */ lwc1 $f8, 0x4c($s0) -/* 1A3644 80274D64 3C014034 */ lui $at, 0x4034 -/* 1A3648 80274D68 44811800 */ mtc1 $at, $f3 -/* 1A364C 80274D6C 44801000 */ mtc1 $zero, $f2 -/* 1A3650 80274D70 46004021 */ cvt.d.s $f0, $f8 -/* 1A3654 80274D74 46220001 */ sub.d $f0, $f0, $f2 -/* 1A3658 80274D78 3C014018 */ lui $at, 0x4018 -/* 1A365C 80274D7C 44811800 */ mtc1 $at, $f3 -/* 1A3660 80274D80 44801000 */ mtc1 $zero, $f2 -/* 1A3664 80274D84 46200220 */ cvt.s.d $f8, $f0 -/* 1A3668 80274D88 46004021 */ cvt.d.s $f0, $f8 -/* 1A366C 80274D8C 46220003 */ div.d $f0, $f0, $f2 -/* 1A3670 80274D90 46200220 */ cvt.s.d $f8, $f0 -/* 1A3674 80274D94 3C01802A */ lui $at, %hi(D_8029D8B8) -/* 1A3678 80274D98 D422D8B8 */ ldc1 $f2, %lo(D_8029D8B8)($at) -/* 1A367C 80274D9C 46004021 */ cvt.d.s $f0, $f8 -/* 1A3680 80274DA0 46220000 */ add.d $f0, $f0, $f2 -/* 1A3684 80274DA4 3C0142B4 */ lui $at, 0x42b4 -/* 1A3688 80274DA8 44811000 */ mtc1 $at, $f2 -/* 1A368C 80274DAC 46200220 */ cvt.s.d $f8, $f0 -/* 1A3690 80274DB0 44830000 */ mtc1 $v1, $f0 -/* 1A3694 80274DB4 00000000 */ nop -/* 1A3698 80274DB8 46800020 */ cvt.s.w $f0, $f0 -/* 1A369C 80274DBC 86030066 */ lh $v1, 0x66($s0) -/* 1A36A0 80274DC0 24020004 */ addiu $v0, $zero, 4 -/* 1A36A4 80274DC4 E6020024 */ swc1 $f2, 0x24($s0) -/* 1A36A8 80274DC8 E6080050 */ swc1 $f8, 0x50($s0) -/* 1A36AC 80274DCC 14620009 */ bne $v1, $v0, .L80274DF4 -/* 1A36B0 80274DD0 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A36B4 80274DD4 3C013FF4 */ lui $at, 0x3ff4 -/* 1A36B8 80274DD8 44811800 */ mtc1 $at, $f3 -/* 1A36BC 80274DDC 44801000 */ mtc1 $zero, $f2 -/* 1A36C0 80274DE0 46004021 */ cvt.d.s $f0, $f8 -/* 1A36C4 80274DE4 46220002 */ mul.d $f0, $f0, $f2 -/* 1A36C8 80274DE8 00000000 */ nop -/* 1A36CC 80274DEC 46200020 */ cvt.s.d $f0, $f0 -/* 1A36D0 80274DF0 E6000050 */ swc1 $f0, 0x50($s0) -.L80274DF4: -/* 1A36D4 80274DF4 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A36D8 80274DF8 3C0140C9 */ lui $at, 0x40c9 -/* 1A36DC 80274DFC 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A36E0 80274E00 44810000 */ mtc1 $at, $f0 -/* 1A36E4 80274E04 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A36E8 80274E08 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A36EC 80274E0C AE000018 */ sw $zero, 0x18($s0) -/* 1A36F0 80274E10 46006302 */ mul.s $f12, $f12, $f0 -/* 1A36F4 80274E14 00000000 */ nop -/* 1A36F8 80274E18 AE00001C */ sw $zero, 0x1c($s0) -/* 1A36FC 80274E1C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A3700 80274E20 3C0143B4 */ lui $at, 0x43b4 -/* 1A3704 80274E24 44810000 */ mtc1 $at, $f0 -/* 1A3708 80274E28 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A370C 80274E2C 0C00A85B */ jal sin_rad -/* 1A3710 80274E30 46006303 */ div.s $f12, $f12, $f0 -/* 1A3714 80274E34 3C01802A */ lui $at, %hi(D_8029D8C0) -/* 1A3718 80274E38 D422D8C0 */ ldc1 $f2, %lo(D_8029D8C0)($at) -/* 1A371C 80274E3C 46000021 */ cvt.d.s $f0, $f0 -.L80274E40: -/* 1A3720 80274E40 46220002 */ mul.d $f0, $f0, $f2 -/* 1A3724 80274E44 00000000 */ nop -/* 1A3728 80274E48 46360002 */ mul.d $f0, $f0, $f22 -/* 1A372C 80274E4C 00000000 */ nop -/* 1A3730 80274E50 46360000 */ add.d $f0, $f0, $f22 -/* 1A3734 80274E54 4620A500 */ add.d $f20, $f20, $f0 -/* 1A3738 80274E58 4620A520 */ cvt.s.d $f20, $f20 -/* 1A373C 80274E5C E6140044 */ swc1 $f20, 0x44($s0) -/* 1A3740 80274E60 0000202D */ daddu $a0, $zero, $zero -/* 1A3744 80274E64 8E060058 */ lw $a2, 0x58($s0) -/* 1A3748 80274E68 0C098F3F */ jal set_animation -/* 1A374C 80274E6C 0080282D */ daddu $a1, $a0, $zero -/* 1A3750 80274E70 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A3754 80274E74 24040160 */ addiu $a0, $zero, 0x160 -/* 1A3758 80274E78 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A375C 80274E7C 8E460144 */ lw $a2, 0x144($s2) -/* 1A3760 80274E80 8E470148 */ lw $a3, 0x148($s2) -/* 1A3764 80274E84 0C052757 */ jal sfx_play_sound_at_position -/* 1A3768 80274E88 0000282D */ daddu $a1, $zero, $zero -/* 1A376C 80274E8C 24020001 */ addiu $v0, $zero, 1 -/* 1A3770 80274E90 AE620070 */ sw $v0, 0x70($s3) -.L80274E94: -/* 1A3774 80274E94 8E630070 */ lw $v1, 0x70($s3) -/* 1A3778 80274E98 24020002 */ addiu $v0, $zero, 2 -/* 1A377C 80274E9C 10620089 */ beq $v1, $v0, .L802750C4 -/* 1A3780 80274EA0 28620003 */ slti $v0, $v1, 3 -/* 1A3784 80274EA4 10400005 */ beqz $v0, .L80274EBC -/* 1A3788 80274EA8 24020001 */ addiu $v0, $zero, 1 -/* 1A378C 80274EAC 10620008 */ beq $v1, $v0, .L80274ED0 -/* 1A3790 80274EB0 0000102D */ daddu $v0, $zero, $zero -/* 1A3794 80274EB4 0809D49F */ j .L8027527C -/* 1A3798 80274EB8 00000000 */ nop -.L80274EBC: -/* 1A379C 80274EBC 24020003 */ addiu $v0, $zero, 3 -/* 1A37A0 80274EC0 106200B2 */ beq $v1, $v0, .L8027518C -/* 1A37A4 80274EC4 0000102D */ daddu $v0, $zero, $zero -/* 1A37A8 80274EC8 0809D49F */ j .L8027527C -/* 1A37AC 80274ECC 00000000 */ nop -.L80274ED0: -/* 1A37B0 80274ED0 C6020044 */ lwc1 $f2, 0x44($s0) -/* 1A37B4 80274ED4 3C013FC9 */ lui $at, 0x3fc9 -/* 1A37B8 80274ED8 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A37BC 80274EDC 44810000 */ mtc1 $at, $f0 -/* 1A37C0 80274EE0 00000000 */ nop -/* 1A37C4 80274EE4 4602003C */ c.lt.s $f0, $f2 -/* 1A37C8 80274EE8 00000000 */ nop -/* 1A37CC 80274EEC 45000004 */ bc1f .L80274F00 -/* 1A37D0 80274EF0 0000202D */ daddu $a0, $zero, $zero -/* 1A37D4 80274EF4 8E06005C */ lw $a2, 0x5c($s0) -/* 1A37D8 80274EF8 0C098F3F */ jal set_animation -/* 1A37DC 80274EFC 0080282D */ daddu $a1, $a0, $zero -.L80274F00: -/* 1A37E0 80274F00 C6060000 */ lwc1 $f6, ($s0) -/* 1A37E4 80274F04 C6000030 */ lwc1 $f0, 0x30($s0) -/* 1A37E8 80274F08 C6040004 */ lwc1 $f4, 4($s0) -/* 1A37EC 80274F0C 46003180 */ add.s $f6, $f6, $f0 -/* 1A37F0 80274F10 C6000034 */ lwc1 $f0, 0x34($s0) -/* 1A37F4 80274F14 C6020008 */ lwc1 $f2, 8($s0) -/* 1A37F8 80274F18 46002100 */ add.s $f4, $f4, $f0 -/* 1A37FC 80274F1C C6000038 */ lwc1 $f0, 0x38($s0) -/* 1A3800 80274F20 46001080 */ add.s $f2, $f2, $f0 -/* 1A3804 80274F24 E6060000 */ swc1 $f6, ($s0) -/* 1A3808 80274F28 E6040004 */ swc1 $f4, 4($s0) -/* 1A380C 80274F2C E6020008 */ swc1 $f2, 8($s0) -/* 1A3810 80274F30 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A3814 80274F34 46003086 */ mov.s $f2, $f6 -/* 1A3818 80274F38 E6000018 */ swc1 $f0, 0x18($s0) -/* 1A381C 80274F3C E6420144 */ swc1 $f2, 0x144($s2) -/* 1A3820 80274F40 0C00A85B */ jal sin_rad -/* 1A3824 80274F44 C60C0044 */ lwc1 $f12, 0x44($s0) -/* 1A3828 80274F48 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A382C 80274F4C 46001082 */ mul.s $f2, $f2, $f0 -/* 1A3830 80274F50 00000000 */ nop -/* 1A3834 80274F54 C6000004 */ lwc1 $f0, 4($s0) -/* 1A3838 80274F58 46020000 */ add.s $f0, $f0, $f2 -/* 1A383C 80274F5C E6400148 */ swc1 $f0, 0x148($s2) -/* 1A3840 80274F60 C6000008 */ lwc1 $f0, 8($s0) -/* 1A3844 80274F64 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A3848 80274F68 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1A384C 80274F6C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A3850 80274F70 4602003C */ c.lt.s $f0, $f2 -/* 1A3854 80274F74 00000000 */ nop -/* 1A3858 80274F78 45000005 */ bc1f .L80274F90 -/* 1A385C 80274F7C 00000000 */ nop -/* 1A3860 80274F80 86020064 */ lh $v0, 0x64($s0) -/* 1A3864 80274F84 28420003 */ slti $v0, $v0, 3 -/* 1A3868 80274F88 54400001 */ bnel $v0, $zero, .L80274F90 -/* 1A386C 80274F8C E6420148 */ swc1 $f2, 0x148($s2) -.L80274F90: -/* 1A3870 80274F90 86020066 */ lh $v0, 0x66($s0) -/* 1A3874 80274F94 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A3878 80274F98 28420003 */ slti $v0, $v0, 3 -/* 1A387C 80274F9C 10400013 */ beqz $v0, .L80274FEC -/* 1A3880 80274FA0 E600001C */ swc1 $f0, 0x1c($s0) -/* 1A3884 80274FA4 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3888 80274FA8 3C0140C9 */ lui $at, 0x40c9 -/* 1A388C 80274FAC 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A3890 80274FB0 44810000 */ mtc1 $at, $f0 -/* 1A3894 80274FB4 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A3898 80274FB8 46006302 */ mul.s $f12, $f12, $f0 -/* 1A389C 80274FBC 00000000 */ nop -/* 1A38A0 80274FC0 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A38A4 80274FC4 4600A521 */ cvt.d.s $f20, $f20 -/* 1A38A8 80274FC8 3C0143B4 */ lui $at, 0x43b4 -/* 1A38AC 80274FCC 44810000 */ mtc1 $at, $f0 -/* 1A38B0 80274FD0 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A38B4 80274FD4 0C00A85B */ jal sin_rad -/* 1A38B8 80274FD8 46006303 */ div.s $f12, $f12, $f0 -/* 1A38BC 80274FDC 3C01802A */ lui $at, %hi(D_8029D8C8) -/* 1A38C0 80274FE0 D422D8C8 */ ldc1 $f2, %lo(D_8029D8C8)($at) -/* 1A38C4 80274FE4 0809D40C */ j .L80275030 -/* 1A38C8 80274FE8 46000021 */ cvt.d.s $f0, $f0 -.L80274FEC: -/* 1A38CC 80274FEC C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A38D0 80274FF0 3C0140C9 */ lui $at, 0x40c9 -/* 1A38D4 80274FF4 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A38D8 80274FF8 44810000 */ mtc1 $at, $f0 -/* 1A38DC 80274FFC C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A38E0 80275000 46006302 */ mul.s $f12, $f12, $f0 -/* 1A38E4 80275004 00000000 */ nop -/* 1A38E8 80275008 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A38EC 8027500C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A38F0 80275010 3C0143B4 */ lui $at, 0x43b4 -/* 1A38F4 80275014 44810000 */ mtc1 $at, $f0 -/* 1A38F8 80275018 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A38FC 8027501C 0C00A85B */ jal sin_rad -/* 1A3900 80275020 46006303 */ div.s $f12, $f12, $f0 -/* 1A3904 80275024 3C01802A */ lui $at, %hi(D_8029D8D0) -/* 1A3908 80275028 D422D8D0 */ ldc1 $f2, %lo(D_8029D8D0)($at) -/* 1A390C 8027502C 46000021 */ cvt.d.s $f0, $f0 -.L80275030: -/* 1A3910 80275030 46220002 */ mul.d $f0, $f0, $f2 -/* 1A3914 80275034 00000000 */ nop -/* 1A3918 80275038 46360002 */ mul.d $f0, $f0, $f22 -/* 1A391C 8027503C 00000000 */ nop -/* 1A3920 80275040 46360000 */ add.d $f0, $f0, $f22 -/* 1A3924 80275044 4620A500 */ add.d $f20, $f20, $f0 -/* 1A3928 80275048 4620A520 */ cvt.s.d $f20, $f20 -/* 1A392C 8027504C E6140044 */ swc1 $f20, 0x44($s0) -/* 1A3930 80275050 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3934 80275054 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A3938 80275058 46006300 */ add.s $f12, $f12, $f0 -/* 1A393C 8027505C 0C00A6C9 */ jal clamp_angle -/* 1A3940 80275060 E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A3944 80275064 96020064 */ lhu $v0, 0x64($s0) -/* 1A3948 80275068 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A394C 8027506C 2442FFFF */ addiu $v0, $v0, -1 -/* 1A3950 80275070 A6020064 */ sh $v0, 0x64($s0) -/* 1A3954 80275074 00021400 */ sll $v0, $v0, 0x10 -/* 1A3958 80275078 14400080 */ bnez $v0, .L8027527C -/* 1A395C 8027507C 0000102D */ daddu $v0, $zero, $zero -/* 1A3960 80275080 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A3964 80275084 0000202D */ daddu $a0, $zero, $zero -/* 1A3968 80275088 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A396C 8027508C C6000018 */ lwc1 $f0, 0x18($s0) -/* 1A3970 80275090 C602001C */ lwc1 $f2, 0x1c($s0) -/* 1A3974 80275094 8E060060 */ lw $a2, 0x60($s0) -/* 1A3978 80275098 46020001 */ sub.s $f0, $f0, $f2 -/* 1A397C 8027509C 3C013FE6 */ lui $at, 0x3fe6 -/* 1A3980 802750A0 34216666 */ ori $at, $at, 0x6666 -/* 1A3984 802750A4 44811000 */ mtc1 $at, $f2 -/* 1A3988 802750A8 0080282D */ daddu $a1, $a0, $zero -/* 1A398C 802750AC E602003C */ swc1 $f2, 0x3c($s0) -/* 1A3990 802750B0 46000007 */ neg.s $f0, $f0 -/* 1A3994 802750B4 0C098F3F */ jal set_animation -/* 1A3998 802750B8 E6000044 */ swc1 $f0, 0x44($s0) -/* 1A399C 802750BC 0809D49F */ j .L8027527C -/* 1A39A0 802750C0 24020001 */ addiu $v0, $zero, 1 -.L802750C4: -/* 1A39A4 802750C4 82820083 */ lb $v0, 0x83($s4) -/* 1A39A8 802750C8 10400063 */ beqz $v0, .L80275258 -/* 1A39AC 802750CC 24020001 */ addiu $v0, $zero, 1 -/* 1A39B0 802750D0 A6020064 */ sh $v0, 0x64($s0) -/* 1A39B4 802750D4 86020064 */ lh $v0, 0x64($s0) -/* 1A39B8 802750D8 24030168 */ addiu $v1, $zero, 0x168 -/* 1A39BC 802750DC 14400002 */ bnez $v0, .L802750E8 -/* 1A39C0 802750E0 0062001A */ div $zero, $v1, $v0 -/* 1A39C4 802750E4 0007000D */ break 7 -.L802750E8: -/* 1A39C8 802750E8 2401FFFF */ addiu $at, $zero, -1 -/* 1A39CC 802750EC 14410004 */ bne $v0, $at, .L80275100 -/* 1A39D0 802750F0 3C018000 */ lui $at, 0x8000 -/* 1A39D4 802750F4 14610002 */ bne $v1, $at, .L80275100 -/* 1A39D8 802750F8 00000000 */ nop -/* 1A39DC 802750FC 0006000D */ break 6 -.L80275100: -/* 1A39E0 80275100 00001812 */ mflo $v1 -/* 1A39E4 80275104 C6020018 */ lwc1 $f2, 0x18($s0) -/* 1A39E8 80275108 C600001C */ lwc1 $f0, 0x1c($s0) -/* 1A39EC 8027510C 3C013FE6 */ lui $at, 0x3fe6 -/* 1A39F0 80275110 34216666 */ ori $at, $at, 0x6666 -/* 1A39F4 80275114 44814000 */ mtc1 $at, $f8 -/* 1A39F8 80275118 C604001C */ lwc1 $f4, 0x1c($s0) -/* 1A39FC 8027511C 46001081 */ sub.s $f2, $f2, $f0 -/* 1A3A00 80275120 C6000018 */ lwc1 $f0, 0x18($s0) -/* 1A3A04 80275124 3C0142B4 */ lui $at, 0x42b4 -/* 1A3A08 80275128 44813000 */ mtc1 $at, $f6 -/* 1A3A0C 8027512C 46040001 */ sub.s $f0, $f0, $f4 -/* 1A3A10 80275130 E608003C */ swc1 $f8, 0x3c($s0) -/* 1A3A14 80275134 E6060024 */ swc1 $f6, 0x24($s0) -/* 1A3A18 80275138 46001087 */ neg.s $f2, $f2 -/* 1A3A1C 8027513C E6020044 */ swc1 $f2, 0x44($s0) -/* 1A3A20 80275140 3C01802A */ lui $at, %hi(D_8029D8D8) -/* 1A3A24 80275144 D422D8D8 */ ldc1 $f2, %lo(D_8029D8D8)($at) -/* 1A3A28 80275148 46000005 */ abs.s $f0, $f0 -/* 1A3A2C 8027514C 46000021 */ cvt.d.s $f0, $f0 -/* 1A3A30 80275150 46220003 */ div.d $f0, $f0, $f2 -/* 1A3A34 80275154 46200020 */ cvt.s.d $f0, $f0 -/* 1A3A38 80275158 E6000050 */ swc1 $f0, 0x50($s0) -/* 1A3A3C 8027515C 44830000 */ mtc1 $v1, $f0 -/* 1A3A40 80275160 00000000 */ nop -/* 1A3A44 80275164 46800020 */ cvt.s.w $f0, $f0 -/* 1A3A48 80275168 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A3A4C 8027516C C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A3A50 80275170 E6000000 */ swc1 $f0, ($s0) -/* 1A3A54 80275174 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A3A58 80275178 E6000004 */ swc1 $f0, 4($s0) -/* 1A3A5C 8027517C C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A3A60 80275180 24020003 */ addiu $v0, $zero, 3 -/* 1A3A64 80275184 E6000008 */ swc1 $f0, 8($s0) -/* 1A3A68 80275188 AE620070 */ sw $v0, 0x70($s3) -.L8027518C: -/* 1A3A6C 8027518C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3A70 80275190 3C0140C9 */ lui $at, 0x40c9 -/* 1A3A74 80275194 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A3A78 80275198 4481B000 */ mtc1 $at, $f22 -/* 1A3A7C 8027519C 00000000 */ nop -/* 1A3A80 802751A0 46166302 */ mul.s $f12, $f12, $f22 -/* 1A3A84 802751A4 00000000 */ nop -/* 1A3A88 802751A8 C6140000 */ lwc1 $f20, ($s0) -/* 1A3A8C 802751AC 3C0143B4 */ lui $at, 0x43b4 -/* 1A3A90 802751B0 4481C000 */ mtc1 $at, $f24 -/* 1A3A94 802751B4 4600A521 */ cvt.d.s $f20, $f20 -/* 1A3A98 802751B8 0C00A85B */ jal sin_rad -/* 1A3A9C 802751BC 46186303 */ div.s $f12, $f12, $f24 -/* 1A3AA0 802751C0 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A3AA4 802751C4 46001082 */ mul.s $f2, $f2, $f0 -/* 1A3AA8 802751C8 00000000 */ nop -/* 1A3AAC 802751CC C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3AB0 802751D0 46166302 */ mul.s $f12, $f12, $f22 -/* 1A3AB4 802751D4 00000000 */ nop -/* 1A3AB8 802751D8 3C01802A */ lui $at, %hi(D_8029D8E0) -/* 1A3ABC 802751DC D420D8E0 */ ldc1 $f0, %lo(D_8029D8E0)($at) -/* 1A3AC0 802751E0 460010A1 */ cvt.d.s $f2, $f2 -/* 1A3AC4 802751E4 46201083 */ div.d $f2, $f2, $f0 -/* 1A3AC8 802751E8 4622A500 */ add.d $f20, $f20, $f2 -/* 1A3ACC 802751EC 46186303 */ div.s $f12, $f12, $f24 -/* 1A3AD0 802751F0 4620A520 */ cvt.s.d $f20, $f20 -/* 1A3AD4 802751F4 0C00A85B */ jal sin_rad -/* 1A3AD8 802751F8 E6140000 */ swc1 $f20, ($s0) -/* 1A3ADC 802751FC C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A3AE0 80275200 46001082 */ mul.s $f2, $f2, $f0 -/* 1A3AE4 80275204 00000000 */ nop -/* 1A3AE8 80275208 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3AEC 8027520C C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A3AF0 80275210 46006300 */ add.s $f12, $f12, $f0 -/* 1A3AF4 80275214 C6000004 */ lwc1 $f0, 4($s0) -/* 1A3AF8 80275218 46020001 */ sub.s $f0, $f0, $f2 -/* 1A3AFC 8027521C E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A3B00 80275220 0C00A6C9 */ jal clamp_angle -/* 1A3B04 80275224 E6000004 */ swc1 $f0, 4($s0) -/* 1A3B08 80275228 C6020000 */ lwc1 $f2, ($s0) -/* 1A3B0C 8027522C E6000024 */ swc1 $f0, 0x24($s0) -/* 1A3B10 80275230 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A3B14 80275234 C6000004 */ lwc1 $f0, 4($s0) -/* 1A3B18 80275238 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A3B1C 8027523C C6000008 */ lwc1 $f0, 8($s0) -/* 1A3B20 80275240 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A3B24 80275244 3C02800E */ lui $v0, %hi(gBattleStatus) -/* 1A3B28 80275248 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0) -/* 1A3B2C 8027524C 30422000 */ andi $v0, $v0, 0x2000 -/* 1A3B30 80275250 10400003 */ beqz $v0, .L80275260 -/* 1A3B34 80275254 00000000 */ nop -.L80275258: -/* 1A3B38 80275258 0809D49F */ j .L8027527C -/* 1A3B3C 8027525C 24020002 */ addiu $v0, $zero, 2 -.L80275260: -/* 1A3B40 80275260 96030064 */ lhu $v1, 0x64($s0) -/* 1A3B44 80275264 2463FFFF */ addiu $v1, $v1, -1 -/* 1A3B48 80275268 A6030064 */ sh $v1, 0x64($s0) -/* 1A3B4C 8027526C 00031C00 */ sll $v1, $v1, 0x10 -/* 1A3B50 80275270 10600002 */ beqz $v1, .L8027527C -/* 1A3B54 80275274 24020001 */ addiu $v0, $zero, 1 -/* 1A3B58 80275278 0000102D */ daddu $v0, $zero, $zero -.L8027527C: -/* 1A3B5C 8027527C 8FBF002C */ lw $ra, 0x2c($sp) -/* 1A3B60 80275280 8FB40028 */ lw $s4, 0x28($sp) -/* 1A3B64 80275284 8FB30024 */ lw $s3, 0x24($sp) -/* 1A3B68 80275288 8FB20020 */ lw $s2, 0x20($sp) -/* 1A3B6C 8027528C 8FB1001C */ lw $s1, 0x1c($sp) -/* 1A3B70 80275290 8FB00018 */ lw $s0, 0x18($sp) -/* 1A3B74 80275294 D7BA0048 */ ldc1 $f26, 0x48($sp) -/* 1A3B78 80275298 D7B80040 */ ldc1 $f24, 0x40($sp) -/* 1A3B7C 8027529C D7B60038 */ ldc1 $f22, 0x38($sp) -/* 1A3B80 802752A0 D7B40030 */ ldc1 $f20, 0x30($sp) -/* 1A3B84 802752A4 03E00008 */ jr $ra -/* 1A3B88 802752A8 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/19FAF0/func_802752AC.s b/ver/us/asm/nonmatchings/19FAF0/func_802752AC.s deleted file mode 100644 index ae77245b24..0000000000 --- a/ver/us/asm/nonmatchings/19FAF0/func_802752AC.s +++ /dev/null @@ -1,868 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029D8E8 -.double 0.53 - -dlabel D_8029D8F0 -.double 0.01 - -dlabel D_8029D8F8 -.double 0.53 - -dlabel D_8029D900 -.double 0.01 - -dlabel D_8029D908 -.double 16.5 - -dlabel D_8029D910 -.double 0.53 - -dlabel D_8029D918 -.double 0.01 - -dlabel D_8029D920 -.double 0.53 - -dlabel D_8029D928 -.double 0.01 - -dlabel D_8029D930 -.double 33.0 - -.section .text - -glabel func_802752AC -/* 1A3B8C 802752AC 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 1A3B90 802752B0 AFB20020 */ sw $s2, 0x20($sp) -/* 1A3B94 802752B4 3C12800E */ lui $s2, %hi(gBattleStatus+0xD8) -/* 1A3B98 802752B8 8E52C148 */ lw $s2, %lo(gBattleStatus+0xD8)($s2) -/* 1A3B9C 802752BC AFB30024 */ sw $s3, 0x24($sp) -/* 1A3BA0 802752C0 0080982D */ daddu $s3, $a0, $zero -/* 1A3BA4 802752C4 AFBF0028 */ sw $ra, 0x28($sp) -/* 1A3BA8 802752C8 AFB1001C */ sw $s1, 0x1c($sp) -/* 1A3BAC 802752CC AFB00018 */ sw $s0, 0x18($sp) -/* 1A3BB0 802752D0 F7BA0048 */ sdc1 $f26, 0x48($sp) -/* 1A3BB4 802752D4 F7B80040 */ sdc1 $f24, 0x40($sp) -/* 1A3BB8 802752D8 F7B60038 */ sdc1 $f22, 0x38($sp) -/* 1A3BBC 802752DC F7B40030 */ sdc1 $f20, 0x30($sp) -/* 1A3BC0 802752E0 8E71000C */ lw $s1, 0xc($s3) -/* 1A3BC4 802752E4 10A00019 */ beqz $a1, .L8027534C -/* 1A3BC8 802752E8 2650000C */ addiu $s0, $s2, 0xc -/* 1A3BCC 802752EC 8E250000 */ lw $a1, ($s1) -/* 1A3BD0 802752F0 0C0B1EAF */ jal evt_get_variable -/* 1A3BD4 802752F4 26310004 */ addiu $s1, $s1, 4 -/* 1A3BD8 802752F8 A6420070 */ sh $v0, 0x70($s2) -/* 1A3BDC 802752FC 8E250000 */ lw $a1, ($s1) -/* 1A3BE0 80275300 0C0B1EAF */ jal evt_get_variable -/* 1A3BE4 80275304 0260202D */ daddu $a0, $s3, $zero -/* 1A3BE8 80275308 A6420072 */ sh $v0, 0x72($s2) -/* 1A3BEC 8027530C AE600070 */ sw $zero, 0x70($s3) -/* 1A3BF0 80275310 86430072 */ lh $v1, 0x72($s2) -/* 1A3BF4 80275314 24020001 */ addiu $v0, $zero, 1 -/* 1A3BF8 80275318 10620005 */ beq $v1, $v0, .L80275330 -/* 1A3BFC 8027531C 24020005 */ addiu $v0, $zero, 5 -/* 1A3C00 80275320 10620003 */ beq $v1, $v0, .L80275330 -/* 1A3C04 80275324 24020006 */ addiu $v0, $zero, 6 -/* 1A3C08 80275328 14620003 */ bne $v1, $v0, .L80275338 -/* 1A3C0C 8027532C 00000000 */ nop -.L80275330: -/* 1A3C10 80275330 2402000A */ addiu $v0, $zero, 0xa -/* 1A3C14 80275334 AE620070 */ sw $v0, 0x70($s3) -.L80275338: -/* 1A3C18 80275338 86030066 */ lh $v1, 0x66($s0) -/* 1A3C1C 8027533C 24020002 */ addiu $v0, $zero, 2 -/* 1A3C20 80275340 14620002 */ bne $v1, $v0, .L8027534C -/* 1A3C24 80275344 24020014 */ addiu $v0, $zero, 0x14 -/* 1A3C28 80275348 AE620070 */ sw $v0, 0x70($s3) -.L8027534C: -/* 1A3C2C 8027534C 8E630070 */ lw $v1, 0x70($s3) -/* 1A3C30 80275350 2402000A */ addiu $v0, $zero, 0xa -/* 1A3C34 80275354 106200C0 */ beq $v1, $v0, .L80275658 -/* 1A3C38 80275358 2862000B */ slti $v0, $v1, 0xb -/* 1A3C3C 8027535C 10400005 */ beqz $v0, .L80275374 -/* 1A3C40 80275360 24020014 */ addiu $v0, $zero, 0x14 -/* 1A3C44 80275364 10600007 */ beqz $v1, .L80275384 -/* 1A3C48 80275368 24020002 */ addiu $v0, $zero, 2 -/* 1A3C4C 8027536C 0809D679 */ j .L802759E4 -/* 1A3C50 80275370 00000000 */ nop -.L80275374: -/* 1A3C54 80275374 10620172 */ beq $v1, $v0, .L80275940 -/* 1A3C58 80275378 24020001 */ addiu $v0, $zero, 1 -/* 1A3C5C 8027537C 0809D677 */ j .L802759DC -/* 1A3C60 80275380 00000000 */ nop -.L80275384: -/* 1A3C64 80275384 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A3C68 80275388 C618000C */ lwc1 $f24, 0xc($s0) -/* 1A3C6C 8027538C C61A0014 */ lwc1 $f26, 0x14($s0) -/* 1A3C70 80275390 E6000000 */ swc1 $f0, ($s0) -/* 1A3C74 80275394 46000586 */ mov.s $f22, $f0 -/* 1A3C78 80275398 4406C000 */ mfc1 $a2, $f24 -/* 1A3C7C 8027539C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A3C80 802753A0 4600B306 */ mov.s $f12, $f22 -/* 1A3C84 802753A4 E6000004 */ swc1 $f0, 4($s0) -/* 1A3C88 802753A8 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A3C8C 802753AC 4407D000 */ mfc1 $a3, $f26 -/* 1A3C90 802753B0 46000506 */ mov.s $f20, $f0 -/* 1A3C94 802753B4 4600A386 */ mov.s $f14, $f20 -/* 1A3C98 802753B8 0C00A720 */ jal atan2 -/* 1A3C9C 802753BC E6140008 */ swc1 $f20, 8($s0) -/* 1A3CA0 802753C0 4600B306 */ mov.s $f12, $f22 -/* 1A3CA4 802753C4 4406C000 */ mfc1 $a2, $f24 -/* 1A3CA8 802753C8 4407D000 */ mfc1 $a3, $f26 -/* 1A3CAC 802753CC 4600A386 */ mov.s $f14, $f20 -/* 1A3CB0 802753D0 0C00A7B5 */ jal dist2D -/* 1A3CB4 802753D4 E6000048 */ swc1 $f0, 0x48($s0) -/* 1A3CB8 802753D8 86020064 */ lh $v0, 0x64($s0) -/* 1A3CBC 802753DC 46000106 */ mov.s $f4, $f0 -/* 1A3CC0 802753E0 14400012 */ bnez $v0, .L8027542C -/* 1A3CC4 802753E4 E604004C */ swc1 $f4, 0x4c($s0) -/* 1A3CC8 802753E8 C6000040 */ lwc1 $f0, 0x40($s0) -/* 1A3CCC 802753EC C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A3CD0 802753F0 46002003 */ div.s $f0, $f4, $f0 -/* 1A3CD4 802753F4 4600028D */ trunc.w.s $f10, $f0 -/* 1A3CD8 802753F8 44035000 */ mfc1 $v1, $f10 -/* 1A3CDC 802753FC 00000000 */ nop -/* 1A3CE0 80275400 00031400 */ sll $v0, $v1, 0x10 -/* 1A3CE4 80275404 00021403 */ sra $v0, $v0, 0x10 -/* 1A3CE8 80275408 44820000 */ mtc1 $v0, $f0 -/* 1A3CEC 8027540C 00000000 */ nop -/* 1A3CF0 80275410 46800020 */ cvt.s.w $f0, $f0 -/* 1A3CF4 80275414 46020002 */ mul.s $f0, $f0, $f2 -/* 1A3CF8 80275418 00000000 */ nop -/* 1A3CFC 8027541C 46002086 */ mov.s $f2, $f4 -/* 1A3D00 80275420 A6030064 */ sh $v1, 0x64($s0) -/* 1A3D04 80275424 0809D518 */ j .L80275460 -/* 1A3D08 80275428 46001201 */ sub.s $f8, $f2, $f0 -.L8027542C: -/* 1A3D0C 8027542C 44821000 */ mtc1 $v0, $f2 -/* 1A3D10 80275430 00000000 */ nop -/* 1A3D14 80275434 468010A0 */ cvt.s.w $f2, $f2 -/* 1A3D18 80275438 86020064 */ lh $v0, 0x64($s0) -/* 1A3D1C 8027543C 46022083 */ div.s $f2, $f4, $f2 -/* 1A3D20 80275440 44820000 */ mtc1 $v0, $f0 -/* 1A3D24 80275444 00000000 */ nop -/* 1A3D28 80275448 46800020 */ cvt.s.w $f0, $f0 -/* 1A3D2C 8027544C 46020002 */ mul.s $f0, $f0, $f2 -/* 1A3D30 80275450 00000000 */ nop -/* 1A3D34 80275454 C604004C */ lwc1 $f4, 0x4c($s0) -/* 1A3D38 80275458 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A3D3C 8027545C 46002201 */ sub.s $f8, $f4, $f0 -.L80275460: -/* 1A3D40 80275460 86030064 */ lh $v1, 0x64($s0) -/* 1A3D44 80275464 1060029B */ beqz $v1, .L80275ED4 -/* 1A3D48 80275468 24020002 */ addiu $v0, $zero, 2 -/* 1A3D4C 8027546C 86020064 */ lh $v0, 0x64($s0) -/* 1A3D50 80275470 C602000C */ lwc1 $f2, 0xc($s0) -/* 1A3D54 80275474 3C013FC9 */ lui $at, 0x3fc9 -/* 1A3D58 80275478 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A3D5C 8027547C 44810000 */ mtc1 $at, $f0 -/* 1A3D60 80275480 C6040000 */ lwc1 $f4, ($s0) -/* 1A3D64 80275484 44823000 */ mtc1 $v0, $f6 -/* 1A3D68 80275488 00000000 */ nop -/* 1A3D6C 8027548C 468031A0 */ cvt.s.w $f6, $f6 -/* 1A3D70 80275490 46060003 */ div.s $f0, $f0, $f6 -/* 1A3D74 80275494 46041081 */ sub.s $f2, $f2, $f4 -/* 1A3D78 80275498 E600003C */ swc1 $f0, 0x3c($s0) -/* 1A3D7C 8027549C 44830000 */ mtc1 $v1, $f0 -/* 1A3D80 802754A0 00000000 */ nop -/* 1A3D84 802754A4 46800020 */ cvt.s.w $f0, $f0 -/* 1A3D88 802754A8 46001083 */ div.s $f2, $f2, $f0 -/* 1A3D8C 802754AC C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A3D90 802754B0 0000202D */ daddu $a0, $zero, $zero -/* 1A3D94 802754B4 E6020030 */ swc1 $f2, 0x30($s0) -/* 1A3D98 802754B8 C6020004 */ lwc1 $f2, 4($s0) -/* 1A3D9C 802754BC 8E060058 */ lw $a2, 0x58($s0) -/* 1A3DA0 802754C0 46020001 */ sub.s $f0, $f0, $f2 -/* 1A3DA4 802754C4 C6040014 */ lwc1 $f4, 0x14($s0) -/* 1A3DA8 802754C8 46003086 */ mov.s $f2, $f6 -/* 1A3DAC 802754CC 46020003 */ div.s $f0, $f0, $f2 -/* 1A3DB0 802754D0 C6020008 */ lwc1 $f2, 8($s0) -/* 1A3DB4 802754D4 0080282D */ daddu $a1, $a0, $zero -/* 1A3DB8 802754D8 AE000044 */ sw $zero, 0x44($s0) -/* 1A3DBC 802754DC E6000034 */ swc1 $f0, 0x34($s0) -/* 1A3DC0 802754E0 46003006 */ mov.s $f0, $f6 -/* 1A3DC4 802754E4 46022101 */ sub.s $f4, $f4, $f2 -/* 1A3DC8 802754E8 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A3DCC 802754EC 46004003 */ div.s $f0, $f8, $f0 -/* 1A3DD0 802754F0 46001080 */ add.s $f2, $f2, $f0 -/* 1A3DD4 802754F4 46062103 */ div.s $f4, $f4, $f6 -/* 1A3DD8 802754F8 E6040038 */ swc1 $f4, 0x38($s0) -/* 1A3DDC 802754FC 0C098F3F */ jal set_animation -/* 1A3DE0 80275500 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A3DE4 80275504 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A3DE8 80275508 24040160 */ addiu $a0, $zero, 0x160 -/* 1A3DEC 8027550C E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A3DF0 80275510 8E460144 */ lw $a2, 0x144($s2) -/* 1A3DF4 80275514 8E470148 */ lw $a3, 0x148($s2) -/* 1A3DF8 80275518 0C052757 */ jal sfx_play_sound_at_position -/* 1A3DFC 8027551C 0000282D */ daddu $a1, $zero, $zero -/* 1A3E00 80275520 86030064 */ lh $v1, 0x64($s0) -/* 1A3E04 80275524 24020168 */ addiu $v0, $zero, 0x168 -/* 1A3E08 80275528 14600002 */ bnez $v1, .L80275534 -/* 1A3E0C 8027552C 0043001A */ div $zero, $v0, $v1 -/* 1A3E10 80275530 0007000D */ break 7 -.L80275534: -/* 1A3E14 80275534 2401FFFF */ addiu $at, $zero, -1 -/* 1A3E18 80275538 14610004 */ bne $v1, $at, .L8027554C -/* 1A3E1C 8027553C 3C018000 */ lui $at, 0x8000 -/* 1A3E20 80275540 14410002 */ bne $v0, $at, .L8027554C -/* 1A3E24 80275544 00000000 */ nop -/* 1A3E28 80275548 0006000D */ break 6 -.L8027554C: -/* 1A3E2C 8027554C 00001012 */ mflo $v0 -/* 1A3E30 80275550 3C0142B4 */ lui $at, 0x42b4 -/* 1A3E34 80275554 44810000 */ mtc1 $at, $f0 -/* 1A3E38 80275558 3C014234 */ lui $at, 0x4234 -/* 1A3E3C 8027555C 44811000 */ mtc1 $at, $f2 -/* 1A3E40 80275560 86030066 */ lh $v1, 0x66($s0) -/* 1A3E44 80275564 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A3E48 80275568 E6020050 */ swc1 $f2, 0x50($s0) -/* 1A3E4C 8027556C 44820000 */ mtc1 $v0, $f0 -/* 1A3E50 80275570 00000000 */ nop -/* 1A3E54 80275574 46800020 */ cvt.s.w $f0, $f0 -/* 1A3E58 80275578 24020004 */ addiu $v0, $zero, 4 -/* 1A3E5C 8027557C 14620005 */ bne $v1, $v0, .L80275594 -/* 1A3E60 80275580 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A3E64 80275584 3C014261 */ lui $at, 0x4261 -/* 1A3E68 80275588 44810000 */ mtc1 $at, $f0 -/* 1A3E6C 8027558C 00000000 */ nop -/* 1A3E70 80275590 E6000050 */ swc1 $f0, 0x50($s0) -.L80275594: -/* 1A3E74 80275594 86020066 */ lh $v0, 0x66($s0) -/* 1A3E78 80275598 AE000018 */ sw $zero, 0x18($s0) -/* 1A3E7C 8027559C 14400013 */ bnez $v0, .L802755EC -/* 1A3E80 802755A0 AE00001C */ sw $zero, 0x1c($s0) -/* 1A3E84 802755A4 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3E88 802755A8 3C0140C9 */ lui $at, 0x40c9 -/* 1A3E8C 802755AC 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A3E90 802755B0 44810000 */ mtc1 $at, $f0 -/* 1A3E94 802755B4 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A3E98 802755B8 46006302 */ mul.s $f12, $f12, $f0 -/* 1A3E9C 802755BC 00000000 */ nop -/* 1A3EA0 802755C0 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A3EA4 802755C4 4600A521 */ cvt.d.s $f20, $f20 -/* 1A3EA8 802755C8 3C0143B4 */ lui $at, 0x43b4 -/* 1A3EAC 802755CC 44810000 */ mtc1 $at, $f0 -/* 1A3EB0 802755D0 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A3EB4 802755D4 0C00A85B */ jal sin_rad -/* 1A3EB8 802755D8 46006303 */ div.s $f12, $f12, $f0 -/* 1A3EBC 802755DC 3C01802A */ lui $at, %hi(D_8029D8E8) -/* 1A3EC0 802755E0 D422D8E8 */ ldc1 $f2, %lo(D_8029D8E8)($at) -/* 1A3EC4 802755E4 0809D58C */ j .L80275630 -/* 1A3EC8 802755E8 46000021 */ cvt.d.s $f0, $f0 -.L802755EC: -/* 1A3ECC 802755EC C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A3ED0 802755F0 3C0140C9 */ lui $at, 0x40c9 -/* 1A3ED4 802755F4 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A3ED8 802755F8 44810000 */ mtc1 $at, $f0 -/* 1A3EDC 802755FC C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A3EE0 80275600 46006302 */ mul.s $f12, $f12, $f0 -/* 1A3EE4 80275604 00000000 */ nop -/* 1A3EE8 80275608 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A3EEC 8027560C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A3EF0 80275610 3C0143B4 */ lui $at, 0x43b4 -/* 1A3EF4 80275614 44810000 */ mtc1 $at, $f0 -/* 1A3EF8 80275618 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A3EFC 8027561C 0C00A85B */ jal sin_rad -/* 1A3F00 80275620 46006303 */ div.s $f12, $f12, $f0 -/* 1A3F04 80275624 3C01802A */ lui $at, %hi(D_8029D8F0) -/* 1A3F08 80275628 D422D8F0 */ ldc1 $f2, %lo(D_8029D8F0)($at) -/* 1A3F0C 8027562C 46000021 */ cvt.d.s $f0, $f0 -.L80275630: -/* 1A3F10 80275630 46220002 */ mul.d $f0, $f0, $f2 -/* 1A3F14 80275634 00000000 */ nop -/* 1A3F18 80275638 46360002 */ mul.d $f0, $f0, $f22 -/* 1A3F1C 8027563C 00000000 */ nop -/* 1A3F20 80275640 46360000 */ add.d $f0, $f0, $f22 -/* 1A3F24 80275644 4620A500 */ add.d $f20, $f20, $f0 -/* 1A3F28 80275648 4620A520 */ cvt.s.d $f20, $f20 -/* 1A3F2C 8027564C E6140044 */ swc1 $f20, 0x44($s0) -/* 1A3F30 80275650 0809D676 */ j .L802759D8 -/* 1A3F34 80275654 24020001 */ addiu $v0, $zero, 1 -.L80275658: -/* 1A3F38 80275658 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A3F3C 8027565C C618000C */ lwc1 $f24, 0xc($s0) -/* 1A3F40 80275660 C61A0014 */ lwc1 $f26, 0x14($s0) -/* 1A3F44 80275664 E6000000 */ swc1 $f0, ($s0) -/* 1A3F48 80275668 46000586 */ mov.s $f22, $f0 -/* 1A3F4C 8027566C 4406C000 */ mfc1 $a2, $f24 -/* 1A3F50 80275670 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A3F54 80275674 4600B306 */ mov.s $f12, $f22 -/* 1A3F58 80275678 E6000004 */ swc1 $f0, 4($s0) -/* 1A3F5C 8027567C C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A3F60 80275680 4407D000 */ mfc1 $a3, $f26 -/* 1A3F64 80275684 46000506 */ mov.s $f20, $f0 -/* 1A3F68 80275688 4600A386 */ mov.s $f14, $f20 -/* 1A3F6C 8027568C 0C00A720 */ jal atan2 -/* 1A3F70 80275690 E6140008 */ swc1 $f20, 8($s0) -/* 1A3F74 80275694 4600B306 */ mov.s $f12, $f22 -/* 1A3F78 80275698 4406C000 */ mfc1 $a2, $f24 -/* 1A3F7C 8027569C 4407D000 */ mfc1 $a3, $f26 -/* 1A3F80 802756A0 4600A386 */ mov.s $f14, $f20 -/* 1A3F84 802756A4 0C00A7B5 */ jal dist2D -/* 1A3F88 802756A8 E6000048 */ swc1 $f0, 0x48($s0) -/* 1A3F8C 802756AC 86020064 */ lh $v0, 0x64($s0) -/* 1A3F90 802756B0 46000106 */ mov.s $f4, $f0 -/* 1A3F94 802756B4 14400012 */ bnez $v0, .L80275700 -/* 1A3F98 802756B8 E604004C */ swc1 $f4, 0x4c($s0) -/* 1A3F9C 802756BC C6000040 */ lwc1 $f0, 0x40($s0) -/* 1A3FA0 802756C0 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A3FA4 802756C4 46002003 */ div.s $f0, $f4, $f0 -/* 1A3FA8 802756C8 4600028D */ trunc.w.s $f10, $f0 -/* 1A3FAC 802756CC 44035000 */ mfc1 $v1, $f10 -/* 1A3FB0 802756D0 00000000 */ nop -/* 1A3FB4 802756D4 00031400 */ sll $v0, $v1, 0x10 -/* 1A3FB8 802756D8 00021403 */ sra $v0, $v0, 0x10 -/* 1A3FBC 802756DC 44820000 */ mtc1 $v0, $f0 -/* 1A3FC0 802756E0 00000000 */ nop -/* 1A3FC4 802756E4 46800020 */ cvt.s.w $f0, $f0 -/* 1A3FC8 802756E8 46020002 */ mul.s $f0, $f0, $f2 -/* 1A3FCC 802756EC 00000000 */ nop -/* 1A3FD0 802756F0 46002086 */ mov.s $f2, $f4 -/* 1A3FD4 802756F4 A6030064 */ sh $v1, 0x64($s0) -/* 1A3FD8 802756F8 0809D5CD */ j .L80275734 -/* 1A3FDC 802756FC 46001201 */ sub.s $f8, $f2, $f0 -.L80275700: -/* 1A3FE0 80275700 44821000 */ mtc1 $v0, $f2 -/* 1A3FE4 80275704 00000000 */ nop -/* 1A3FE8 80275708 468010A0 */ cvt.s.w $f2, $f2 -/* 1A3FEC 8027570C 86020064 */ lh $v0, 0x64($s0) -/* 1A3FF0 80275710 46022083 */ div.s $f2, $f4, $f2 -/* 1A3FF4 80275714 44820000 */ mtc1 $v0, $f0 -/* 1A3FF8 80275718 00000000 */ nop -/* 1A3FFC 8027571C 46800020 */ cvt.s.w $f0, $f0 -/* 1A4000 80275720 46020002 */ mul.s $f0, $f0, $f2 -/* 1A4004 80275724 00000000 */ nop -/* 1A4008 80275728 C604004C */ lwc1 $f4, 0x4c($s0) -/* 1A400C 8027572C E6020040 */ swc1 $f2, 0x40($s0) -/* 1A4010 80275730 46002201 */ sub.s $f8, $f4, $f0 -.L80275734: -/* 1A4014 80275734 86030064 */ lh $v1, 0x64($s0) -/* 1A4018 80275738 106001DD */ beqz $v1, .L80275EB0 -/* 1A401C 8027573C 0000202D */ daddu $a0, $zero, $zero -/* 1A4020 80275740 8E060060 */ lw $a2, 0x60($s0) -/* 1A4024 80275744 3C013FC9 */ lui $at, 0x3fc9 -/* 1A4028 80275748 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A402C 8027574C 44810000 */ mtc1 $at, $f0 -/* 1A4030 80275750 86020064 */ lh $v0, 0x64($s0) -/* 1A4034 80275754 C602000C */ lwc1 $f2, 0xc($s0) -/* 1A4038 80275758 C6040000 */ lwc1 $f4, ($s0) -/* 1A403C 8027575C 24420001 */ addiu $v0, $v0, 1 -/* 1A4040 80275760 44823000 */ mtc1 $v0, $f6 -/* 1A4044 80275764 00000000 */ nop -/* 1A4048 80275768 468031A0 */ cvt.s.w $f6, $f6 -/* 1A404C 8027576C 46041081 */ sub.s $f2, $f2, $f4 -/* 1A4050 80275770 E6000044 */ swc1 $f0, 0x44($s0) -/* 1A4054 80275774 3C013F49 */ lui $at, 0x3f49 -/* 1A4058 80275778 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A405C 8027577C 44810000 */ mtc1 $at, $f0 -/* 1A4060 80275780 86020064 */ lh $v0, 0x64($s0) -/* 1A4064 80275784 46060003 */ div.s $f0, $f0, $f6 -/* 1A4068 80275788 E600003C */ swc1 $f0, 0x3c($s0) -/* 1A406C 8027578C 44830000 */ mtc1 $v1, $f0 -/* 1A4070 80275790 00000000 */ nop -/* 1A4074 80275794 46800020 */ cvt.s.w $f0, $f0 -/* 1A4078 80275798 46001083 */ div.s $f2, $f2, $f0 -/* 1A407C 8027579C C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A4080 802757A0 E6020030 */ swc1 $f2, 0x30($s0) -/* 1A4084 802757A4 C6020004 */ lwc1 $f2, 4($s0) -/* 1A4088 802757A8 C6040014 */ lwc1 $f4, 0x14($s0) -/* 1A408C 802757AC 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4090 802757B0 44821000 */ mtc1 $v0, $f2 -/* 1A4094 802757B4 00000000 */ nop -/* 1A4098 802757B8 468010A0 */ cvt.s.w $f2, $f2 -/* 1A409C 802757BC 46001186 */ mov.s $f6, $f2 -/* 1A40A0 802757C0 46020003 */ div.s $f0, $f0, $f2 -/* 1A40A4 802757C4 C6020008 */ lwc1 $f2, 8($s0) -/* 1A40A8 802757C8 0080282D */ daddu $a1, $a0, $zero -/* 1A40AC 802757CC E6000034 */ swc1 $f0, 0x34($s0) -/* 1A40B0 802757D0 46003006 */ mov.s $f0, $f6 -/* 1A40B4 802757D4 46022101 */ sub.s $f4, $f4, $f2 -/* 1A40B8 802757D8 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A40BC 802757DC 46004003 */ div.s $f0, $f8, $f0 -/* 1A40C0 802757E0 46001080 */ add.s $f2, $f2, $f0 -/* 1A40C4 802757E4 46062103 */ div.s $f4, $f4, $f6 -/* 1A40C8 802757E8 E6040038 */ swc1 $f4, 0x38($s0) -/* 1A40CC 802757EC 0C098F3F */ jal set_animation -/* 1A40D0 802757F0 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A40D4 802757F4 86030064 */ lh $v1, 0x64($s0) -/* 1A40D8 802757F8 24020168 */ addiu $v0, $zero, 0x168 -/* 1A40DC 802757FC 14600002 */ bnez $v1, .L80275808 -/* 1A40E0 80275800 0043001A */ div $zero, $v0, $v1 -/* 1A40E4 80275804 0007000D */ break 7 -.L80275808: -/* 1A40E8 80275808 2401FFFF */ addiu $at, $zero, -1 -/* 1A40EC 8027580C 14610004 */ bne $v1, $at, .L80275820 -/* 1A40F0 80275810 3C018000 */ lui $at, 0x8000 -/* 1A40F4 80275814 14410002 */ bne $v0, $at, .L80275820 -/* 1A40F8 80275818 00000000 */ nop -/* 1A40FC 8027581C 0006000D */ break 6 -.L80275820: -/* 1A4100 80275820 00001012 */ mflo $v0 -/* 1A4104 80275824 3C0142B4 */ lui $at, 0x42b4 -/* 1A4108 80275828 44810000 */ mtc1 $at, $f0 -/* 1A410C 8027582C 3C014234 */ lui $at, 0x4234 -/* 1A4110 80275830 44811000 */ mtc1 $at, $f2 -/* 1A4114 80275834 86030066 */ lh $v1, 0x66($s0) -/* 1A4118 80275838 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A411C 8027583C E6020050 */ swc1 $f2, 0x50($s0) -/* 1A4120 80275840 44820000 */ mtc1 $v0, $f0 -/* 1A4124 80275844 00000000 */ nop -/* 1A4128 80275848 46800020 */ cvt.s.w $f0, $f0 -/* 1A412C 8027584C 24020005 */ addiu $v0, $zero, 5 -/* 1A4130 80275850 14620005 */ bne $v1, $v0, .L80275868 -/* 1A4134 80275854 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A4138 80275858 3C014261 */ lui $at, 0x4261 -/* 1A413C 8027585C 44810000 */ mtc1 $at, $f0 -/* 1A4140 80275860 00000000 */ nop -/* 1A4144 80275864 E6000050 */ swc1 $f0, 0x50($s0) -.L80275868: -/* 1A4148 80275868 86030066 */ lh $v1, 0x66($s0) -/* 1A414C 8027586C 24020001 */ addiu $v0, $zero, 1 -/* 1A4150 80275870 AE000018 */ sw $zero, 0x18($s0) -/* 1A4154 80275874 14620013 */ bne $v1, $v0, .L802758C4 -/* 1A4158 80275878 AE00001C */ sw $zero, 0x1c($s0) -/* 1A415C 8027587C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4160 80275880 3C0140C9 */ lui $at, 0x40c9 -/* 1A4164 80275884 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4168 80275888 44810000 */ mtc1 $at, $f0 -/* 1A416C 8027588C C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A4170 80275890 46006302 */ mul.s $f12, $f12, $f0 -/* 1A4174 80275894 00000000 */ nop -/* 1A4178 80275898 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A417C 8027589C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A4180 802758A0 3C0143B4 */ lui $at, 0x43b4 -/* 1A4184 802758A4 44810000 */ mtc1 $at, $f0 -/* 1A4188 802758A8 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A418C 802758AC 0C00A85B */ jal sin_rad -/* 1A4190 802758B0 46006303 */ div.s $f12, $f12, $f0 -/* 1A4194 802758B4 3C01802A */ lui $at, %hi(D_8029D8F8) -/* 1A4198 802758B8 D422D8F8 */ ldc1 $f2, %lo(D_8029D8F8)($at) -/* 1A419C 802758BC 0809D642 */ j .L80275908 -/* 1A41A0 802758C0 46000021 */ cvt.d.s $f0, $f0 -.L802758C4: -/* 1A41A4 802758C4 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A41A8 802758C8 3C0140C9 */ lui $at, 0x40c9 -/* 1A41AC 802758CC 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A41B0 802758D0 44810000 */ mtc1 $at, $f0 -/* 1A41B4 802758D4 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A41B8 802758D8 46006302 */ mul.s $f12, $f12, $f0 -/* 1A41BC 802758DC 00000000 */ nop -/* 1A41C0 802758E0 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A41C4 802758E4 4600A521 */ cvt.d.s $f20, $f20 -/* 1A41C8 802758E8 3C0143B4 */ lui $at, 0x43b4 -/* 1A41CC 802758EC 44810000 */ mtc1 $at, $f0 -/* 1A41D0 802758F0 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A41D4 802758F4 0C00A85B */ jal sin_rad -/* 1A41D8 802758F8 46006303 */ div.s $f12, $f12, $f0 -/* 1A41DC 802758FC 3C01802A */ lui $at, %hi(D_8029D900) -/* 1A41E0 80275900 D422D900 */ ldc1 $f2, %lo(D_8029D900)($at) -/* 1A41E4 80275904 46000021 */ cvt.d.s $f0, $f0 -.L80275908: -/* 1A41E8 80275908 46220002 */ mul.d $f0, $f0, $f2 -/* 1A41EC 8027590C 00000000 */ nop -/* 1A41F0 80275910 46360002 */ mul.d $f0, $f0, $f22 -/* 1A41F4 80275914 00000000 */ nop -/* 1A41F8 80275918 46360000 */ add.d $f0, $f0, $f22 -/* 1A41FC 8027591C 4620A500 */ add.d $f20, $f20, $f0 -/* 1A4200 80275920 4620A520 */ cvt.s.d $f20, $f20 -/* 1A4204 80275924 E6140044 */ swc1 $f20, 0x44($s0) -/* 1A4208 80275928 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A420C 8027592C C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A4210 80275930 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4214 80275934 2402000B */ addiu $v0, $zero, 0xb -/* 1A4218 80275938 0809D676 */ j .L802759D8 -/* 1A421C 8027593C E6000004 */ swc1 $f0, 4($s0) -.L80275940: -/* 1A4220 80275940 A6020064 */ sh $v0, 0x64($s0) -/* 1A4224 80275944 86020064 */ lh $v0, 0x64($s0) -/* 1A4228 80275948 24030168 */ addiu $v1, $zero, 0x168 -/* 1A422C 8027594C 14400002 */ bnez $v0, .L80275958 -/* 1A4230 80275950 0062001A */ div $zero, $v1, $v0 -/* 1A4234 80275954 0007000D */ break 7 -.L80275958: -/* 1A4238 80275958 2401FFFF */ addiu $at, $zero, -1 -/* 1A423C 8027595C 14410004 */ bne $v0, $at, .L80275970 -/* 1A4240 80275960 3C018000 */ lui $at, 0x8000 -/* 1A4244 80275964 14610002 */ bne $v1, $at, .L80275970 -/* 1A4248 80275968 00000000 */ nop -/* 1A424C 8027596C 0006000D */ break 6 -.L80275970: -/* 1A4250 80275970 00001812 */ mflo $v1 -/* 1A4254 80275974 C6000018 */ lwc1 $f0, 0x18($s0) -/* 1A4258 80275978 C602001C */ lwc1 $f2, 0x1c($s0) -/* 1A425C 8027597C 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4260 80275980 3C0142B4 */ lui $at, 0x42b4 -/* 1A4264 80275984 44811000 */ mtc1 $at, $f2 -/* 1A4268 80275988 00000000 */ nop -/* 1A426C 8027598C E6020024 */ swc1 $f2, 0x24($s0) -/* 1A4270 80275990 3C01802A */ lui $at, %hi(D_8029D908) -/* 1A4274 80275994 D422D908 */ ldc1 $f2, %lo(D_8029D908)($at) -/* 1A4278 80275998 46000005 */ abs.s $f0, $f0 -/* 1A427C 8027599C 46000021 */ cvt.d.s $f0, $f0 -/* 1A4280 802759A0 46220003 */ div.d $f0, $f0, $f2 -/* 1A4284 802759A4 46200020 */ cvt.s.d $f0, $f0 -/* 1A4288 802759A8 E6000050 */ swc1 $f0, 0x50($s0) -/* 1A428C 802759AC 44830000 */ mtc1 $v1, $f0 -/* 1A4290 802759B0 00000000 */ nop -/* 1A4294 802759B4 46800020 */ cvt.s.w $f0, $f0 -/* 1A4298 802759B8 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A429C 802759BC C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A42A0 802759C0 E6000000 */ swc1 $f0, ($s0) -/* 1A42A4 802759C4 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A42A8 802759C8 E6000004 */ swc1 $f0, 4($s0) -/* 1A42AC 802759CC C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A42B0 802759D0 24020015 */ addiu $v0, $zero, 0x15 -/* 1A42B4 802759D4 E6000008 */ swc1 $f0, 8($s0) -.L802759D8: -/* 1A42B8 802759D8 AE620070 */ sw $v0, 0x70($s3) -.L802759DC: -/* 1A42BC 802759DC 8E630070 */ lw $v1, 0x70($s3) -/* 1A42C0 802759E0 24020002 */ addiu $v0, $zero, 2 -.L802759E4: -/* 1A42C4 802759E4 10620085 */ beq $v1, $v0, .L80275BFC -/* 1A42C8 802759E8 28620003 */ slti $v0, $v1, 3 -/* 1A42CC 802759EC 10400005 */ beqz $v0, .L80275A04 -/* 1A42D0 802759F0 24020001 */ addiu $v0, $zero, 1 -/* 1A42D4 802759F4 1062000A */ beq $v1, $v0, .L80275A20 -/* 1A42D8 802759F8 0000102D */ daddu $v0, $zero, $zero -/* 1A42DC 802759FC 0809D7B5 */ j .L80275ED4 -/* 1A42E0 80275A00 00000000 */ nop -.L80275A04: -/* 1A42E4 80275A04 2402000B */ addiu $v0, $zero, 0xb -/* 1A42E8 80275A08 10620090 */ beq $v1, $v0, .L80275C4C -/* 1A42EC 80275A0C 24020015 */ addiu $v0, $zero, 0x15 -/* 1A42F0 80275A10 106200F4 */ beq $v1, $v0, .L80275DE4 -/* 1A42F4 80275A14 0000102D */ daddu $v0, $zero, $zero -/* 1A42F8 80275A18 0809D7B5 */ j .L80275ED4 -/* 1A42FC 80275A1C 00000000 */ nop -.L80275A20: -/* 1A4300 80275A20 86020066 */ lh $v0, 0x66($s0) -/* 1A4304 80275A24 14400013 */ bnez $v0, .L80275A74 -/* 1A4308 80275A28 00000000 */ nop -/* 1A430C 80275A2C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4310 80275A30 3C0140C9 */ lui $at, 0x40c9 -/* 1A4314 80275A34 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4318 80275A38 44810000 */ mtc1 $at, $f0 -/* 1A431C 80275A3C C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A4320 80275A40 46006302 */ mul.s $f12, $f12, $f0 -/* 1A4324 80275A44 00000000 */ nop -/* 1A4328 80275A48 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A432C 80275A4C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A4330 80275A50 3C0143B4 */ lui $at, 0x43b4 -/* 1A4334 80275A54 44810000 */ mtc1 $at, $f0 -/* 1A4338 80275A58 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A433C 80275A5C 0C00A85B */ jal sin_rad -/* 1A4340 80275A60 46006303 */ div.s $f12, $f12, $f0 -/* 1A4344 80275A64 3C01802A */ lui $at, %hi(D_8029D910) -/* 1A4348 80275A68 D422D910 */ ldc1 $f2, %lo(D_8029D910)($at) -/* 1A434C 80275A6C 0809D6AE */ j .L80275AB8 -/* 1A4350 80275A70 46000021 */ cvt.d.s $f0, $f0 -.L80275A74: -/* 1A4354 80275A74 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4358 80275A78 3C0140C9 */ lui $at, 0x40c9 -/* 1A435C 80275A7C 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4360 80275A80 44810000 */ mtc1 $at, $f0 -/* 1A4364 80275A84 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A4368 80275A88 46006302 */ mul.s $f12, $f12, $f0 -/* 1A436C 80275A8C 00000000 */ nop -/* 1A4370 80275A90 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A4374 80275A94 4600A521 */ cvt.d.s $f20, $f20 -/* 1A4378 80275A98 3C0143B4 */ lui $at, 0x43b4 -/* 1A437C 80275A9C 44810000 */ mtc1 $at, $f0 -/* 1A4380 80275AA0 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A4384 80275AA4 0C00A85B */ jal sin_rad -/* 1A4388 80275AA8 46006303 */ div.s $f12, $f12, $f0 -/* 1A438C 80275AAC 3C01802A */ lui $at, %hi(D_8029D918) -/* 1A4390 80275AB0 D422D918 */ ldc1 $f2, %lo(D_8029D918)($at) -/* 1A4394 80275AB4 46000021 */ cvt.d.s $f0, $f0 -.L80275AB8: -/* 1A4398 80275AB8 46220002 */ mul.d $f0, $f0, $f2 -/* 1A439C 80275ABC 00000000 */ nop -/* 1A43A0 80275AC0 46360002 */ mul.d $f0, $f0, $f22 -/* 1A43A4 80275AC4 00000000 */ nop -/* 1A43A8 80275AC8 46360000 */ add.d $f0, $f0, $f22 -/* 1A43AC 80275ACC 4620A500 */ add.d $f20, $f20, $f0 -/* 1A43B0 80275AD0 4620A520 */ cvt.s.d $f20, $f20 -/* 1A43B4 80275AD4 E6140044 */ swc1 $f20, 0x44($s0) -/* 1A43B8 80275AD8 C6060000 */ lwc1 $f6, ($s0) -/* 1A43BC 80275ADC C6000030 */ lwc1 $f0, 0x30($s0) -/* 1A43C0 80275AE0 C6040004 */ lwc1 $f4, 4($s0) -/* 1A43C4 80275AE4 46003180 */ add.s $f6, $f6, $f0 -/* 1A43C8 80275AE8 C6000034 */ lwc1 $f0, 0x34($s0) -/* 1A43CC 80275AEC C6020008 */ lwc1 $f2, 8($s0) -/* 1A43D0 80275AF0 46002100 */ add.s $f4, $f4, $f0 -/* 1A43D4 80275AF4 C6000038 */ lwc1 $f0, 0x38($s0) -/* 1A43D8 80275AF8 46001080 */ add.s $f2, $f2, $f0 -/* 1A43DC 80275AFC E6060000 */ swc1 $f6, ($s0) -/* 1A43E0 80275B00 E6040004 */ swc1 $f4, 4($s0) -/* 1A43E4 80275B04 E6020008 */ swc1 $f2, 8($s0) -/* 1A43E8 80275B08 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A43EC 80275B0C 46003086 */ mov.s $f2, $f6 -/* 1A43F0 80275B10 E6000018 */ swc1 $f0, 0x18($s0) -/* 1A43F4 80275B14 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A43F8 80275B18 C60C0044 */ lwc1 $f12, 0x44($s0) -/* 1A43FC 80275B1C 3C013FC9 */ lui $at, 0x3fc9 -/* 1A4400 80275B20 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4404 80275B24 4481A000 */ mtc1 $at, $f20 -/* 1A4408 80275B28 0C00A85B */ jal sin_rad -/* 1A440C 80275B2C 00000000 */ nop -/* 1A4410 80275B30 46140302 */ mul.s $f12, $f0, $f20 -/* 1A4414 80275B34 0C00A85B */ jal sin_rad -/* 1A4418 80275B38 00000000 */ nop -/* 1A441C 80275B3C 46140302 */ mul.s $f12, $f0, $f20 -/* 1A4420 80275B40 0C00A85B */ jal sin_rad -/* 1A4424 80275B44 00000000 */ nop -/* 1A4428 80275B48 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A442C 80275B4C 46001082 */ mul.s $f2, $f2, $f0 -/* 1A4430 80275B50 00000000 */ nop -/* 1A4434 80275B54 C6000004 */ lwc1 $f0, 4($s0) -/* 1A4438 80275B58 46020000 */ add.s $f0, $f0, $f2 -/* 1A443C 80275B5C E6400148 */ swc1 $f0, 0x148($s2) -/* 1A4440 80275B60 C6000008 */ lwc1 $f0, 8($s0) -/* 1A4444 80275B64 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A4448 80275B68 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A444C 80275B6C C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A4450 80275B70 46006300 */ add.s $f12, $f12, $f0 -/* 1A4454 80275B74 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A4458 80275B78 E600001C */ swc1 $f0, 0x1c($s0) -/* 1A445C 80275B7C 0C00A6C9 */ jal clamp_angle -/* 1A4460 80275B80 E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A4464 80275B84 96020064 */ lhu $v0, 0x64($s0) -/* 1A4468 80275B88 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A446C 80275B8C 2442FFFF */ addiu $v0, $v0, -1 -/* 1A4470 80275B90 A6020064 */ sh $v0, 0x64($s0) -/* 1A4474 80275B94 00021400 */ sll $v0, $v0, 0x10 -/* 1A4478 80275B98 144000CE */ bnez $v0, .L80275ED4 -/* 1A447C 80275B9C 0000102D */ daddu $v0, $zero, $zero -/* 1A4480 80275BA0 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4484 80275BA4 24040160 */ addiu $a0, $zero, 0x160 -/* 1A4488 80275BA8 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A448C 80275BAC 8E460144 */ lw $a2, 0x144($s2) -/* 1A4490 80275BB0 8E470148 */ lw $a3, 0x148($s2) -/* 1A4494 80275BB4 0C052757 */ jal sfx_play_sound_at_position -/* 1A4498 80275BB8 0000282D */ daddu $a1, $zero, $zero -/* 1A449C 80275BBC 0000202D */ daddu $a0, $zero, $zero -/* 1A44A0 80275BC0 8E06005C */ lw $a2, 0x5c($s0) -/* 1A44A4 80275BC4 0C098F3F */ jal set_animation -/* 1A44A8 80275BC8 0080282D */ daddu $a1, $a0, $zero -/* 1A44AC 80275BCC C6420164 */ lwc1 $f2, 0x164($s2) -/* 1A44B0 80275BD0 3C014284 */ lui $at, 0x4284 -/* 1A44B4 80275BD4 44810000 */ mtc1 $at, $f0 -/* 1A44B8 80275BD8 2402000E */ addiu $v0, $zero, 0xe -/* 1A44BC 80275BDC 46001081 */ sub.s $f2, $f2, $f0 -/* 1A44C0 80275BE0 A642016A */ sh $v0, 0x16a($s2) -/* 1A44C4 80275BE4 24020007 */ addiu $v0, $zero, 7 -/* 1A44C8 80275BE8 E6420164 */ swc1 $f2, 0x164($s2) -/* 1A44CC 80275BEC A6020064 */ sh $v0, 0x64($s0) -/* 1A44D0 80275BF0 24020002 */ addiu $v0, $zero, 2 -/* 1A44D4 80275BF4 0809D7B4 */ j .L80275ED0 -/* 1A44D8 80275BF8 AE620070 */ sw $v0, 0x70($s3) -.L80275BFC: -/* 1A44DC 80275BFC C6420164 */ lwc1 $f2, 0x164($s2) -/* 1A44E0 80275C00 3C014284 */ lui $at, 0x4284 -/* 1A44E4 80275C04 44810000 */ mtc1 $at, $f0 -/* 1A44E8 80275C08 00000000 */ nop -/* 1A44EC 80275C0C 46001081 */ sub.s $f2, $f2, $f0 -/* 1A44F0 80275C10 2402000E */ addiu $v0, $zero, 0xe -/* 1A44F4 80275C14 A642016A */ sh $v0, 0x16a($s2) -/* 1A44F8 80275C18 E6420164 */ swc1 $f2, 0x164($s2) -/* 1A44FC 80275C1C 96020064 */ lhu $v0, 0x64($s0) -/* 1A4500 80275C20 2442FFFF */ addiu $v0, $v0, -1 -/* 1A4504 80275C24 A6020064 */ sh $v0, 0x64($s0) -/* 1A4508 80275C28 00021400 */ sll $v0, $v0, 0x10 -/* 1A450C 80275C2C 144000A9 */ bnez $v0, .L80275ED4 -/* 1A4510 80275C30 0000102D */ daddu $v0, $zero, $zero -/* 1A4514 80275C34 0000202D */ daddu $a0, $zero, $zero -/* 1A4518 80275C38 AE400164 */ sw $zero, 0x164($s2) -/* 1A451C 80275C3C A640016A */ sh $zero, 0x16a($s2) -/* 1A4520 80275C40 8E060060 */ lw $a2, 0x60($s0) -/* 1A4524 80275C44 0809D775 */ j .L80275DD4 -/* 1A4528 80275C48 0080282D */ daddu $a1, $a0, $zero -.L80275C4C: -/* 1A452C 80275C4C C6060000 */ lwc1 $f6, ($s0) -/* 1A4530 80275C50 C6000030 */ lwc1 $f0, 0x30($s0) -/* 1A4534 80275C54 C6040004 */ lwc1 $f4, 4($s0) -/* 1A4538 80275C58 46003180 */ add.s $f6, $f6, $f0 -/* 1A453C 80275C5C C6000034 */ lwc1 $f0, 0x34($s0) -/* 1A4540 80275C60 C6020008 */ lwc1 $f2, 8($s0) -/* 1A4544 80275C64 46002100 */ add.s $f4, $f4, $f0 -/* 1A4548 80275C68 C6000038 */ lwc1 $f0, 0x38($s0) -/* 1A454C 80275C6C 46001080 */ add.s $f2, $f2, $f0 -/* 1A4550 80275C70 E6060000 */ swc1 $f6, ($s0) -/* 1A4554 80275C74 E6040004 */ swc1 $f4, 4($s0) -/* 1A4558 80275C78 E6020008 */ swc1 $f2, 8($s0) -/* 1A455C 80275C7C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A4560 80275C80 46003086 */ mov.s $f2, $f6 -/* 1A4564 80275C84 E6000018 */ swc1 $f0, 0x18($s0) -/* 1A4568 80275C88 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A456C 80275C8C 0C00A85B */ jal sin_rad -/* 1A4570 80275C90 C60C0044 */ lwc1 $f12, 0x44($s0) -/* 1A4574 80275C94 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A4578 80275C98 46001082 */ mul.s $f2, $f2, $f0 -/* 1A457C 80275C9C 00000000 */ nop -/* 1A4580 80275CA0 C6000004 */ lwc1 $f0, 4($s0) -/* 1A4584 80275CA4 46020000 */ add.s $f0, $f0, $f2 -/* 1A4588 80275CA8 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A458C 80275CAC C6000008 */ lwc1 $f0, 8($s0) -/* 1A4590 80275CB0 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A4594 80275CB4 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1A4598 80275CB8 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A459C 80275CBC 4602003C */ c.lt.s $f0, $f2 -/* 1A45A0 80275CC0 00000000 */ nop -/* 1A45A4 80275CC4 45030001 */ bc1tl .L80275CCC -/* 1A45A8 80275CC8 E6420148 */ swc1 $f2, 0x148($s2) -.L80275CCC: -/* 1A45AC 80275CCC C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A45B0 80275CD0 86030066 */ lh $v1, 0x66($s0) -/* 1A45B4 80275CD4 24020001 */ addiu $v0, $zero, 1 -/* 1A45B8 80275CD8 14620013 */ bne $v1, $v0, .L80275D28 -/* 1A45BC 80275CDC E600001C */ swc1 $f0, 0x1c($s0) -/* 1A45C0 80275CE0 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A45C4 80275CE4 3C0140C9 */ lui $at, 0x40c9 -/* 1A45C8 80275CE8 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A45CC 80275CEC 44810000 */ mtc1 $at, $f0 -/* 1A45D0 80275CF0 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A45D4 80275CF4 46006302 */ mul.s $f12, $f12, $f0 -/* 1A45D8 80275CF8 00000000 */ nop -/* 1A45DC 80275CFC C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A45E0 80275D00 4600A521 */ cvt.d.s $f20, $f20 -/* 1A45E4 80275D04 3C0143B4 */ lui $at, 0x43b4 -/* 1A45E8 80275D08 44810000 */ mtc1 $at, $f0 -/* 1A45EC 80275D0C 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A45F0 80275D10 0C00A85B */ jal sin_rad -/* 1A45F4 80275D14 46006303 */ div.s $f12, $f12, $f0 -/* 1A45F8 80275D18 3C01802A */ lui $at, %hi(D_8029D920) -/* 1A45FC 80275D1C D422D920 */ ldc1 $f2, %lo(D_8029D920)($at) -/* 1A4600 80275D20 0809D75B */ j .L80275D6C -/* 1A4604 80275D24 46000021 */ cvt.d.s $f0, $f0 -.L80275D28: -/* 1A4608 80275D28 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A460C 80275D2C 3C0140C9 */ lui $at, 0x40c9 -/* 1A4610 80275D30 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4614 80275D34 44810000 */ mtc1 $at, $f0 -/* 1A4618 80275D38 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A461C 80275D3C 46006302 */ mul.s $f12, $f12, $f0 -/* 1A4620 80275D40 00000000 */ nop -/* 1A4624 80275D44 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A4628 80275D48 4600A521 */ cvt.d.s $f20, $f20 -/* 1A462C 80275D4C 3C0143B4 */ lui $at, 0x43b4 -/* 1A4630 80275D50 44810000 */ mtc1 $at, $f0 -/* 1A4634 80275D54 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A4638 80275D58 0C00A85B */ jal sin_rad -/* 1A463C 80275D5C 46006303 */ div.s $f12, $f12, $f0 -/* 1A4640 80275D60 3C01802A */ lui $at, %hi(D_8029D928) -/* 1A4644 80275D64 D422D928 */ ldc1 $f2, %lo(D_8029D928)($at) -/* 1A4648 80275D68 46000021 */ cvt.d.s $f0, $f0 -.L80275D6C: -/* 1A464C 80275D6C 46220002 */ mul.d $f0, $f0, $f2 -/* 1A4650 80275D70 00000000 */ nop -/* 1A4654 80275D74 46360002 */ mul.d $f0, $f0, $f22 -/* 1A4658 80275D78 00000000 */ nop -/* 1A465C 80275D7C 46360000 */ add.d $f0, $f0, $f22 -/* 1A4660 80275D80 4620A500 */ add.d $f20, $f20, $f0 -/* 1A4664 80275D84 4620A520 */ cvt.s.d $f20, $f20 -/* 1A4668 80275D88 E6140044 */ swc1 $f20, 0x44($s0) -/* 1A466C 80275D8C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4670 80275D90 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A4674 80275D94 46006300 */ add.s $f12, $f12, $f0 -/* 1A4678 80275D98 0C00A6C9 */ jal clamp_angle -/* 1A467C 80275D9C E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A4680 80275DA0 96020064 */ lhu $v0, 0x64($s0) -/* 1A4684 80275DA4 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A4688 80275DA8 2442FFFF */ addiu $v0, $v0, -1 -/* 1A468C 80275DAC A6020064 */ sh $v0, 0x64($s0) -/* 1A4690 80275DB0 00021400 */ sll $v0, $v0, 0x10 -/* 1A4694 80275DB4 14400047 */ bnez $v0, .L80275ED4 -/* 1A4698 80275DB8 0000102D */ daddu $v0, $zero, $zero -/* 1A469C 80275DBC 0000202D */ daddu $a0, $zero, $zero -/* 1A46A0 80275DC0 0080282D */ daddu $a1, $a0, $zero -/* 1A46A4 80275DC4 3C060001 */ lui $a2, 1 -/* 1A46A8 80275DC8 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A46AC 80275DCC 34C6000C */ ori $a2, $a2, 0xc -/* 1A46B0 80275DD0 E6400148 */ swc1 $f0, 0x148($s2) -.L80275DD4: -/* 1A46B4 80275DD4 0C098F3F */ jal set_animation -/* 1A46B8 80275DD8 00000000 */ nop -/* 1A46BC 80275DDC 0809D7B5 */ j .L80275ED4 -/* 1A46C0 80275DE0 24020001 */ addiu $v0, $zero, 1 -.L80275DE4: -/* 1A46C4 80275DE4 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A46C8 80275DE8 3C0140C9 */ lui $at, 0x40c9 -/* 1A46CC 80275DEC 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A46D0 80275DF0 4481B000 */ mtc1 $at, $f22 -/* 1A46D4 80275DF4 00000000 */ nop -/* 1A46D8 80275DF8 46166302 */ mul.s $f12, $f12, $f22 -/* 1A46DC 80275DFC 00000000 */ nop -/* 1A46E0 80275E00 C6140000 */ lwc1 $f20, ($s0) -/* 1A46E4 80275E04 3C0143B4 */ lui $at, 0x43b4 -/* 1A46E8 80275E08 4481C000 */ mtc1 $at, $f24 -/* 1A46EC 80275E0C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A46F0 80275E10 0C00A85B */ jal sin_rad -/* 1A46F4 80275E14 46186303 */ div.s $f12, $f12, $f24 -/* 1A46F8 80275E18 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A46FC 80275E1C 46001082 */ mul.s $f2, $f2, $f0 -/* 1A4700 80275E20 00000000 */ nop -/* 1A4704 80275E24 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4708 80275E28 46166302 */ mul.s $f12, $f12, $f22 -/* 1A470C 80275E2C 00000000 */ nop -/* 1A4710 80275E30 3C01802A */ lui $at, %hi(D_8029D930) -/* 1A4714 80275E34 D420D930 */ ldc1 $f0, %lo(D_8029D930)($at) -/* 1A4718 80275E38 460010A1 */ cvt.d.s $f2, $f2 -/* 1A471C 80275E3C 46201083 */ div.d $f2, $f2, $f0 -/* 1A4720 80275E40 4622A500 */ add.d $f20, $f20, $f2 -/* 1A4724 80275E44 46186303 */ div.s $f12, $f12, $f24 -/* 1A4728 80275E48 4620A520 */ cvt.s.d $f20, $f20 -/* 1A472C 80275E4C 0C00A85B */ jal sin_rad -/* 1A4730 80275E50 E6140000 */ swc1 $f20, ($s0) -/* 1A4734 80275E54 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A4738 80275E58 46001082 */ mul.s $f2, $f2, $f0 -/* 1A473C 80275E5C 00000000 */ nop -/* 1A4740 80275E60 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4744 80275E64 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A4748 80275E68 46006300 */ add.s $f12, $f12, $f0 -/* 1A474C 80275E6C C6000004 */ lwc1 $f0, 4($s0) -/* 1A4750 80275E70 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4754 80275E74 E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A4758 80275E78 0C00A6C9 */ jal clamp_angle -/* 1A475C 80275E7C E6000004 */ swc1 $f0, 4($s0) -/* 1A4760 80275E80 C6020000 */ lwc1 $f2, ($s0) -/* 1A4764 80275E84 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A4768 80275E88 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A476C 80275E8C C6000004 */ lwc1 $f0, 4($s0) -/* 1A4770 80275E90 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A4774 80275E94 C6000008 */ lwc1 $f0, 8($s0) -/* 1A4778 80275E98 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A477C 80275E9C 3C02800E */ lui $v0, %hi(gBattleStatus) -/* 1A4780 80275EA0 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0) -/* 1A4784 80275EA4 30422000 */ andi $v0, $v0, 0x2000 -/* 1A4788 80275EA8 10400003 */ beqz $v0, .L80275EB8 -/* 1A478C 80275EAC 00000000 */ nop -.L80275EB0: -/* 1A4790 80275EB0 0809D7B5 */ j .L80275ED4 -/* 1A4794 80275EB4 24020002 */ addiu $v0, $zero, 2 -.L80275EB8: -/* 1A4798 80275EB8 96030064 */ lhu $v1, 0x64($s0) -/* 1A479C 80275EBC 2463FFFF */ addiu $v1, $v1, -1 -/* 1A47A0 80275EC0 A6030064 */ sh $v1, 0x64($s0) -/* 1A47A4 80275EC4 00031C00 */ sll $v1, $v1, 0x10 -/* 1A47A8 80275EC8 10600002 */ beqz $v1, .L80275ED4 -/* 1A47AC 80275ECC 24020001 */ addiu $v0, $zero, 1 -.L80275ED0: -/* 1A47B0 80275ED0 0000102D */ daddu $v0, $zero, $zero -.L80275ED4: -/* 1A47B4 80275ED4 8FBF0028 */ lw $ra, 0x28($sp) -/* 1A47B8 80275ED8 8FB30024 */ lw $s3, 0x24($sp) -/* 1A47BC 80275EDC 8FB20020 */ lw $s2, 0x20($sp) -/* 1A47C0 80275EE0 8FB1001C */ lw $s1, 0x1c($sp) -/* 1A47C4 80275EE4 8FB00018 */ lw $s0, 0x18($sp) -/* 1A47C8 80275EE8 D7BA0048 */ ldc1 $f26, 0x48($sp) -/* 1A47CC 80275EEC D7B80040 */ ldc1 $f24, 0x40($sp) -/* 1A47D0 80275EF0 D7B60038 */ ldc1 $f22, 0x38($sp) -/* 1A47D4 80275EF4 D7B40030 */ ldc1 $f20, 0x30($sp) -/* 1A47D8 80275EF8 03E00008 */ jr $ra -/* 1A47DC 80275EFC 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/19FAF0/func_80275F00.s b/ver/us/asm/nonmatchings/19FAF0/func_80275F00.s deleted file mode 100644 index 38564cb219..0000000000 --- a/ver/us/asm/nonmatchings/19FAF0/func_80275F00.s +++ /dev/null @@ -1,1078 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029D938 -.double 47.0 - -dlabel D_8029D940 -.double 0.53 - -dlabel D_8029D948 -.double 47.0 - -dlabel D_8029D950 -.double 0.53 - -dlabel D_8029D958 -.double 16.5 - -dlabel D_8029D960 -.double 0.53 - -dlabel D_8029D968 -.double 0.53 - -dlabel D_8029D970 -.double 0.53 - -dlabel D_8029D978 -.double 33.0 - -dlabel D_8029D980 -.double 0.53, 0.0 - -.section .text - -glabel func_80275F00 -/* 1A47E0 80275F00 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 1A47E4 80275F04 AFB20020 */ sw $s2, 0x20($sp) -/* 1A47E8 80275F08 3C12800E */ lui $s2, %hi(gBattleStatus+0xD8) -/* 1A47EC 80275F0C 8E52C148 */ lw $s2, %lo(gBattleStatus+0xD8)($s2) -/* 1A47F0 80275F10 AFB30024 */ sw $s3, 0x24($sp) -/* 1A47F4 80275F14 0080982D */ daddu $s3, $a0, $zero -/* 1A47F8 80275F18 AFBF0028 */ sw $ra, 0x28($sp) -/* 1A47FC 80275F1C AFB1001C */ sw $s1, 0x1c($sp) -/* 1A4800 80275F20 AFB00018 */ sw $s0, 0x18($sp) -/* 1A4804 80275F24 F7BA0048 */ sdc1 $f26, 0x48($sp) -/* 1A4808 80275F28 F7B80040 */ sdc1 $f24, 0x40($sp) -/* 1A480C 80275F2C F7B60038 */ sdc1 $f22, 0x38($sp) -/* 1A4810 80275F30 F7B40030 */ sdc1 $f20, 0x30($sp) -/* 1A4814 80275F34 8E71000C */ lw $s1, 0xc($s3) -/* 1A4818 80275F38 10A0001E */ beqz $a1, .L80275FB4 -/* 1A481C 80275F3C 2650000C */ addiu $s0, $s2, 0xc -/* 1A4820 80275F40 8E250000 */ lw $a1, ($s1) -/* 1A4824 80275F44 0C0B1EAF */ jal evt_get_variable -/* 1A4828 80275F48 26310004 */ addiu $s1, $s1, 4 -/* 1A482C 80275F4C A6420070 */ sh $v0, 0x70($s2) -/* 1A4830 80275F50 8E250000 */ lw $a1, ($s1) -/* 1A4834 80275F54 0C0B1EAF */ jal evt_get_variable -/* 1A4838 80275F58 0260202D */ daddu $a0, $s3, $zero -/* 1A483C 80275F5C A6420072 */ sh $v0, 0x72($s2) -/* 1A4840 80275F60 AE600074 */ sw $zero, 0x74($s3) -/* 1A4844 80275F64 AE600070 */ sw $zero, 0x70($s3) -/* 1A4848 80275F68 86430072 */ lh $v1, 0x72($s2) -/* 1A484C 80275F6C 24020001 */ addiu $v0, $zero, 1 -/* 1A4850 80275F70 14620005 */ bne $v1, $v0, .L80275F88 -/* 1A4854 80275F74 24020003 */ addiu $v0, $zero, 3 -/* 1A4858 80275F78 2402000B */ addiu $v0, $zero, 0xb -/* 1A485C 80275F7C AE620070 */ sw $v0, 0x70($s3) -/* 1A4860 80275F80 86430072 */ lh $v1, 0x72($s2) -/* 1A4864 80275F84 24020003 */ addiu $v0, $zero, 3 -.L80275F88: -/* 1A4868 80275F88 14620002 */ bne $v1, $v0, .L80275F94 -/* 1A486C 80275F8C 24020014 */ addiu $v0, $zero, 0x14 -/* 1A4870 80275F90 AE620070 */ sw $v0, 0x70($s3) -.L80275F94: -/* 1A4874 80275F94 86430072 */ lh $v1, 0x72($s2) -/* 1A4878 80275F98 24020002 */ addiu $v0, $zero, 2 -/* 1A487C 80275F9C 10620003 */ beq $v1, $v0, .L80275FAC -/* 1A4880 80275FA0 24020004 */ addiu $v0, $zero, 4 -/* 1A4884 80275FA4 14620003 */ bne $v1, $v0, .L80275FB4 -/* 1A4888 80275FA8 00000000 */ nop -.L80275FAC: -/* 1A488C 80275FAC 2402001E */ addiu $v0, $zero, 0x1e -/* 1A4890 80275FB0 AE620070 */ sw $v0, 0x70($s3) -.L80275FB4: -/* 1A4894 80275FB4 8E630070 */ lw $v1, 0x70($s3) -/* 1A4898 80275FB8 2402000A */ addiu $v0, $zero, 0xa -/* 1A489C 80275FBC 106200BC */ beq $v1, $v0, .L802762B0 -/* 1A48A0 80275FC0 2862000B */ slti $v0, $v1, 0xb -/* 1A48A4 80275FC4 10400005 */ beqz $v0, .L80275FDC -/* 1A48A8 80275FC8 24020014 */ addiu $v0, $zero, 0x14 -/* 1A48AC 80275FCC 10600009 */ beqz $v1, .L80275FF4 -/* 1A48B0 80275FD0 00000000 */ nop -/* 1A48B4 80275FD4 0809DA2C */ j .L802768B0 -/* 1A48B8 80275FD8 00000000 */ nop -.L80275FDC: -/* 1A48BC 80275FDC 10620163 */ beq $v1, $v0, .L8027656C -/* 1A48C0 80275FE0 2402001E */ addiu $v0, $zero, 0x1e -/* 1A48C4 80275FE4 1062018F */ beq $v1, $v0, .L80276624 -/* 1A48C8 80275FE8 00000000 */ nop -/* 1A48CC 80275FEC 0809DA2C */ j .L802768B0 -/* 1A48D0 80275FF0 00000000 */ nop -.L80275FF4: -/* 1A48D4 80275FF4 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A48D8 80275FF8 C618000C */ lwc1 $f24, 0xc($s0) -/* 1A48DC 80275FFC C61A0014 */ lwc1 $f26, 0x14($s0) -/* 1A48E0 80276000 E6000000 */ swc1 $f0, ($s0) -/* 1A48E4 80276004 46000586 */ mov.s $f22, $f0 -/* 1A48E8 80276008 4406C000 */ mfc1 $a2, $f24 -/* 1A48EC 8027600C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A48F0 80276010 4600B306 */ mov.s $f12, $f22 -/* 1A48F4 80276014 E6000004 */ swc1 $f0, 4($s0) -/* 1A48F8 80276018 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A48FC 8027601C 4407D000 */ mfc1 $a3, $f26 -/* 1A4900 80276020 46000506 */ mov.s $f20, $f0 -/* 1A4904 80276024 46000386 */ mov.s $f14, $f0 -/* 1A4908 80276028 0C00A720 */ jal atan2 -/* 1A490C 8027602C E6140008 */ swc1 $f20, 8($s0) -/* 1A4910 80276030 4600B306 */ mov.s $f12, $f22 -/* 1A4914 80276034 4406C000 */ mfc1 $a2, $f24 -/* 1A4918 80276038 4407D000 */ mfc1 $a3, $f26 -/* 1A491C 8027603C 4600A386 */ mov.s $f14, $f20 -/* 1A4920 80276040 0C00A7B5 */ jal dist2D -/* 1A4924 80276044 E6000048 */ swc1 $f0, 0x48($s0) -/* 1A4928 80276048 86020064 */ lh $v0, 0x64($s0) -/* 1A492C 8027604C 46000106 */ mov.s $f4, $f0 -/* 1A4930 80276050 14400012 */ bnez $v0, .L8027609C -/* 1A4934 80276054 E604004C */ swc1 $f4, 0x4c($s0) -/* 1A4938 80276058 C6000040 */ lwc1 $f0, 0x40($s0) -/* 1A493C 8027605C C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A4940 80276060 46002003 */ div.s $f0, $f4, $f0 -/* 1A4944 80276064 4600028D */ trunc.w.s $f10, $f0 -/* 1A4948 80276068 44035000 */ mfc1 $v1, $f10 -/* 1A494C 8027606C 00000000 */ nop -/* 1A4950 80276070 00031400 */ sll $v0, $v1, 0x10 -/* 1A4954 80276074 00021403 */ sra $v0, $v0, 0x10 -/* 1A4958 80276078 44820000 */ mtc1 $v0, $f0 -/* 1A495C 8027607C 00000000 */ nop -/* 1A4960 80276080 46800020 */ cvt.s.w $f0, $f0 -/* 1A4964 80276084 46020002 */ mul.s $f0, $f0, $f2 -/* 1A4968 80276088 00000000 */ nop -/* 1A496C 8027608C 46002086 */ mov.s $f2, $f4 -/* 1A4970 80276090 A6030064 */ sh $v1, 0x64($s0) -/* 1A4974 80276094 0809D834 */ j .L802760D0 -/* 1A4978 80276098 46001201 */ sub.s $f8, $f2, $f0 -.L8027609C: -/* 1A497C 8027609C 44821000 */ mtc1 $v0, $f2 -/* 1A4980 802760A0 00000000 */ nop -/* 1A4984 802760A4 468010A0 */ cvt.s.w $f2, $f2 -/* 1A4988 802760A8 86020064 */ lh $v0, 0x64($s0) -/* 1A498C 802760AC 46022083 */ div.s $f2, $f4, $f2 -/* 1A4990 802760B0 44820000 */ mtc1 $v0, $f0 -/* 1A4994 802760B4 00000000 */ nop -/* 1A4998 802760B8 46800020 */ cvt.s.w $f0, $f0 -/* 1A499C 802760BC 46020002 */ mul.s $f0, $f0, $f2 -/* 1A49A0 802760C0 00000000 */ nop -/* 1A49A4 802760C4 C604004C */ lwc1 $f4, 0x4c($s0) -/* 1A49A8 802760C8 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A49AC 802760CC 46002201 */ sub.s $f8, $f4, $f0 -.L802760D0: -/* 1A49B0 802760D0 86020064 */ lh $v0, 0x64($s0) -/* 1A49B4 802760D4 3C014049 */ lui $at, 0x4049 -/* 1A49B8 802760D8 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A49BC 802760DC 44812000 */ mtc1 $at, $f4 -/* 1A49C0 802760E0 C602000C */ lwc1 $f2, 0xc($s0) -/* 1A49C4 802760E4 44820000 */ mtc1 $v0, $f0 -/* 1A49C8 802760E8 00000000 */ nop -/* 1A49CC 802760EC 46800020 */ cvt.s.w $f0, $f0 -/* 1A49D0 802760F0 46002103 */ div.s $f4, $f4, $f0 -/* 1A49D4 802760F4 C6000000 */ lwc1 $f0, ($s0) -/* 1A49D8 802760F8 46001081 */ sub.s $f2, $f2, $f0 -/* 1A49DC 802760FC 8E06005C */ lw $a2, 0x5c($s0) -/* 1A49E0 80276100 44820000 */ mtc1 $v0, $f0 -/* 1A49E4 80276104 00000000 */ nop -/* 1A49E8 80276108 46800020 */ cvt.s.w $f0, $f0 -/* 1A49EC 8027610C 46001083 */ div.s $f2, $f2, $f0 -/* 1A49F0 80276110 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A49F4 80276114 0000202D */ daddu $a0, $zero, $zero -/* 1A49F8 80276118 E604003C */ swc1 $f4, 0x3c($s0) -/* 1A49FC 8027611C E6020030 */ swc1 $f2, 0x30($s0) -/* 1A4A00 80276120 C6020004 */ lwc1 $f2, 4($s0) -/* 1A4A04 80276124 C6040014 */ lwc1 $f4, 0x14($s0) -/* 1A4A08 80276128 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4A0C 8027612C 44821000 */ mtc1 $v0, $f2 -/* 1A4A10 80276130 00000000 */ nop -/* 1A4A14 80276134 468010A0 */ cvt.s.w $f2, $f2 -/* 1A4A18 80276138 46001186 */ mov.s $f6, $f2 -/* 1A4A1C 8027613C 46020003 */ div.s $f0, $f0, $f2 -/* 1A4A20 80276140 C6020008 */ lwc1 $f2, 8($s0) -/* 1A4A24 80276144 0080282D */ daddu $a1, $a0, $zero -/* 1A4A28 80276148 AE000044 */ sw $zero, 0x44($s0) -/* 1A4A2C 8027614C E6000034 */ swc1 $f0, 0x34($s0) -/* 1A4A30 80276150 46003006 */ mov.s $f0, $f6 -/* 1A4A34 80276154 46022101 */ sub.s $f4, $f4, $f2 -/* 1A4A38 80276158 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A4A3C 8027615C 46004003 */ div.s $f0, $f8, $f0 -/* 1A4A40 80276160 46001080 */ add.s $f2, $f2, $f0 -/* 1A4A44 80276164 46062103 */ div.s $f4, $f4, $f6 -/* 1A4A48 80276168 E6040038 */ swc1 $f4, 0x38($s0) -/* 1A4A4C 8027616C 0C098F3F */ jal set_animation -/* 1A4A50 80276170 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A4A54 80276174 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4A58 80276178 24040160 */ addiu $a0, $zero, 0x160 -/* 1A4A5C 8027617C E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A4A60 80276180 8E460144 */ lw $a2, 0x144($s2) -/* 1A4A64 80276184 8E470148 */ lw $a3, 0x148($s2) -/* 1A4A68 80276188 0C052757 */ jal sfx_play_sound_at_position -/* 1A4A6C 8027618C 0000282D */ daddu $a1, $zero, $zero -/* 1A4A70 80276190 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4A74 80276194 24040147 */ addiu $a0, $zero, 0x147 -/* 1A4A78 80276198 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A4A7C 8027619C 8E460144 */ lw $a2, 0x144($s2) -/* 1A4A80 802761A0 8E470148 */ lw $a3, 0x148($s2) -/* 1A4A84 802761A4 0C052757 */ jal sfx_play_sound_at_position -/* 1A4A88 802761A8 0000282D */ daddu $a1, $zero, $zero -/* 1A4A8C 802761AC 86020064 */ lh $v0, 0x64($s0) -/* 1A4A90 802761B0 24030168 */ addiu $v1, $zero, 0x168 -/* 1A4A94 802761B4 14400002 */ bnez $v0, .L802761C0 -/* 1A4A98 802761B8 0062001A */ div $zero, $v1, $v0 -/* 1A4A9C 802761BC 0007000D */ break 7 -.L802761C0: -/* 1A4AA0 802761C0 2401FFFF */ addiu $at, $zero, -1 -/* 1A4AA4 802761C4 14410004 */ bne $v0, $at, .L802761D8 -/* 1A4AA8 802761C8 3C018000 */ lui $at, 0x8000 -/* 1A4AAC 802761CC 14610002 */ bne $v1, $at, .L802761D8 -/* 1A4AB0 802761D0 00000000 */ nop -/* 1A4AB4 802761D4 0006000D */ break 6 -.L802761D8: -/* 1A4AB8 802761D8 00001812 */ mflo $v1 -/* 1A4ABC 802761DC C608004C */ lwc1 $f8, 0x4c($s0) -/* 1A4AC0 802761E0 3C014034 */ lui $at, 0x4034 -/* 1A4AC4 802761E4 44811800 */ mtc1 $at, $f3 -/* 1A4AC8 802761E8 44801000 */ mtc1 $zero, $f2 -/* 1A4ACC 802761EC C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A4AD0 802761F0 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A4AD4 802761F4 46004021 */ cvt.d.s $f0, $f8 -/* 1A4AD8 802761F8 46220001 */ sub.d $f0, $f0, $f2 -/* 1A4ADC 802761FC 3C0142B4 */ lui $at, 0x42b4 -/* 1A4AE0 80276200 44811000 */ mtc1 $at, $f2 -/* 1A4AE4 80276204 AE000018 */ sw $zero, 0x18($s0) -/* 1A4AE8 80276208 AE00001C */ sw $zero, 0x1c($s0) -/* 1A4AEC 8027620C E6020024 */ swc1 $f2, 0x24($s0) -/* 1A4AF0 80276210 3C014018 */ lui $at, 0x4018 -/* 1A4AF4 80276214 44811800 */ mtc1 $at, $f3 -/* 1A4AF8 80276218 44801000 */ mtc1 $zero, $f2 -/* 1A4AFC 8027621C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4B00 80276220 46200220 */ cvt.s.d $f8, $f0 -/* 1A4B04 80276224 46004021 */ cvt.d.s $f0, $f8 -/* 1A4B08 80276228 46220003 */ div.d $f0, $f0, $f2 -/* 1A4B0C 8027622C 46200220 */ cvt.s.d $f8, $f0 -/* 1A4B10 80276230 3C01802A */ lui $at, %hi(D_8029D938) -/* 1A4B14 80276234 D420D938 */ ldc1 $f0, %lo(D_8029D938)($at) -/* 1A4B18 80276238 460040A1 */ cvt.d.s $f2, $f8 -/* 1A4B1C 8027623C 46201080 */ add.d $f2, $f2, $f0 -/* 1A4B20 80276240 3C0140C9 */ lui $at, 0x40c9 -/* 1A4B24 80276244 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4B28 80276248 44810000 */ mtc1 $at, $f0 -/* 1A4B2C 8027624C 4600A521 */ cvt.d.s $f20, $f20 -/* 1A4B30 80276250 46006302 */ mul.s $f12, $f12, $f0 -/* 1A4B34 80276254 00000000 */ nop -/* 1A4B38 80276258 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A4B3C 8027625C 3C0143B4 */ lui $at, 0x43b4 -/* 1A4B40 80276260 44810000 */ mtc1 $at, $f0 -/* 1A4B44 80276264 46201220 */ cvt.s.d $f8, $f2 -/* 1A4B48 80276268 E6080050 */ swc1 $f8, 0x50($s0) -/* 1A4B4C 8027626C 46006303 */ div.s $f12, $f12, $f0 -/* 1A4B50 80276270 44830000 */ mtc1 $v1, $f0 -/* 1A4B54 80276274 00000000 */ nop -/* 1A4B58 80276278 46800020 */ cvt.s.w $f0, $f0 -/* 1A4B5C 8027627C 0C00A85B */ jal sin_rad -/* 1A4B60 80276280 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A4B64 80276284 3C01802A */ lui $at, %hi(D_8029D940) -/* 1A4B68 80276288 D422D940 */ ldc1 $f2, %lo(D_8029D940)($at) -/* 1A4B6C 8027628C 46000021 */ cvt.d.s $f0, $f0 -/* 1A4B70 80276290 46220002 */ mul.d $f0, $f0, $f2 -/* 1A4B74 80276294 00000000 */ nop -/* 1A4B78 80276298 46360002 */ mul.d $f0, $f0, $f22 -/* 1A4B7C 8027629C 00000000 */ nop -/* 1A4B80 802762A0 46360000 */ add.d $f0, $f0, $f22 -/* 1A4B84 802762A4 4620A500 */ add.d $f20, $f20, $f0 -/* 1A4B88 802762A8 0809DA29 */ j .L802768A4 -/* 1A4B8C 802762AC 24020001 */ addiu $v0, $zero, 1 -.L802762B0: -/* 1A4B90 802762B0 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A4B94 802762B4 C618000C */ lwc1 $f24, 0xc($s0) -/* 1A4B98 802762B8 C61A0014 */ lwc1 $f26, 0x14($s0) -/* 1A4B9C 802762BC E6000000 */ swc1 $f0, ($s0) -/* 1A4BA0 802762C0 46000586 */ mov.s $f22, $f0 -/* 1A4BA4 802762C4 4406C000 */ mfc1 $a2, $f24 -/* 1A4BA8 802762C8 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A4BAC 802762CC 4600B306 */ mov.s $f12, $f22 -/* 1A4BB0 802762D0 E6000004 */ swc1 $f0, 4($s0) -/* 1A4BB4 802762D4 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4BB8 802762D8 4407D000 */ mfc1 $a3, $f26 -/* 1A4BBC 802762DC 46000506 */ mov.s $f20, $f0 -/* 1A4BC0 802762E0 4600A386 */ mov.s $f14, $f20 -/* 1A4BC4 802762E4 0C00A720 */ jal atan2 -/* 1A4BC8 802762E8 E6140008 */ swc1 $f20, 8($s0) -/* 1A4BCC 802762EC 4600B306 */ mov.s $f12, $f22 -/* 1A4BD0 802762F0 4406C000 */ mfc1 $a2, $f24 -/* 1A4BD4 802762F4 4407D000 */ mfc1 $a3, $f26 -/* 1A4BD8 802762F8 4600A386 */ mov.s $f14, $f20 -/* 1A4BDC 802762FC 0C00A7B5 */ jal dist2D -/* 1A4BE0 80276300 E6000048 */ swc1 $f0, 0x48($s0) -/* 1A4BE4 80276304 86020064 */ lh $v0, 0x64($s0) -/* 1A4BE8 80276308 46000106 */ mov.s $f4, $f0 -/* 1A4BEC 8027630C 14400012 */ bnez $v0, .L80276358 -/* 1A4BF0 80276310 E604004C */ swc1 $f4, 0x4c($s0) -/* 1A4BF4 80276314 C6000040 */ lwc1 $f0, 0x40($s0) -/* 1A4BF8 80276318 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A4BFC 8027631C 46002003 */ div.s $f0, $f4, $f0 -/* 1A4C00 80276320 4600028D */ trunc.w.s $f10, $f0 -/* 1A4C04 80276324 44035000 */ mfc1 $v1, $f10 -/* 1A4C08 80276328 00000000 */ nop -/* 1A4C0C 8027632C 00031400 */ sll $v0, $v1, 0x10 -/* 1A4C10 80276330 00021403 */ sra $v0, $v0, 0x10 -/* 1A4C14 80276334 44820000 */ mtc1 $v0, $f0 -/* 1A4C18 80276338 00000000 */ nop -/* 1A4C1C 8027633C 46800020 */ cvt.s.w $f0, $f0 -/* 1A4C20 80276340 46020002 */ mul.s $f0, $f0, $f2 -/* 1A4C24 80276344 00000000 */ nop -/* 1A4C28 80276348 46002086 */ mov.s $f2, $f4 -/* 1A4C2C 8027634C A6030064 */ sh $v1, 0x64($s0) -/* 1A4C30 80276350 0809D8E3 */ j .L8027638C -/* 1A4C34 80276354 46001201 */ sub.s $f8, $f2, $f0 -.L80276358: -/* 1A4C38 80276358 44821000 */ mtc1 $v0, $f2 -/* 1A4C3C 8027635C 00000000 */ nop -/* 1A4C40 80276360 468010A0 */ cvt.s.w $f2, $f2 -/* 1A4C44 80276364 86020064 */ lh $v0, 0x64($s0) -/* 1A4C48 80276368 46022083 */ div.s $f2, $f4, $f2 -/* 1A4C4C 8027636C 44820000 */ mtc1 $v0, $f0 -/* 1A4C50 80276370 00000000 */ nop -/* 1A4C54 80276374 46800020 */ cvt.s.w $f0, $f0 -/* 1A4C58 80276378 46020002 */ mul.s $f0, $f0, $f2 -/* 1A4C5C 8027637C 00000000 */ nop -/* 1A4C60 80276380 C604004C */ lwc1 $f4, 0x4c($s0) -/* 1A4C64 80276384 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A4C68 80276388 46002201 */ sub.s $f8, $f4, $f0 -.L8027638C: -/* 1A4C6C 8027638C 86020064 */ lh $v0, 0x64($s0) -/* 1A4C70 80276390 3C014049 */ lui $at, 0x4049 -/* 1A4C74 80276394 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4C78 80276398 44812000 */ mtc1 $at, $f4 -/* 1A4C7C 8027639C C602000C */ lwc1 $f2, 0xc($s0) -/* 1A4C80 802763A0 44820000 */ mtc1 $v0, $f0 -/* 1A4C84 802763A4 00000000 */ nop -/* 1A4C88 802763A8 46800020 */ cvt.s.w $f0, $f0 -/* 1A4C8C 802763AC 46002103 */ div.s $f4, $f4, $f0 -/* 1A4C90 802763B0 C6000000 */ lwc1 $f0, ($s0) -/* 1A4C94 802763B4 46001081 */ sub.s $f2, $f2, $f0 -/* 1A4C98 802763B8 8E060058 */ lw $a2, 0x58($s0) -/* 1A4C9C 802763BC 44820000 */ mtc1 $v0, $f0 -/* 1A4CA0 802763C0 00000000 */ nop -/* 1A4CA4 802763C4 46800020 */ cvt.s.w $f0, $f0 -/* 1A4CA8 802763C8 46001083 */ div.s $f2, $f2, $f0 -/* 1A4CAC 802763CC C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A4CB0 802763D0 0000202D */ daddu $a0, $zero, $zero -/* 1A4CB4 802763D4 E604003C */ swc1 $f4, 0x3c($s0) -/* 1A4CB8 802763D8 E6020030 */ swc1 $f2, 0x30($s0) -/* 1A4CBC 802763DC C6020004 */ lwc1 $f2, 4($s0) -/* 1A4CC0 802763E0 C6040014 */ lwc1 $f4, 0x14($s0) -/* 1A4CC4 802763E4 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4CC8 802763E8 44821000 */ mtc1 $v0, $f2 -/* 1A4CCC 802763EC 00000000 */ nop -/* 1A4CD0 802763F0 468010A0 */ cvt.s.w $f2, $f2 -/* 1A4CD4 802763F4 46001186 */ mov.s $f6, $f2 -/* 1A4CD8 802763F8 46020003 */ div.s $f0, $f0, $f2 -/* 1A4CDC 802763FC C6020008 */ lwc1 $f2, 8($s0) -/* 1A4CE0 80276400 0080282D */ daddu $a1, $a0, $zero -/* 1A4CE4 80276404 AE000044 */ sw $zero, 0x44($s0) -/* 1A4CE8 80276408 E6000034 */ swc1 $f0, 0x34($s0) -/* 1A4CEC 8027640C 46003006 */ mov.s $f0, $f6 -/* 1A4CF0 80276410 46022101 */ sub.s $f4, $f4, $f2 -/* 1A4CF4 80276414 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A4CF8 80276418 46004003 */ div.s $f0, $f8, $f0 -/* 1A4CFC 8027641C 46001080 */ add.s $f2, $f2, $f0 -/* 1A4D00 80276420 46062103 */ div.s $f4, $f4, $f6 -/* 1A4D04 80276424 E6040038 */ swc1 $f4, 0x38($s0) -/* 1A4D08 80276428 0C098F3F */ jal set_animation -/* 1A4D0C 8027642C E6020040 */ swc1 $f2, 0x40($s0) -/* 1A4D10 80276430 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4D14 80276434 24040160 */ addiu $a0, $zero, 0x160 -/* 1A4D18 80276438 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A4D1C 8027643C 8E460144 */ lw $a2, 0x144($s2) -/* 1A4D20 80276440 8E470148 */ lw $a3, 0x148($s2) -/* 1A4D24 80276444 0C052757 */ jal sfx_play_sound_at_position -/* 1A4D28 80276448 0000282D */ daddu $a1, $zero, $zero -/* 1A4D2C 8027644C C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4D30 80276450 24040147 */ addiu $a0, $zero, 0x147 -/* 1A4D34 80276454 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A4D38 80276458 8E460144 */ lw $a2, 0x144($s2) -/* 1A4D3C 8027645C 8E470148 */ lw $a3, 0x148($s2) -/* 1A4D40 80276460 0C052757 */ jal sfx_play_sound_at_position -/* 1A4D44 80276464 0000282D */ daddu $a1, $zero, $zero -/* 1A4D48 80276468 86020064 */ lh $v0, 0x64($s0) -/* 1A4D4C 8027646C 24030168 */ addiu $v1, $zero, 0x168 -/* 1A4D50 80276470 14400002 */ bnez $v0, .L8027647C -/* 1A4D54 80276474 0062001A */ div $zero, $v1, $v0 -/* 1A4D58 80276478 0007000D */ break 7 -.L8027647C: -/* 1A4D5C 8027647C 2401FFFF */ addiu $at, $zero, -1 -/* 1A4D60 80276480 14410004 */ bne $v0, $at, .L80276494 -/* 1A4D64 80276484 3C018000 */ lui $at, 0x8000 -/* 1A4D68 80276488 14610002 */ bne $v1, $at, .L80276494 -/* 1A4D6C 8027648C 00000000 */ nop -/* 1A4D70 80276490 0006000D */ break 6 -.L80276494: -/* 1A4D74 80276494 00001812 */ mflo $v1 -/* 1A4D78 80276498 C608004C */ lwc1 $f8, 0x4c($s0) -/* 1A4D7C 8027649C 3C014034 */ lui $at, 0x4034 -/* 1A4D80 802764A0 44811800 */ mtc1 $at, $f3 -/* 1A4D84 802764A4 44801000 */ mtc1 $zero, $f2 -/* 1A4D88 802764A8 C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A4D8C 802764AC C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A4D90 802764B0 46004021 */ cvt.d.s $f0, $f8 -/* 1A4D94 802764B4 46220001 */ sub.d $f0, $f0, $f2 -/* 1A4D98 802764B8 3C0142B4 */ lui $at, 0x42b4 -/* 1A4D9C 802764BC 44811000 */ mtc1 $at, $f2 -/* 1A4DA0 802764C0 AE000018 */ sw $zero, 0x18($s0) -/* 1A4DA4 802764C4 AE00001C */ sw $zero, 0x1c($s0) -/* 1A4DA8 802764C8 E6020024 */ swc1 $f2, 0x24($s0) -/* 1A4DAC 802764CC 3C014018 */ lui $at, 0x4018 -/* 1A4DB0 802764D0 44811800 */ mtc1 $at, $f3 -/* 1A4DB4 802764D4 44801000 */ mtc1 $zero, $f2 -/* 1A4DB8 802764D8 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A4DBC 802764DC 46200220 */ cvt.s.d $f8, $f0 -/* 1A4DC0 802764E0 46004021 */ cvt.d.s $f0, $f8 -/* 1A4DC4 802764E4 46220003 */ div.d $f0, $f0, $f2 -/* 1A4DC8 802764E8 46200220 */ cvt.s.d $f8, $f0 -/* 1A4DCC 802764EC 3C01802A */ lui $at, %hi(D_8029D948) -/* 1A4DD0 802764F0 D420D948 */ ldc1 $f0, %lo(D_8029D948)($at) -/* 1A4DD4 802764F4 460040A1 */ cvt.d.s $f2, $f8 -/* 1A4DD8 802764F8 46201080 */ add.d $f2, $f2, $f0 -/* 1A4DDC 802764FC 3C0140C9 */ lui $at, 0x40c9 -/* 1A4DE0 80276500 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4DE4 80276504 44810000 */ mtc1 $at, $f0 -/* 1A4DE8 80276508 4600A521 */ cvt.d.s $f20, $f20 -/* 1A4DEC 8027650C 46006302 */ mul.s $f12, $f12, $f0 -/* 1A4DF0 80276510 00000000 */ nop -/* 1A4DF4 80276514 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A4DF8 80276518 3C0143B4 */ lui $at, 0x43b4 -/* 1A4DFC 8027651C 44810000 */ mtc1 $at, $f0 -/* 1A4E00 80276520 46201220 */ cvt.s.d $f8, $f2 -/* 1A4E04 80276524 E6080050 */ swc1 $f8, 0x50($s0) -/* 1A4E08 80276528 46006303 */ div.s $f12, $f12, $f0 -/* 1A4E0C 8027652C 44830000 */ mtc1 $v1, $f0 -/* 1A4E10 80276530 00000000 */ nop -/* 1A4E14 80276534 46800020 */ cvt.s.w $f0, $f0 -/* 1A4E18 80276538 0C00A85B */ jal sin_rad -/* 1A4E1C 8027653C E6000028 */ swc1 $f0, 0x28($s0) -/* 1A4E20 80276540 3C01802A */ lui $at, %hi(D_8029D950) -/* 1A4E24 80276544 D422D950 */ ldc1 $f2, %lo(D_8029D950)($at) -/* 1A4E28 80276548 46000021 */ cvt.d.s $f0, $f0 -/* 1A4E2C 8027654C 46220002 */ mul.d $f0, $f0, $f2 -/* 1A4E30 80276550 00000000 */ nop -/* 1A4E34 80276554 46360002 */ mul.d $f0, $f0, $f22 -/* 1A4E38 80276558 00000000 */ nop -/* 1A4E3C 8027655C 46360000 */ add.d $f0, $f0, $f22 -/* 1A4E40 80276560 4620A500 */ add.d $f20, $f20, $f0 -/* 1A4E44 80276564 0809DA29 */ j .L802768A4 -/* 1A4E48 80276568 2402000B */ addiu $v0, $zero, 0xb -.L8027656C: -/* 1A4E4C 8027656C 0000202D */ daddu $a0, $zero, $zero -/* 1A4E50 80276570 24050001 */ addiu $a1, $zero, 1 -/* 1A4E54 80276574 3C060001 */ lui $a2, 1 -/* 1A4E58 80276578 34C6000C */ ori $a2, $a2, 0xc -/* 1A4E5C 8027657C 00A0102D */ daddu $v0, $a1, $zero -/* 1A4E60 80276580 0C098F3F */ jal set_animation -/* 1A4E64 80276584 A6020064 */ sh $v0, 0x64($s0) -/* 1A4E68 80276588 AE400160 */ sw $zero, 0x160($s2) -/* 1A4E6C 8027658C 86020064 */ lh $v0, 0x64($s0) -/* 1A4E70 80276590 24030168 */ addiu $v1, $zero, 0x168 -/* 1A4E74 80276594 14400002 */ bnez $v0, .L802765A0 -/* 1A4E78 80276598 0062001A */ div $zero, $v1, $v0 -/* 1A4E7C 8027659C 0007000D */ break 7 -.L802765A0: -/* 1A4E80 802765A0 2401FFFF */ addiu $at, $zero, -1 -/* 1A4E84 802765A4 14410004 */ bne $v0, $at, .L802765B8 -/* 1A4E88 802765A8 3C018000 */ lui $at, 0x8000 -/* 1A4E8C 802765AC 14610002 */ bne $v1, $at, .L802765B8 -/* 1A4E90 802765B0 00000000 */ nop -/* 1A4E94 802765B4 0006000D */ break 6 -.L802765B8: -/* 1A4E98 802765B8 00001812 */ mflo $v1 -/* 1A4E9C 802765BC C6000018 */ lwc1 $f0, 0x18($s0) -/* 1A4EA0 802765C0 C602001C */ lwc1 $f2, 0x1c($s0) -/* 1A4EA4 802765C4 46020001 */ sub.s $f0, $f0, $f2 -/* 1A4EA8 802765C8 3C0142B4 */ lui $at, 0x42b4 -/* 1A4EAC 802765CC 44811000 */ mtc1 $at, $f2 -/* 1A4EB0 802765D0 00000000 */ nop -/* 1A4EB4 802765D4 E6020024 */ swc1 $f2, 0x24($s0) -/* 1A4EB8 802765D8 3C01802A */ lui $at, %hi(D_8029D958) -/* 1A4EBC 802765DC D422D958 */ ldc1 $f2, %lo(D_8029D958)($at) -/* 1A4EC0 802765E0 46000005 */ abs.s $f0, $f0 -/* 1A4EC4 802765E4 46000021 */ cvt.d.s $f0, $f0 -/* 1A4EC8 802765E8 46220003 */ div.d $f0, $f0, $f2 -/* 1A4ECC 802765EC 46200020 */ cvt.s.d $f0, $f0 -/* 1A4ED0 802765F0 E6000050 */ swc1 $f0, 0x50($s0) -/* 1A4ED4 802765F4 44830000 */ mtc1 $v1, $f0 -/* 1A4ED8 802765F8 00000000 */ nop -/* 1A4EDC 802765FC 46800020 */ cvt.s.w $f0, $f0 -/* 1A4EE0 80276600 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A4EE4 80276604 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A4EE8 80276608 E6000000 */ swc1 $f0, ($s0) -/* 1A4EEC 8027660C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A4EF0 80276610 E6000004 */ swc1 $f0, 4($s0) -/* 1A4EF4 80276614 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4EF8 80276618 24020015 */ addiu $v0, $zero, 0x15 -/* 1A4EFC 8027661C 0809DA2B */ j .L802768AC -/* 1A4F00 80276620 E6000008 */ swc1 $f0, 8($s0) -.L80276624: -/* 1A4F04 80276624 C6400144 */ lwc1 $f0, 0x144($s2) -/* 1A4F08 80276628 C618000C */ lwc1 $f24, 0xc($s0) -/* 1A4F0C 8027662C C61A0014 */ lwc1 $f26, 0x14($s0) -/* 1A4F10 80276630 E6000000 */ swc1 $f0, ($s0) -/* 1A4F14 80276634 46000586 */ mov.s $f22, $f0 -/* 1A4F18 80276638 4406C000 */ mfc1 $a2, $f24 -/* 1A4F1C 8027663C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A4F20 80276640 4600B306 */ mov.s $f12, $f22 -/* 1A4F24 80276644 E6000004 */ swc1 $f0, 4($s0) -/* 1A4F28 80276648 C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A4F2C 8027664C 4407D000 */ mfc1 $a3, $f26 -/* 1A4F30 80276650 46000506 */ mov.s $f20, $f0 -/* 1A4F34 80276654 46000386 */ mov.s $f14, $f0 -/* 1A4F38 80276658 0C00A720 */ jal atan2 -/* 1A4F3C 8027665C E6140008 */ swc1 $f20, 8($s0) -/* 1A4F40 80276660 4600B306 */ mov.s $f12, $f22 -/* 1A4F44 80276664 4406C000 */ mfc1 $a2, $f24 -/* 1A4F48 80276668 4407D000 */ mfc1 $a3, $f26 -/* 1A4F4C 8027666C 4600A386 */ mov.s $f14, $f20 -/* 1A4F50 80276670 0C00A7B5 */ jal dist2D -/* 1A4F54 80276674 E6000048 */ swc1 $f0, 0x48($s0) -/* 1A4F58 80276678 86020064 */ lh $v0, 0x64($s0) -/* 1A4F5C 8027667C 46000106 */ mov.s $f4, $f0 -/* 1A4F60 80276680 14400012 */ bnez $v0, .L802766CC -/* 1A4F64 80276684 E604004C */ swc1 $f4, 0x4c($s0) -/* 1A4F68 80276688 C6000040 */ lwc1 $f0, 0x40($s0) -/* 1A4F6C 8027668C C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A4F70 80276690 46002003 */ div.s $f0, $f4, $f0 -/* 1A4F74 80276694 4600028D */ trunc.w.s $f10, $f0 -/* 1A4F78 80276698 44035000 */ mfc1 $v1, $f10 -/* 1A4F7C 8027669C 00000000 */ nop -/* 1A4F80 802766A0 00031400 */ sll $v0, $v1, 0x10 -/* 1A4F84 802766A4 00021403 */ sra $v0, $v0, 0x10 -/* 1A4F88 802766A8 44820000 */ mtc1 $v0, $f0 -/* 1A4F8C 802766AC 00000000 */ nop -/* 1A4F90 802766B0 46800020 */ cvt.s.w $f0, $f0 -/* 1A4F94 802766B4 46020002 */ mul.s $f0, $f0, $f2 -/* 1A4F98 802766B8 00000000 */ nop -/* 1A4F9C 802766BC 46002086 */ mov.s $f2, $f4 -/* 1A4FA0 802766C0 A6030064 */ sh $v1, 0x64($s0) -/* 1A4FA4 802766C4 0809D9C0 */ j .L80276700 -/* 1A4FA8 802766C8 46001201 */ sub.s $f8, $f2, $f0 -.L802766CC: -/* 1A4FAC 802766CC 44821000 */ mtc1 $v0, $f2 -/* 1A4FB0 802766D0 00000000 */ nop -/* 1A4FB4 802766D4 468010A0 */ cvt.s.w $f2, $f2 -/* 1A4FB8 802766D8 86020064 */ lh $v0, 0x64($s0) -/* 1A4FBC 802766DC 46022083 */ div.s $f2, $f4, $f2 -/* 1A4FC0 802766E0 44820000 */ mtc1 $v0, $f0 -/* 1A4FC4 802766E4 00000000 */ nop -/* 1A4FC8 802766E8 46800020 */ cvt.s.w $f0, $f0 -/* 1A4FCC 802766EC 46020002 */ mul.s $f0, $f0, $f2 -/* 1A4FD0 802766F0 00000000 */ nop -/* 1A4FD4 802766F4 C604004C */ lwc1 $f4, 0x4c($s0) -/* 1A4FD8 802766F8 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A4FDC 802766FC 46002201 */ sub.s $f8, $f4, $f0 -.L80276700: -/* 1A4FE0 80276700 86020064 */ lh $v0, 0x64($s0) -/* 1A4FE4 80276704 3C014049 */ lui $at, 0x4049 -/* 1A4FE8 80276708 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A4FEC 8027670C 44812000 */ mtc1 $at, $f4 -/* 1A4FF0 80276710 C602000C */ lwc1 $f2, 0xc($s0) -/* 1A4FF4 80276714 24420001 */ addiu $v0, $v0, 1 -/* 1A4FF8 80276718 44820000 */ mtc1 $v0, $f0 -/* 1A4FFC 8027671C 00000000 */ nop -/* 1A5000 80276720 46800020 */ cvt.s.w $f0, $f0 -/* 1A5004 80276724 46002103 */ div.s $f4, $f4, $f0 -/* 1A5008 80276728 C6000000 */ lwc1 $f0, ($s0) -/* 1A500C 8027672C 86020064 */ lh $v0, 0x64($s0) -/* 1A5010 80276730 46001081 */ sub.s $f2, $f2, $f0 -/* 1A5014 80276734 8E060058 */ lw $a2, 0x58($s0) -/* 1A5018 80276738 44820000 */ mtc1 $v0, $f0 -/* 1A501C 8027673C 00000000 */ nop -/* 1A5020 80276740 46800020 */ cvt.s.w $f0, $f0 -/* 1A5024 80276744 46001083 */ div.s $f2, $f2, $f0 -/* 1A5028 80276748 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A502C 8027674C 0000202D */ daddu $a0, $zero, $zero -/* 1A5030 80276750 E604003C */ swc1 $f4, 0x3c($s0) -/* 1A5034 80276754 E6020030 */ swc1 $f2, 0x30($s0) -/* 1A5038 80276758 C6020004 */ lwc1 $f2, 4($s0) -/* 1A503C 8027675C C6040014 */ lwc1 $f4, 0x14($s0) -/* 1A5040 80276760 46020001 */ sub.s $f0, $f0, $f2 -/* 1A5044 80276764 44821000 */ mtc1 $v0, $f2 -/* 1A5048 80276768 00000000 */ nop -/* 1A504C 8027676C 468010A0 */ cvt.s.w $f2, $f2 -/* 1A5050 80276770 46001186 */ mov.s $f6, $f2 -/* 1A5054 80276774 46020003 */ div.s $f0, $f0, $f2 -/* 1A5058 80276778 C6020008 */ lwc1 $f2, 8($s0) -/* 1A505C 8027677C 0080282D */ daddu $a1, $a0, $zero -/* 1A5060 80276780 AE000044 */ sw $zero, 0x44($s0) -/* 1A5064 80276784 E6000034 */ swc1 $f0, 0x34($s0) -/* 1A5068 80276788 46003006 */ mov.s $f0, $f6 -/* 1A506C 8027678C 46022101 */ sub.s $f4, $f4, $f2 -/* 1A5070 80276790 C6020040 */ lwc1 $f2, 0x40($s0) -/* 1A5074 80276794 46004003 */ div.s $f0, $f8, $f0 -/* 1A5078 80276798 46001080 */ add.s $f2, $f2, $f0 -/* 1A507C 8027679C 46062103 */ div.s $f4, $f4, $f6 -/* 1A5080 802767A0 E6040038 */ swc1 $f4, 0x38($s0) -/* 1A5084 802767A4 0C098F3F */ jal set_animation -/* 1A5088 802767A8 E6020040 */ swc1 $f2, 0x40($s0) -/* 1A508C 802767AC C640014C */ lwc1 $f0, 0x14c($s2) -/* 1A5090 802767B0 24040160 */ addiu $a0, $zero, 0x160 -/* 1A5094 802767B4 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A5098 802767B8 8E460144 */ lw $a2, 0x144($s2) -/* 1A509C 802767BC 8E470148 */ lw $a3, 0x148($s2) -/* 1A50A0 802767C0 0C052757 */ jal sfx_play_sound_at_position -/* 1A50A4 802767C4 0000282D */ daddu $a1, $zero, $zero -/* 1A50A8 802767C8 86030064 */ lh $v1, 0x64($s0) -/* 1A50AC 802767CC 24020168 */ addiu $v0, $zero, 0x168 -/* 1A50B0 802767D0 14600002 */ bnez $v1, .L802767DC -/* 1A50B4 802767D4 0043001A */ div $zero, $v0, $v1 -/* 1A50B8 802767D8 0007000D */ break 7 -.L802767DC: -/* 1A50BC 802767DC 2401FFFF */ addiu $at, $zero, -1 -/* 1A50C0 802767E0 14610004 */ bne $v1, $at, .L802767F4 -/* 1A50C4 802767E4 3C018000 */ lui $at, 0x8000 -/* 1A50C8 802767E8 14410002 */ bne $v0, $at, .L802767F4 -/* 1A50CC 802767EC 00000000 */ nop -/* 1A50D0 802767F0 0006000D */ break 6 -.L802767F4: -/* 1A50D4 802767F4 00001012 */ mflo $v0 -/* 1A50D8 802767F8 3C0142B4 */ lui $at, 0x42b4 -/* 1A50DC 802767FC 44810000 */ mtc1 $at, $f0 -/* 1A50E0 80276800 3C014234 */ lui $at, 0x4234 -/* 1A50E4 80276804 44811000 */ mtc1 $at, $f2 -/* 1A50E8 80276808 86030066 */ lh $v1, 0x66($s0) -/* 1A50EC 8027680C E6000024 */ swc1 $f0, 0x24($s0) -/* 1A50F0 80276810 E6020050 */ swc1 $f2, 0x50($s0) -/* 1A50F4 80276814 44820000 */ mtc1 $v0, $f0 -/* 1A50F8 80276818 00000000 */ nop -/* 1A50FC 8027681C 46800020 */ cvt.s.w $f0, $f0 -/* 1A5100 80276820 24020004 */ addiu $v0, $zero, 4 -/* 1A5104 80276824 14620005 */ bne $v1, $v0, .L8027683C -/* 1A5108 80276828 E6000028 */ swc1 $f0, 0x28($s0) -/* 1A510C 8027682C 3C014261 */ lui $at, 0x4261 -/* 1A5110 80276830 44810000 */ mtc1 $at, $f0 -/* 1A5114 80276834 00000000 */ nop -/* 1A5118 80276838 E6000050 */ swc1 $f0, 0x50($s0) -.L8027683C: -/* 1A511C 8027683C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A5120 80276840 3C0140C9 */ lui $at, 0x40c9 -/* 1A5124 80276844 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A5128 80276848 44810000 */ mtc1 $at, $f0 -/* 1A512C 8027684C C6140044 */ lwc1 $f20, 0x44($s0) -/* 1A5130 80276850 C616003C */ lwc1 $f22, 0x3c($s0) -/* 1A5134 80276854 AE000018 */ sw $zero, 0x18($s0) -/* 1A5138 80276858 46006302 */ mul.s $f12, $f12, $f0 -/* 1A513C 8027685C 00000000 */ nop -/* 1A5140 80276860 AE00001C */ sw $zero, 0x1c($s0) -/* 1A5144 80276864 4600A521 */ cvt.d.s $f20, $f20 -/* 1A5148 80276868 3C0143B4 */ lui $at, 0x43b4 -/* 1A514C 8027686C 44810000 */ mtc1 $at, $f0 -/* 1A5150 80276870 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A5154 80276874 0C00A85B */ jal sin_rad -/* 1A5158 80276878 46006303 */ div.s $f12, $f12, $f0 -/* 1A515C 8027687C 3C01802A */ lui $at, %hi(D_8029D960) -/* 1A5160 80276880 D422D960 */ ldc1 $f2, %lo(D_8029D960)($at) -/* 1A5164 80276884 46000021 */ cvt.d.s $f0, $f0 -/* 1A5168 80276888 46220002 */ mul.d $f0, $f0, $f2 -/* 1A516C 8027688C 00000000 */ nop -/* 1A5170 80276890 46360002 */ mul.d $f0, $f0, $f22 -/* 1A5174 80276894 00000000 */ nop -/* 1A5178 80276898 46360000 */ add.d $f0, $f0, $f22 -/* 1A517C 8027689C 4620A500 */ add.d $f20, $f20, $f0 -/* 1A5180 802768A0 2402001F */ addiu $v0, $zero, 0x1f -.L802768A4: -/* 1A5184 802768A4 4620A520 */ cvt.s.d $f20, $f20 -/* 1A5188 802768A8 E6140044 */ swc1 $f20, 0x44($s0) -.L802768AC: -/* 1A518C 802768AC AE620070 */ sw $v0, 0x70($s3) -.L802768B0: -/* 1A5190 802768B0 8E640070 */ lw $a0, 0x70($s3) -/* 1A5194 802768B4 2402000B */ addiu $v0, $zero, 0xb -/* 1A5198 802768B8 10820060 */ beq $a0, $v0, .L80276A3C -/* 1A519C 802768BC 2882000C */ slti $v0, $a0, 0xc -/* 1A51A0 802768C0 10400005 */ beqz $v0, .L802768D8 -/* 1A51A4 802768C4 24020001 */ addiu $v0, $zero, 1 -/* 1A51A8 802768C8 1082000A */ beq $a0, $v0, .L802768F4 -/* 1A51AC 802768CC 0000102D */ daddu $v0, $zero, $zero -/* 1A51B0 802768D0 0809DBA2 */ j .L80276E88 -/* 1A51B4 802768D4 00000000 */ nop -.L802768D8: -/* 1A51B8 802768D8 24020015 */ addiu $v0, $zero, 0x15 -/* 1A51BC 802768DC 108200C7 */ beq $a0, $v0, .L80276BFC -/* 1A51C0 802768E0 2402001F */ addiu $v0, $zero, 0x1f -/* 1A51C4 802768E4 10820100 */ beq $a0, $v0, .L80276CE8 -/* 1A51C8 802768E8 0000102D */ daddu $v0, $zero, $zero -/* 1A51CC 802768EC 0809DBA2 */ j .L80276E88 -/* 1A51D0 802768F0 00000000 */ nop -.L802768F4: -/* 1A51D4 802768F4 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A51D8 802768F8 3C0140C9 */ lui $at, 0x40c9 -/* 1A51DC 802768FC 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A51E0 80276900 44810000 */ mtc1 $at, $f0 -/* 1A51E4 80276904 C6160044 */ lwc1 $f22, 0x44($s0) -/* 1A51E8 80276908 46006302 */ mul.s $f12, $f12, $f0 -/* 1A51EC 8027690C 00000000 */ nop -/* 1A51F0 80276910 C614003C */ lwc1 $f20, 0x3c($s0) -/* 1A51F4 80276914 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A51F8 80276918 3C0143B4 */ lui $at, 0x43b4 -/* 1A51FC 8027691C 44810000 */ mtc1 $at, $f0 -/* 1A5200 80276920 4600A521 */ cvt.d.s $f20, $f20 -/* 1A5204 80276924 0C00A85B */ jal sin_rad -/* 1A5208 80276928 46006303 */ div.s $f12, $f12, $f0 -/* 1A520C 8027692C 3C01802A */ lui $at, %hi(D_8029D968) -/* 1A5210 80276930 D422D968 */ ldc1 $f2, %lo(D_8029D968)($at) -/* 1A5214 80276934 46000021 */ cvt.d.s $f0, $f0 -/* 1A5218 80276938 46220002 */ mul.d $f0, $f0, $f2 -/* 1A521C 8027693C 00000000 */ nop -/* 1A5220 80276940 46340002 */ mul.d $f0, $f0, $f20 -/* 1A5224 80276944 00000000 */ nop -/* 1A5228 80276948 C6080000 */ lwc1 $f8, ($s0) -/* 1A522C 8027694C C6020030 */ lwc1 $f2, 0x30($s0) -/* 1A5230 80276950 C6060004 */ lwc1 $f6, 4($s0) -/* 1A5234 80276954 46024200 */ add.s $f8, $f8, $f2 -/* 1A5238 80276958 C6020034 */ lwc1 $f2, 0x34($s0) -/* 1A523C 8027695C C6040008 */ lwc1 $f4, 8($s0) -/* 1A5240 80276960 46023180 */ add.s $f6, $f6, $f2 -/* 1A5244 80276964 C6020038 */ lwc1 $f2, 0x38($s0) -/* 1A5248 80276968 46022100 */ add.s $f4, $f4, $f2 -/* 1A524C 8027696C 46340000 */ add.d $f0, $f0, $f20 -/* 1A5250 80276970 E6080000 */ swc1 $f8, ($s0) -/* 1A5254 80276974 4620B580 */ add.d $f22, $f22, $f0 -/* 1A5258 80276978 E6060004 */ swc1 $f6, 4($s0) -/* 1A525C 8027697C E6040008 */ swc1 $f4, 8($s0) -/* 1A5260 80276980 4620B5A0 */ cvt.s.d $f22, $f22 -/* 1A5264 80276984 E6160044 */ swc1 $f22, 0x44($s0) -/* 1A5268 80276988 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A526C 8027698C 46004086 */ mov.s $f2, $f8 -/* 1A5270 80276990 E6000018 */ swc1 $f0, 0x18($s0) -/* 1A5274 80276994 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A5278 80276998 0C00A85B */ jal sin_rad -/* 1A527C 8027699C C60C0044 */ lwc1 $f12, 0x44($s0) -/* 1A5280 802769A0 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A5284 802769A4 46001082 */ mul.s $f2, $f2, $f0 -/* 1A5288 802769A8 00000000 */ nop -/* 1A528C 802769AC C6000004 */ lwc1 $f0, 4($s0) -/* 1A5290 802769B0 46020000 */ add.s $f0, $f0, $f2 -/* 1A5294 802769B4 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A5298 802769B8 C6000008 */ lwc1 $f0, 8($s0) -/* 1A529C 802769BC E640014C */ swc1 $f0, 0x14c($s2) -/* 1A52A0 802769C0 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A52A4 802769C4 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A52A8 802769C8 46006300 */ add.s $f12, $f12, $f0 -/* 1A52AC 802769CC C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A52B0 802769D0 E600001C */ swc1 $f0, 0x1c($s0) -/* 1A52B4 802769D4 0C00A6C9 */ jal clamp_angle -/* 1A52B8 802769D8 E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A52BC 802769DC E6000024 */ swc1 $f0, 0x24($s0) -/* 1A52C0 802769E0 C64C0160 */ lwc1 $f12, 0x160($s2) -/* 1A52C4 802769E4 3C014305 */ lui $at, 0x4305 -/* 1A52C8 802769E8 44810000 */ mtc1 $at, $f0 -/* 1A52CC 802769EC 00000000 */ nop -/* 1A52D0 802769F0 46006300 */ add.s $f12, $f12, $f0 -/* 1A52D4 802769F4 0C00A6C9 */ jal clamp_angle -/* 1A52D8 802769F8 E64C0160 */ swc1 $f12, 0x160($s2) -/* 1A52DC 802769FC E6400160 */ swc1 $f0, 0x160($s2) -/* 1A52E0 80276A00 3C02800E */ lui $v0, %hi(gBattleStatus) -/* 1A52E4 80276A04 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0) -/* 1A52E8 80276A08 30422000 */ andi $v0, $v0, 0x2000 -/* 1A52EC 80276A0C 1440011E */ bnez $v0, .L80276E88 -/* 1A52F0 80276A10 24020002 */ addiu $v0, $zero, 2 -/* 1A52F4 80276A14 96020064 */ lhu $v0, 0x64($s0) -/* 1A52F8 80276A18 24030004 */ addiu $v1, $zero, 4 -/* 1A52FC 80276A1C 2442FFFF */ addiu $v0, $v0, -1 -/* 1A5300 80276A20 A6020064 */ sh $v0, 0x64($s0) -/* 1A5304 80276A24 00021400 */ sll $v0, $v0, 0x10 -/* 1A5308 80276A28 00021403 */ sra $v0, $v0, 0x10 -/* 1A530C 80276A2C 14430116 */ bne $v0, $v1, .L80276E88 -/* 1A5310 80276A30 0000102D */ daddu $v0, $zero, $zero -/* 1A5314 80276A34 0809DBA2 */ j .L80276E88 -/* 1A5318 80276A38 24020001 */ addiu $v0, $zero, 1 -.L80276A3C: -/* 1A531C 80276A3C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A5320 80276A40 3C0140C9 */ lui $at, 0x40c9 -/* 1A5324 80276A44 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A5328 80276A48 44810000 */ mtc1 $at, $f0 -/* 1A532C 80276A4C C6160044 */ lwc1 $f22, 0x44($s0) -/* 1A5330 80276A50 46006302 */ mul.s $f12, $f12, $f0 -/* 1A5334 80276A54 00000000 */ nop -/* 1A5338 80276A58 C614003C */ lwc1 $f20, 0x3c($s0) -/* 1A533C 80276A5C 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A5340 80276A60 3C0143B4 */ lui $at, 0x43b4 -/* 1A5344 80276A64 44810000 */ mtc1 $at, $f0 -/* 1A5348 80276A68 4600A521 */ cvt.d.s $f20, $f20 -/* 1A534C 80276A6C 0C00A85B */ jal sin_rad -/* 1A5350 80276A70 46006303 */ div.s $f12, $f12, $f0 -/* 1A5354 80276A74 3C01802A */ lui $at, %hi(D_8029D970) -/* 1A5358 80276A78 D422D970 */ ldc1 $f2, %lo(D_8029D970)($at) -/* 1A535C 80276A7C 46000021 */ cvt.d.s $f0, $f0 -/* 1A5360 80276A80 46220002 */ mul.d $f0, $f0, $f2 -/* 1A5364 80276A84 00000000 */ nop -/* 1A5368 80276A88 46340002 */ mul.d $f0, $f0, $f20 -/* 1A536C 80276A8C 00000000 */ nop -/* 1A5370 80276A90 C6080000 */ lwc1 $f8, ($s0) -/* 1A5374 80276A94 C6020030 */ lwc1 $f2, 0x30($s0) -/* 1A5378 80276A98 C6060004 */ lwc1 $f6, 4($s0) -/* 1A537C 80276A9C 46024200 */ add.s $f8, $f8, $f2 -/* 1A5380 80276AA0 C6020034 */ lwc1 $f2, 0x34($s0) -/* 1A5384 80276AA4 C6040008 */ lwc1 $f4, 8($s0) -/* 1A5388 80276AA8 46023180 */ add.s $f6, $f6, $f2 -/* 1A538C 80276AAC C6020038 */ lwc1 $f2, 0x38($s0) -/* 1A5390 80276AB0 46022100 */ add.s $f4, $f4, $f2 -/* 1A5394 80276AB4 46340000 */ add.d $f0, $f0, $f20 -/* 1A5398 80276AB8 E6080000 */ swc1 $f8, ($s0) -/* 1A539C 80276ABC 4620B580 */ add.d $f22, $f22, $f0 -/* 1A53A0 80276AC0 E6060004 */ swc1 $f6, 4($s0) -/* 1A53A4 80276AC4 E6040008 */ swc1 $f4, 8($s0) -/* 1A53A8 80276AC8 4620B5A0 */ cvt.s.d $f22, $f22 -/* 1A53AC 80276ACC E6160044 */ swc1 $f22, 0x44($s0) -/* 1A53B0 80276AD0 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A53B4 80276AD4 46004086 */ mov.s $f2, $f8 -/* 1A53B8 80276AD8 E6000018 */ swc1 $f0, 0x18($s0) -/* 1A53BC 80276ADC E6420144 */ swc1 $f2, 0x144($s2) -/* 1A53C0 80276AE0 0C00A85B */ jal sin_rad -/* 1A53C4 80276AE4 C60C0044 */ lwc1 $f12, 0x44($s0) -/* 1A53C8 80276AE8 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A53CC 80276AEC 46001082 */ mul.s $f2, $f2, $f0 -/* 1A53D0 80276AF0 00000000 */ nop -/* 1A53D4 80276AF4 C6000004 */ lwc1 $f0, 4($s0) -/* 1A53D8 80276AF8 46020000 */ add.s $f0, $f0, $f2 -/* 1A53DC 80276AFC E6400148 */ swc1 $f0, 0x148($s2) -/* 1A53E0 80276B00 C6000008 */ lwc1 $f0, 8($s0) -/* 1A53E4 80276B04 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A53E8 80276B08 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1A53EC 80276B0C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A53F0 80276B10 4602003C */ c.lt.s $f0, $f2 -/* 1A53F4 80276B14 00000000 */ nop -/* 1A53F8 80276B18 45000005 */ bc1f .L80276B30 -/* 1A53FC 80276B1C 00000000 */ nop -/* 1A5400 80276B20 86020064 */ lh $v0, 0x64($s0) -/* 1A5404 80276B24 28420003 */ slti $v0, $v0, 3 -/* 1A5408 80276B28 54400001 */ bnel $v0, $zero, .L80276B30 -/* 1A540C 80276B2C E6420148 */ swc1 $f2, 0x148($s2) -.L80276B30: -/* 1A5410 80276B30 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A5414 80276B34 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A5418 80276B38 46006300 */ add.s $f12, $f12, $f0 -/* 1A541C 80276B3C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A5420 80276B40 E600001C */ swc1 $f0, 0x1c($s0) -/* 1A5424 80276B44 0C00A6C9 */ jal clamp_angle -/* 1A5428 80276B48 E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A542C 80276B4C 0000202D */ daddu $a0, $zero, $zero -/* 1A5430 80276B50 8E06005C */ lw $a2, 0x5c($s0) -/* 1A5434 80276B54 0080282D */ daddu $a1, $a0, $zero -/* 1A5438 80276B58 0C098F3F */ jal set_animation -/* 1A543C 80276B5C E6000024 */ swc1 $f0, 0x24($s0) -/* 1A5440 80276B60 C64C0160 */ lwc1 $f12, 0x160($s2) -/* 1A5444 80276B64 3C014305 */ lui $at, 0x4305 -/* 1A5448 80276B68 44810000 */ mtc1 $at, $f0 -/* 1A544C 80276B6C 00000000 */ nop -/* 1A5450 80276B70 46006300 */ add.s $f12, $f12, $f0 -/* 1A5454 80276B74 0C00A6C9 */ jal clamp_angle -/* 1A5458 80276B78 E64C0160 */ swc1 $f12, 0x160($s2) -/* 1A545C 80276B7C E6400160 */ swc1 $f0, 0x160($s2) -/* 1A5460 80276B80 96020064 */ lhu $v0, 0x64($s0) -/* 1A5464 80276B84 2442FFFF */ addiu $v0, $v0, -1 -/* 1A5468 80276B88 A6020064 */ sh $v0, 0x64($s0) -/* 1A546C 80276B8C 00021400 */ sll $v0, $v0, 0x10 -/* 1A5470 80276B90 144000BD */ bnez $v0, .L80276E88 -/* 1A5474 80276B94 0000102D */ daddu $v0, $zero, $zero -/* 1A5478 80276B98 C6000018 */ lwc1 $f0, 0x18($s0) -/* 1A547C 80276B9C C602001C */ lwc1 $f2, 0x1c($s0) -/* 1A5480 80276BA0 3C013FE6 */ lui $at, 0x3fe6 -/* 1A5484 80276BA4 34216666 */ ori $at, $at, 0x6666 -/* 1A5488 80276BA8 44812000 */ mtc1 $at, $f4 -/* 1A548C 80276BAC 46020001 */ sub.s $f0, $f0, $f2 -/* 1A5490 80276BB0 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1A5494 80276BB4 0000202D */ daddu $a0, $zero, $zero -/* 1A5498 80276BB8 E604003C */ swc1 $f4, 0x3c($s0) -/* 1A549C 80276BBC 46000007 */ neg.s $f0, $f0 -/* 1A54A0 80276BC0 E6000044 */ swc1 $f0, 0x44($s0) -/* 1A54A4 80276BC4 E6420148 */ swc1 $f2, 0x148($s2) -/* 1A54A8 80276BC8 AE400160 */ sw $zero, 0x160($s2) -/* 1A54AC 80276BCC 8E060060 */ lw $a2, 0x60($s0) -/* 1A54B0 80276BD0 0C098F3F */ jal set_animation -/* 1A54B4 80276BD4 0080282D */ daddu $a1, $a0, $zero -/* 1A54B8 80276BD8 C640018C */ lwc1 $f0, 0x18c($s2) -/* 1A54BC 80276BDC E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A54C0 80276BE0 8E450144 */ lw $a1, 0x144($s2) -/* 1A54C4 80276BE4 8E460148 */ lw $a2, 0x148($s2) -/* 1A54C8 80276BE8 8E47014C */ lw $a3, 0x14c($s2) -/* 1A54CC 80276BEC 0C0990BC */ jal play_movement_dust_effects -/* 1A54D0 80276BF0 24040002 */ addiu $a0, $zero, 2 -/* 1A54D4 80276BF4 0809DBA2 */ j .L80276E88 -/* 1A54D8 80276BF8 24020001 */ addiu $v0, $zero, 1 -.L80276BFC: -/* 1A54DC 80276BFC C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A54E0 80276C00 3C0140C9 */ lui $at, 0x40c9 -/* 1A54E4 80276C04 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A54E8 80276C08 4481B000 */ mtc1 $at, $f22 -/* 1A54EC 80276C0C 00000000 */ nop -/* 1A54F0 80276C10 46166302 */ mul.s $f12, $f12, $f22 -/* 1A54F4 80276C14 00000000 */ nop -/* 1A54F8 80276C18 C6140000 */ lwc1 $f20, ($s0) -/* 1A54FC 80276C1C 3C0143B4 */ lui $at, 0x43b4 -/* 1A5500 80276C20 4481C000 */ mtc1 $at, $f24 -/* 1A5504 80276C24 4600A521 */ cvt.d.s $f20, $f20 -/* 1A5508 80276C28 0C00A85B */ jal sin_rad -/* 1A550C 80276C2C 46186303 */ div.s $f12, $f12, $f24 -/* 1A5510 80276C30 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A5514 80276C34 46001082 */ mul.s $f2, $f2, $f0 -/* 1A5518 80276C38 00000000 */ nop -/* 1A551C 80276C3C C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A5520 80276C40 46166302 */ mul.s $f12, $f12, $f22 -/* 1A5524 80276C44 00000000 */ nop -/* 1A5528 80276C48 3C01802A */ lui $at, %hi(D_8029D978) -/* 1A552C 80276C4C D420D978 */ ldc1 $f0, %lo(D_8029D978)($at) -/* 1A5530 80276C50 460010A1 */ cvt.d.s $f2, $f2 -/* 1A5534 80276C54 46201083 */ div.d $f2, $f2, $f0 -/* 1A5538 80276C58 4622A500 */ add.d $f20, $f20, $f2 -/* 1A553C 80276C5C 46186303 */ div.s $f12, $f12, $f24 -/* 1A5540 80276C60 4620A520 */ cvt.s.d $f20, $f20 -/* 1A5544 80276C64 0C00A85B */ jal sin_rad -/* 1A5548 80276C68 E6140000 */ swc1 $f20, ($s0) -/* 1A554C 80276C6C C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A5550 80276C70 46001082 */ mul.s $f2, $f2, $f0 -/* 1A5554 80276C74 00000000 */ nop -/* 1A5558 80276C78 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A555C 80276C7C C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A5560 80276C80 46006300 */ add.s $f12, $f12, $f0 -/* 1A5564 80276C84 C6000004 */ lwc1 $f0, 4($s0) -/* 1A5568 80276C88 46020001 */ sub.s $f0, $f0, $f2 -/* 1A556C 80276C8C E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A5570 80276C90 0C00A6C9 */ jal clamp_angle -/* 1A5574 80276C94 E6000004 */ swc1 $f0, 4($s0) -/* 1A5578 80276C98 C6020000 */ lwc1 $f2, ($s0) -/* 1A557C 80276C9C E6000024 */ swc1 $f0, 0x24($s0) -/* 1A5580 80276CA0 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A5584 80276CA4 C6000004 */ lwc1 $f0, 4($s0) -/* 1A5588 80276CA8 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A558C 80276CAC C6000008 */ lwc1 $f0, 8($s0) -/* 1A5590 80276CB0 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A5594 80276CB4 3C02800E */ lui $v0, %hi(gBattleStatus) -/* 1A5598 80276CB8 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0) -/* 1A559C 80276CBC 30422000 */ andi $v0, $v0, 0x2000 -/* 1A55A0 80276CC0 14400071 */ bnez $v0, .L80276E88 -/* 1A55A4 80276CC4 24020002 */ addiu $v0, $zero, 2 -/* 1A55A8 80276CC8 96020064 */ lhu $v0, 0x64($s0) -/* 1A55AC 80276CCC 2442FFFF */ addiu $v0, $v0, -1 -/* 1A55B0 80276CD0 A6020064 */ sh $v0, 0x64($s0) -/* 1A55B4 80276CD4 00021400 */ sll $v0, $v0, 0x10 -/* 1A55B8 80276CD8 1440006B */ bnez $v0, .L80276E88 -/* 1A55BC 80276CDC 0000102D */ daddu $v0, $zero, $zero -/* 1A55C0 80276CE0 0809DBA2 */ j .L80276E88 -/* 1A55C4 80276CE4 24020001 */ addiu $v0, $zero, 1 -.L80276CE8: -/* 1A55C8 80276CE8 C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A55CC 80276CEC 3C0140C9 */ lui $at, 0x40c9 -/* 1A55D0 80276CF0 34210FD0 */ ori $at, $at, 0xfd0 -/* 1A55D4 80276CF4 44810000 */ mtc1 $at, $f0 -/* 1A55D8 80276CF8 C6160044 */ lwc1 $f22, 0x44($s0) -/* 1A55DC 80276CFC 46006302 */ mul.s $f12, $f12, $f0 -/* 1A55E0 80276D00 00000000 */ nop -/* 1A55E4 80276D04 C614003C */ lwc1 $f20, 0x3c($s0) -/* 1A55E8 80276D08 4600B5A1 */ cvt.d.s $f22, $f22 -/* 1A55EC 80276D0C 3C0143B4 */ lui $at, 0x43b4 -/* 1A55F0 80276D10 44810000 */ mtc1 $at, $f0 -/* 1A55F4 80276D14 4600A521 */ cvt.d.s $f20, $f20 -/* 1A55F8 80276D18 0C00A85B */ jal sin_rad -/* 1A55FC 80276D1C 46006303 */ div.s $f12, $f12, $f0 -/* 1A5600 80276D20 3C01802A */ lui $at, %hi(D_8029D980) -/* 1A5604 80276D24 D422D980 */ ldc1 $f2, %lo(D_8029D980)($at) -/* 1A5608 80276D28 46000021 */ cvt.d.s $f0, $f0 -/* 1A560C 80276D2C 46220002 */ mul.d $f0, $f0, $f2 -/* 1A5610 80276D30 00000000 */ nop -/* 1A5614 80276D34 46340002 */ mul.d $f0, $f0, $f20 -/* 1A5618 80276D38 00000000 */ nop -/* 1A561C 80276D3C C6080000 */ lwc1 $f8, ($s0) -/* 1A5620 80276D40 C6020030 */ lwc1 $f2, 0x30($s0) -/* 1A5624 80276D44 C6060004 */ lwc1 $f6, 4($s0) -/* 1A5628 80276D48 46024200 */ add.s $f8, $f8, $f2 -/* 1A562C 80276D4C C6020034 */ lwc1 $f2, 0x34($s0) -/* 1A5630 80276D50 C6040008 */ lwc1 $f4, 8($s0) -/* 1A5634 80276D54 46023180 */ add.s $f6, $f6, $f2 -/* 1A5638 80276D58 C6020038 */ lwc1 $f2, 0x38($s0) -/* 1A563C 80276D5C 46022100 */ add.s $f4, $f4, $f2 -/* 1A5640 80276D60 46340000 */ add.d $f0, $f0, $f20 -/* 1A5644 80276D64 E6080000 */ swc1 $f8, ($s0) -/* 1A5648 80276D68 4620B580 */ add.d $f22, $f22, $f0 -/* 1A564C 80276D6C E6060004 */ swc1 $f6, 4($s0) -/* 1A5650 80276D70 E6040008 */ swc1 $f4, 8($s0) -/* 1A5654 80276D74 4620B5A0 */ cvt.s.d $f22, $f22 -/* 1A5658 80276D78 E6160044 */ swc1 $f22, 0x44($s0) -/* 1A565C 80276D7C C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A5660 80276D80 46004086 */ mov.s $f2, $f8 -/* 1A5664 80276D84 E6000018 */ swc1 $f0, 0x18($s0) -/* 1A5668 80276D88 E6420144 */ swc1 $f2, 0x144($s2) -/* 1A566C 80276D8C 0C00A85B */ jal sin_rad -/* 1A5670 80276D90 C60C0044 */ lwc1 $f12, 0x44($s0) -/* 1A5674 80276D94 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A5678 80276D98 46001082 */ mul.s $f2, $f2, $f0 -/* 1A567C 80276D9C 00000000 */ nop -/* 1A5680 80276DA0 C6000004 */ lwc1 $f0, 4($s0) -/* 1A5684 80276DA4 46020000 */ add.s $f0, $f0, $f2 -/* 1A5688 80276DA8 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A568C 80276DAC C6000008 */ lwc1 $f0, 8($s0) -/* 1A5690 80276DB0 E640014C */ swc1 $f0, 0x14c($s2) -/* 1A5694 80276DB4 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1A5698 80276DB8 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A569C 80276DBC 4602003C */ c.lt.s $f0, $f2 -/* 1A56A0 80276DC0 00000000 */ nop -/* 1A56A4 80276DC4 45000005 */ bc1f .L80276DDC -/* 1A56A8 80276DC8 00000000 */ nop -/* 1A56AC 80276DCC 86020064 */ lh $v0, 0x64($s0) -/* 1A56B0 80276DD0 28420003 */ slti $v0, $v0, 3 -/* 1A56B4 80276DD4 54400001 */ bnel $v0, $zero, .L80276DDC -/* 1A56B8 80276DD8 E6420148 */ swc1 $f2, 0x148($s2) -.L80276DDC: -/* 1A56BC 80276DDC C60C0024 */ lwc1 $f12, 0x24($s0) -/* 1A56C0 80276DE0 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1A56C4 80276DE4 46006300 */ add.s $f12, $f12, $f0 -/* 1A56C8 80276DE8 C6400148 */ lwc1 $f0, 0x148($s2) -/* 1A56CC 80276DEC E600001C */ swc1 $f0, 0x1c($s0) -/* 1A56D0 80276DF0 0C00A6C9 */ jal clamp_angle -/* 1A56D4 80276DF4 E60C0024 */ swc1 $f12, 0x24($s0) -/* 1A56D8 80276DF8 0000202D */ daddu $a0, $zero, $zero -/* 1A56DC 80276DFC 8E06005C */ lw $a2, 0x5c($s0) -/* 1A56E0 80276E00 0080282D */ daddu $a1, $a0, $zero -/* 1A56E4 80276E04 0C098F3F */ jal set_animation -/* 1A56E8 80276E08 E6000024 */ swc1 $f0, 0x24($s0) -/* 1A56EC 80276E0C C64C0160 */ lwc1 $f12, 0x160($s2) -/* 1A56F0 80276E10 3C014305 */ lui $at, 0x4305 -/* 1A56F4 80276E14 44810000 */ mtc1 $at, $f0 -/* 1A56F8 80276E18 00000000 */ nop -/* 1A56FC 80276E1C 46006300 */ add.s $f12, $f12, $f0 -/* 1A5700 80276E20 0C00A6C9 */ jal clamp_angle -/* 1A5704 80276E24 E64C0160 */ swc1 $f12, 0x160($s2) -/* 1A5708 80276E28 E6400160 */ swc1 $f0, 0x160($s2) -/* 1A570C 80276E2C 96020064 */ lhu $v0, 0x64($s0) -/* 1A5710 80276E30 2442FFFF */ addiu $v0, $v0, -1 -/* 1A5714 80276E34 A6020064 */ sh $v0, 0x64($s0) -/* 1A5718 80276E38 00021400 */ sll $v0, $v0, 0x10 -/* 1A571C 80276E3C 14400012 */ bnez $v0, .L80276E88 -/* 1A5720 80276E40 0000102D */ daddu $v0, $zero, $zero -/* 1A5724 80276E44 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1A5728 80276E48 0000202D */ daddu $a0, $zero, $zero -/* 1A572C 80276E4C AE400160 */ sw $zero, 0x160($s2) -/* 1A5730 80276E50 E6400148 */ swc1 $f0, 0x148($s2) -/* 1A5734 80276E54 8E060060 */ lw $a2, 0x60($s0) -/* 1A5738 80276E58 0C098F3F */ jal set_animation -/* 1A573C 80276E5C 0080282D */ daddu $a1, $a0, $zero -/* 1A5740 80276E60 C6020018 */ lwc1 $f2, 0x18($s0) -/* 1A5744 80276E64 C600001C */ lwc1 $f0, 0x1c($s0) -/* 1A5748 80276E68 46001081 */ sub.s $f2, $f2, $f0 -/* 1A574C 80276E6C 3C013FE6 */ lui $at, 0x3fe6 -/* 1A5750 80276E70 34216666 */ ori $at, $at, 0x6666 -/* 1A5754 80276E74 44810000 */ mtc1 $at, $f0 -/* 1A5758 80276E78 24020001 */ addiu $v0, $zero, 1 -/* 1A575C 80276E7C E600003C */ swc1 $f0, 0x3c($s0) -/* 1A5760 80276E80 46001087 */ neg.s $f2, $f2 -/* 1A5764 80276E84 E6020044 */ swc1 $f2, 0x44($s0) -.L80276E88: -/* 1A5768 80276E88 8FBF0028 */ lw $ra, 0x28($sp) -/* 1A576C 80276E8C 8FB30024 */ lw $s3, 0x24($sp) -/* 1A5770 80276E90 8FB20020 */ lw $s2, 0x20($sp) -/* 1A5774 80276E94 8FB1001C */ lw $s1, 0x1c($sp) -/* 1A5778 80276E98 8FB00018 */ lw $s0, 0x18($sp) -/* 1A577C 80276E9C D7BA0048 */ ldc1 $f26, 0x48($sp) -/* 1A5780 80276EA0 D7B80040 */ ldc1 $f24, 0x40($sp) -/* 1A5784 80276EA4 D7B60038 */ ldc1 $f22, 0x38($sp) -/* 1A5788 80276EA8 D7B40030 */ ldc1 $f20, 0x30($sp) -/* 1A578C 80276EAC 03E00008 */ jr $ra -/* 1A5790 80276EB0 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/battle/star/star_beam/796FC0/func_802A1518_7974D8.s b/ver/us/asm/nonmatchings/battle/star/star_beam/796FC0/func_802A1518_7974D8.s index 0b0fc9050c..523c509a87 100644 --- a/ver/us/asm/nonmatchings/battle/star/star_beam/796FC0/func_802A1518_7974D8.s +++ b/ver/us/asm/nonmatchings/battle/star/star_beam/796FC0/func_802A1518_7974D8.s @@ -422,8 +422,8 @@ glabel func_802A1518_7974D8 /* 797AC0 802A1B00 2442FFFF */ addiu $v0, $v0, -1 /* 797AC4 802A1B04 2403001E */ addiu $v1, $zero, 0x1e /* 797AC8 802A1B08 24120007 */ addiu $s2, $zero, 7 -/* 797ACC 802A1B0C 3C02802A */ lui $v0, %hi(D_802A3834) -/* 797AD0 802A1B10 24423834 */ addiu $v0, $v0, %lo(D_802A3834) +/* 797ACC 802A1B0C 3C02802A */ lui $v0, %hi(D_802A3834 - 0x4) +/* 797AD0 802A1B10 24423834 */ addiu $v0, $v0, %lo(D_802A3834 - 0x4) /* 797AD4 802A1B14 E63C000C */ swc1 $f28, 0xc($s1) /* 797AD8 802A1B18 E6380010 */ swc1 $f24, 0x10($s1) /* 797ADC 802A1B1C E63A0014 */ swc1 $f26, 0x14($s1) @@ -884,8 +884,8 @@ glabel func_802A1518_7974D8 /* 79816C 802A21AC 24120007 */ addiu $s2, $zero, 7 /* 798170 802A21B0 AC60003C */ sw $zero, 0x3c($v1) /* 798174 802A21B4 8C42000C */ lw $v0, 0xc($v0) -/* 798178 802A21B8 3C03802A */ lui $v1, %hi(D_802A3834) -/* 79817C 802A21BC 24633834 */ addiu $v1, $v1, %lo(D_802A3834) +/* 798178 802A21B8 3C03802A */ lui $v1, %hi(D_802A3834 - 0x4) +/* 79817C 802A21BC 24633834 */ addiu $v1, $v1, %lo(D_802A3834 - 0x4) /* 798180 802A21C0 AC400024 */ sw $zero, 0x24($v0) .L802A21C4: /* 798184 802A21C4 AC640000 */ sw $a0, ($v1)