From 46add495ebc4e0ec30322ca648ac2b2c0f330de0 Mon Sep 17 00:00:00 2001 From: HailSanta <53960937+HailSanta@users.noreply.github.com> Date: Tue, 6 Dec 2022 05:19:01 -0500 Subject: [PATCH] move actor (#879) Co-authored-by: HailSanta --- src/1A5830.c | 786 ++++++++++++++---- src/43F0.c | 32 +- ver/us/asm/nonmatchings/1A5830/FlyPartTo.s | 395 --------- ver/us/asm/nonmatchings/1A5830/FlyToGoal.s | 390 --------- .../asm/nonmatchings/1A5830/IdleFlyToGoal.s | 249 ------ .../asm/nonmatchings/1A5830/IdleRunToGoal.s | 175 ---- .../asm/nonmatchings/1A5830/JumpWithBounce.s | 253 ------ ver/us/asm/nonmatchings/1A5830/RunToGoal.s | 277 ------ 8 files changed, 645 insertions(+), 1912 deletions(-) delete mode 100644 ver/us/asm/nonmatchings/1A5830/FlyPartTo.s delete mode 100644 ver/us/asm/nonmatchings/1A5830/FlyToGoal.s delete mode 100644 ver/us/asm/nonmatchings/1A5830/IdleFlyToGoal.s delete mode 100644 ver/us/asm/nonmatchings/1A5830/IdleRunToGoal.s delete mode 100644 ver/us/asm/nonmatchings/1A5830/JumpWithBounce.s delete mode 100644 ver/us/asm/nonmatchings/1A5830/RunToGoal.s diff --git a/src/1A5830.c b/src/1A5830.c index 3221c5b610..16b50cb67f 100644 --- a/src/1A5830.c +++ b/src/1A5830.c @@ -182,7 +182,7 @@ s32 calc_enemy_test_target(Actor* actor) { case ACTOR_CLASS_PLAYER: if (battleStatus->cloudNineTurnsLeft) { if (rand_int(100) < (s8) battleStatus->cloudNineDodgeChance) { - hitResult = 6; + hitResult = HIT_RESULT_MISS; break; } } else { @@ -1021,7 +1021,7 @@ ApiStatus JumpToGoal(Evt* script, s32 isInitialCall) { } script->functionTempPtr[1] = actor = get_actor(actorID); actorState = &actor->state; - actor->state.moveTime = evt_get_variable(script, *args++); + actorState->moveTime = evt_get_variable(script, *args++); script->functionTemp[2] = evt_get_variable(script, *args++); script->functionTemp[3] = 0; if (evt_get_variable(script, *args++) != 0) { @@ -1031,30 +1031,30 @@ ApiStatus JumpToGoal(Evt* script, s32 isInitialCall) { script->functionTemp[3] |= 2; } - actor->state.currentPos.x = actor->currentPos.x; - actor->state.currentPos.y = actor->currentPos.y; - actor->state.currentPos.z = actor->currentPos.z; + actorState->currentPos.x = actor->currentPos.x; + actorState->currentPos.y = actor->currentPos.y; + actorState->currentPos.z = actor->currentPos.z; - posX = actor->state.currentPos.x; - posY = actor->state.currentPos.y; - posZ = actor->state.currentPos.z; - goalX = actor->state.goalPos.x; - goalY = actor->state.goalPos.y; - goalZ = actor->state.goalPos.z; - actor->state.angle = atan2(posX, posZ, goalX, goalZ); - actor->state.distance = dist2D(posX, posZ, goalX, goalZ); + posX = actorState->currentPos.x; + posY = actorState->currentPos.y; + posZ = actorState->currentPos.z; + goalX = actorState->goalPos.x; + goalY = actorState->goalPos.y; + goalZ = actorState->goalPos.z; + actorState->angle = atan2(posX, posZ, goalX, goalZ); + actorState->distance = dist2D(posX, posZ, goalX, goalZ); // make relative posX = (goalX - posX); posY = (goalY - posY); posZ = (goalZ - posZ); - if (actor->state.moveTime == 0) { - actor->state.moveTime = actor->state.distance / actor->state.speed; - moveDist = actor->state.distance - (actor->state.moveTime * actor->state.speed); + if (actorState->moveTime == 0) { + actorState->moveTime = actorState->distance / actorState->speed; + moveDist = actorState->distance - (actorState->moveTime * actorState->speed); } else { - actor->state.speed = actor->state.distance / actor->state.moveTime; - moveDist = actor->state.distance - (actor->state.moveTime * actor->state.speed); + actorState->speed = actorState->distance / actorState->moveTime; + moveDist = actorState->distance - (actorState->moveTime * actorState->speed); } if (actorState->moveTime == 0) { @@ -1076,11 +1076,11 @@ ApiStatus JumpToGoal(Evt* script, s32 isInitialCall) { actor = script->functionTempPtr[1]; actorState = &actor->state; - actor->state.currentPos.y += actor->state.velocity; - actor->state.velocity -= actor->state.acceleration; + actorState->currentPos.y += actorState->velocity; + actorState->velocity -= actorState->acceleration; - if ((script->functionTemp[2] != 0) && (actor->state.velocity < 0.0f)) { - set_animation(actor->actorID, (s8) actor->state.jumpPartIndex, actor->state.animJumpFall); + if ((script->functionTemp[2] != 0) && (actorState->velocity < 0.0f)) { + set_animation(actor->actorID, (s8) actorState->jumpPartIndex, actorState->animJumpFall); } if (actorState->velocity < 0.0f) { if (actorState->currentPos.y < actorState->goalPos.y) { @@ -1112,11 +1112,11 @@ ApiStatus JumpToGoal(Evt* script, s32 isInitialCall) { ApiStatus IdleJumpToGoal(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - ActorMovement* fly; + Actor* actor; + ActorMovement* movement; f32 posX, posY, posZ; f32 goalX, goalY, goalZ; f32 moveDist; - Actor* actor; if (isInitialCall) { script->functionTemp[0] = FALSE; @@ -1130,68 +1130,68 @@ ApiStatus IdleJumpToGoal(Evt* script, s32 isInitialCall) { } script->functionTempPtr[1] = actor = get_actor(actorID); - fly = &actor->fly; + movement = &actor->fly; actor->fly.flyTime = evt_get_variable(script, *args++); script->functionTemp[2] = evt_get_variable(script, *args++); script->functionTemp[3] = evt_get_variable(script, *args++); - fly->currentPos.x = actor->currentPos.x; - fly->currentPos.y = actor->currentPos.y; - fly->currentPos.z = actor->currentPos.z; + movement->currentPos.x = actor->currentPos.x; + movement->currentPos.y = actor->currentPos.y; + movement->currentPos.z = actor->currentPos.z; - posX = fly->currentPos.x; - posY = fly->currentPos.y; - posZ = fly->currentPos.z; - goalX = fly->goalPos.x; - goalY = fly->goalPos.y; - goalZ = fly->goalPos.z; - fly->angle = atan2(posX, posZ, goalX, goalZ); - fly->distance = dist2D(posX, posZ, goalX, goalZ); + posX = movement->currentPos.x; + posY = movement->currentPos.y; + posZ = movement->currentPos.z; + goalX = movement->goalPos.x; + goalY = movement->goalPos.y; + goalZ = movement->goalPos.z; + movement->angle = atan2(posX, posZ, goalX, goalZ); + movement->distance = dist2D(posX, posZ, goalX, goalZ); // make relative posX = (goalX - posX); posY = (goalY - posY); posZ = (goalZ - posZ); - if (fly->flyTime == 0) { - fly->flyTime = fly->distance / fly->speed; - moveDist = fly->distance - (fly->flyTime * fly->speed); + if (movement->flyTime == 0) { + movement->flyTime = movement->distance / movement->speed; + moveDist = movement->distance - (movement->flyTime * movement->speed); } else { - fly->speed = fly->distance / fly->flyTime; - moveDist = fly->distance - (fly->flyTime * fly->speed); + movement->speed = movement->distance / movement->flyTime; + moveDist = movement->distance - (movement->flyTime * movement->speed); } - if (fly->flyTime == 0) { + if (movement->flyTime == 0) { return ApiStatus_DONE2; } - fly->velocity = ((fly->acceleration * fly->flyTime) * 0.5f) + (posY / fly->flyTime); - fly->speed += moveDist / fly->flyTime; + movement->velocity = (movement->acceleration * movement->flyTime * 0.5f) + (posY / movement->flyTime); + movement->speed += moveDist / movement->flyTime; script->functionTemp[0] = TRUE; } actor = script->functionTempPtr[1]; - fly = &actor->fly; + movement = &actor->fly; - fly->currentPos.y += fly->velocity; - fly->velocity -= fly->acceleration; - if (fly->velocity < 0.0f && fly->goalPos.y > fly->currentPos.y) { - fly->currentPos.y = fly->goalPos.y; + movement->currentPos.y += movement->velocity; + movement->velocity -= movement->acceleration; + if (movement->velocity < 0.0f && movement->goalPos.y > movement->currentPos.y) { + movement->currentPos.y = movement->goalPos.y; } - add_xz_vec3f_copy2(&fly->currentPos, fly->speed, fly->angle); - actor->currentPos.x = fly->currentPos.x; - actor->currentPos.y = fly->currentPos.y; - actor->currentPos.z = fly->currentPos.z; + add_xz_vec3f_copy2(&movement->currentPos, movement->speed, movement->angle); + actor->currentPos.x = movement->currentPos.x; + actor->currentPos.y = movement->currentPos.y; + actor->currentPos.z = movement->currentPos.z; - fly->flyTime--; - if (fly->flyTime <= 0) { + movement->flyTime--; + if (movement->flyTime <= 0) { if (script->functionTemp[3] != 0) { - play_movement_dust_effects(2, fly->goalPos.x, fly->goalPos.y, fly->goalPos.z, fly->angle); + play_movement_dust_effects(2, movement->goalPos.x, movement->goalPos.y, movement->goalPos.z, movement->angle); } - actor->currentPos.x = fly->goalPos.x; - actor->currentPos.y = fly->goalPos.y; - actor->currentPos.z = fly->goalPos.z; + actor->currentPos.x = movement->goalPos.x; + actor->currentPos.y = movement->goalPos.y; + actor->currentPos.z = movement->goalPos.z; return ApiStatus_DONE1; } @@ -1284,7 +1284,107 @@ ApiStatus JumpToGoalSimple2(Evt* script, s32 isInitialCall) { return ApiStatus_BLOCK; } -INCLUDE_ASM(s32, "1A5830", JumpWithBounce); +ApiStatus JumpWithBounce(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Actor* actor; + ActorState* actorState; + s32 actorID; + f32 posX, posY, posZ; + f32 goalX, goalY, goalZ; + f32 moveDist; + + if (isInitialCall) { + script->functionTemp[0] = FALSE; + } + + if (!script->functionTemp[0]) { + actorID = evt_get_variable(script, *args++); + if (actorID == ACTOR_SELF) { + actorID = script->owner1.enemyID; + } + script->functionTempPtr[1] = actor = get_actor(actorID); + actorState = &actor->state; + + actorState->moveTime = evt_get_variable(script, *args++); + actorState->bounceDivisor = evt_get_float_variable(script, *args++); + + actorState->currentPos.x = actor->currentPos.x; + actorState->currentPos.y = actor->currentPos.y; + actorState->currentPos.z = actor->currentPos.z; + + posX = actorState->currentPos.x; + posY = actorState->currentPos.y; + posZ = actorState->currentPos.z; + goalX = actorState->goalPos.x; + goalZ = actorState->goalPos.z; + goalY = actorState->goalPos.y; + actorState->angle = atan2(posX, posZ, goalX, goalZ); + actorState->distance = dist2D(posX, posZ, goalX, goalZ); + + // make relative + posX = (goalX - posX); + posY = (goalY - posY); + posZ = (goalZ - posZ); + + if (actorState->moveTime == 0) { + actorState->moveTime = (s32) (actorState->distance / actorState->speed); + moveDist = actorState->distance - (actorState->moveTime * actorState->speed); + } else { + actorState->speed = actorState->distance / actorState->moveTime; + moveDist = actorState->distance - (actorState->moveTime * actorState->speed); + } + + if (actorState->moveTime == 0) { + return ApiStatus_DONE2; + } + + actorState->velocity = (actorState->acceleration * actorState->moveTime * 0.5f) + (posY / actorState->moveTime); + actorState->speed += moveDist / actorState->moveTime; + + if (actor->actorTypeData1[4] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[4], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + script->functionTemp[0] = TRUE; + } + + actor = script->functionTempPtr[1]; + actorState = &actor->state; + + switch (script->functionTemp[0]) { + case 1: + actorState->currentPos.y += actorState->velocity; + actorState->velocity -= actorState->acceleration; + if ((actorState->velocity < 0.0f) && (actorState->currentPos.y < actorState->goalPos.y)) { + actorState->acceleration = -actorState->acceleration; + actorState->velocity /= actorState->bounceDivisor; + script->functionTemp[0] = 2; + } + add_xz_vec3f(&actorState->currentPos, actorState->speed, actorState->angle); + break; + case 2: + actorState->currentPos.y += actorState->velocity; + actorState->velocity -= actorState->acceleration; + if (actorState->velocity > 0.0f) { + if (actorState->goalPos.y < actorState->currentPos.y) { + actorState->currentPos.y = actorState->goalPos.y; + script->functionTemp[0] = 3; + } + } + add_xz_vec3f(&actorState->currentPos, actorState->speed, actorState->angle); + actor->currentPos.x = actorState->currentPos.x; + actor->currentPos.y = actorState->currentPos.y; + actor->currentPos.z = actorState->currentPos.z; + break; + + case 3: + return ApiStatus_DONE2; + } + + actor->currentPos.x = actorState->currentPos.x; + actor->currentPos.y = actorState->currentPos.y; + actor->currentPos.z = actorState->currentPos.z; + return ApiStatus_BLOCK; +} ApiStatus LandJump(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -1404,90 +1504,215 @@ ApiStatus FallToGoal(Evt* script, s32 isInitialCall) { } } -INCLUDE_ASM(s32, "1A5830", RunToGoal); +ApiStatus RunToGoal(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Actor* actor; + ActorState* actorState; + s32 actorID; + f32 posX, posY, posZ; + f32 goalX, goalY, goalZ; + + if (isInitialCall) { + script->functionTemp[0] = FALSE; + } + + if (!script->functionTemp[0]) { + actorID = evt_get_variable(script, *args++); + if (actorID == ACTOR_SELF) { + actorID = script->owner1.enemyID; + } + script->functionTempPtr[1] = actor = get_actor(actorID); + actorState = &actor->state; + + actorState->moveTime = evt_get_variable(script, *args++); + script->functionTemp[2] = evt_get_variable(script, *args++); + + actorState->currentPos.x = actor->currentPos.x; + actorState->currentPos.y = actor->currentPos.y; + actorState->currentPos.z = actor->currentPos.z; + + goalX = actorState->goalPos.x; + goalY = actorState->goalPos.y; + goalZ = actorState->goalPos.z; + posX = actorState->currentPos.x; + posY = actorState->currentPos.y; + posZ = actorState->currentPos.z; + + actorState->unk_18.x = goalX; + actorState->unk_18.y = goalY; + actorState->unk_18.z = goalZ; + + actorState->angle = atan2(posX, posZ, goalX, goalZ); + actorState->distance = dist2D(posX, posZ, goalX, goalZ); + + if (actorState->moveTime == 0) { + actorState->moveTime = actorState->distance / actorState->speed; + if (actorState->moveTime == 0) { + actorState->moveTime = 1; + } + actorState->speed += (actorState->distance - (actorState->moveTime * actorState->speed)) / actorState->moveTime; + } else { + actorState->speed = actorState->distance / actorState->moveTime; + } + + if (actor->actorTypeData1b[0] >= 0) { + actorState->distance = actor->actorTypeData1b[0] + 1; + } else { + actorState->distance = ~actor->actorTypeData1b[0]; //TODO optimization? + } + if ((actor->actorTypeData1[0] != 0) && (actor->actorTypeData1[1] == 0)) { + sfx_play_sound_at_position(actor->actorTypeData1[0], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + script->functionTemp[0] = TRUE; + } + + actor = script->functionTempPtr[1]; + actorState = &actor->state; + + add_xz_vec3f(&actorState->currentPos, actorState->speed, actorState->angle); + if (script->functionTemp[2] == 0) { + if (actorState->speed < 4.0f) { + play_movement_dust_effects(0, actorState->currentPos.x, actorState->currentPos.y, actorState->currentPos.z, actorState->angle); + } else { + play_movement_dust_effects(1, actorState->currentPos.x, actorState->currentPos.y, actorState->currentPos.z, actorState->angle); + } + } + actor->currentPos.x = actorState->currentPos.x; + actor->currentPos.z = actorState->currentPos.z; + + if ((actor->actorTypeData1[0] != 0) && (actor->actorTypeData1[1] != 0)) { + if (actor->actorTypeData1b[0] >= 0) { + actorState->distance += actorState->speed; + if (actor->actorTypeData1b[0] < actorState->distance) { + actor->footStepCounter++; + actorState->distance = 0.0f; + if (actor->footStepCounter & 1) { + if (actor->actorTypeData1[0] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[0], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } else { + if (actor->actorTypeData1[1] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[1], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } + } + } else { + actorState->distance += 1.0f; + if (-actor->actorTypeData1b[0] <= actorState->distance) { + actor->footStepCounter++; + actorState->distance = 0.0f; + if (actor->footStepCounter & 1) { + if (actor->actorTypeData1[0] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[0], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } else { + if (actor->actorTypeData1[1] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[1], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } + } + } + } + + actorState->moveTime--; + if (actorState->moveTime > 0) { + return ApiStatus_BLOCK; + } + + actor->currentPos.x = actorState->unk_18.x; + actor->currentPos.z = actorState->unk_18.z; + if (actor->actorTypeData1[0] != 0) { + if (actor->actorTypeData1[1] == 0) { + snd_stop_sound(actor->actorTypeData1[0]); + } + } + return ApiStatus_DONE1; +} -#ifdef NON_EQUIVALENT s32 IdleRunToGoal(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; Actor* actor; - ActorMovement* fly; - f32 x1, z1, x2, z2; + ActorMovement* movement; + f32 posX, posY, posZ; + f32 goalX, goalY, goalZ; + s32 actorID; if (isInitialCall) { script->functionTemp[0] = FALSE; } if (!script->functionTemp[0]) { - s32 actorID = evt_get_variable(script, *args++); + actorID = evt_get_variable(script, *args++); if (actorID == ACTOR_SELF) { actorID = script->owner1.actorID; } - actor = get_actor(actorID); - script->functionTempPtr[1] = actor; - fly = &actor->fly; + script->functionTempPtr[1] = actor = get_actor(actorID); + movement = &actor->fly; - actor->flyTime = evt_get_variable(script, *args++); + movement->flyTime = evt_get_variable(script, *args++); - actor->fly.currentPos.x = actor->currentPos.x; - actor->fly.currentPos.y = actor->currentPos.y; - actor->fly.currentPos.z = actor->currentPos.z; - actor->fly.unk_18.x = actor->fly.goalPos.x; - actor->fly.unk_18.y = actor->fly.goalPos.y; - actor->fly.unk_18.z = actor->fly.goalPos.z; + movement->currentPos.x = actor->currentPos.x; + movement->currentPos.y = actor->currentPos.y; + movement->currentPos.z = actor->currentPos.z; + + goalX = movement->goalPos.x; + goalY = movement->goalPos.y; + goalZ = movement->goalPos.z; + + posX = movement->currentPos.x; + posY = movement->currentPos.y; + posZ = movement->currentPos.z; - x1 = actor->fly.currentPos.x; - z1 = actor->fly.currentPos.z; - x2 = actor->fly.goalPos.x; - z2 = actor->fly.goalPos.z; + movement->unk_18.x = goalX; + movement->unk_18.y = goalY; + movement->unk_18.z = goalZ; + + movement->angle = atan2(posX, posZ, goalX, goalZ); + movement->distance = dist2D(posX, posZ, goalX, goalZ); - actor->fly.angle = atan2(x1, z1, x2, z2); - actor->fly.distance = dist2D(x1, z1, x2, z2); - - if (actor->flyTime == 0) { - actor->flyTime = actor->fly.distance / actor->fly.speed; - if (actor->flyTime == 0) { - actor->flyTime = 1; + if (movement->flyTime == 0) { + movement->flyTime = movement->distance / movement->speed; + if (movement->flyTime == 0) { + movement->flyTime = 1; } - actor->fly.speed += (actor->fly.distance - actor->flyTime * actor->fly.speed) / actor->flyTime; + // this simplifies to: flyMotion->speed = flyMotion->distance / flyMotion->flyTime + movement->speed += (movement->distance - movement->flyTime * movement->speed) / movement->flyTime; } else { - actor->fly.speed = actor->fly.distance / actor->flyTime; + movement->speed = movement->distance / movement->flyTime; } if (actor->actorTypeData1b[0] >= 0) { - fly->distance = actor->actorTypeData1b[0] + 1; + movement->distance = actor->actorTypeData1b[0] + 1; } else { - fly->distance = ~actor->actorTypeData1b[0]; + movement->distance = ~actor->actorTypeData1b[0]; } script->functionTemp[0] = TRUE; } actor = script->functionTempPtr[1]; - fly = &actor->fly; + movement = &actor->fly; - add_xz_vec3f_copy2(&fly->currentPos, actor->fly.speed, actor->fly.angle); - if (actor->fly.speed < 4.0f) { - play_movement_dust_effects(0, actor->fly.currentPos.x, actor->fly.currentPos.y, actor->fly.currentPos.z, actor->fly.angle); + add_xz_vec3f_copy2(&movement->currentPos, movement->speed, movement->angle); + if (movement->speed < 4.0f) { + play_movement_dust_effects(0, movement->currentPos.x, movement->currentPos.y, movement->currentPos.z, movement->angle); } else { - play_movement_dust_effects(1, actor->fly.currentPos.x, actor->fly.currentPos.y, actor->fly.currentPos.z, actor->fly.angle); + play_movement_dust_effects(1, movement->currentPos.x, movement->currentPos.y, movement->currentPos.z, movement->angle); } - actor->currentPos.x = fly->currentPos.x; - actor->currentPos.z = fly->currentPos.z; - actor->flyTime--; - - if (actor->flyTime > 0) { + actor->currentPos.x = movement->currentPos.x; + actor->currentPos.z = movement->currentPos.z; + + movement->flyTime--; + if (movement->flyTime > 0) { return ApiStatus_BLOCK; - } else { - actor->currentPos.x = fly->unk_18.x; - actor->currentPos.z = fly->unk_18.z; - if (actor->actorTypeData1[0] != 0 && actor->actorTypeData1[1] == 0) { - snd_stop_sound(actor->actorTypeData1[0]); - } - return ApiStatus_DONE1; } + + actor->currentPos.x = movement->unk_18.x; + actor->currentPos.z = movement->unk_18.z; + if (actor->actorTypeData1[0] != 0 && actor->actorTypeData1[1] == 0) { + snd_stop_sound(actor->actorTypeData1[0]); + } + return ApiStatus_DONE1; } -#else -INCLUDE_ASM(s32, "1A5830", IdleRunToGoal); -#endif s32 JumpPartTo(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -1849,11 +2074,262 @@ s32 RunPartTo(Evt* script, s32 isInitialCall) { f32 update_lerp_battle(s32 easing, f32 start, f32 end, s32 elapsed, s32 duration); INCLUDE_ASM(s32, "1A5830", update_lerp_battle); -INCLUDE_ASM(s32, "1A5830", FlyToGoal); +s32 FlyToGoal(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Actor* actor; + ActorState* actorState; + s32 actorID; + f32 posX, posY, posZ; + f32 goalX, goalY, goalZ; + f32 deltaX, deltaY, deltaZ; + f32 dist3D; + f32 offsetY; + + if (isInitialCall) { + actorID = evt_get_variable(script, *args++); + if (actorID == ACTOR_SELF) { + actorID = script->owner1.enemyID; + } + script->functionTempPtr[1] = actor = get_actor(actorID); + actorState = &actor->state; + + actorState->moveTime = evt_get_variable(script, *args++); + actorState->moveArcAmplitude = evt_get_variable(script, *args++); + script->functionTemp[3] = evt_get_variable(script, *args++); + actorState->functionTemp[0] = FALSE; + + if (script->functionTemp[3] >= 100) { + script->functionTemp[3] -= 100; + actorState->functionTemp[0] = TRUE; + } + + goalX = actorState->goalPos.x; + goalY = actorState->goalPos.y; + goalZ = actorState->goalPos.z; + + posX = actor->currentPos.x; + posY = actor->currentPos.y; + posZ = actor->currentPos.z; -INCLUDE_ASM(s32, "1A5830", IdleFlyToGoal); + deltaX = posX - goalX; + deltaY = posY - goalY; + deltaZ = posZ - goalZ; + + actorState->currentPos.x = posX; + actorState->unk_18.x = posX; + actorState->currentPos.y = posY; + actorState->unk_18.y = posY; + actorState->currentPos.z = posZ; + actorState->unk_18.z = posZ; + + actorState->distance = sqrtf(SQ(deltaX) + SQ(deltaY) + SQ(deltaZ)); + + if (actorState->moveTime == 0) { + actorState->moveTime = actorState->distance / actorState->speed; + } else { + actorState->speed = actorState->distance / actorState->moveTime; + } + if (actorState->moveTime == 0) { + return ApiStatus_DONE2; + } + + actorState->bounceDivisor = 0.0f; + actorState->angle = 0.0f; + if (actor->actorTypeData1b[1] >= 0) { + actorState->velocity = actor->actorTypeData1b[1] + 1; + } else { + actorState->velocity = ~actor->actorTypeData1b[1]; + } + if ((actor->actorTypeData1[2] != 0) && (actor->actorTypeData1[3] == 0)) { + sfx_play_sound_at_position(actor->actorTypeData1[2], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } + + actor = script->functionTempPtr[1]; + actorState = &actor->state; + + actorState->currentPos.x = update_lerp_battle(script->functionTemp[3], actorState->unk_18.x, actorState->goalPos.x, actorState->bounceDivisor, actorState->moveTime); + actorState->currentPos.y = update_lerp_battle(script->functionTemp[3], actorState->unk_18.y, actorState->goalPos.y, actorState->bounceDivisor, actorState->moveTime); + actorState->currentPos.z = update_lerp_battle(script->functionTemp[3], actorState->unk_18.z, actorState->goalPos.z, actorState->bounceDivisor, actorState->moveTime); + if ((actorState->functionTemp[0]) && (actorState->currentPos.y < 0.0f)) { + actorState->bounceDivisor = actorState->moveTime; + actorState->goalPos.x = actorState->currentPos.x; + actorState->goalPos.y = 0.0f; + actorState->goalPos.z = actorState->currentPos.z; + } + actorState->bounceDivisor += 1.0f; + if (actorState->moveTime < actorState->bounceDivisor) { + actor->currentPos.x = actorState->goalPos.x; + actor->currentPos.y = actorState->goalPos.y; + actor->currentPos.z = actorState->goalPos.z; + if (actor->actorTypeData1[2] != 0) { + if (actor->actorTypeData1[3] == 0) { + snd_stop_sound(actor->actorTypeData1[2]); + } + } + return ApiStatus_DONE2; + } + if ((actor->actorTypeData1[2] != 0) && (actor->actorTypeData1[3] != 0)) { + if (actor->actorTypeData1b[1] >= 0) { + actorState->velocity += actorState->speed; + if (actor->actorTypeData1b[1] < actorState->velocity) { + actor->footStepCounter++; + actorState->velocity = 0.0f; + if (actor->footStepCounter & 1) { + if (actor->actorTypeData1[2] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[2], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } else { + if (actor->actorTypeData1[3] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[3], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } + } + } else { + actorState->velocity += 1.0f; + if (-actor->actorTypeData1b[1] <= actorState->velocity) { + actor->footStepCounter++; + actorState->velocity = 0.0f; + if (actor->footStepCounter & 1) { + if (actor->actorTypeData1[2] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[2], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } else { + if (actor->actorTypeData1[3] != 0) { + sfx_play_sound_at_position(actor->actorTypeData1[3], 0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z); + } + } + } + } + } + + deltaX = actorState->goalPos.x - actorState->currentPos.x; + deltaY = actorState->goalPos.y - actorState->currentPos.y; + deltaZ = actorState->goalPos.z - actorState->currentPos.z; + dist3D = sqrtf(SQ(deltaX) + SQ(deltaY) + SQ(deltaZ)); + if (dist3D == 0.0f) { + dist3D = 1.0f; + } + if (actorState->distance == 0.0f) { + actorState->distance = 1.0f; + } + offsetY = sin_deg((1.0 - (dist3D / actorState->distance)) * 180.0); + if (actorState->moveArcAmplitude == 0) { + offsetY = 0.0f; + } + if (actorState->moveArcAmplitude < 0) { + offsetY = -offsetY * -actorState->moveArcAmplitude; + } + if (actorState->moveArcAmplitude > 0) { + offsetY = offsetY * actorState->moveArcAmplitude; + } + actor->currentPos.x = actorState->currentPos.x; + actor->currentPos.y = actorState->currentPos.y + offsetY; + actor->currentPos.z = actorState->currentPos.z; + return ApiStatus_BLOCK; +} + +s32 IdleFlyToGoal(Evt* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + Actor* actor; + ActorMovement* movement; + s32 actorID; + f32 posX, posY, posZ; + f32 goalX, goalY, goalZ; + f32 deltaX, deltaY, deltaZ; + f32 dist3D; + f32 offsetY; + + if (isInitialCall) { + actorID = evt_get_variable(script, *args++); + if (actorID == ACTOR_SELF) { + actorID = script->owner1.enemyID; + } + script->functionTempPtr[1] = actor = get_actor(actorID); + movement = &actor->fly; + + movement->flyTime = evt_get_variable(script, *args++); + movement->flyArcAmplitude = evt_get_variable(script, *args++); + script->functionTemp[3] = evt_get_variable(script, *args++); + + goalX = movement->goalPos.x; + goalY = movement->goalPos.y; + goalZ = movement->goalPos.z; + + posX = actor->currentPos.x; + posY = actor->currentPos.y; + posZ = actor->currentPos.z; + + deltaX = posX - goalX; + deltaY = posY - goalY; + deltaZ = posZ - goalZ; + + movement->currentPos.x = posX; + movement->unk_18.x = posX; + movement->currentPos.y = posY; + movement->unk_18.y = posY; + movement->currentPos.z = posZ; + movement->unk_18.z = posZ; + + movement->distance = sqrtf(SQ(deltaX) + SQ(deltaY) + SQ(deltaZ)); + + if (movement->flyTime == 0) { + movement->flyTime = movement->distance / movement->speed; + } else { + movement->speed = movement->distance / movement->flyTime; + } + if (movement->flyTime == 0) { + return ApiStatus_DONE2; + } + + movement->flyElapsed = 0.0f; + movement->angle = 0.0f; + movement->velocity = 0.0f; + } + + actor = script->functionTempPtr[1]; + movement = &actor->fly; + + movement->currentPos.x = update_lerp_battle(script->functionTemp[3], movement->unk_18.x, movement->goalPos.x, movement->flyElapsed, movement->flyTime); + movement->currentPos.y = update_lerp_battle(script->functionTemp[3], movement->unk_18.y, movement->goalPos.y, movement->flyElapsed, movement->flyTime); + movement->currentPos.z = update_lerp_battle(script->functionTemp[3], movement->unk_18.z, movement->goalPos.z, movement->flyElapsed, movement->flyTime); + + movement->flyElapsed += 1.0f; + if (movement->flyTime < movement->flyElapsed) { + actor->currentPos.x = movement->goalPos.x; + actor->currentPos.y = movement->goalPos.y; + actor->currentPos.z = movement->goalPos.z; + return ApiStatus_DONE2; + } + + deltaX = movement->goalPos.x - movement->currentPos.x; + deltaY = movement->goalPos.y - movement->currentPos.y; + deltaZ = movement->goalPos.z - movement->currentPos.z; + dist3D = sqrtf(SQ(deltaX) + SQ(deltaY) + SQ(deltaZ)); + if (dist3D == 0.0f) { + dist3D = 1.0f; + } + if (movement->distance == 0.0f) { + movement->distance = 1.0f; + } + + offsetY = sin_deg((1.0 - (dist3D / movement->distance)) * 180.0); + if (movement->flyArcAmplitude == 0) { + offsetY = 0.0f; + } + if (movement->flyArcAmplitude < 0) { + offsetY = -offsetY * -movement->flyArcAmplitude; + } + if (movement->flyArcAmplitude > 0) { + offsetY = offsetY * movement->flyArcAmplitude; + } + + actor->currentPos.x = movement->currentPos.x; + actor->currentPos.y = movement->currentPos.y + offsetY; + actor->currentPos.z = movement->currentPos.z; + return ApiStatus_BLOCK; +} -#ifdef NON_MATCHING s32 FlyPartTo(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; Actor* actor; @@ -1861,15 +2337,12 @@ s32 FlyPartTo(Evt* script, s32 isInitialCall) { ActorPartMovement* partMovement; s32 actorID; s32 partIndex; - f32 f2, f4; - f32 temp_f0; - f32 xComp; - f32 temp_f0_2; - f32 temp_f0_3; - f32 yComp; - f32 zComp; - f32 temp_f2_4; + f32 posX, posY, posZ; + f32 goalX, goalY, goalZ; + f32 deltaX, deltaY, deltaZ; + f32 dist3D; + f32 offsetY; if (isInitialCall) { actorID = evt_get_variable(script, *args++); @@ -1891,21 +2364,25 @@ s32 FlyPartTo(Evt* script, s32 isInitialCall) { partMovement->unk_3A = evt_get_variable(script, *args++); script->functionTemp[3] = evt_get_variable(script, *args++); - temp_f0 = part->absolutePosition.x; - partMovement->unk_00.x = temp_f0; - partMovement->unk_18.x = temp_f0; - temp_f0_2 = part->absolutePosition.y; - partMovement->unk_00.y = temp_f0_2; - partMovement->unk_18.y = temp_f0_2; - temp_f0_3 = part->absolutePosition.z; - partMovement->unk_00.z = temp_f0_3; - partMovement->unk_18.z = temp_f0_3; - //xComp = temp_f0 - partMovement->goalPos.x; - f2 = partMovement->goalPos.x; - xComp = temp_f0 - f2; - yComp = temp_f0_2 - partMovement->goalPos.y; - zComp = temp_f0_3 - partMovement->goalPos.z; - partMovement->distance = sqrtf(SQ(xComp) + SQ(yComp) + SQ(zComp)); + goalX = partMovement->goalPos.x; + posX = part->absolutePosition.x; + deltaX = posX - goalX; + partMovement->absolutePosition.x = posX; + partMovement->unk_18.x = posX; + + goalY = partMovement->goalPos.y; + posY = part->absolutePosition.y; + deltaY = posY - goalY; + partMovement->absolutePosition.y = posY; + partMovement->unk_18.y = posY; + + goalZ = partMovement->goalPos.z; + posZ = part->absolutePosition.z; + deltaZ = posZ - goalZ; + partMovement->absolutePosition.z = posZ; + partMovement->unk_18.z = posZ; + + partMovement->distance = sqrtf(SQ(deltaX) + SQ(deltaY) + SQ(deltaZ)); if (partMovement->moveTime == 0) { partMovement->moveTime = partMovement->distance / partMovement->moveSpeed; @@ -1933,9 +2410,9 @@ s32 FlyPartTo(Evt* script, s32 isInitialCall) { part = script->functionTempPtr[2]; actor = script->functionTempPtr[1]; partMovement = part->movement; - partMovement->unk_00.x = update_lerp_battle(script->functionTemp[3], partMovement->unk_18.x, partMovement->goalPos.x, partMovement->unk_3C, partMovement->moveTime); - partMovement->unk_00.y = update_lerp_battle(script->functionTemp[3], partMovement->unk_18.y, partMovement->goalPos.y, partMovement->unk_3C, partMovement->moveTime); - partMovement->unk_00.z = update_lerp_battle(script->functionTemp[3], partMovement->unk_18.z, partMovement->goalPos.z, partMovement->unk_3C, partMovement->moveTime); + partMovement->absolutePosition.x = update_lerp_battle(script->functionTemp[3], partMovement->unk_18.x, partMovement->goalPos.x, partMovement->unk_3C, partMovement->moveTime); + partMovement->absolutePosition.y = update_lerp_battle(script->functionTemp[3], partMovement->unk_18.y, partMovement->goalPos.y, partMovement->unk_3C, partMovement->moveTime); + partMovement->absolutePosition.z = update_lerp_battle(script->functionTemp[3], partMovement->unk_18.z, partMovement->goalPos.z, partMovement->unk_3C, partMovement->moveTime); partMovement->unk_3C++; if (partMovement->moveTime < partMovement->unk_3C) { @@ -1982,38 +2459,33 @@ s32 FlyPartTo(Evt* script, s32 isInitialCall) { } } - f2 = sqrtf( - SQ(partMovement->goalPos.x - partMovement->unk_00.x) + - SQ(partMovement->goalPos.y - partMovement->unk_00.y) + - SQ(partMovement->goalPos.z - partMovement->unk_00.z) - ); - - if (f2 == 0.0f) { - f2 = 1.0f; + deltaX = partMovement->goalPos.x - partMovement->absolutePosition.x; + deltaY = partMovement->goalPos.y - partMovement->absolutePosition.y; + deltaZ = partMovement->goalPos.z - partMovement->absolutePosition.z; + dist3D = sqrtf(SQ(deltaX) + SQ(deltaY) + SQ(deltaZ)); + if (dist3D == 0.0f) { + dist3D = 1.0f; } if (partMovement->distance == 0.0f) { partMovement->distance = 1.0f; } - f4 = sin_deg((1.0 - f2 / partMovement->distance) * 180.0); + offsetY = sin_deg((1.0 - dist3D / partMovement->distance) * 180.0); if (partMovement->unk_3A == 0) { - f4 = 0.0f; + offsetY = 0.0f; } if (partMovement->unk_3A < 0) { - f4 = -f4 * (-partMovement->unk_3A); + offsetY = -offsetY * (-partMovement->unk_3A); } if (partMovement->unk_3A > 0) { - f4 = f4 * partMovement->unk_3A; + offsetY = offsetY * partMovement->unk_3A; } - part->absolutePosition.x = partMovement->unk_00.x; - part->absolutePosition.y = partMovement->unk_00.y + f4; - part->absolutePosition.z = partMovement->unk_00.z; + part->absolutePosition.x = partMovement->absolutePosition.x; + part->absolutePosition.y = partMovement->absolutePosition.y + offsetY; + part->absolutePosition.z = partMovement->absolutePosition.z; return ApiStatus_BLOCK; } -#else -INCLUDE_ASM(s32, "1A5830", FlyPartTo); -#endif ApiStatus GetLastEvent(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/src/43F0.c b/src/43F0.c index aed8d9b76d..da5e18e28f 100644 --- a/src/43F0.c +++ b/src/43F0.c @@ -728,41 +728,41 @@ f32 update_lerp(s32 easing, f32 start, f32 end, s32 elapsed, s32 duration) { switch (easing) { case EASING_LINEAR: - return start + ((end - start) * elapsed / duration); + return start + (end - start) * elapsed / duration; case EASING_QUADRATIC_IN: - return start + (SQ(elapsed) * (end - start) / SQ(duration)); + return start + SQ(elapsed) * (end - start) / SQ(duration); case EASING_CUBIC_IN: - return start + (CUBE(elapsed) * (end - start) / CUBE(duration)); + return start + CUBE(elapsed) * (end - start) / CUBE(duration); case EASING_QUARTIC_IN: - return start + (QUART(elapsed) * (end - start) / QUART(duration)); + return start + QUART(elapsed) * (end - start) / QUART(duration); case EASING_COS_SLOW_OVERSHOOT: - return end - (((end - start) * cos_rad(((f32)elapsed / duration) * PI_D * 4.0) * (duration - elapsed) * - (duration - elapsed)) / SQ((f32)duration)); + return end - ((end - start) * cos_rad(((f32)elapsed / duration) * PI_D * 4.0) * (duration - elapsed) * + (duration - elapsed)) / SQ((f32)duration); case EASING_COS_FAST_OVERSHOOT: - return end - (((end - start) * cos_rad((((f32)SQ(elapsed) / duration) * PI_D * 4.0) / 15.0) * (duration - elapsed) * - (duration - elapsed)) / SQ((f32)duration)); + return end - ((end - start) * cos_rad((((f32)SQ(elapsed) / duration) * PI_D * 4.0) / 15.0) * (duration - elapsed) * + (duration - elapsed)) / SQ((f32)duration); case EASING_QUADRATIC_OUT: timeLeft = duration - elapsed; - return (start + (end - start)) - ((SQ(timeLeft) * (end - start))) / SQ(duration); + return start + (end - start) - ((SQ(timeLeft) * (end - start))) / SQ(duration); case EASING_CUBIC_OUT: timeLeft = duration - elapsed; - return (start + (end - start)) - ((CUBE(timeLeft) * (end - start))) / CUBE(duration); + return start + (end - start) - ((CUBE(timeLeft) * (end - start))) / CUBE(duration); case EASING_QUARTIC_OUT: timeLeft = duration - elapsed; - return (start + (end - start)) - ((QUART(timeLeft) * (end - start))) / QUART(duration); + return start + (end - start) - ((QUART(timeLeft) * (end - start))) / QUART(duration); case EASING_COS_BOUNCE: absMag = cos_rad((((f32)SQ(elapsed) / duration) * PI_D * 4.0) / 40.0) * (duration - elapsed) * - (duration - elapsed) / SQ((f32)duration); + (duration - elapsed) / SQ((f32)duration); if (absMag < 0.0f) { absMag = -absMag; } - return end - ((end - start) * absMag); + return end - (end - start) * absMag; case EASING_COS_IN_OUT: - return start + ((end - start) * (1.0 - cos_rad(((f32)elapsed * PI_D) / (f32)duration)) * 0.5); + return start + (end - start) * (1.0 - cos_rad(((f32)elapsed * PI_D) / (f32)duration)) * 0.5; case EASING_SIN_OUT: - return start + ((end - start) * sin_rad(((f32)elapsed * (PI_D / 2)) / (f32)duration)); + return start + (end - start) * sin_rad(((f32)elapsed * (PI_D / 2)) / (f32)duration); case EASING_COS_IN: - return start + ((end - start) * (1.0 - cos_rad(((f32)elapsed * (PI_D / 2)) / (f32)duration))); + return start + (end - start) * (1.0 - cos_rad(((f32)elapsed * (PI_D / 2)) / (f32)duration)); } return 0.0f; diff --git a/ver/us/asm/nonmatchings/1A5830/FlyPartTo.s b/ver/us/asm/nonmatchings/1A5830/FlyPartTo.s deleted file mode 100644 index 9755cb11e2..0000000000 --- a/ver/us/asm/nonmatchings/1A5830/FlyPartTo.s +++ /dev/null @@ -1,395 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029DA20 -.double 180.0, 0.0 - -.section .text - -glabel FlyPartTo -/* 1AA818 8027BF38 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 1AA81C 8027BF3C AFB30024 */ sw $s3, 0x24($sp) -/* 1AA820 8027BF40 0080982D */ daddu $s3, $a0, $zero -/* 1AA824 8027BF44 AFBF002C */ sw $ra, 0x2c($sp) -/* 1AA828 8027BF48 AFB40028 */ sw $s4, 0x28($sp) -/* 1AA82C 8027BF4C AFB20020 */ sw $s2, 0x20($sp) -/* 1AA830 8027BF50 AFB1001C */ sw $s1, 0x1c($sp) -/* 1AA834 8027BF54 AFB00018 */ sw $s0, 0x18($sp) -/* 1AA838 8027BF58 F7B40030 */ sdc1 $f20, 0x30($sp) -/* 1AA83C 8027BF5C 10A0008A */ beqz $a1, .L8027C188 -/* 1AA840 8027BF60 8E71000C */ lw $s1, 0xc($s3) -/* 1AA844 8027BF64 8E250000 */ lw $a1, ($s1) -/* 1AA848 8027BF68 0C0B1EAF */ jal evt_get_variable -/* 1AA84C 8027BF6C 26310004 */ addiu $s1, $s1, 4 -/* 1AA850 8027BF70 0040802D */ daddu $s0, $v0, $zero -/* 1AA854 8027BF74 2402FF81 */ addiu $v0, $zero, -0x7f -/* 1AA858 8027BF78 16020002 */ bne $s0, $v0, .L8027BF84 -/* 1AA85C 8027BF7C 00000000 */ nop -/* 1AA860 8027BF80 8E700148 */ lw $s0, 0x148($s3) -.L8027BF84: -/* 1AA864 8027BF84 8E250000 */ lw $a1, ($s1) -/* 1AA868 8027BF88 26310004 */ addiu $s1, $s1, 4 -/* 1AA86C 8027BF8C 0C0B1EAF */ jal evt_get_variable -/* 1AA870 8027BF90 0260202D */ daddu $a0, $s3, $zero -/* 1AA874 8027BF94 0200202D */ daddu $a0, $s0, $zero -/* 1AA878 8027BF98 0C09A75B */ jal get_actor -/* 1AA87C 8027BF9C 0040802D */ daddu $s0, $v0, $zero -/* 1AA880 8027BFA0 0040A02D */ daddu $s4, $v0, $zero -/* 1AA884 8027BFA4 0280202D */ daddu $a0, $s4, $zero -/* 1AA888 8027BFA8 0C099117 */ jal get_actor_part -/* 1AA88C 8027BFAC 0200282D */ daddu $a1, $s0, $zero -/* 1AA890 8027BFB0 0040902D */ daddu $s2, $v0, $zero -/* 1AA894 8027BFB4 AE740074 */ sw $s4, 0x74($s3) -/* 1AA898 8027BFB8 AE720078 */ sw $s2, 0x78($s3) -/* 1AA89C 8027BFBC 8E250000 */ lw $a1, ($s1) -/* 1AA8A0 8027BFC0 26310004 */ addiu $s1, $s1, 4 -/* 1AA8A4 8027BFC4 8E500010 */ lw $s0, 0x10($s2) -/* 1AA8A8 8027BFC8 0C0B1EAF */ jal evt_get_variable -/* 1AA8AC 8027BFCC 0260202D */ daddu $a0, $s3, $zero -/* 1AA8B0 8027BFD0 44820000 */ mtc1 $v0, $f0 -/* 1AA8B4 8027BFD4 00000000 */ nop -/* 1AA8B8 8027BFD8 46800020 */ cvt.s.w $f0, $f0 -/* 1AA8BC 8027BFDC E600000C */ swc1 $f0, 0xc($s0) -/* 1AA8C0 8027BFE0 8E250000 */ lw $a1, ($s1) -/* 1AA8C4 8027BFE4 26310004 */ addiu $s1, $s1, 4 -/* 1AA8C8 8027BFE8 0C0B1EAF */ jal evt_get_variable -/* 1AA8CC 8027BFEC 0260202D */ daddu $a0, $s3, $zero -/* 1AA8D0 8027BFF0 44820000 */ mtc1 $v0, $f0 -/* 1AA8D4 8027BFF4 00000000 */ nop -/* 1AA8D8 8027BFF8 46800020 */ cvt.s.w $f0, $f0 -/* 1AA8DC 8027BFFC E6000010 */ swc1 $f0, 0x10($s0) -/* 1AA8E0 8027C000 8E250000 */ lw $a1, ($s1) -/* 1AA8E4 8027C004 26310004 */ addiu $s1, $s1, 4 -/* 1AA8E8 8027C008 0C0B1EAF */ jal evt_get_variable -/* 1AA8EC 8027C00C 0260202D */ daddu $a0, $s3, $zero -/* 1AA8F0 8027C010 44820000 */ mtc1 $v0, $f0 -/* 1AA8F4 8027C014 00000000 */ nop -/* 1AA8F8 8027C018 46800020 */ cvt.s.w $f0, $f0 -/* 1AA8FC 8027C01C E6000014 */ swc1 $f0, 0x14($s0) -/* 1AA900 8027C020 8E250000 */ lw $a1, ($s1) -/* 1AA904 8027C024 26310004 */ addiu $s1, $s1, 4 -/* 1AA908 8027C028 0C0B1EAF */ jal evt_get_variable -/* 1AA90C 8027C02C 0260202D */ daddu $a0, $s3, $zero -/* 1AA910 8027C030 A6020038 */ sh $v0, 0x38($s0) -/* 1AA914 8027C034 8E250000 */ lw $a1, ($s1) -/* 1AA918 8027C038 26310004 */ addiu $s1, $s1, 4 -/* 1AA91C 8027C03C 0C0B1EAF */ jal evt_get_variable -/* 1AA920 8027C040 0260202D */ daddu $a0, $s3, $zero -/* 1AA924 8027C044 A602003A */ sh $v0, 0x3a($s0) -/* 1AA928 8027C048 8E250000 */ lw $a1, ($s1) -/* 1AA92C 8027C04C 0C0B1EAF */ jal evt_get_variable -/* 1AA930 8027C050 0260202D */ daddu $a0, $s3, $zero -/* 1AA934 8027C054 AE62007C */ sw $v0, 0x7c($s3) -/* 1AA938 8027C058 C602000C */ lwc1 $f2, 0xc($s0) -/* 1AA93C 8027C05C C640002C */ lwc1 $f0, 0x2c($s2) -/* 1AA940 8027C060 46020081 */ sub.s $f2, $f0, $f2 -/* 1AA944 8027C064 E6000000 */ swc1 $f0, ($s0) -/* 1AA948 8027C068 46021102 */ mul.s $f4, $f2, $f2 -/* 1AA94C 8027C06C 00000000 */ nop -/* 1AA950 8027C070 E6000018 */ swc1 $f0, 0x18($s0) -/* 1AA954 8027C074 C6400030 */ lwc1 $f0, 0x30($s2) -/* 1AA958 8027C078 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1AA95C 8027C07C 46020081 */ sub.s $f2, $f0, $f2 -/* 1AA960 8027C080 E6000004 */ swc1 $f0, 4($s0) -/* 1AA964 8027C084 46021182 */ mul.s $f6, $f2, $f2 -/* 1AA968 8027C088 00000000 */ nop -/* 1AA96C 8027C08C E600001C */ swc1 $f0, 0x1c($s0) -/* 1AA970 8027C090 C6400034 */ lwc1 $f0, 0x34($s2) -/* 1AA974 8027C094 C6020014 */ lwc1 $f2, 0x14($s0) -/* 1AA978 8027C098 46020081 */ sub.s $f2, $f0, $f2 -/* 1AA97C 8027C09C 46021082 */ mul.s $f2, $f2, $f2 -/* 1AA980 8027C0A0 00000000 */ nop -/* 1AA984 8027C0A4 46062100 */ add.s $f4, $f4, $f6 -/* 1AA988 8027C0A8 46022300 */ add.s $f12, $f4, $f2 -/* 1AA98C 8027C0AC E6000008 */ swc1 $f0, 8($s0) -/* 1AA990 8027C0B0 46006084 */ sqrt.s $f2, $f12 -/* 1AA994 8027C0B4 46021032 */ c.eq.s $f2, $f2 -/* 1AA998 8027C0B8 00000000 */ nop -/* 1AA99C 8027C0BC 45010004 */ bc1t .L8027C0D0 -/* 1AA9A0 8027C0C0 E6000020 */ swc1 $f0, 0x20($s0) -/* 1AA9A4 8027C0C4 0C0187BC */ jal sqrtf -/* 1AA9A8 8027C0C8 00000000 */ nop -/* 1AA9AC 8027C0CC 46000086 */ mov.s $f2, $f0 -.L8027C0D0: -/* 1AA9B0 8027C0D0 86020038 */ lh $v0, 0x38($s0) -/* 1AA9B4 8027C0D4 14400007 */ bnez $v0, .L8027C0F4 -/* 1AA9B8 8027C0D8 E6020034 */ swc1 $f2, 0x34($s0) -/* 1AA9BC 8027C0DC C6000028 */ lwc1 $f0, 0x28($s0) -/* 1AA9C0 8027C0E0 46001003 */ div.s $f0, $f2, $f0 -/* 1AA9C4 8027C0E4 4600020D */ trunc.w.s $f8, $f0 -/* 1AA9C8 8027C0E8 44024000 */ mfc1 $v0, $f8 -/* 1AA9CC 8027C0EC 0809F042 */ j .L8027C108 -/* 1AA9D0 8027C0F0 A6020038 */ sh $v0, 0x38($s0) -.L8027C0F4: -/* 1AA9D4 8027C0F4 44820000 */ mtc1 $v0, $f0 -/* 1AA9D8 8027C0F8 00000000 */ nop -/* 1AA9DC 8027C0FC 46800020 */ cvt.s.w $f0, $f0 -/* 1AA9E0 8027C100 46001003 */ div.s $f0, $f2, $f0 -/* 1AA9E4 8027C104 E6000028 */ swc1 $f0, 0x28($s0) -.L8027C108: -/* 1AA9E8 8027C108 86020038 */ lh $v0, 0x38($s0) -/* 1AA9EC 8027C10C 14400003 */ bnez $v0, .L8027C11C -/* 1AA9F0 8027C110 00000000 */ nop -.L8027C114: -/* 1AA9F4 8027C114 0809F12F */ j .L8027C4BC -/* 1AA9F8 8027C118 24020002 */ addiu $v0, $zero, 2 -.L8027C11C: -/* 1AA9FC 8027C11C 8E4200AC */ lw $v0, 0xac($s2) -/* 1AAA00 8027C120 5040000C */ beql $v0, $zero, .L8027C154 -/* 1AAA04 8027C124 AE00003C */ sw $zero, 0x3c($s0) -/* 1AAA08 8027C128 8E4200B0 */ lw $v0, 0xb0($s2) -/* 1AAA0C 8027C12C 54400009 */ bnel $v0, $zero, .L8027C154 -/* 1AAA10 8027C130 AE00003C */ sw $zero, 0x3c($s0) -/* 1AAA14 8027C134 C6400034 */ lwc1 $f0, 0x34($s2) -/* 1AAA18 8027C138 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AAA1C 8027C13C 8E4400AC */ lw $a0, 0xac($s2) -/* 1AAA20 8027C140 8E46002C */ lw $a2, 0x2c($s2) -/* 1AAA24 8027C144 8E470030 */ lw $a3, 0x30($s2) -/* 1AAA28 8027C148 0C052757 */ jal sfx_play_sound_at_position -/* 1AAA2C 8027C14C 0000282D */ daddu $a1, $zero, $zero -/* 1AAA30 8027C150 AE00003C */ sw $zero, 0x3c($s0) -.L8027C154: -/* 1AAA34 8027C154 AE000030 */ sw $zero, 0x30($s0) -/* 1AAA38 8027C158 864200BE */ lh $v0, 0xbe($s2) -/* 1AAA3C 8027C15C 04400004 */ bltz $v0, .L8027C170 -/* 1AAA40 8027C160 00000000 */ nop -/* 1AAA44 8027C164 868201B6 */ lh $v0, 0x1b6($s4) -/* 1AAA48 8027C168 0809F05E */ j .L8027C178 -/* 1AAA4C 8027C16C 24420001 */ addiu $v0, $v0, 1 -.L8027C170: -/* 1AAA50 8027C170 868201B6 */ lh $v0, 0x1b6($s4) -/* 1AAA54 8027C174 00021027 */ nor $v0, $zero, $v0 -.L8027C178: -/* 1AAA58 8027C178 44820000 */ mtc1 $v0, $f0 -/* 1AAA5C 8027C17C 00000000 */ nop -/* 1AAA60 8027C180 46800020 */ cvt.s.w $f0, $f0 -/* 1AAA64 8027C184 E600002C */ swc1 $f0, 0x2c($s0) -.L8027C188: -/* 1AAA68 8027C188 8E720078 */ lw $s2, 0x78($s3) -/* 1AAA6C 8027C18C 8E500010 */ lw $s0, 0x10($s2) -/* 1AAA70 8027C190 8E740074 */ lw $s4, 0x74($s3) -/* 1AAA74 8027C194 86020038 */ lh $v0, 0x38($s0) -/* 1AAA78 8027C198 AFA20010 */ sw $v0, 0x10($sp) -/* 1AAA7C 8027C19C 8E64007C */ lw $a0, 0x7c($s3) -/* 1AAA80 8027C1A0 8E050018 */ lw $a1, 0x18($s0) -/* 1AAA84 8027C1A4 8E06000C */ lw $a2, 0xc($s0) -/* 1AAA88 8027C1A8 0C09EC37 */ jal update_lerp_battle -/* 1AAA8C 8027C1AC 8E07003C */ lw $a3, 0x3c($s0) -/* 1AAA90 8027C1B0 86020038 */ lh $v0, 0x38($s0) -/* 1AAA94 8027C1B4 E6000000 */ swc1 $f0, ($s0) -/* 1AAA98 8027C1B8 AFA20010 */ sw $v0, 0x10($sp) -/* 1AAA9C 8027C1BC 8E64007C */ lw $a0, 0x7c($s3) -/* 1AAAA0 8027C1C0 8E05001C */ lw $a1, 0x1c($s0) -/* 1AAAA4 8027C1C4 8E060010 */ lw $a2, 0x10($s0) -/* 1AAAA8 8027C1C8 0C09EC37 */ jal update_lerp_battle -/* 1AAAAC 8027C1CC 8E07003C */ lw $a3, 0x3c($s0) -/* 1AAAB0 8027C1D0 86020038 */ lh $v0, 0x38($s0) -/* 1AAAB4 8027C1D4 E6000004 */ swc1 $f0, 4($s0) -/* 1AAAB8 8027C1D8 AFA20010 */ sw $v0, 0x10($sp) -/* 1AAABC 8027C1DC 8E64007C */ lw $a0, 0x7c($s3) -/* 1AAAC0 8027C1E0 8E050020 */ lw $a1, 0x20($s0) -/* 1AAAC4 8027C1E4 8E060014 */ lw $a2, 0x14($s0) -/* 1AAAC8 8027C1E8 0C09EC37 */ jal update_lerp_battle -/* 1AAACC 8027C1EC 8E07003C */ lw $a3, 0x3c($s0) -/* 1AAAD0 8027C1F0 8E02003C */ lw $v0, 0x3c($s0) -/* 1AAAD4 8027C1F4 86030038 */ lh $v1, 0x38($s0) -/* 1AAAD8 8027C1F8 E6000008 */ swc1 $f0, 8($s0) -/* 1AAADC 8027C1FC 24420001 */ addiu $v0, $v0, 1 -/* 1AAAE0 8027C200 0062182A */ slt $v1, $v1, $v0 -/* 1AAAE4 8027C204 10600010 */ beqz $v1, .L8027C248 -/* 1AAAE8 8027C208 AE02003C */ sw $v0, 0x3c($s0) -/* 1AAAEC 8027C20C C600000C */ lwc1 $f0, 0xc($s0) -/* 1AAAF0 8027C210 8E4400AC */ lw $a0, 0xac($s2) -/* 1AAAF4 8027C214 E640002C */ swc1 $f0, 0x2c($s2) -/* 1AAAF8 8027C218 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1AAAFC 8027C21C E6400030 */ swc1 $f0, 0x30($s2) -/* 1AAB00 8027C220 C6000014 */ lwc1 $f0, 0x14($s0) -/* 1AAB04 8027C224 1080FFBB */ beqz $a0, .L8027C114 -/* 1AAB08 8027C228 E6400034 */ swc1 $f0, 0x34($s2) -/* 1AAB0C 8027C22C 8E4200B0 */ lw $v0, 0xb0($s2) -/* 1AAB10 8027C230 144000A2 */ bnez $v0, .L8027C4BC -/* 1AAB14 8027C234 24020002 */ addiu $v0, $zero, 2 -/* 1AAB18 8027C238 0C0154F0 */ jal snd_stop_sound -/* 1AAB1C 8027C23C 00000000 */ nop -/* 1AAB20 8027C240 0809F12F */ j .L8027C4BC -/* 1AAB24 8027C244 24020002 */ addiu $v0, $zero, 2 -.L8027C248: -/* 1AAB28 8027C248 8E4200AC */ lw $v0, 0xac($s2) -/* 1AAB2C 8027C24C 1040004A */ beqz $v0, .L8027C378 -/* 1AAB30 8027C250 00000000 */ nop -/* 1AAB34 8027C254 8E4200B0 */ lw $v0, 0xb0($s2) -/* 1AAB38 8027C258 10400047 */ beqz $v0, .L8027C378 -/* 1AAB3C 8027C25C 00000000 */ nop -/* 1AAB40 8027C260 864200BE */ lh $v0, 0xbe($s2) -/* 1AAB44 8027C264 0440001C */ bltz $v0, .L8027C2D8 -/* 1AAB48 8027C268 00000000 */ nop -/* 1AAB4C 8027C26C C602002C */ lwc1 $f2, 0x2c($s0) -/* 1AAB50 8027C270 C6000028 */ lwc1 $f0, 0x28($s0) -/* 1AAB54 8027C274 46001080 */ add.s $f2, $f2, $f0 -/* 1AAB58 8027C278 E602002C */ swc1 $f2, 0x2c($s0) -/* 1AAB5C 8027C27C 864200BE */ lh $v0, 0xbe($s2) -/* 1AAB60 8027C280 44820000 */ mtc1 $v0, $f0 -/* 1AAB64 8027C284 00000000 */ nop -/* 1AAB68 8027C288 46800020 */ cvt.s.w $f0, $f0 -/* 1AAB6C 8027C28C 4602003C */ c.lt.s $f0, $f2 -/* 1AAB70 8027C290 00000000 */ nop -/* 1AAB74 8027C294 45000038 */ bc1f .L8027C378 -/* 1AAB78 8027C298 00000000 */ nop -/* 1AAB7C 8027C29C 92820135 */ lbu $v0, 0x135($s4) -/* 1AAB80 8027C2A0 24420001 */ addiu $v0, $v0, 1 -/* 1AAB84 8027C2A4 A2820135 */ sb $v0, 0x135($s4) -/* 1AAB88 8027C2A8 AE00002C */ sw $zero, 0x2c($s0) -/* 1AAB8C 8027C2AC 92820135 */ lbu $v0, 0x135($s4) -/* 1AAB90 8027C2B0 30420001 */ andi $v0, $v0, 1 -/* 1AAB94 8027C2B4 10400026 */ beqz $v0, .L8027C350 -/* 1AAB98 8027C2B8 00000000 */ nop -/* 1AAB9C 8027C2BC 8E4200AC */ lw $v0, 0xac($s2) -/* 1AABA0 8027C2C0 1040002D */ beqz $v0, .L8027C378 -/* 1AABA4 8027C2C4 00000000 */ nop -/* 1AABA8 8027C2C8 C6400034 */ lwc1 $f0, 0x34($s2) -/* 1AABAC 8027C2CC E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AABB0 8027C2D0 0809F0DA */ j .L8027C368 -/* 1AABB4 8027C2D4 8E4400AC */ lw $a0, 0xac($s2) -.L8027C2D8: -/* 1AABB8 8027C2D8 C602002C */ lwc1 $f2, 0x2c($s0) -/* 1AABBC 8027C2DC 3C013F80 */ lui $at, 0x3f80 -/* 1AABC0 8027C2E0 44810000 */ mtc1 $at, $f0 -/* 1AABC4 8027C2E4 00000000 */ nop -/* 1AABC8 8027C2E8 46001080 */ add.s $f2, $f2, $f0 -/* 1AABCC 8027C2EC E602002C */ swc1 $f2, 0x2c($s0) -/* 1AABD0 8027C2F0 864200BE */ lh $v0, 0xbe($s2) -/* 1AABD4 8027C2F4 00021023 */ negu $v0, $v0 -/* 1AABD8 8027C2F8 44820000 */ mtc1 $v0, $f0 -/* 1AABDC 8027C2FC 00000000 */ nop -/* 1AABE0 8027C300 46800020 */ cvt.s.w $f0, $f0 -/* 1AABE4 8027C304 4602003E */ c.le.s $f0, $f2 -/* 1AABE8 8027C308 00000000 */ nop -/* 1AABEC 8027C30C 4500001A */ bc1f .L8027C378 -/* 1AABF0 8027C310 00000000 */ nop -/* 1AABF4 8027C314 92820135 */ lbu $v0, 0x135($s4) -/* 1AABF8 8027C318 24420001 */ addiu $v0, $v0, 1 -/* 1AABFC 8027C31C A2820135 */ sb $v0, 0x135($s4) -/* 1AAC00 8027C320 AE00002C */ sw $zero, 0x2c($s0) -/* 1AAC04 8027C324 92820135 */ lbu $v0, 0x135($s4) -/* 1AAC08 8027C328 30420001 */ andi $v0, $v0, 1 -/* 1AAC0C 8027C32C 10400008 */ beqz $v0, .L8027C350 -/* 1AAC10 8027C330 00000000 */ nop -/* 1AAC14 8027C334 8E4200AC */ lw $v0, 0xac($s2) -/* 1AAC18 8027C338 1040000F */ beqz $v0, .L8027C378 -/* 1AAC1C 8027C33C 00000000 */ nop -/* 1AAC20 8027C340 C6400034 */ lwc1 $f0, 0x34($s2) -/* 1AAC24 8027C344 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AAC28 8027C348 0809F0DA */ j .L8027C368 -/* 1AAC2C 8027C34C 8E4400AC */ lw $a0, 0xac($s2) -.L8027C350: -/* 1AAC30 8027C350 8E4200B0 */ lw $v0, 0xb0($s2) -/* 1AAC34 8027C354 10400008 */ beqz $v0, .L8027C378 -/* 1AAC38 8027C358 00000000 */ nop -/* 1AAC3C 8027C35C C6400034 */ lwc1 $f0, 0x34($s2) -/* 1AAC40 8027C360 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AAC44 8027C364 8E4400B0 */ lw $a0, 0xb0($s2) -.L8027C368: -/* 1AAC48 8027C368 8E46002C */ lw $a2, 0x2c($s2) -/* 1AAC4C 8027C36C 8E470030 */ lw $a3, 0x30($s2) -/* 1AAC50 8027C370 0C052757 */ jal sfx_play_sound_at_position -/* 1AAC54 8027C374 0000282D */ daddu $a1, $zero, $zero -.L8027C378: -/* 1AAC58 8027C378 C602000C */ lwc1 $f2, 0xc($s0) -/* 1AAC5C 8027C37C C6000000 */ lwc1 $f0, ($s0) -/* 1AAC60 8027C380 46001081 */ sub.s $f2, $f2, $f0 -/* 1AAC64 8027C384 46021102 */ mul.s $f4, $f2, $f2 -/* 1AAC68 8027C388 00000000 */ nop -/* 1AAC6C 8027C38C C6000004 */ lwc1 $f0, 4($s0) -/* 1AAC70 8027C390 C6020010 */ lwc1 $f2, 0x10($s0) -/* 1AAC74 8027C394 46001081 */ sub.s $f2, $f2, $f0 -/* 1AAC78 8027C398 46021182 */ mul.s $f6, $f2, $f2 -/* 1AAC7C 8027C39C 00000000 */ nop -/* 1AAC80 8027C3A0 C6000008 */ lwc1 $f0, 8($s0) -/* 1AAC84 8027C3A4 C6020014 */ lwc1 $f2, 0x14($s0) -/* 1AAC88 8027C3A8 46001081 */ sub.s $f2, $f2, $f0 -/* 1AAC8C 8027C3AC 46021002 */ mul.s $f0, $f2, $f2 -/* 1AAC90 8027C3B0 00000000 */ nop -/* 1AAC94 8027C3B4 46062100 */ add.s $f4, $f4, $f6 -/* 1AAC98 8027C3B8 46002300 */ add.s $f12, $f4, $f0 -/* 1AAC9C 8027C3BC 46006004 */ sqrt.s $f0, $f12 -/* 1AACA0 8027C3C0 46000032 */ c.eq.s $f0, $f0 -/* 1AACA4 8027C3C4 00000000 */ nop -/* 1AACA8 8027C3C8 45010003 */ bc1t .L8027C3D8 -/* 1AACAC 8027C3CC 00000000 */ nop -/* 1AACB0 8027C3D0 0C0187BC */ jal sqrtf -/* 1AACB4 8027C3D4 00000000 */ nop -.L8027C3D8: -/* 1AACB8 8027C3D8 4480A000 */ mtc1 $zero, $f20 -/* 1AACBC 8027C3DC 46000086 */ mov.s $f2, $f0 -/* 1AACC0 8027C3E0 46141032 */ c.eq.s $f2, $f20 -/* 1AACC4 8027C3E4 00000000 */ nop -/* 1AACC8 8027C3E8 45000003 */ bc1f .L8027C3F8 -/* 1AACCC 8027C3EC 00000000 */ nop -/* 1AACD0 8027C3F0 3C013F80 */ lui $at, 0x3f80 -/* 1AACD4 8027C3F4 44811000 */ mtc1 $at, $f2 -.L8027C3F8: -/* 1AACD8 8027C3F8 C6000034 */ lwc1 $f0, 0x34($s0) -/* 1AACDC 8027C3FC 46140032 */ c.eq.s $f0, $f20 -/* 1AACE0 8027C400 00000000 */ nop -/* 1AACE4 8027C404 45000006 */ bc1f .L8027C420 -/* 1AACE8 8027C408 00000000 */ nop -/* 1AACEC 8027C40C 3C013F80 */ lui $at, 0x3f80 -/* 1AACF0 8027C410 44810000 */ mtc1 $at, $f0 -/* 1AACF4 8027C414 00000000 */ nop -/* 1AACF8 8027C418 E6000034 */ swc1 $f0, 0x34($s0) -/* 1AACFC 8027C41C C6000034 */ lwc1 $f0, 0x34($s0) -.L8027C420: -/* 1AAD00 8027C420 3C013FF0 */ lui $at, 0x3ff0 -/* 1AAD04 8027C424 44816800 */ mtc1 $at, $f13 -/* 1AAD08 8027C428 44806000 */ mtc1 $zero, $f12 -/* 1AAD0C 8027C42C 46001003 */ div.s $f0, $f2, $f0 -/* 1AAD10 8027C430 46000021 */ cvt.d.s $f0, $f0 -/* 1AAD14 8027C434 46206301 */ sub.d $f12, $f12, $f0 -/* 1AAD18 8027C438 3C01802A */ lui $at, %hi(D_8029DA20) -/* 1AAD1C 8027C43C D420DA20 */ ldc1 $f0, %lo(D_8029DA20)($at) -/* 1AAD20 8027C440 46206302 */ mul.d $f12, $f12, $f0 -/* 1AAD24 8027C444 00000000 */ nop -/* 1AAD28 8027C448 0C00A8BB */ jal sin_deg -/* 1AAD2C 8027C44C 46206320 */ cvt.s.d $f12, $f12 -/* 1AAD30 8027C450 8603003A */ lh $v1, 0x3a($s0) -/* 1AAD34 8027C454 14600002 */ bnez $v1, .L8027C460 -/* 1AAD38 8027C458 46000106 */ mov.s $f4, $f0 -/* 1AAD3C 8027C45C 4600A106 */ mov.s $f4, $f20 -.L8027C460: -/* 1AAD40 8027C460 04610007 */ bgez $v1, .L8027C480 -/* 1AAD44 8027C464 00031023 */ negu $v0, $v1 -/* 1AAD48 8027C468 44821000 */ mtc1 $v0, $f2 -/* 1AAD4C 8027C46C 00000000 */ nop -/* 1AAD50 8027C470 468010A0 */ cvt.s.w $f2, $f2 -/* 1AAD54 8027C474 46002007 */ neg.s $f0, $f4 -/* 1AAD58 8027C478 46020102 */ mul.s $f4, $f0, $f2 -/* 1AAD5C 8027C47C 00000000 */ nop -.L8027C480: -/* 1AAD60 8027C480 18600006 */ blez $v1, .L8027C49C -/* 1AAD64 8027C484 00000000 */ nop -/* 1AAD68 8027C488 44830000 */ mtc1 $v1, $f0 -/* 1AAD6C 8027C48C 00000000 */ nop -/* 1AAD70 8027C490 46800020 */ cvt.s.w $f0, $f0 -/* 1AAD74 8027C494 46002102 */ mul.s $f4, $f4, $f0 -/* 1AAD78 8027C498 00000000 */ nop -.L8027C49C: -/* 1AAD7C 8027C49C C6000000 */ lwc1 $f0, ($s0) -/* 1AAD80 8027C4A0 E640002C */ swc1 $f0, 0x2c($s2) -/* 1AAD84 8027C4A4 C6000004 */ lwc1 $f0, 4($s0) -/* 1AAD88 8027C4A8 46040000 */ add.s $f0, $f0, $f4 -/* 1AAD8C 8027C4AC E6400030 */ swc1 $f0, 0x30($s2) -/* 1AAD90 8027C4B0 C6000008 */ lwc1 $f0, 8($s0) -/* 1AAD94 8027C4B4 0000102D */ daddu $v0, $zero, $zero -/* 1AAD98 8027C4B8 E6400034 */ swc1 $f0, 0x34($s2) -.L8027C4BC: -/* 1AAD9C 8027C4BC 8FBF002C */ lw $ra, 0x2c($sp) -/* 1AADA0 8027C4C0 8FB40028 */ lw $s4, 0x28($sp) -/* 1AADA4 8027C4C4 8FB30024 */ lw $s3, 0x24($sp) -/* 1AADA8 8027C4C8 8FB20020 */ lw $s2, 0x20($sp) -/* 1AADAC 8027C4CC 8FB1001C */ lw $s1, 0x1c($sp) -/* 1AADB0 8027C4D0 8FB00018 */ lw $s0, 0x18($sp) -/* 1AADB4 8027C4D4 D7B40030 */ ldc1 $f20, 0x30($sp) -/* 1AADB8 8027C4D8 03E00008 */ jr $ra -/* 1AADBC 8027C4DC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/ver/us/asm/nonmatchings/1A5830/FlyToGoal.s b/ver/us/asm/nonmatchings/1A5830/FlyToGoal.s deleted file mode 100644 index 631325a5f3..0000000000 --- a/ver/us/asm/nonmatchings/1A5830/FlyToGoal.s +++ /dev/null @@ -1,390 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029DA10 -.double 180.0 - -.section .text - -glabel FlyToGoal -/* 1A9F04 8027B624 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 1A9F08 8027B628 AFB20020 */ sw $s2, 0x20($sp) -/* 1A9F0C 8027B62C 0080902D */ daddu $s2, $a0, $zero -/* 1A9F10 8027B630 AFBF0024 */ sw $ra, 0x24($sp) -/* 1A9F14 8027B634 AFB1001C */ sw $s1, 0x1c($sp) -/* 1A9F18 8027B638 AFB00018 */ sw $s0, 0x18($sp) -/* 1A9F1C 8027B63C F7B40028 */ sdc1 $f20, 0x28($sp) -/* 1A9F20 8027B640 10A0006C */ beqz $a1, .L8027B7F4 -/* 1A9F24 8027B644 8E51000C */ lw $s1, 0xc($s2) -/* 1A9F28 8027B648 8E250000 */ lw $a1, ($s1) -/* 1A9F2C 8027B64C 0C0B1EAF */ jal evt_get_variable -/* 1A9F30 8027B650 26310004 */ addiu $s1, $s1, 4 -/* 1A9F34 8027B654 0040202D */ daddu $a0, $v0, $zero -/* 1A9F38 8027B658 2402FF81 */ addiu $v0, $zero, -0x7f -/* 1A9F3C 8027B65C 14820002 */ bne $a0, $v0, .L8027B668 -/* 1A9F40 8027B660 00000000 */ nop -/* 1A9F44 8027B664 8E440148 */ lw $a0, 0x148($s2) -.L8027B668: -/* 1A9F48 8027B668 0C09A75B */ jal get_actor -/* 1A9F4C 8027B66C 00000000 */ nop -/* 1A9F50 8027B670 0040802D */ daddu $s0, $v0, $zero -/* 1A9F54 8027B674 AE500074 */ sw $s0, 0x74($s2) -/* 1A9F58 8027B678 8E250000 */ lw $a1, ($s1) -/* 1A9F5C 8027B67C 26310004 */ addiu $s1, $s1, 4 -/* 1A9F60 8027B680 0C0B1EAF */ jal evt_get_variable -/* 1A9F64 8027B684 0240202D */ daddu $a0, $s2, $zero -/* 1A9F68 8027B688 A6020070 */ sh $v0, 0x70($s0) -/* 1A9F6C 8027B68C 8E250000 */ lw $a1, ($s1) -/* 1A9F70 8027B690 26310004 */ addiu $s1, $s1, 4 -/* 1A9F74 8027B694 0C0B1EAF */ jal evt_get_variable -/* 1A9F78 8027B698 0240202D */ daddu $a0, $s2, $zero -/* 1A9F7C 8027B69C A6020072 */ sh $v0, 0x72($s0) -/* 1A9F80 8027B6A0 8E250000 */ lw $a1, ($s1) -/* 1A9F84 8027B6A4 0C0B1EAF */ jal evt_get_variable -/* 1A9F88 8027B6A8 0240202D */ daddu $a0, $s2, $zero -/* 1A9F8C 8027B6AC AE42007C */ sw $v0, 0x7c($s2) -/* 1A9F90 8027B6B0 AE000078 */ sw $zero, 0x78($s0) -/* 1A9F94 8027B6B4 8E43007C */ lw $v1, 0x7c($s2) -/* 1A9F98 8027B6B8 28620064 */ slti $v0, $v1, 0x64 -/* 1A9F9C 8027B6BC 14400005 */ bnez $v0, .L8027B6D4 -/* 1A9FA0 8027B6C0 2611000C */ addiu $s1, $s0, 0xc -/* 1A9FA4 8027B6C4 2462FF9C */ addiu $v0, $v1, -0x64 -/* 1A9FA8 8027B6C8 AE42007C */ sw $v0, 0x7c($s2) -/* 1A9FAC 8027B6CC 24020001 */ addiu $v0, $zero, 1 -/* 1A9FB0 8027B6D0 AE020078 */ sw $v0, 0x78($s0) -.L8027B6D4: -/* 1A9FB4 8027B6D4 C6000018 */ lwc1 $f0, 0x18($s0) -/* 1A9FB8 8027B6D8 C6060144 */ lwc1 $f6, 0x144($s0) -/* 1A9FBC 8027B6DC 46003081 */ sub.s $f2, $f6, $f0 -/* 1A9FC0 8027B6E0 46021202 */ mul.s $f8, $f2, $f2 -/* 1A9FC4 8027B6E4 00000000 */ nop -/* 1A9FC8 8027B6E8 C6040148 */ lwc1 $f4, 0x148($s0) -/* 1A9FCC 8027B6EC C600001C */ lwc1 $f0, 0x1c($s0) -/* 1A9FD0 8027B6F0 46002081 */ sub.s $f2, $f4, $f0 -/* 1A9FD4 8027B6F4 46021282 */ mul.s $f10, $f2, $f2 -/* 1A9FD8 8027B6F8 00000000 */ nop -/* 1A9FDC 8027B6FC C6000020 */ lwc1 $f0, 0x20($s0) -/* 1A9FE0 8027B700 C602014C */ lwc1 $f2, 0x14c($s0) -/* 1A9FE4 8027B704 46001001 */ sub.s $f0, $f2, $f0 -/* 1A9FE8 8027B708 46000002 */ mul.s $f0, $f0, $f0 -/* 1A9FEC 8027B70C 00000000 */ nop -/* 1A9FF0 8027B710 E606000C */ swc1 $f6, 0xc($s0) -/* 1A9FF4 8027B714 E6060024 */ swc1 $f6, 0x24($s0) -/* 1A9FF8 8027B718 460A4200 */ add.s $f8, $f8, $f10 -/* 1A9FFC 8027B71C E6040010 */ swc1 $f4, 0x10($s0) -/* 1AA000 8027B720 E6040028 */ swc1 $f4, 0x28($s0) -/* 1AA004 8027B724 46004300 */ add.s $f12, $f8, $f0 -/* 1AA008 8027B728 E6020014 */ swc1 $f2, 0x14($s0) -/* 1AA00C 8027B72C E602002C */ swc1 $f2, 0x2c($s0) -/* 1AA010 8027B730 46006084 */ sqrt.s $f2, $f12 -/* 1AA014 8027B734 46021032 */ c.eq.s $f2, $f2 -/* 1AA018 8027B738 00000000 */ nop -/* 1AA01C 8027B73C 45010004 */ bc1t .L8027B750 -/* 1AA020 8027B740 00000000 */ nop -/* 1AA024 8027B744 0C0187BC */ jal sqrtf -/* 1AA028 8027B748 00000000 */ nop -/* 1AA02C 8027B74C 46000086 */ mov.s $f2, $f0 -.L8027B750: -/* 1AA030 8027B750 86020070 */ lh $v0, 0x70($s0) -/* 1AA034 8027B754 14400007 */ bnez $v0, .L8027B774 -/* 1AA038 8027B758 E6020058 */ swc1 $f2, 0x58($s0) -/* 1AA03C 8027B75C C600004C */ lwc1 $f0, 0x4c($s0) -/* 1AA040 8027B760 46001003 */ div.s $f0, $f2, $f0 -/* 1AA044 8027B764 4600038D */ trunc.w.s $f14, $f0 -/* 1AA048 8027B768 44027000 */ mfc1 $v0, $f14 -/* 1AA04C 8027B76C 0809EDE2 */ j .L8027B788 -/* 1AA050 8027B770 A6020070 */ sh $v0, 0x70($s0) -.L8027B774: -/* 1AA054 8027B774 44820000 */ mtc1 $v0, $f0 -/* 1AA058 8027B778 00000000 */ nop -/* 1AA05C 8027B77C 46800020 */ cvt.s.w $f0, $f0 -/* 1AA060 8027B780 46001003 */ div.s $f0, $f2, $f0 -/* 1AA064 8027B784 E600004C */ swc1 $f0, 0x4c($s0) -.L8027B788: -/* 1AA068 8027B788 86220064 */ lh $v0, 0x64($s1) -/* 1AA06C 8027B78C 54400003 */ bnel $v0, $zero, .L8027B79C -/* 1AA070 8027B790 AE200050 */ sw $zero, 0x50($s1) -.L8027B794: -/* 1AA074 8027B794 0809EEE7 */ j .L8027BB9C -/* 1AA078 8027B798 24020002 */ addiu $v0, $zero, 2 -.L8027B79C: -/* 1AA07C 8027B79C AE200048 */ sw $zero, 0x48($s1) -/* 1AA080 8027B7A0 860201B6 */ lh $v0, 0x1b6($s0) -/* 1AA084 8027B7A4 04420002 */ bltzl $v0, .L8027B7B0 -/* 1AA088 8027B7A8 00021027 */ nor $v0, $zero, $v0 -/* 1AA08C 8027B7AC 24420001 */ addiu $v0, $v0, 1 -.L8027B7B0: -/* 1AA090 8027B7B0 44820000 */ mtc1 $v0, $f0 -/* 1AA094 8027B7B4 00000000 */ nop -/* 1AA098 8027B7B8 46800020 */ cvt.s.w $f0, $f0 -/* 1AA09C 8027B7BC E6200044 */ swc1 $f0, 0x44($s1) -/* 1AA0A0 8027B7C0 8E0201A4 */ lw $v0, 0x1a4($s0) -/* 1AA0A4 8027B7C4 1040000B */ beqz $v0, .L8027B7F4 -/* 1AA0A8 8027B7C8 00000000 */ nop -/* 1AA0AC 8027B7CC 8E0201A8 */ lw $v0, 0x1a8($s0) -/* 1AA0B0 8027B7D0 14400008 */ bnez $v0, .L8027B7F4 -/* 1AA0B4 8027B7D4 00000000 */ nop -/* 1AA0B8 8027B7D8 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1AA0BC 8027B7DC E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AA0C0 8027B7E0 8E0401A4 */ lw $a0, 0x1a4($s0) -/* 1AA0C4 8027B7E4 8E060144 */ lw $a2, 0x144($s0) -/* 1AA0C8 8027B7E8 8E070148 */ lw $a3, 0x148($s0) -/* 1AA0CC 8027B7EC 0C052757 */ jal sfx_play_sound_at_position -/* 1AA0D0 8027B7F0 0000282D */ daddu $a1, $zero, $zero -.L8027B7F4: -/* 1AA0D4 8027B7F4 8E500074 */ lw $s0, 0x74($s2) -/* 1AA0D8 8027B7F8 86020070 */ lh $v0, 0x70($s0) -/* 1AA0DC 8027B7FC C600005C */ lwc1 $f0, 0x5c($s0) -/* 1AA0E0 8027B800 AFA20010 */ sw $v0, 0x10($sp) -/* 1AA0E4 8027B804 8E44007C */ lw $a0, 0x7c($s2) -/* 1AA0E8 8027B808 8E050024 */ lw $a1, 0x24($s0) -/* 1AA0EC 8027B80C 8E060018 */ lw $a2, 0x18($s0) -/* 1AA0F0 8027B810 4600038D */ trunc.w.s $f14, $f0 -/* 1AA0F4 8027B814 44077000 */ mfc1 $a3, $f14 -/* 1AA0F8 8027B818 0C09EC37 */ jal update_lerp_battle -/* 1AA0FC 8027B81C 2611000C */ addiu $s1, $s0, 0xc -/* 1AA100 8027B820 C602005C */ lwc1 $f2, 0x5c($s0) -/* 1AA104 8027B824 86020070 */ lh $v0, 0x70($s0) -/* 1AA108 8027B828 E600000C */ swc1 $f0, 0xc($s0) -/* 1AA10C 8027B82C AFA20010 */ sw $v0, 0x10($sp) -/* 1AA110 8027B830 8E44007C */ lw $a0, 0x7c($s2) -/* 1AA114 8027B834 8E050028 */ lw $a1, 0x28($s0) -/* 1AA118 8027B838 8E06001C */ lw $a2, 0x1c($s0) -/* 1AA11C 8027B83C 4600138D */ trunc.w.s $f14, $f2 -/* 1AA120 8027B840 44077000 */ mfc1 $a3, $f14 -/* 1AA124 8027B844 0C09EC37 */ jal update_lerp_battle -/* 1AA128 8027B848 00000000 */ nop -/* 1AA12C 8027B84C C602005C */ lwc1 $f2, 0x5c($s0) -/* 1AA130 8027B850 86020070 */ lh $v0, 0x70($s0) -/* 1AA134 8027B854 E6000010 */ swc1 $f0, 0x10($s0) -/* 1AA138 8027B858 AFA20010 */ sw $v0, 0x10($sp) -/* 1AA13C 8027B85C 8E44007C */ lw $a0, 0x7c($s2) -/* 1AA140 8027B860 8E05002C */ lw $a1, 0x2c($s0) -/* 1AA144 8027B864 8E060020 */ lw $a2, 0x20($s0) -/* 1AA148 8027B868 4600138D */ trunc.w.s $f14, $f2 -/* 1AA14C 8027B86C 44077000 */ mfc1 $a3, $f14 -/* 1AA150 8027B870 0C09EC37 */ jal update_lerp_battle -/* 1AA154 8027B874 00000000 */ nop -/* 1AA158 8027B878 8E020078 */ lw $v0, 0x78($s0) -/* 1AA15C 8027B87C 10400012 */ beqz $v0, .L8027B8C8 -/* 1AA160 8027B880 E6000014 */ swc1 $f0, 0x14($s0) -/* 1AA164 8027B884 C6000010 */ lwc1 $f0, 0x10($s0) -/* 1AA168 8027B888 44801000 */ mtc1 $zero, $f2 -/* 1AA16C 8027B88C 00000000 */ nop -/* 1AA170 8027B890 4602003C */ c.lt.s $f0, $f2 -/* 1AA174 8027B894 00000000 */ nop -/* 1AA178 8027B898 4500000B */ bc1f .L8027B8C8 -/* 1AA17C 8027B89C 00000000 */ nop -/* 1AA180 8027B8A0 86020070 */ lh $v0, 0x70($s0) -/* 1AA184 8027B8A4 E602001C */ swc1 $f2, 0x1c($s0) -/* 1AA188 8027B8A8 C602000C */ lwc1 $f2, 0xc($s0) -/* 1AA18C 8027B8AC C6040014 */ lwc1 $f4, 0x14($s0) -/* 1AA190 8027B8B0 44820000 */ mtc1 $v0, $f0 -/* 1AA194 8027B8B4 00000000 */ nop -/* 1AA198 8027B8B8 46800020 */ cvt.s.w $f0, $f0 -/* 1AA19C 8027B8BC E600005C */ swc1 $f0, 0x5c($s0) -/* 1AA1A0 8027B8C0 E6020018 */ swc1 $f2, 0x18($s0) -/* 1AA1A4 8027B8C4 E6040020 */ swc1 $f4, 0x20($s0) -.L8027B8C8: -/* 1AA1A8 8027B8C8 C6200050 */ lwc1 $f0, 0x50($s1) -/* 1AA1AC 8027B8CC 3C013F80 */ lui $at, 0x3f80 -/* 1AA1B0 8027B8D0 44812000 */ mtc1 $at, $f4 -/* 1AA1B4 8027B8D4 86220064 */ lh $v0, 0x64($s1) -/* 1AA1B8 8027B8D8 46040000 */ add.s $f0, $f0, $f4 -/* 1AA1BC 8027B8DC 44821000 */ mtc1 $v0, $f2 -/* 1AA1C0 8027B8E0 00000000 */ nop -/* 1AA1C4 8027B8E4 468010A0 */ cvt.s.w $f2, $f2 -/* 1AA1C8 8027B8E8 4600103C */ c.lt.s $f2, $f0 -/* 1AA1CC 8027B8EC 00000000 */ nop -/* 1AA1D0 8027B8F0 45000010 */ bc1f .L8027B934 -/* 1AA1D4 8027B8F4 E6200050 */ swc1 $f0, 0x50($s1) -/* 1AA1D8 8027B8F8 C620000C */ lwc1 $f0, 0xc($s1) -/* 1AA1DC 8027B8FC 8E0401A4 */ lw $a0, 0x1a4($s0) -/* 1AA1E0 8027B900 E6000144 */ swc1 $f0, 0x144($s0) -/* 1AA1E4 8027B904 C6200010 */ lwc1 $f0, 0x10($s1) -/* 1AA1E8 8027B908 E6000148 */ swc1 $f0, 0x148($s0) -/* 1AA1EC 8027B90C C6200014 */ lwc1 $f0, 0x14($s1) -/* 1AA1F0 8027B910 1080FFA0 */ beqz $a0, .L8027B794 -/* 1AA1F4 8027B914 E600014C */ swc1 $f0, 0x14c($s0) -/* 1AA1F8 8027B918 8E0201A8 */ lw $v0, 0x1a8($s0) -/* 1AA1FC 8027B91C 1440009F */ bnez $v0, .L8027BB9C -/* 1AA200 8027B920 24020002 */ addiu $v0, $zero, 2 -/* 1AA204 8027B924 0C0154F0 */ jal snd_stop_sound -/* 1AA208 8027B928 00000000 */ nop -/* 1AA20C 8027B92C 0809EEE7 */ j .L8027BB9C -/* 1AA210 8027B930 24020002 */ addiu $v0, $zero, 2 -.L8027B934: -/* 1AA214 8027B934 8E0201A4 */ lw $v0, 0x1a4($s0) -/* 1AA218 8027B938 10400047 */ beqz $v0, .L8027BA58 -/* 1AA21C 8027B93C 00000000 */ nop -/* 1AA220 8027B940 8E0201A8 */ lw $v0, 0x1a8($s0) -/* 1AA224 8027B944 10400044 */ beqz $v0, .L8027BA58 -/* 1AA228 8027B948 00000000 */ nop -/* 1AA22C 8027B94C 860201B6 */ lh $v0, 0x1b6($s0) -/* 1AA230 8027B950 0440001C */ bltz $v0, .L8027B9C4 -/* 1AA234 8027B954 00000000 */ nop -/* 1AA238 8027B958 C6220044 */ lwc1 $f2, 0x44($s1) -/* 1AA23C 8027B95C C6200040 */ lwc1 $f0, 0x40($s1) -/* 1AA240 8027B960 46001080 */ add.s $f2, $f2, $f0 -/* 1AA244 8027B964 E6220044 */ swc1 $f2, 0x44($s1) -/* 1AA248 8027B968 860201B6 */ lh $v0, 0x1b6($s0) -/* 1AA24C 8027B96C 44820000 */ mtc1 $v0, $f0 -/* 1AA250 8027B970 00000000 */ nop -/* 1AA254 8027B974 46800020 */ cvt.s.w $f0, $f0 -/* 1AA258 8027B978 4602003C */ c.lt.s $f0, $f2 -/* 1AA25C 8027B97C 00000000 */ nop -/* 1AA260 8027B980 45000035 */ bc1f .L8027BA58 -/* 1AA264 8027B984 00000000 */ nop -/* 1AA268 8027B988 92020135 */ lbu $v0, 0x135($s0) -/* 1AA26C 8027B98C 24420001 */ addiu $v0, $v0, 1 -/* 1AA270 8027B990 A2020135 */ sb $v0, 0x135($s0) -/* 1AA274 8027B994 AE200044 */ sw $zero, 0x44($s1) -/* 1AA278 8027B998 92020135 */ lbu $v0, 0x135($s0) -/* 1AA27C 8027B99C 30420001 */ andi $v0, $v0, 1 -/* 1AA280 8027B9A0 10400023 */ beqz $v0, .L8027BA30 -/* 1AA284 8027B9A4 00000000 */ nop -/* 1AA288 8027B9A8 8E0201A4 */ lw $v0, 0x1a4($s0) -/* 1AA28C 8027B9AC 1040002A */ beqz $v0, .L8027BA58 -/* 1AA290 8027B9B0 00000000 */ nop -/* 1AA294 8027B9B4 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1AA298 8027B9B8 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AA29C 8027B9BC 0809EE92 */ j .L8027BA48 -/* 1AA2A0 8027B9C0 8E0401A4 */ lw $a0, 0x1a4($s0) -.L8027B9C4: -/* 1AA2A4 8027B9C4 C6200044 */ lwc1 $f0, 0x44($s1) -/* 1AA2A8 8027B9C8 46040000 */ add.s $f0, $f0, $f4 -/* 1AA2AC 8027B9CC E6200044 */ swc1 $f0, 0x44($s1) -/* 1AA2B0 8027B9D0 860201B6 */ lh $v0, 0x1b6($s0) -/* 1AA2B4 8027B9D4 00021023 */ negu $v0, $v0 -/* 1AA2B8 8027B9D8 44821000 */ mtc1 $v0, $f2 -/* 1AA2BC 8027B9DC 00000000 */ nop -/* 1AA2C0 8027B9E0 468010A0 */ cvt.s.w $f2, $f2 -/* 1AA2C4 8027B9E4 4600103E */ c.le.s $f2, $f0 -/* 1AA2C8 8027B9E8 00000000 */ nop -/* 1AA2CC 8027B9EC 4500001A */ bc1f .L8027BA58 -/* 1AA2D0 8027B9F0 00000000 */ nop -/* 1AA2D4 8027B9F4 92020135 */ lbu $v0, 0x135($s0) -/* 1AA2D8 8027B9F8 24420001 */ addiu $v0, $v0, 1 -/* 1AA2DC 8027B9FC A2020135 */ sb $v0, 0x135($s0) -/* 1AA2E0 8027BA00 AE200044 */ sw $zero, 0x44($s1) -/* 1AA2E4 8027BA04 92020135 */ lbu $v0, 0x135($s0) -/* 1AA2E8 8027BA08 30420001 */ andi $v0, $v0, 1 -/* 1AA2EC 8027BA0C 10400008 */ beqz $v0, .L8027BA30 -/* 1AA2F0 8027BA10 00000000 */ nop -/* 1AA2F4 8027BA14 8E0201A4 */ lw $v0, 0x1a4($s0) -/* 1AA2F8 8027BA18 1040000F */ beqz $v0, .L8027BA58 -/* 1AA2FC 8027BA1C 00000000 */ nop -/* 1AA300 8027BA20 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1AA304 8027BA24 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AA308 8027BA28 0809EE92 */ j .L8027BA48 -/* 1AA30C 8027BA2C 8E0401A4 */ lw $a0, 0x1a4($s0) -.L8027BA30: -/* 1AA310 8027BA30 8E0201A8 */ lw $v0, 0x1a8($s0) -/* 1AA314 8027BA34 10400008 */ beqz $v0, .L8027BA58 -/* 1AA318 8027BA38 00000000 */ nop -/* 1AA31C 8027BA3C C600014C */ lwc1 $f0, 0x14c($s0) -/* 1AA320 8027BA40 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1AA324 8027BA44 8E0401A8 */ lw $a0, 0x1a8($s0) -.L8027BA48: -/* 1AA328 8027BA48 8E060144 */ lw $a2, 0x144($s0) -/* 1AA32C 8027BA4C 8E070148 */ lw $a3, 0x148($s0) -/* 1AA330 8027BA50 0C052757 */ jal sfx_play_sound_at_position -/* 1AA334 8027BA54 0000282D */ daddu $a1, $zero, $zero -.L8027BA58: -/* 1AA338 8027BA58 C622000C */ lwc1 $f2, 0xc($s1) -/* 1AA33C 8027BA5C C6200000 */ lwc1 $f0, ($s1) -/* 1AA340 8027BA60 46001081 */ sub.s $f2, $f2, $f0 -/* 1AA344 8027BA64 46021102 */ mul.s $f4, $f2, $f2 -/* 1AA348 8027BA68 00000000 */ nop -/* 1AA34C 8027BA6C C6200004 */ lwc1 $f0, 4($s1) -/* 1AA350 8027BA70 C6220010 */ lwc1 $f2, 0x10($s1) -/* 1AA354 8027BA74 46001081 */ sub.s $f2, $f2, $f0 -/* 1AA358 8027BA78 46021182 */ mul.s $f6, $f2, $f2 -/* 1AA35C 8027BA7C 00000000 */ nop -/* 1AA360 8027BA80 C6200008 */ lwc1 $f0, 8($s1) -/* 1AA364 8027BA84 C6220014 */ lwc1 $f2, 0x14($s1) -/* 1AA368 8027BA88 46001001 */ sub.s $f0, $f2, $f0 -/* 1AA36C 8027BA8C 46000002 */ mul.s $f0, $f0, $f0 -/* 1AA370 8027BA90 00000000 */ nop -/* 1AA374 8027BA94 46062100 */ add.s $f4, $f4, $f6 -/* 1AA378 8027BA98 46002300 */ add.s $f12, $f4, $f0 -/* 1AA37C 8027BA9C 46006004 */ sqrt.s $f0, $f12 -/* 1AA380 8027BAA0 46000032 */ c.eq.s $f0, $f0 -/* 1AA384 8027BAA4 00000000 */ nop -/* 1AA388 8027BAA8 45010003 */ bc1t .L8027BAB8 -/* 1AA38C 8027BAAC 00000000 */ nop -/* 1AA390 8027BAB0 0C0187BC */ jal sqrtf -/* 1AA394 8027BAB4 00000000 */ nop -.L8027BAB8: -/* 1AA398 8027BAB8 4480A000 */ mtc1 $zero, $f20 -/* 1AA39C 8027BABC 46000086 */ mov.s $f2, $f0 -/* 1AA3A0 8027BAC0 46141032 */ c.eq.s $f2, $f20 -/* 1AA3A4 8027BAC4 00000000 */ nop -/* 1AA3A8 8027BAC8 45000003 */ bc1f .L8027BAD8 -/* 1AA3AC 8027BACC 00000000 */ nop -/* 1AA3B0 8027BAD0 3C013F80 */ lui $at, 0x3f80 -/* 1AA3B4 8027BAD4 44811000 */ mtc1 $at, $f2 -.L8027BAD8: -/* 1AA3B8 8027BAD8 C620004C */ lwc1 $f0, 0x4c($s1) -/* 1AA3BC 8027BADC 46140032 */ c.eq.s $f0, $f20 -/* 1AA3C0 8027BAE0 00000000 */ nop -/* 1AA3C4 8027BAE4 45000006 */ bc1f .L8027BB00 -/* 1AA3C8 8027BAE8 00000000 */ nop -/* 1AA3CC 8027BAEC 3C013F80 */ lui $at, 0x3f80 -/* 1AA3D0 8027BAF0 44810000 */ mtc1 $at, $f0 -/* 1AA3D4 8027BAF4 00000000 */ nop -/* 1AA3D8 8027BAF8 E620004C */ swc1 $f0, 0x4c($s1) -/* 1AA3DC 8027BAFC C620004C */ lwc1 $f0, 0x4c($s1) -.L8027BB00: -/* 1AA3E0 8027BB00 3C013FF0 */ lui $at, 0x3ff0 -/* 1AA3E4 8027BB04 44816800 */ mtc1 $at, $f13 -/* 1AA3E8 8027BB08 44806000 */ mtc1 $zero, $f12 -/* 1AA3EC 8027BB0C 46001003 */ div.s $f0, $f2, $f0 -/* 1AA3F0 8027BB10 46000021 */ cvt.d.s $f0, $f0 -/* 1AA3F4 8027BB14 46206301 */ sub.d $f12, $f12, $f0 -/* 1AA3F8 8027BB18 3C01802A */ lui $at, %hi(D_8029DA10) -/* 1AA3FC 8027BB1C D420DA10 */ ldc1 $f0, %lo(D_8029DA10)($at) -/* 1AA400 8027BB20 46206302 */ mul.d $f12, $f12, $f0 -/* 1AA404 8027BB24 00000000 */ nop -/* 1AA408 8027BB28 0C00A8BB */ jal sin_deg -/* 1AA40C 8027BB2C 46206320 */ cvt.s.d $f12, $f12 -/* 1AA410 8027BB30 86230066 */ lh $v1, 0x66($s1) -/* 1AA414 8027BB34 14600002 */ bnez $v1, .L8027BB40 -/* 1AA418 8027BB38 46000106 */ mov.s $f4, $f0 -/* 1AA41C 8027BB3C 4600A106 */ mov.s $f4, $f20 -.L8027BB40: -/* 1AA420 8027BB40 04610007 */ bgez $v1, .L8027BB60 -/* 1AA424 8027BB44 00031023 */ negu $v0, $v1 -/* 1AA428 8027BB48 44821000 */ mtc1 $v0, $f2 -/* 1AA42C 8027BB4C 00000000 */ nop -/* 1AA430 8027BB50 468010A0 */ cvt.s.w $f2, $f2 -/* 1AA434 8027BB54 46002007 */ neg.s $f0, $f4 -/* 1AA438 8027BB58 46020102 */ mul.s $f4, $f0, $f2 -/* 1AA43C 8027BB5C 00000000 */ nop -.L8027BB60: -/* 1AA440 8027BB60 18600006 */ blez $v1, .L8027BB7C -/* 1AA444 8027BB64 00000000 */ nop -/* 1AA448 8027BB68 44830000 */ mtc1 $v1, $f0 -/* 1AA44C 8027BB6C 00000000 */ nop -/* 1AA450 8027BB70 46800020 */ cvt.s.w $f0, $f0 -/* 1AA454 8027BB74 46002102 */ mul.s $f4, $f4, $f0 -/* 1AA458 8027BB78 00000000 */ nop -.L8027BB7C: -/* 1AA45C 8027BB7C C6200000 */ lwc1 $f0, ($s1) -/* 1AA460 8027BB80 E6000144 */ swc1 $f0, 0x144($s0) -/* 1AA464 8027BB84 C6200004 */ lwc1 $f0, 4($s1) -/* 1AA468 8027BB88 46040000 */ add.s $f0, $f0, $f4 -/* 1AA46C 8027BB8C E6000148 */ swc1 $f0, 0x148($s0) -/* 1AA470 8027BB90 C6200008 */ lwc1 $f0, 8($s1) -/* 1AA474 8027BB94 0000102D */ daddu $v0, $zero, $zero -/* 1AA478 8027BB98 E600014C */ swc1 $f0, 0x14c($s0) -.L8027BB9C: -/* 1AA47C 8027BB9C 8FBF0024 */ lw $ra, 0x24($sp) -/* 1AA480 8027BBA0 8FB20020 */ lw $s2, 0x20($sp) -/* 1AA484 8027BBA4 8FB1001C */ lw $s1, 0x1c($sp) -/* 1AA488 8027BBA8 8FB00018 */ lw $s0, 0x18($sp) -/* 1AA48C 8027BBAC D7B40028 */ ldc1 $f20, 0x28($sp) -/* 1AA490 8027BBB0 03E00008 */ jr $ra -/* 1AA494 8027BBB4 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/1A5830/IdleFlyToGoal.s b/ver/us/asm/nonmatchings/1A5830/IdleFlyToGoal.s deleted file mode 100644 index c7452f8682..0000000000 --- a/ver/us/asm/nonmatchings/1A5830/IdleFlyToGoal.s +++ /dev/null @@ -1,249 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029DA18 -.double 180.0 - -.section .text - -glabel IdleFlyToGoal -/* 1AA498 8027BBB8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 1AA49C 8027BBBC AFB20020 */ sw $s2, 0x20($sp) -/* 1AA4A0 8027BBC0 0080902D */ daddu $s2, $a0, $zero -/* 1AA4A4 8027BBC4 AFBF0024 */ sw $ra, 0x24($sp) -/* 1AA4A8 8027BBC8 AFB1001C */ sw $s1, 0x1c($sp) -/* 1AA4AC 8027BBCC AFB00018 */ sw $s0, 0x18($sp) -/* 1AA4B0 8027BBD0 F7B60030 */ sdc1 $f22, 0x30($sp) -/* 1AA4B4 8027BBD4 F7B40028 */ sdc1 $f20, 0x28($sp) -/* 1AA4B8 8027BBD8 10A0004F */ beqz $a1, .L8027BD18 -/* 1AA4BC 8027BBDC 8E51000C */ lw $s1, 0xc($s2) -/* 1AA4C0 8027BBE0 8E250000 */ lw $a1, ($s1) -/* 1AA4C4 8027BBE4 0C0B1EAF */ jal evt_get_variable -/* 1AA4C8 8027BBE8 26310004 */ addiu $s1, $s1, 4 -/* 1AA4CC 8027BBEC 0040202D */ daddu $a0, $v0, $zero -/* 1AA4D0 8027BBF0 2402FF81 */ addiu $v0, $zero, -0x7f -/* 1AA4D4 8027BBF4 14820002 */ bne $a0, $v0, .L8027BC00 -/* 1AA4D8 8027BBF8 00000000 */ nop -/* 1AA4DC 8027BBFC 8E440148 */ lw $a0, 0x148($s2) -.L8027BC00: -/* 1AA4E0 8027BC00 0C09A75B */ jal get_actor -/* 1AA4E4 8027BC04 00000000 */ nop -/* 1AA4E8 8027BC08 0040802D */ daddu $s0, $v0, $zero -/* 1AA4EC 8027BC0C AE500074 */ sw $s0, 0x74($s2) -/* 1AA4F0 8027BC10 8E250000 */ lw $a1, ($s1) -/* 1AA4F4 8027BC14 26310004 */ addiu $s1, $s1, 4 -/* 1AA4F8 8027BC18 0C0B1EAF */ jal evt_get_variable -/* 1AA4FC 8027BC1C 0240202D */ daddu $a0, $s2, $zero -/* 1AA500 8027BC20 A6020120 */ sh $v0, 0x120($s0) -/* 1AA504 8027BC24 8E250000 */ lw $a1, ($s1) -/* 1AA508 8027BC28 26310004 */ addiu $s1, $s1, 4 -/* 1AA50C 8027BC2C 0C0B1EAF */ jal evt_get_variable -/* 1AA510 8027BC30 0240202D */ daddu $a0, $s2, $zero -/* 1AA514 8027BC34 A6020122 */ sh $v0, 0x122($s0) -/* 1AA518 8027BC38 8E250000 */ lw $a1, ($s1) -/* 1AA51C 8027BC3C 0C0B1EAF */ jal evt_get_variable -/* 1AA520 8027BC40 0240202D */ daddu $a0, $s2, $zero -/* 1AA524 8027BC44 AE42007C */ sw $v0, 0x7c($s2) -/* 1AA528 8027BC48 C60000D4 */ lwc1 $f0, 0xd4($s0) -/* 1AA52C 8027BC4C C6060144 */ lwc1 $f6, 0x144($s0) -/* 1AA530 8027BC50 46003081 */ sub.s $f2, $f6, $f0 -/* 1AA534 8027BC54 46021202 */ mul.s $f8, $f2, $f2 -/* 1AA538 8027BC58 00000000 */ nop -/* 1AA53C 8027BC5C C6040148 */ lwc1 $f4, 0x148($s0) -/* 1AA540 8027BC60 C60000D8 */ lwc1 $f0, 0xd8($s0) -/* 1AA544 8027BC64 46002081 */ sub.s $f2, $f4, $f0 -/* 1AA548 8027BC68 46021282 */ mul.s $f10, $f2, $f2 -/* 1AA54C 8027BC6C 00000000 */ nop -/* 1AA550 8027BC70 C60000DC */ lwc1 $f0, 0xdc($s0) -/* 1AA554 8027BC74 C602014C */ lwc1 $f2, 0x14c($s0) -/* 1AA558 8027BC78 46001001 */ sub.s $f0, $f2, $f0 -/* 1AA55C 8027BC7C 46000002 */ mul.s $f0, $f0, $f0 -/* 1AA560 8027BC80 00000000 */ nop -/* 1AA564 8027BC84 E60600C8 */ swc1 $f6, 0xc8($s0) -/* 1AA568 8027BC88 E60600E0 */ swc1 $f6, 0xe0($s0) -/* 1AA56C 8027BC8C 460A4200 */ add.s $f8, $f8, $f10 -/* 1AA570 8027BC90 E60400CC */ swc1 $f4, 0xcc($s0) -/* 1AA574 8027BC94 E60400E4 */ swc1 $f4, 0xe4($s0) -/* 1AA578 8027BC98 46004300 */ add.s $f12, $f8, $f0 -/* 1AA57C 8027BC9C E60200D0 */ swc1 $f2, 0xd0($s0) -/* 1AA580 8027BCA0 E60200E8 */ swc1 $f2, 0xe8($s0) -/* 1AA584 8027BCA4 46006084 */ sqrt.s $f2, $f12 -/* 1AA588 8027BCA8 46021032 */ c.eq.s $f2, $f2 -/* 1AA58C 8027BCAC 00000000 */ nop -/* 1AA590 8027BCB0 45010004 */ bc1t .L8027BCC4 -/* 1AA594 8027BCB4 261100C8 */ addiu $s1, $s0, 0xc8 -/* 1AA598 8027BCB8 0C0187BC */ jal sqrtf -/* 1AA59C 8027BCBC 00000000 */ nop -/* 1AA5A0 8027BCC0 46000086 */ mov.s $f2, $f0 -.L8027BCC4: -/* 1AA5A4 8027BCC4 86020120 */ lh $v0, 0x120($s0) -/* 1AA5A8 8027BCC8 14400007 */ bnez $v0, .L8027BCE8 -/* 1AA5AC 8027BCCC E6020114 */ swc1 $f2, 0x114($s0) -/* 1AA5B0 8027BCD0 C6000108 */ lwc1 $f0, 0x108($s0) -/* 1AA5B4 8027BCD4 46001003 */ div.s $f0, $f2, $f0 -/* 1AA5B8 8027BCD8 4600038D */ trunc.w.s $f14, $f0 -/* 1AA5BC 8027BCDC 44027000 */ mfc1 $v0, $f14 -/* 1AA5C0 8027BCE0 0809EF3F */ j .L8027BCFC -/* 1AA5C4 8027BCE4 A6020120 */ sh $v0, 0x120($s0) -.L8027BCE8: -/* 1AA5C8 8027BCE8 44820000 */ mtc1 $v0, $f0 -/* 1AA5CC 8027BCEC 00000000 */ nop -/* 1AA5D0 8027BCF0 46800020 */ cvt.s.w $f0, $f0 -/* 1AA5D4 8027BCF4 46001003 */ div.s $f0, $f2, $f0 -/* 1AA5D8 8027BCF8 E6000108 */ swc1 $f0, 0x108($s0) -.L8027BCFC: -/* 1AA5DC 8027BCFC 86220058 */ lh $v0, 0x58($s1) -/* 1AA5E0 8027BD00 54400003 */ bnel $v0, $zero, .L8027BD10 -/* 1AA5E4 8027BD04 AE200050 */ sw $zero, 0x50($s1) -/* 1AA5E8 8027BD08 0809EFC6 */ j .L8027BF18 -/* 1AA5EC 8027BD0C 24020002 */ addiu $v0, $zero, 2 -.L8027BD10: -/* 1AA5F0 8027BD10 AE200048 */ sw $zero, 0x48($s1) -/* 1AA5F4 8027BD14 AE200044 */ sw $zero, 0x44($s1) -.L8027BD18: -/* 1AA5F8 8027BD18 8E500074 */ lw $s0, 0x74($s2) -/* 1AA5FC 8027BD1C 86020120 */ lh $v0, 0x120($s0) -/* 1AA600 8027BD20 C6000118 */ lwc1 $f0, 0x118($s0) -/* 1AA604 8027BD24 AFA20010 */ sw $v0, 0x10($sp) -/* 1AA608 8027BD28 8E44007C */ lw $a0, 0x7c($s2) -/* 1AA60C 8027BD2C 8E0500E0 */ lw $a1, 0xe0($s0) -/* 1AA610 8027BD30 8E0600D4 */ lw $a2, 0xd4($s0) -/* 1AA614 8027BD34 4600038D */ trunc.w.s $f14, $f0 -/* 1AA618 8027BD38 44077000 */ mfc1 $a3, $f14 -/* 1AA61C 8027BD3C 0C09EC37 */ jal update_lerp_battle -/* 1AA620 8027BD40 00000000 */ nop -/* 1AA624 8027BD44 C6020118 */ lwc1 $f2, 0x118($s0) -/* 1AA628 8027BD48 86020120 */ lh $v0, 0x120($s0) -/* 1AA62C 8027BD4C E60000C8 */ swc1 $f0, 0xc8($s0) -/* 1AA630 8027BD50 AFA20010 */ sw $v0, 0x10($sp) -/* 1AA634 8027BD54 8E44007C */ lw $a0, 0x7c($s2) -/* 1AA638 8027BD58 8E0500E4 */ lw $a1, 0xe4($s0) -/* 1AA63C 8027BD5C 8E0600D8 */ lw $a2, 0xd8($s0) -/* 1AA640 8027BD60 4600138D */ trunc.w.s $f14, $f2 -/* 1AA644 8027BD64 44077000 */ mfc1 $a3, $f14 -/* 1AA648 8027BD68 0C09EC37 */ jal update_lerp_battle -/* 1AA64C 8027BD6C 00000000 */ nop -/* 1AA650 8027BD70 C6020118 */ lwc1 $f2, 0x118($s0) -/* 1AA654 8027BD74 86020120 */ lh $v0, 0x120($s0) -/* 1AA658 8027BD78 E60000CC */ swc1 $f0, 0xcc($s0) -/* 1AA65C 8027BD7C AFA20010 */ sw $v0, 0x10($sp) -/* 1AA660 8027BD80 8E44007C */ lw $a0, 0x7c($s2) -/* 1AA664 8027BD84 8E0500E8 */ lw $a1, 0xe8($s0) -/* 1AA668 8027BD88 8E0600DC */ lw $a2, 0xdc($s0) -/* 1AA66C 8027BD8C 4600138D */ trunc.w.s $f14, $f2 -/* 1AA670 8027BD90 44077000 */ mfc1 $a3, $f14 -/* 1AA674 8027BD94 0C09EC37 */ jal update_lerp_battle -/* 1AA678 8027BD98 00000000 */ nop -/* 1AA67C 8027BD9C C6020118 */ lwc1 $f2, 0x118($s0) -/* 1AA680 8027BDA0 3C013F80 */ lui $at, 0x3f80 -/* 1AA684 8027BDA4 4481B000 */ mtc1 $at, $f22 -/* 1AA688 8027BDA8 86020120 */ lh $v0, 0x120($s0) -/* 1AA68C 8027BDAC 46161080 */ add.s $f2, $f2, $f22 -/* 1AA690 8027BDB0 E60000D0 */ swc1 $f0, 0xd0($s0) -/* 1AA694 8027BDB4 44820000 */ mtc1 $v0, $f0 -/* 1AA698 8027BDB8 00000000 */ nop -/* 1AA69C 8027BDBC 46800020 */ cvt.s.w $f0, $f0 -/* 1AA6A0 8027BDC0 4602003C */ c.lt.s $f0, $f2 -/* 1AA6A4 8027BDC4 00000000 */ nop -/* 1AA6A8 8027BDC8 45000009 */ bc1f .L8027BDF0 -/* 1AA6AC 8027BDCC E6020118 */ swc1 $f2, 0x118($s0) -/* 1AA6B0 8027BDD0 C60000D4 */ lwc1 $f0, 0xd4($s0) -/* 1AA6B4 8027BDD4 C60200D8 */ lwc1 $f2, 0xd8($s0) -/* 1AA6B8 8027BDD8 C60400DC */ lwc1 $f4, 0xdc($s0) -/* 1AA6BC 8027BDDC 24020002 */ addiu $v0, $zero, 2 -/* 1AA6C0 8027BDE0 E6000144 */ swc1 $f0, 0x144($s0) -/* 1AA6C4 8027BDE4 E6020148 */ swc1 $f2, 0x148($s0) -/* 1AA6C8 8027BDE8 0809EFC6 */ j .L8027BF18 -/* 1AA6CC 8027BDEC E604014C */ swc1 $f4, 0x14c($s0) -.L8027BDF0: -/* 1AA6D0 8027BDF0 C60200D4 */ lwc1 $f2, 0xd4($s0) -/* 1AA6D4 8027BDF4 C60000C8 */ lwc1 $f0, 0xc8($s0) -/* 1AA6D8 8027BDF8 46001081 */ sub.s $f2, $f2, $f0 -/* 1AA6DC 8027BDFC 46021102 */ mul.s $f4, $f2, $f2 -/* 1AA6E0 8027BE00 00000000 */ nop -/* 1AA6E4 8027BE04 C60000CC */ lwc1 $f0, 0xcc($s0) -/* 1AA6E8 8027BE08 C60200D8 */ lwc1 $f2, 0xd8($s0) -/* 1AA6EC 8027BE0C 46001081 */ sub.s $f2, $f2, $f0 -/* 1AA6F0 8027BE10 46021182 */ mul.s $f6, $f2, $f2 -/* 1AA6F4 8027BE14 00000000 */ nop -/* 1AA6F8 8027BE18 C60000D0 */ lwc1 $f0, 0xd0($s0) -/* 1AA6FC 8027BE1C C60200DC */ lwc1 $f2, 0xdc($s0) -/* 1AA700 8027BE20 46001001 */ sub.s $f0, $f2, $f0 -/* 1AA704 8027BE24 46000002 */ mul.s $f0, $f0, $f0 -/* 1AA708 8027BE28 00000000 */ nop -/* 1AA70C 8027BE2C 46062100 */ add.s $f4, $f4, $f6 -/* 1AA710 8027BE30 46002300 */ add.s $f12, $f4, $f0 -/* 1AA714 8027BE34 46006004 */ sqrt.s $f0, $f12 -/* 1AA718 8027BE38 46000032 */ c.eq.s $f0, $f0 -/* 1AA71C 8027BE3C 00000000 */ nop -/* 1AA720 8027BE40 45010003 */ bc1t .L8027BE50 -/* 1AA724 8027BE44 00000000 */ nop -/* 1AA728 8027BE48 0C0187BC */ jal sqrtf -/* 1AA72C 8027BE4C 00000000 */ nop -.L8027BE50: -/* 1AA730 8027BE50 4480A000 */ mtc1 $zero, $f20 -/* 1AA734 8027BE54 46000086 */ mov.s $f2, $f0 -/* 1AA738 8027BE58 46141032 */ c.eq.s $f2, $f20 -/* 1AA73C 8027BE5C 00000000 */ nop -/* 1AA740 8027BE60 45030001 */ bc1tl .L8027BE68 -/* 1AA744 8027BE64 4600B086 */ mov.s $f2, $f22 -.L8027BE68: -/* 1AA748 8027BE68 C6000114 */ lwc1 $f0, 0x114($s0) -/* 1AA74C 8027BE6C 46140032 */ c.eq.s $f0, $f20 -/* 1AA750 8027BE70 00000000 */ nop -/* 1AA754 8027BE74 45030001 */ bc1tl .L8027BE7C -/* 1AA758 8027BE78 E6160114 */ swc1 $f22, 0x114($s0) -.L8027BE7C: -/* 1AA75C 8027BE7C C6000114 */ lwc1 $f0, 0x114($s0) -/* 1AA760 8027BE80 3C013FF0 */ lui $at, 0x3ff0 -/* 1AA764 8027BE84 44816800 */ mtc1 $at, $f13 -/* 1AA768 8027BE88 44806000 */ mtc1 $zero, $f12 -/* 1AA76C 8027BE8C 46001003 */ div.s $f0, $f2, $f0 -/* 1AA770 8027BE90 46000021 */ cvt.d.s $f0, $f0 -/* 1AA774 8027BE94 46206301 */ sub.d $f12, $f12, $f0 -/* 1AA778 8027BE98 3C01802A */ lui $at, %hi(D_8029DA18) -/* 1AA77C 8027BE9C D420DA18 */ ldc1 $f0, %lo(D_8029DA18)($at) -/* 1AA780 8027BEA0 46206302 */ mul.d $f12, $f12, $f0 -/* 1AA784 8027BEA4 00000000 */ nop -/* 1AA788 8027BEA8 0C00A8BB */ jal sin_deg -/* 1AA78C 8027BEAC 46206320 */ cvt.s.d $f12, $f12 -/* 1AA790 8027BEB0 86030122 */ lh $v1, 0x122($s0) -/* 1AA794 8027BEB4 14600002 */ bnez $v1, .L8027BEC0 -/* 1AA798 8027BEB8 46000186 */ mov.s $f6, $f0 -/* 1AA79C 8027BEBC 4600A186 */ mov.s $f6, $f20 -.L8027BEC0: -/* 1AA7A0 8027BEC0 04610007 */ bgez $v1, .L8027BEE0 -/* 1AA7A4 8027BEC4 00031023 */ negu $v0, $v1 -/* 1AA7A8 8027BEC8 44821000 */ mtc1 $v0, $f2 -/* 1AA7AC 8027BECC 00000000 */ nop -/* 1AA7B0 8027BED0 468010A0 */ cvt.s.w $f2, $f2 -/* 1AA7B4 8027BED4 46003007 */ neg.s $f0, $f6 -/* 1AA7B8 8027BED8 46020182 */ mul.s $f6, $f0, $f2 -/* 1AA7BC 8027BEDC 00000000 */ nop -.L8027BEE0: -/* 1AA7C0 8027BEE0 18600006 */ blez $v1, .L8027BEFC -/* 1AA7C4 8027BEE4 0000102D */ daddu $v0, $zero, $zero -/* 1AA7C8 8027BEE8 44830000 */ mtc1 $v1, $f0 -/* 1AA7CC 8027BEEC 00000000 */ nop -/* 1AA7D0 8027BEF0 46800020 */ cvt.s.w $f0, $f0 -/* 1AA7D4 8027BEF4 46003182 */ mul.s $f6, $f6, $f0 -/* 1AA7D8 8027BEF8 00000000 */ nop -.L8027BEFC: -/* 1AA7DC 8027BEFC C60000C8 */ lwc1 $f0, 0xc8($s0) -/* 1AA7E0 8027BF00 C60200CC */ lwc1 $f2, 0xcc($s0) -/* 1AA7E4 8027BF04 C60400D0 */ lwc1 $f4, 0xd0($s0) -/* 1AA7E8 8027BF08 46061080 */ add.s $f2, $f2, $f6 -/* 1AA7EC 8027BF0C E6000144 */ swc1 $f0, 0x144($s0) -/* 1AA7F0 8027BF10 E604014C */ swc1 $f4, 0x14c($s0) -/* 1AA7F4 8027BF14 E6020148 */ swc1 $f2, 0x148($s0) -.L8027BF18: -/* 1AA7F8 8027BF18 8FBF0024 */ lw $ra, 0x24($sp) -/* 1AA7FC 8027BF1C 8FB20020 */ lw $s2, 0x20($sp) -/* 1AA800 8027BF20 8FB1001C */ lw $s1, 0x1c($sp) -/* 1AA804 8027BF24 8FB00018 */ lw $s0, 0x18($sp) -/* 1AA808 8027BF28 D7B60030 */ ldc1 $f22, 0x30($sp) -/* 1AA80C 8027BF2C D7B40028 */ ldc1 $f20, 0x28($sp) -/* 1AA810 8027BF30 03E00008 */ jr $ra -/* 1AA814 8027BF34 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/ver/us/asm/nonmatchings/1A5830/IdleRunToGoal.s b/ver/us/asm/nonmatchings/1A5830/IdleRunToGoal.s deleted file mode 100644 index 4b8bc29508..0000000000 --- a/ver/us/asm/nonmatchings/1A5830/IdleRunToGoal.s +++ /dev/null @@ -1,175 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel IdleRunToGoal -/* 1A8B44 8027A264 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 1A8B48 8027A268 AFB20020 */ sw $s2, 0x20($sp) -/* 1A8B4C 8027A26C 0080902D */ daddu $s2, $a0, $zero -/* 1A8B50 8027A270 AFBF0024 */ sw $ra, 0x24($sp) -/* 1A8B54 8027A274 AFB1001C */ sw $s1, 0x1c($sp) -/* 1A8B58 8027A278 AFB00018 */ sw $s0, 0x18($sp) -/* 1A8B5C 8027A27C F7BA0040 */ sdc1 $f26, 0x40($sp) -/* 1A8B60 8027A280 F7B80038 */ sdc1 $f24, 0x38($sp) -/* 1A8B64 8027A284 F7B60030 */ sdc1 $f22, 0x30($sp) -/* 1A8B68 8027A288 F7B40028 */ sdc1 $f20, 0x28($sp) -/* 1A8B6C 8027A28C 8E51000C */ lw $s1, 0xc($s2) -/* 1A8B70 8027A290 54A00001 */ bnel $a1, $zero, .L8027A298 -/* 1A8B74 8027A294 AE400070 */ sw $zero, 0x70($s2) -.L8027A298: -/* 1A8B78 8027A298 8E420070 */ lw $v0, 0x70($s2) -/* 1A8B7C 8027A29C 14400055 */ bnez $v0, .L8027A3F4 -/* 1A8B80 8027A2A0 00000000 */ nop -/* 1A8B84 8027A2A4 8E250000 */ lw $a1, ($s1) -/* 1A8B88 8027A2A8 26310004 */ addiu $s1, $s1, 4 -/* 1A8B8C 8027A2AC 0C0B1EAF */ jal evt_get_variable -/* 1A8B90 8027A2B0 0240202D */ daddu $a0, $s2, $zero -/* 1A8B94 8027A2B4 0040202D */ daddu $a0, $v0, $zero -/* 1A8B98 8027A2B8 2402FF81 */ addiu $v0, $zero, -0x7f -/* 1A8B9C 8027A2BC 14820002 */ bne $a0, $v0, .L8027A2C8 -/* 1A8BA0 8027A2C0 00000000 */ nop -/* 1A8BA4 8027A2C4 8E440148 */ lw $a0, 0x148($s2) -.L8027A2C8: -/* 1A8BA8 8027A2C8 0C09A75B */ jal get_actor -/* 1A8BAC 8027A2CC 00000000 */ nop -/* 1A8BB0 8027A2D0 0040802D */ daddu $s0, $v0, $zero -/* 1A8BB4 8027A2D4 AE500074 */ sw $s0, 0x74($s2) -/* 1A8BB8 8027A2D8 8E250000 */ lw $a1, ($s1) -/* 1A8BBC 8027A2DC 0C0B1EAF */ jal evt_get_variable -/* 1A8BC0 8027A2E0 0240202D */ daddu $a0, $s2, $zero -/* 1A8BC4 8027A2E4 C61600D4 */ lwc1 $f22, 0xd4($s0) -/* 1A8BC8 8027A2E8 C61800DC */ lwc1 $f24, 0xdc($s0) -/* 1A8BCC 8027A2EC C6000144 */ lwc1 $f0, 0x144($s0) -/* 1A8BD0 8027A2F0 C614014C */ lwc1 $f20, 0x14c($s0) -/* 1A8BD4 8027A2F4 C60200D8 */ lwc1 $f2, 0xd8($s0) -/* 1A8BD8 8027A2F8 4406B000 */ mfc1 $a2, $f22 -/* 1A8BDC 8027A2FC 4407C000 */ mfc1 $a3, $f24 -/* 1A8BE0 8027A300 261100C8 */ addiu $s1, $s0, 0xc8 -/* 1A8BE4 8027A304 A6020120 */ sh $v0, 0x120($s0) -/* 1A8BE8 8027A308 E60000C8 */ swc1 $f0, 0xc8($s0) -/* 1A8BEC 8027A30C C6000148 */ lwc1 $f0, 0x148($s0) -/* 1A8BF0 8027A310 C61A00C8 */ lwc1 $f26, 0xc8($s0) -/* 1A8BF4 8027A314 4600A386 */ mov.s $f14, $f20 -/* 1A8BF8 8027A318 E61400D0 */ swc1 $f20, 0xd0($s0) -/* 1A8BFC 8027A31C E61600E0 */ swc1 $f22, 0xe0($s0) -/* 1A8C00 8027A320 E60200E4 */ swc1 $f2, 0xe4($s0) -/* 1A8C04 8027A324 E61800E8 */ swc1 $f24, 0xe8($s0) -/* 1A8C08 8027A328 4600D306 */ mov.s $f12, $f26 -/* 1A8C0C 8027A32C 0C00A720 */ jal atan2 -/* 1A8C10 8027A330 E60000CC */ swc1 $f0, 0xcc($s0) -/* 1A8C14 8027A334 4600D306 */ mov.s $f12, $f26 -/* 1A8C18 8027A338 4406B000 */ mfc1 $a2, $f22 -/* 1A8C1C 8027A33C 4407C000 */ mfc1 $a3, $f24 -/* 1A8C20 8027A340 4600A386 */ mov.s $f14, $f20 -/* 1A8C24 8027A344 0C00A7B5 */ jal dist2D -/* 1A8C28 8027A348 E6000110 */ swc1 $f0, 0x110($s0) -/* 1A8C2C 8027A34C 86020120 */ lh $v0, 0x120($s0) -/* 1A8C30 8027A350 46000086 */ mov.s $f2, $f0 -/* 1A8C34 8027A354 14400018 */ bnez $v0, .L8027A3B8 -/* 1A8C38 8027A358 E6020114 */ swc1 $f2, 0x114($s0) -/* 1A8C3C 8027A35C C6000108 */ lwc1 $f0, 0x108($s0) -/* 1A8C40 8027A360 46001003 */ div.s $f0, $f2, $f0 -/* 1A8C44 8027A364 4600020D */ trunc.w.s $f8, $f0 -/* 1A8C48 8027A368 44024000 */ mfc1 $v0, $f8 -/* 1A8C4C 8027A36C 00000000 */ nop -/* 1A8C50 8027A370 A6020120 */ sh $v0, 0x120($s0) -/* 1A8C54 8027A374 00021400 */ sll $v0, $v0, 0x10 -/* 1A8C58 8027A378 14400002 */ bnez $v0, .L8027A384 -/* 1A8C5C 8027A37C 24020001 */ addiu $v0, $zero, 1 -/* 1A8C60 8027A380 A6020120 */ sh $v0, 0x120($s0) -.L8027A384: -/* 1A8C64 8027A384 86020120 */ lh $v0, 0x120($s0) -/* 1A8C68 8027A388 C6020108 */ lwc1 $f2, 0x108($s0) -/* 1A8C6C 8027A38C 44823000 */ mtc1 $v0, $f6 -/* 1A8C70 8027A390 00000000 */ nop -/* 1A8C74 8027A394 468031A0 */ cvt.s.w $f6, $f6 -/* 1A8C78 8027A398 46023102 */ mul.s $f4, $f6, $f2 -/* 1A8C7C 8027A39C 00000000 */ nop -/* 1A8C80 8027A3A0 C6000114 */ lwc1 $f0, 0x114($s0) -/* 1A8C84 8027A3A4 46040001 */ sub.s $f0, $f0, $f4 -/* 1A8C88 8027A3A8 46060003 */ div.s $f0, $f0, $f6 -/* 1A8C8C 8027A3AC 46001080 */ add.s $f2, $f2, $f0 -/* 1A8C90 8027A3B0 0809E8F3 */ j .L8027A3CC -/* 1A8C94 8027A3B4 E6020108 */ swc1 $f2, 0x108($s0) -.L8027A3B8: -/* 1A8C98 8027A3B8 44820000 */ mtc1 $v0, $f0 -/* 1A8C9C 8027A3BC 00000000 */ nop -/* 1A8CA0 8027A3C0 46800020 */ cvt.s.w $f0, $f0 -/* 1A8CA4 8027A3C4 46001003 */ div.s $f0, $f2, $f0 -/* 1A8CA8 8027A3C8 E6000108 */ swc1 $f0, 0x108($s0) -.L8027A3CC: -/* 1A8CAC 8027A3CC 860201B4 */ lh $v0, 0x1b4($s0) -/* 1A8CB0 8027A3D0 04420002 */ bltzl $v0, .L8027A3DC -/* 1A8CB4 8027A3D4 00021027 */ nor $v0, $zero, $v0 -/* 1A8CB8 8027A3D8 24420001 */ addiu $v0, $v0, 1 -.L8027A3DC: -/* 1A8CBC 8027A3DC 44820000 */ mtc1 $v0, $f0 -/* 1A8CC0 8027A3E0 00000000 */ nop -/* 1A8CC4 8027A3E4 46800020 */ cvt.s.w $f0, $f0 -/* 1A8CC8 8027A3E8 E620004C */ swc1 $f0, 0x4c($s1) -/* 1A8CCC 8027A3EC 24020001 */ addiu $v0, $zero, 1 -/* 1A8CD0 8027A3F0 AE420070 */ sw $v0, 0x70($s2) -.L8027A3F4: -/* 1A8CD4 8027A3F4 8E500074 */ lw $s0, 0x74($s2) -/* 1A8CD8 8027A3F8 261100C8 */ addiu $s1, $s0, 0xc8 -/* 1A8CDC 8027A3FC 8E050108 */ lw $a1, 0x108($s0) -/* 1A8CE0 8027A400 8E060110 */ lw $a2, 0x110($s0) -/* 1A8CE4 8027A404 0C099096 */ jal add_xz_vec3f_copy2 -/* 1A8CE8 8027A408 0220202D */ daddu $a0, $s1, $zero -/* 1A8CEC 8027A40C C6020108 */ lwc1 $f2, 0x108($s0) -/* 1A8CF0 8027A410 3C014080 */ lui $at, 0x4080 -/* 1A8CF4 8027A414 44810000 */ mtc1 $at, $f0 -/* 1A8CF8 8027A418 00000000 */ nop -/* 1A8CFC 8027A41C 4600103C */ c.lt.s $f2, $f0 -/* 1A8D00 8027A420 00000000 */ nop -/* 1A8D04 8027A424 45000007 */ bc1f .L8027A444 -/* 1A8D08 8027A428 0000202D */ daddu $a0, $zero, $zero -/* 1A8D0C 8027A42C C6000110 */ lwc1 $f0, 0x110($s0) -/* 1A8D10 8027A430 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8D14 8027A434 8E0500C8 */ lw $a1, 0xc8($s0) -/* 1A8D18 8027A438 8E0600CC */ lw $a2, 0xcc($s0) -/* 1A8D1C 8027A43C 0809E917 */ j .L8027A45C -/* 1A8D20 8027A440 8E0700D0 */ lw $a3, 0xd0($s0) -.L8027A444: -/* 1A8D24 8027A444 C6000110 */ lwc1 $f0, 0x110($s0) -/* 1A8D28 8027A448 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8D2C 8027A44C 8E0500C8 */ lw $a1, 0xc8($s0) -/* 1A8D30 8027A450 8E0600CC */ lw $a2, 0xcc($s0) -/* 1A8D34 8027A454 8E0700D0 */ lw $a3, 0xd0($s0) -/* 1A8D38 8027A458 24040001 */ addiu $a0, $zero, 1 -.L8027A45C: -/* 1A8D3C 8027A45C 0C0990BC */ jal play_movement_dust_effects -/* 1A8D40 8027A460 00000000 */ nop -/* 1A8D44 8027A464 C6200000 */ lwc1 $f0, ($s1) -/* 1A8D48 8027A468 E6000144 */ swc1 $f0, 0x144($s0) -/* 1A8D4C 8027A46C C6200008 */ lwc1 $f0, 8($s1) -/* 1A8D50 8027A470 E600014C */ swc1 $f0, 0x14c($s0) -/* 1A8D54 8027A474 96220058 */ lhu $v0, 0x58($s1) -/* 1A8D58 8027A478 2442FFFF */ addiu $v0, $v0, -1 -/* 1A8D5C 8027A47C A6220058 */ sh $v0, 0x58($s1) -/* 1A8D60 8027A480 00021400 */ sll $v0, $v0, 0x10 -/* 1A8D64 8027A484 1C40000D */ bgtz $v0, .L8027A4BC -/* 1A8D68 8027A488 0000102D */ daddu $v0, $zero, $zero -/* 1A8D6C 8027A48C C6200018 */ lwc1 $f0, 0x18($s1) -/* 1A8D70 8027A490 8E04019C */ lw $a0, 0x19c($s0) -/* 1A8D74 8027A494 E6000144 */ swc1 $f0, 0x144($s0) -/* 1A8D78 8027A498 C6200020 */ lwc1 $f0, 0x20($s1) -/* 1A8D7C 8027A49C 10800006 */ beqz $a0, .L8027A4B8 -/* 1A8D80 8027A4A0 E600014C */ swc1 $f0, 0x14c($s0) -/* 1A8D84 8027A4A4 8E0201A0 */ lw $v0, 0x1a0($s0) -/* 1A8D88 8027A4A8 14400004 */ bnez $v0, .L8027A4BC -/* 1A8D8C 8027A4AC 24020001 */ addiu $v0, $zero, 1 -/* 1A8D90 8027A4B0 0C0154F0 */ jal snd_stop_sound -/* 1A8D94 8027A4B4 00000000 */ nop -.L8027A4B8: -/* 1A8D98 8027A4B8 24020001 */ addiu $v0, $zero, 1 -.L8027A4BC: -/* 1A8D9C 8027A4BC 8FBF0024 */ lw $ra, 0x24($sp) -/* 1A8DA0 8027A4C0 8FB20020 */ lw $s2, 0x20($sp) -/* 1A8DA4 8027A4C4 8FB1001C */ lw $s1, 0x1c($sp) -/* 1A8DA8 8027A4C8 8FB00018 */ lw $s0, 0x18($sp) -/* 1A8DAC 8027A4CC D7BA0040 */ ldc1 $f26, 0x40($sp) -/* 1A8DB0 8027A4D0 D7B80038 */ ldc1 $f24, 0x38($sp) -/* 1A8DB4 8027A4D4 D7B60030 */ ldc1 $f22, 0x30($sp) -/* 1A8DB8 8027A4D8 D7B40028 */ ldc1 $f20, 0x28($sp) -/* 1A8DBC 8027A4DC 03E00008 */ jr $ra -/* 1A8DC0 8027A4E0 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/ver/us/asm/nonmatchings/1A5830/JumpWithBounce.s b/ver/us/asm/nonmatchings/1A5830/JumpWithBounce.s deleted file mode 100644 index ea9db20284..0000000000 --- a/ver/us/asm/nonmatchings/1A5830/JumpWithBounce.s +++ /dev/null @@ -1,253 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel JumpWithBounce -/* 1A8008 80279728 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 1A800C 8027972C AFB20020 */ sw $s2, 0x20($sp) -/* 1A8010 80279730 0080902D */ daddu $s2, $a0, $zero -/* 1A8014 80279734 AFBF0024 */ sw $ra, 0x24($sp) -/* 1A8018 80279738 AFB1001C */ sw $s1, 0x1c($sp) -/* 1A801C 8027973C AFB00018 */ sw $s0, 0x18($sp) -/* 1A8020 80279740 F7BE0050 */ sdc1 $f30, 0x50($sp) -/* 1A8024 80279744 F7BC0048 */ sdc1 $f28, 0x48($sp) -/* 1A8028 80279748 F7BA0040 */ sdc1 $f26, 0x40($sp) -/* 1A802C 8027974C F7B80038 */ sdc1 $f24, 0x38($sp) -/* 1A8030 80279750 F7B60030 */ sdc1 $f22, 0x30($sp) -/* 1A8034 80279754 F7B40028 */ sdc1 $f20, 0x28($sp) -/* 1A8038 80279758 8E51000C */ lw $s1, 0xc($s2) -/* 1A803C 8027975C 54A00001 */ bnel $a1, $zero, .L80279764 -/* 1A8040 80279760 AE400070 */ sw $zero, 0x70($s2) -.L80279764: -/* 1A8044 80279764 8E420070 */ lw $v0, 0x70($s2) -/* 1A8048 80279768 14400079 */ bnez $v0, .L80279950 -/* 1A804C 8027976C 24040002 */ addiu $a0, $zero, 2 -/* 1A8050 80279770 8E250000 */ lw $a1, ($s1) -/* 1A8054 80279774 26310004 */ addiu $s1, $s1, 4 -/* 1A8058 80279778 0C0B1EAF */ jal evt_get_variable -/* 1A805C 8027977C 0240202D */ daddu $a0, $s2, $zero -/* 1A8060 80279780 0040202D */ daddu $a0, $v0, $zero -/* 1A8064 80279784 2402FF81 */ addiu $v0, $zero, -0x7f -/* 1A8068 80279788 14820002 */ bne $a0, $v0, .L80279794 -/* 1A806C 8027978C 00000000 */ nop -/* 1A8070 80279790 8E440148 */ lw $a0, 0x148($s2) -.L80279794: -/* 1A8074 80279794 0C09A75B */ jal get_actor -/* 1A8078 80279798 00000000 */ nop -/* 1A807C 8027979C 0040802D */ daddu $s0, $v0, $zero -/* 1A8080 802797A0 AE500074 */ sw $s0, 0x74($s2) -/* 1A8084 802797A4 8E250000 */ lw $a1, ($s1) -/* 1A8088 802797A8 26310004 */ addiu $s1, $s1, 4 -/* 1A808C 802797AC 0C0B1EAF */ jal evt_get_variable -/* 1A8090 802797B0 0240202D */ daddu $a0, $s2, $zero -/* 1A8094 802797B4 A6020070 */ sh $v0, 0x70($s0) -/* 1A8098 802797B8 8E250000 */ lw $a1, ($s1) -/* 1A809C 802797BC 0C0B210B */ jal evt_get_float_variable -/* 1A80A0 802797C0 0240202D */ daddu $a0, $s2, $zero -/* 1A80A4 802797C4 C6020148 */ lwc1 $f2, 0x148($s0) -/* 1A80A8 802797C8 C61A0018 */ lwc1 $f26, 0x18($s0) -/* 1A80AC 802797CC C61C0020 */ lwc1 $f28, 0x20($s0) -/* 1A80B0 802797D0 C614014C */ lwc1 $f20, 0x14c($s0) -/* 1A80B4 802797D4 C618001C */ lwc1 $f24, 0x1c($s0) -/* 1A80B8 802797D8 2611000C */ addiu $s1, $s0, 0xc -/* 1A80BC 802797DC E600005C */ swc1 $f0, 0x5c($s0) -/* 1A80C0 802797E0 E6020010 */ swc1 $f2, 0x10($s0) -/* 1A80C4 802797E4 46001786 */ mov.s $f30, $f2 -/* 1A80C8 802797E8 4406D000 */ mfc1 $a2, $f26 -/* 1A80CC 802797EC 4407E000 */ mfc1 $a3, $f28 -/* 1A80D0 802797F0 C6020144 */ lwc1 $f2, 0x144($s0) -/* 1A80D4 802797F4 4600A386 */ mov.s $f14, $f20 -/* 1A80D8 802797F8 E6140014 */ swc1 $f20, 0x14($s0) -/* 1A80DC 802797FC E602000C */ swc1 $f2, 0xc($s0) -/* 1A80E0 80279800 46001586 */ mov.s $f22, $f2 -/* 1A80E4 80279804 0C00A720 */ jal atan2 -/* 1A80E8 80279808 4600B306 */ mov.s $f12, $f22 -/* 1A80EC 8027980C 4600B306 */ mov.s $f12, $f22 -/* 1A80F0 80279810 4600A386 */ mov.s $f14, $f20 -/* 1A80F4 80279814 4406D000 */ mfc1 $a2, $f26 -/* 1A80F8 80279818 4407E000 */ mfc1 $a3, $f28 -/* 1A80FC 8027981C 461EC781 */ sub.s $f30, $f24, $f30 -/* 1A8100 80279820 0C00A7B5 */ jal dist2D -/* 1A8104 80279824 E6000054 */ swc1 $f0, 0x54($s0) -/* 1A8108 80279828 86020070 */ lh $v0, 0x70($s0) -/* 1A810C 8027982C 46000106 */ mov.s $f4, $f0 -/* 1A8110 80279830 14400012 */ bnez $v0, .L8027987C -/* 1A8114 80279834 E6040058 */ swc1 $f4, 0x58($s0) -/* 1A8118 80279838 C600004C */ lwc1 $f0, 0x4c($s0) -/* 1A811C 8027983C C602004C */ lwc1 $f2, 0x4c($s0) -/* 1A8120 80279840 46002003 */ div.s $f0, $f4, $f0 -/* 1A8124 80279844 4600028D */ trunc.w.s $f10, $f0 -/* 1A8128 80279848 44035000 */ mfc1 $v1, $f10 -/* 1A812C 8027984C 00000000 */ nop -/* 1A8130 80279850 00031400 */ sll $v0, $v1, 0x10 -/* 1A8134 80279854 00021403 */ sra $v0, $v0, 0x10 -/* 1A8138 80279858 44820000 */ mtc1 $v0, $f0 -/* 1A813C 8027985C 00000000 */ nop -/* 1A8140 80279860 46800020 */ cvt.s.w $f0, $f0 -/* 1A8144 80279864 46020002 */ mul.s $f0, $f0, $f2 -/* 1A8148 80279868 00000000 */ nop -/* 1A814C 8027986C 46002086 */ mov.s $f2, $f4 -/* 1A8150 80279870 A6030070 */ sh $v1, 0x70($s0) -/* 1A8154 80279874 0809E62C */ j .L802798B0 -/* 1A8158 80279878 46001201 */ sub.s $f8, $f2, $f0 -.L8027987C: -/* 1A815C 8027987C 44821000 */ mtc1 $v0, $f2 -/* 1A8160 80279880 00000000 */ nop -/* 1A8164 80279884 468010A0 */ cvt.s.w $f2, $f2 -/* 1A8168 80279888 86020070 */ lh $v0, 0x70($s0) -/* 1A816C 8027988C 46022083 */ div.s $f2, $f4, $f2 -/* 1A8170 80279890 44820000 */ mtc1 $v0, $f0 -/* 1A8174 80279894 00000000 */ nop -/* 1A8178 80279898 46800020 */ cvt.s.w $f0, $f0 -/* 1A817C 8027989C 46020002 */ mul.s $f0, $f0, $f2 -/* 1A8180 802798A0 00000000 */ nop -/* 1A8184 802798A4 C6040058 */ lwc1 $f4, 0x58($s0) -/* 1A8188 802798A8 E602004C */ swc1 $f2, 0x4c($s0) -/* 1A818C 802798AC 46002201 */ sub.s $f8, $f4, $f0 -.L802798B0: -/* 1A8190 802798B0 86220064 */ lh $v0, 0x64($s1) -/* 1A8194 802798B4 14400003 */ bnez $v0, .L802798C4 -/* 1A8198 802798B8 00000000 */ nop -/* 1A819C 802798BC 0809E6A9 */ j .L80279AA4 -/* 1A81A0 802798C0 24020002 */ addiu $v0, $zero, 2 -.L802798C4: -/* 1A81A4 802798C4 C622003C */ lwc1 $f2, 0x3c($s1) -/* 1A81A8 802798C8 44823000 */ mtc1 $v0, $f6 -/* 1A81AC 802798CC 00000000 */ nop -/* 1A81B0 802798D0 468031A0 */ cvt.s.w $f6, $f6 -/* 1A81B4 802798D4 46061082 */ mul.s $f2, $f2, $f6 -/* 1A81B8 802798D8 00000000 */ nop -/* 1A81BC 802798DC 3C013F00 */ lui $at, 0x3f00 -/* 1A81C0 802798E0 44810000 */ mtc1 $at, $f0 -/* 1A81C4 802798E4 00000000 */ nop -/* 1A81C8 802798E8 46001082 */ mul.s $f2, $f2, $f0 -/* 1A81CC 802798EC 00000000 */ nop -/* 1A81D0 802798F0 86220064 */ lh $v0, 0x64($s1) -/* 1A81D4 802798F4 C6240040 */ lwc1 $f4, 0x40($s1) -/* 1A81D8 802798F8 44820000 */ mtc1 $v0, $f0 -/* 1A81DC 802798FC 00000000 */ nop -/* 1A81E0 80279900 46800020 */ cvt.s.w $f0, $f0 -/* 1A81E4 80279904 46004003 */ div.s $f0, $f8, $f0 -/* 1A81E8 80279908 46002100 */ add.s $f4, $f4, $f0 -/* 1A81EC 8027990C 4606F183 */ div.s $f6, $f30, $f6 -/* 1A81F0 80279910 46061080 */ add.s $f2, $f2, $f6 -/* 1A81F4 80279914 E6240040 */ swc1 $f4, 0x40($s1) -/* 1A81F8 80279918 E6220044 */ swc1 $f2, 0x44($s1) -/* 1A81FC 8027991C 8E0201AC */ lw $v0, 0x1ac($s0) -/* 1A8200 80279920 10400009 */ beqz $v0, .L80279948 -/* 1A8204 80279924 24020001 */ addiu $v0, $zero, 1 -/* 1A8208 80279928 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1A820C 8027992C E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8210 80279930 8E0401AC */ lw $a0, 0x1ac($s0) -/* 1A8214 80279934 8E060144 */ lw $a2, 0x144($s0) -/* 1A8218 80279938 8E070148 */ lw $a3, 0x148($s0) -/* 1A821C 8027993C 0C052757 */ jal sfx_play_sound_at_position -/* 1A8220 80279940 0000282D */ daddu $a1, $zero, $zero -/* 1A8224 80279944 24020001 */ addiu $v0, $zero, 1 -.L80279948: -/* 1A8228 80279948 AE420070 */ sw $v0, 0x70($s2) -/* 1A822C 8027994C 24040002 */ addiu $a0, $zero, 2 -.L80279950: -/* 1A8230 80279950 8E500074 */ lw $s0, 0x74($s2) -/* 1A8234 80279954 8E430070 */ lw $v1, 0x70($s2) -/* 1A8238 80279958 1064002D */ beq $v1, $a0, .L80279A10 -/* 1A823C 8027995C 2611000C */ addiu $s1, $s0, 0xc -/* 1A8240 80279960 28620003 */ slti $v0, $v1, 3 -/* 1A8244 80279964 10400005 */ beqz $v0, .L8027997C -/* 1A8248 80279968 24020001 */ addiu $v0, $zero, 1 -/* 1A824C 8027996C 10620008 */ beq $v1, $v0, .L80279990 -/* 1A8250 80279970 00000000 */ nop -/* 1A8254 80279974 0809E6A2 */ j .L80279A88 -/* 1A8258 80279978 00000000 */ nop -.L8027997C: -/* 1A825C 8027997C 24020003 */ addiu $v0, $zero, 3 -/* 1A8260 80279980 10620048 */ beq $v1, $v0, .L80279AA4 -/* 1A8264 80279984 24020002 */ addiu $v0, $zero, 2 -/* 1A8268 80279988 0809E6A2 */ j .L80279A88 -/* 1A826C 8027998C 00000000 */ nop -.L80279990: -/* 1A8270 80279990 C6000050 */ lwc1 $f0, 0x50($s0) -/* 1A8274 80279994 C6040010 */ lwc1 $f4, 0x10($s0) -/* 1A8278 80279998 46000086 */ mov.s $f2, $f0 -/* 1A827C 8027999C 46002100 */ add.s $f4, $f4, $f0 -/* 1A8280 802799A0 C6000048 */ lwc1 $f0, 0x48($s0) -/* 1A8284 802799A4 46001081 */ sub.s $f2, $f2, $f0 -/* 1A8288 802799A8 44800000 */ mtc1 $zero, $f0 -/* 1A828C 802799AC E6040010 */ swc1 $f4, 0x10($s0) -/* 1A8290 802799B0 4600103C */ c.lt.s $f2, $f0 -/* 1A8294 802799B4 00000000 */ nop -/* 1A8298 802799B8 4500000F */ bc1f .L802799F8 -/* 1A829C 802799BC E6020050 */ swc1 $f2, 0x50($s0) -/* 1A82A0 802799C0 C600001C */ lwc1 $f0, 0x1c($s0) -/* 1A82A4 802799C4 46002086 */ mov.s $f2, $f4 -/* 1A82A8 802799C8 4600103C */ c.lt.s $f2, $f0 -/* 1A82AC 802799CC 00000000 */ nop -/* 1A82B0 802799D0 45000009 */ bc1f .L802799F8 -/* 1A82B4 802799D4 00000000 */ nop -/* 1A82B8 802799D8 C6020050 */ lwc1 $f2, 0x50($s0) -/* 1A82BC 802799DC C604005C */ lwc1 $f4, 0x5c($s0) -/* 1A82C0 802799E0 C6000048 */ lwc1 $f0, 0x48($s0) -/* 1A82C4 802799E4 46041083 */ div.s $f2, $f2, $f4 -/* 1A82C8 802799E8 46000007 */ neg.s $f0, $f0 -/* 1A82CC 802799EC E6000048 */ swc1 $f0, 0x48($s0) -/* 1A82D0 802799F0 E6020050 */ swc1 $f2, 0x50($s0) -/* 1A82D4 802799F4 AE440070 */ sw $a0, 0x70($s2) -.L802799F8: -/* 1A82D8 802799F8 8E250040 */ lw $a1, 0x40($s1) -/* 1A82DC 802799FC 8E260048 */ lw $a2, 0x48($s1) -/* 1A82E0 80279A00 0C09904A */ jal add_xz_vec3f -/* 1A82E4 80279A04 0220202D */ daddu $a0, $s1, $zero -/* 1A82E8 80279A08 0809E6A2 */ j .L80279A88 -/* 1A82EC 80279A0C 00000000 */ nop -.L80279A10: -/* 1A82F0 80279A10 C6000050 */ lwc1 $f0, 0x50($s0) -/* 1A82F4 80279A14 C6040010 */ lwc1 $f4, 0x10($s0) -/* 1A82F8 80279A18 46000086 */ mov.s $f2, $f0 -/* 1A82FC 80279A1C 46002100 */ add.s $f4, $f4, $f0 -/* 1A8300 80279A20 C6000048 */ lwc1 $f0, 0x48($s0) -/* 1A8304 80279A24 46001081 */ sub.s $f2, $f2, $f0 -/* 1A8308 80279A28 44800000 */ mtc1 $zero, $f0 -/* 1A830C 80279A2C E6040010 */ swc1 $f4, 0x10($s0) -/* 1A8310 80279A30 4602003C */ c.lt.s $f0, $f2 -/* 1A8314 80279A34 00000000 */ nop -/* 1A8318 80279A38 45000009 */ bc1f .L80279A60 -/* 1A831C 80279A3C E6020050 */ swc1 $f2, 0x50($s0) -/* 1A8320 80279A40 C602001C */ lwc1 $f2, 0x1c($s0) -/* 1A8324 80279A44 46002006 */ mov.s $f0, $f4 -/* 1A8328 80279A48 4600103C */ c.lt.s $f2, $f0 -/* 1A832C 80279A4C 00000000 */ nop -/* 1A8330 80279A50 45000003 */ bc1f .L80279A60 -/* 1A8334 80279A54 24020003 */ addiu $v0, $zero, 3 -/* 1A8338 80279A58 E6020010 */ swc1 $f2, 0x10($s0) -/* 1A833C 80279A5C AE420070 */ sw $v0, 0x70($s2) -.L80279A60: -/* 1A8340 80279A60 8E250040 */ lw $a1, 0x40($s1) -/* 1A8344 80279A64 8E260048 */ lw $a2, 0x48($s1) -/* 1A8348 80279A68 0C09904A */ jal add_xz_vec3f -/* 1A834C 80279A6C 0220202D */ daddu $a0, $s1, $zero -/* 1A8350 80279A70 C6200000 */ lwc1 $f0, ($s1) -/* 1A8354 80279A74 E6000144 */ swc1 $f0, 0x144($s0) -/* 1A8358 80279A78 C6200004 */ lwc1 $f0, 4($s1) -/* 1A835C 80279A7C E6000148 */ swc1 $f0, 0x148($s0) -/* 1A8360 80279A80 C6200008 */ lwc1 $f0, 8($s1) -/* 1A8364 80279A84 E600014C */ swc1 $f0, 0x14c($s0) -.L80279A88: -/* 1A8368 80279A88 C6200000 */ lwc1 $f0, ($s1) -/* 1A836C 80279A8C E6000144 */ swc1 $f0, 0x144($s0) -/* 1A8370 80279A90 C6200004 */ lwc1 $f0, 4($s1) -/* 1A8374 80279A94 E6000148 */ swc1 $f0, 0x148($s0) -/* 1A8378 80279A98 C6200008 */ lwc1 $f0, 8($s1) -/* 1A837C 80279A9C 0000102D */ daddu $v0, $zero, $zero -/* 1A8380 80279AA0 E600014C */ swc1 $f0, 0x14c($s0) -.L80279AA4: -/* 1A8384 80279AA4 8FBF0024 */ lw $ra, 0x24($sp) -/* 1A8388 80279AA8 8FB20020 */ lw $s2, 0x20($sp) -/* 1A838C 80279AAC 8FB1001C */ lw $s1, 0x1c($sp) -/* 1A8390 80279AB0 8FB00018 */ lw $s0, 0x18($sp) -/* 1A8394 80279AB4 D7BE0050 */ ldc1 $f30, 0x50($sp) -/* 1A8398 80279AB8 D7BC0048 */ ldc1 $f28, 0x48($sp) -/* 1A839C 80279ABC D7BA0040 */ ldc1 $f26, 0x40($sp) -/* 1A83A0 80279AC0 D7B80038 */ ldc1 $f24, 0x38($sp) -/* 1A83A4 80279AC4 D7B60030 */ ldc1 $f22, 0x30($sp) -/* 1A83A8 80279AC8 D7B40028 */ ldc1 $f20, 0x28($sp) -/* 1A83AC 80279ACC 03E00008 */ jr $ra -/* 1A83B0 80279AD0 27BD0058 */ addiu $sp, $sp, 0x58 diff --git a/ver/us/asm/nonmatchings/1A5830/RunToGoal.s b/ver/us/asm/nonmatchings/1A5830/RunToGoal.s deleted file mode 100644 index 8b281a1941..0000000000 --- a/ver/us/asm/nonmatchings/1A5830/RunToGoal.s +++ /dev/null @@ -1,277 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel RunToGoal -/* 1A8744 80279E64 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 1A8748 80279E68 AFB20020 */ sw $s2, 0x20($sp) -/* 1A874C 80279E6C 0080902D */ daddu $s2, $a0, $zero -/* 1A8750 80279E70 AFBF0024 */ sw $ra, 0x24($sp) -/* 1A8754 80279E74 AFB1001C */ sw $s1, 0x1c($sp) -/* 1A8758 80279E78 AFB00018 */ sw $s0, 0x18($sp) -/* 1A875C 80279E7C F7BA0040 */ sdc1 $f26, 0x40($sp) -/* 1A8760 80279E80 F7B80038 */ sdc1 $f24, 0x38($sp) -/* 1A8764 80279E84 F7B60030 */ sdc1 $f22, 0x30($sp) -/* 1A8768 80279E88 F7B40028 */ sdc1 $f20, 0x28($sp) -/* 1A876C 80279E8C 8E51000C */ lw $s1, 0xc($s2) -/* 1A8770 80279E90 54A00001 */ bnel $a1, $zero, .L80279E98 -/* 1A8774 80279E94 AE400070 */ sw $zero, 0x70($s2) -.L80279E98: -/* 1A8778 80279E98 8E420070 */ lw $v0, 0x70($s2) -/* 1A877C 80279E9C 14400067 */ bnez $v0, .L8027A03C -/* 1A8780 80279EA0 00000000 */ nop -/* 1A8784 80279EA4 8E250000 */ lw $a1, ($s1) -/* 1A8788 80279EA8 26310004 */ addiu $s1, $s1, 4 -/* 1A878C 80279EAC 0C0B1EAF */ jal evt_get_variable -/* 1A8790 80279EB0 0240202D */ daddu $a0, $s2, $zero -/* 1A8794 80279EB4 0040202D */ daddu $a0, $v0, $zero -/* 1A8798 80279EB8 2402FF81 */ addiu $v0, $zero, -0x7f -/* 1A879C 80279EBC 14820002 */ bne $a0, $v0, .L80279EC8 -/* 1A87A0 80279EC0 00000000 */ nop -/* 1A87A4 80279EC4 8E440148 */ lw $a0, 0x148($s2) -.L80279EC8: -/* 1A87A8 80279EC8 0C09A75B */ jal get_actor -/* 1A87AC 80279ECC 00000000 */ nop -/* 1A87B0 80279ED0 0040802D */ daddu $s0, $v0, $zero -/* 1A87B4 80279ED4 AE500074 */ sw $s0, 0x74($s2) -/* 1A87B8 80279ED8 8E250000 */ lw $a1, ($s1) -/* 1A87BC 80279EDC 26310004 */ addiu $s1, $s1, 4 -/* 1A87C0 80279EE0 0C0B1EAF */ jal evt_get_variable -/* 1A87C4 80279EE4 0240202D */ daddu $a0, $s2, $zero -/* 1A87C8 80279EE8 A6020070 */ sh $v0, 0x70($s0) -/* 1A87CC 80279EEC 8E250000 */ lw $a1, ($s1) -/* 1A87D0 80279EF0 0C0B1EAF */ jal evt_get_variable -/* 1A87D4 80279EF4 0240202D */ daddu $a0, $s2, $zero -/* 1A87D8 80279EF8 AE420078 */ sw $v0, 0x78($s2) -/* 1A87DC 80279EFC C6160018 */ lwc1 $f22, 0x18($s0) -/* 1A87E0 80279F00 C6180020 */ lwc1 $f24, 0x20($s0) -/* 1A87E4 80279F04 C6000144 */ lwc1 $f0, 0x144($s0) -/* 1A87E8 80279F08 C614014C */ lwc1 $f20, 0x14c($s0) -/* 1A87EC 80279F0C C602001C */ lwc1 $f2, 0x1c($s0) -/* 1A87F0 80279F10 4406B000 */ mfc1 $a2, $f22 -/* 1A87F4 80279F14 4407C000 */ mfc1 $a3, $f24 -/* 1A87F8 80279F18 2611000C */ addiu $s1, $s0, 0xc -/* 1A87FC 80279F1C E600000C */ swc1 $f0, 0xc($s0) -/* 1A8800 80279F20 C6000148 */ lwc1 $f0, 0x148($s0) -/* 1A8804 80279F24 C61A000C */ lwc1 $f26, 0xc($s0) -/* 1A8808 80279F28 4600A386 */ mov.s $f14, $f20 -/* 1A880C 80279F2C E6140014 */ swc1 $f20, 0x14($s0) -/* 1A8810 80279F30 E6160024 */ swc1 $f22, 0x24($s0) -/* 1A8814 80279F34 E6020028 */ swc1 $f2, 0x28($s0) -/* 1A8818 80279F38 E618002C */ swc1 $f24, 0x2c($s0) -/* 1A881C 80279F3C 4600D306 */ mov.s $f12, $f26 -/* 1A8820 80279F40 0C00A720 */ jal atan2 -/* 1A8824 80279F44 E6000010 */ swc1 $f0, 0x10($s0) -/* 1A8828 80279F48 4600D306 */ mov.s $f12, $f26 -/* 1A882C 80279F4C 4406B000 */ mfc1 $a2, $f22 -/* 1A8830 80279F50 4407C000 */ mfc1 $a3, $f24 -/* 1A8834 80279F54 4600A386 */ mov.s $f14, $f20 -/* 1A8838 80279F58 0C00A7B5 */ jal dist2D -/* 1A883C 80279F5C E6000054 */ swc1 $f0, 0x54($s0) -/* 1A8840 80279F60 86020070 */ lh $v0, 0x70($s0) -/* 1A8844 80279F64 46000086 */ mov.s $f2, $f0 -/* 1A8848 80279F68 14400018 */ bnez $v0, .L80279FCC -/* 1A884C 80279F6C E6020058 */ swc1 $f2, 0x58($s0) -/* 1A8850 80279F70 C600004C */ lwc1 $f0, 0x4c($s0) -/* 1A8854 80279F74 46001003 */ div.s $f0, $f2, $f0 -/* 1A8858 80279F78 4600020D */ trunc.w.s $f8, $f0 -/* 1A885C 80279F7C 44024000 */ mfc1 $v0, $f8 -/* 1A8860 80279F80 00000000 */ nop -/* 1A8864 80279F84 A6020070 */ sh $v0, 0x70($s0) -/* 1A8868 80279F88 00021400 */ sll $v0, $v0, 0x10 -/* 1A886C 80279F8C 14400002 */ bnez $v0, .L80279F98 -/* 1A8870 80279F90 24020001 */ addiu $v0, $zero, 1 -/* 1A8874 80279F94 A6020070 */ sh $v0, 0x70($s0) -.L80279F98: -/* 1A8878 80279F98 86020070 */ lh $v0, 0x70($s0) -/* 1A887C 80279F9C C602004C */ lwc1 $f2, 0x4c($s0) -/* 1A8880 80279FA0 44823000 */ mtc1 $v0, $f6 -/* 1A8884 80279FA4 00000000 */ nop -/* 1A8888 80279FA8 468031A0 */ cvt.s.w $f6, $f6 -/* 1A888C 80279FAC 46023102 */ mul.s $f4, $f6, $f2 -/* 1A8890 80279FB0 00000000 */ nop -/* 1A8894 80279FB4 C6000058 */ lwc1 $f0, 0x58($s0) -/* 1A8898 80279FB8 46040001 */ sub.s $f0, $f0, $f4 -/* 1A889C 80279FBC 46060003 */ div.s $f0, $f0, $f6 -/* 1A88A0 80279FC0 46001080 */ add.s $f2, $f2, $f0 -/* 1A88A4 80279FC4 0809E7F8 */ j .L80279FE0 -/* 1A88A8 80279FC8 E602004C */ swc1 $f2, 0x4c($s0) -.L80279FCC: -/* 1A88AC 80279FCC 44820000 */ mtc1 $v0, $f0 -/* 1A88B0 80279FD0 00000000 */ nop -/* 1A88B4 80279FD4 46800020 */ cvt.s.w $f0, $f0 -/* 1A88B8 80279FD8 46001003 */ div.s $f0, $f2, $f0 -/* 1A88BC 80279FDC E600004C */ swc1 $f0, 0x4c($s0) -.L80279FE0: -/* 1A88C0 80279FE0 860201B4 */ lh $v0, 0x1b4($s0) -/* 1A88C4 80279FE4 04420002 */ bltzl $v0, .L80279FF0 -/* 1A88C8 80279FE8 00021027 */ nor $v0, $zero, $v0 -/* 1A88CC 80279FEC 24420001 */ addiu $v0, $v0, 1 -.L80279FF0: -/* 1A88D0 80279FF0 44820000 */ mtc1 $v0, $f0 -/* 1A88D4 80279FF4 00000000 */ nop -/* 1A88D8 80279FF8 46800020 */ cvt.s.w $f0, $f0 -/* 1A88DC 80279FFC E620004C */ swc1 $f0, 0x4c($s1) -/* 1A88E0 8027A000 8E02019C */ lw $v0, 0x19c($s0) -/* 1A88E4 8027A004 1040000C */ beqz $v0, .L8027A038 -/* 1A88E8 8027A008 24020001 */ addiu $v0, $zero, 1 -/* 1A88EC 8027A00C 8E0201A0 */ lw $v0, 0x1a0($s0) -/* 1A88F0 8027A010 14400009 */ bnez $v0, .L8027A038 -/* 1A88F4 8027A014 24020001 */ addiu $v0, $zero, 1 -/* 1A88F8 8027A018 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1A88FC 8027A01C E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8900 8027A020 8E04019C */ lw $a0, 0x19c($s0) -/* 1A8904 8027A024 8E060144 */ lw $a2, 0x144($s0) -/* 1A8908 8027A028 8E070148 */ lw $a3, 0x148($s0) -/* 1A890C 8027A02C 0C052757 */ jal sfx_play_sound_at_position -/* 1A8910 8027A030 0000282D */ daddu $a1, $zero, $zero -/* 1A8914 8027A034 24020001 */ addiu $v0, $zero, 1 -.L8027A038: -/* 1A8918 8027A038 AE420070 */ sw $v0, 0x70($s2) -.L8027A03C: -/* 1A891C 8027A03C 8E500074 */ lw $s0, 0x74($s2) -/* 1A8920 8027A040 2611000C */ addiu $s1, $s0, 0xc -/* 1A8924 8027A044 8E05004C */ lw $a1, 0x4c($s0) -/* 1A8928 8027A048 8E060054 */ lw $a2, 0x54($s0) -/* 1A892C 8027A04C 0C09904A */ jal add_xz_vec3f -/* 1A8930 8027A050 0220202D */ daddu $a0, $s1, $zero -/* 1A8934 8027A054 8E420078 */ lw $v0, 0x78($s2) -/* 1A8938 8027A058 14400017 */ bnez $v0, .L8027A0B8 -/* 1A893C 8027A05C 00000000 */ nop -/* 1A8940 8027A060 C602004C */ lwc1 $f2, 0x4c($s0) -/* 1A8944 8027A064 3C014080 */ lui $at, 0x4080 -/* 1A8948 8027A068 44810000 */ mtc1 $at, $f0 -/* 1A894C 8027A06C 00000000 */ nop -/* 1A8950 8027A070 4600103C */ c.lt.s $f2, $f0 -/* 1A8954 8027A074 00000000 */ nop -/* 1A8958 8027A078 45000007 */ bc1f .L8027A098 -/* 1A895C 8027A07C 0000202D */ daddu $a0, $zero, $zero -/* 1A8960 8027A080 C6000054 */ lwc1 $f0, 0x54($s0) -/* 1A8964 8027A084 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8968 8027A088 8E05000C */ lw $a1, 0xc($s0) -/* 1A896C 8027A08C 8E060010 */ lw $a2, 0x10($s0) -/* 1A8970 8027A090 0809E82C */ j .L8027A0B0 -/* 1A8974 8027A094 8E070014 */ lw $a3, 0x14($s0) -.L8027A098: -/* 1A8978 8027A098 C6000054 */ lwc1 $f0, 0x54($s0) -/* 1A897C 8027A09C E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8980 8027A0A0 8E05000C */ lw $a1, 0xc($s0) -/* 1A8984 8027A0A4 8E060010 */ lw $a2, 0x10($s0) -/* 1A8988 8027A0A8 8E070014 */ lw $a3, 0x14($s0) -/* 1A898C 8027A0AC 24040001 */ addiu $a0, $zero, 1 -.L8027A0B0: -/* 1A8990 8027A0B0 0C0990BC */ jal play_movement_dust_effects -/* 1A8994 8027A0B4 00000000 */ nop -.L8027A0B8: -/* 1A8998 8027A0B8 C6200000 */ lwc1 $f0, ($s1) -/* 1A899C 8027A0BC 8E02019C */ lw $v0, 0x19c($s0) -/* 1A89A0 8027A0C0 E6000144 */ swc1 $f0, 0x144($s0) -/* 1A89A4 8027A0C4 C6200008 */ lwc1 $f0, 8($s1) -/* 1A89A8 8027A0C8 1040004A */ beqz $v0, .L8027A1F4 -/* 1A89AC 8027A0CC E600014C */ swc1 $f0, 0x14c($s0) -/* 1A89B0 8027A0D0 8E0201A0 */ lw $v0, 0x1a0($s0) -/* 1A89B4 8027A0D4 10400047 */ beqz $v0, .L8027A1F4 -/* 1A89B8 8027A0D8 00000000 */ nop -/* 1A89BC 8027A0DC 860201B4 */ lh $v0, 0x1b4($s0) -/* 1A89C0 8027A0E0 0440001C */ bltz $v0, .L8027A154 -/* 1A89C4 8027A0E4 00000000 */ nop -/* 1A89C8 8027A0E8 C622004C */ lwc1 $f2, 0x4c($s1) -/* 1A89CC 8027A0EC C6200040 */ lwc1 $f0, 0x40($s1) -/* 1A89D0 8027A0F0 46001080 */ add.s $f2, $f2, $f0 -/* 1A89D4 8027A0F4 E622004C */ swc1 $f2, 0x4c($s1) -/* 1A89D8 8027A0F8 860201B4 */ lh $v0, 0x1b4($s0) -/* 1A89DC 8027A0FC 44820000 */ mtc1 $v0, $f0 -/* 1A89E0 8027A100 00000000 */ nop -/* 1A89E4 8027A104 46800020 */ cvt.s.w $f0, $f0 -/* 1A89E8 8027A108 4602003C */ c.lt.s $f0, $f2 -/* 1A89EC 8027A10C 00000000 */ nop -/* 1A89F0 8027A110 45000038 */ bc1f .L8027A1F4 -/* 1A89F4 8027A114 00000000 */ nop -/* 1A89F8 8027A118 92020135 */ lbu $v0, 0x135($s0) -/* 1A89FC 8027A11C 24420001 */ addiu $v0, $v0, 1 -/* 1A8A00 8027A120 A2020135 */ sb $v0, 0x135($s0) -/* 1A8A04 8027A124 AE20004C */ sw $zero, 0x4c($s1) -/* 1A8A08 8027A128 92020135 */ lbu $v0, 0x135($s0) -/* 1A8A0C 8027A12C 30420001 */ andi $v0, $v0, 1 -/* 1A8A10 8027A130 10400026 */ beqz $v0, .L8027A1CC -/* 1A8A14 8027A134 00000000 */ nop -/* 1A8A18 8027A138 8E02019C */ lw $v0, 0x19c($s0) -/* 1A8A1C 8027A13C 1040002D */ beqz $v0, .L8027A1F4 -/* 1A8A20 8027A140 00000000 */ nop -/* 1A8A24 8027A144 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1A8A28 8027A148 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8A2C 8027A14C 0809E879 */ j .L8027A1E4 -/* 1A8A30 8027A150 8E04019C */ lw $a0, 0x19c($s0) -.L8027A154: -/* 1A8A34 8027A154 C622004C */ lwc1 $f2, 0x4c($s1) -/* 1A8A38 8027A158 3C013F80 */ lui $at, 0x3f80 -/* 1A8A3C 8027A15C 44810000 */ mtc1 $at, $f0 -/* 1A8A40 8027A160 00000000 */ nop -/* 1A8A44 8027A164 46001080 */ add.s $f2, $f2, $f0 -/* 1A8A48 8027A168 E622004C */ swc1 $f2, 0x4c($s1) -/* 1A8A4C 8027A16C 860201B4 */ lh $v0, 0x1b4($s0) -/* 1A8A50 8027A170 00021023 */ negu $v0, $v0 -/* 1A8A54 8027A174 44820000 */ mtc1 $v0, $f0 -/* 1A8A58 8027A178 00000000 */ nop -/* 1A8A5C 8027A17C 46800020 */ cvt.s.w $f0, $f0 -/* 1A8A60 8027A180 4602003E */ c.le.s $f0, $f2 -/* 1A8A64 8027A184 00000000 */ nop -/* 1A8A68 8027A188 4500001A */ bc1f .L8027A1F4 -/* 1A8A6C 8027A18C 00000000 */ nop -/* 1A8A70 8027A190 92020135 */ lbu $v0, 0x135($s0) -/* 1A8A74 8027A194 24420001 */ addiu $v0, $v0, 1 -/* 1A8A78 8027A198 A2020135 */ sb $v0, 0x135($s0) -/* 1A8A7C 8027A19C AE20004C */ sw $zero, 0x4c($s1) -/* 1A8A80 8027A1A0 92020135 */ lbu $v0, 0x135($s0) -/* 1A8A84 8027A1A4 30420001 */ andi $v0, $v0, 1 -/* 1A8A88 8027A1A8 10400008 */ beqz $v0, .L8027A1CC -/* 1A8A8C 8027A1AC 00000000 */ nop -/* 1A8A90 8027A1B0 8E02019C */ lw $v0, 0x19c($s0) -/* 1A8A94 8027A1B4 1040000F */ beqz $v0, .L8027A1F4 -/* 1A8A98 8027A1B8 00000000 */ nop -/* 1A8A9C 8027A1BC C600014C */ lwc1 $f0, 0x14c($s0) -/* 1A8AA0 8027A1C0 E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8AA4 8027A1C4 0809E879 */ j .L8027A1E4 -/* 1A8AA8 8027A1C8 8E04019C */ lw $a0, 0x19c($s0) -.L8027A1CC: -/* 1A8AAC 8027A1CC 8E0201A0 */ lw $v0, 0x1a0($s0) -/* 1A8AB0 8027A1D0 10400008 */ beqz $v0, .L8027A1F4 -/* 1A8AB4 8027A1D4 00000000 */ nop -/* 1A8AB8 8027A1D8 C600014C */ lwc1 $f0, 0x14c($s0) -/* 1A8ABC 8027A1DC E7A00010 */ swc1 $f0, 0x10($sp) -/* 1A8AC0 8027A1E0 8E0401A0 */ lw $a0, 0x1a0($s0) -.L8027A1E4: -/* 1A8AC4 8027A1E4 8E060144 */ lw $a2, 0x144($s0) -/* 1A8AC8 8027A1E8 8E070148 */ lw $a3, 0x148($s0) -/* 1A8ACC 8027A1EC 0C052757 */ jal sfx_play_sound_at_position -/* 1A8AD0 8027A1F0 0000282D */ daddu $a1, $zero, $zero -.L8027A1F4: -/* 1A8AD4 8027A1F4 96220064 */ lhu $v0, 0x64($s1) -/* 1A8AD8 8027A1F8 2442FFFF */ addiu $v0, $v0, -1 -/* 1A8ADC 8027A1FC A6220064 */ sh $v0, 0x64($s1) -/* 1A8AE0 8027A200 00021400 */ sll $v0, $v0, 0x10 -/* 1A8AE4 8027A204 1C40000D */ bgtz $v0, .L8027A23C -/* 1A8AE8 8027A208 0000102D */ daddu $v0, $zero, $zero -/* 1A8AEC 8027A20C C6200018 */ lwc1 $f0, 0x18($s1) -/* 1A8AF0 8027A210 8E04019C */ lw $a0, 0x19c($s0) -/* 1A8AF4 8027A214 E6000144 */ swc1 $f0, 0x144($s0) -/* 1A8AF8 8027A218 C6200020 */ lwc1 $f0, 0x20($s1) -/* 1A8AFC 8027A21C 10800006 */ beqz $a0, .L8027A238 -/* 1A8B00 8027A220 E600014C */ swc1 $f0, 0x14c($s0) -/* 1A8B04 8027A224 8E0201A0 */ lw $v0, 0x1a0($s0) -/* 1A8B08 8027A228 14400004 */ bnez $v0, .L8027A23C -/* 1A8B0C 8027A22C 24020001 */ addiu $v0, $zero, 1 -/* 1A8B10 8027A230 0C0154F0 */ jal snd_stop_sound -/* 1A8B14 8027A234 00000000 */ nop -.L8027A238: -/* 1A8B18 8027A238 24020001 */ addiu $v0, $zero, 1 -.L8027A23C: -/* 1A8B1C 8027A23C 8FBF0024 */ lw $ra, 0x24($sp) -/* 1A8B20 8027A240 8FB20020 */ lw $s2, 0x20($sp) -/* 1A8B24 8027A244 8FB1001C */ lw $s1, 0x1c($sp) -/* 1A8B28 8027A248 8FB00018 */ lw $s0, 0x18($sp) -/* 1A8B2C 8027A24C D7BA0040 */ ldc1 $f26, 0x40($sp) -/* 1A8B30 8027A250 D7B80038 */ ldc1 $f24, 0x38($sp) -/* 1A8B34 8027A254 D7B60030 */ ldc1 $f22, 0x30($sp) -/* 1A8B38 8027A258 D7B40028 */ ldc1 $f20, 0x28($sp) -/* 1A8B3C 8027A25C 03E00008 */ jr $ra -/* 1A8B40 8027A260 27BD0048 */ addiu $sp, $sp, 0x48