move actor (#879)

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2022-12-06 05:19:01 -05:00 committed by GitHub
parent 5b63159eaf
commit 46add495eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 645 additions and 1912 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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