Finish lakilester overworld file (#669)

* decomp appendGfx_player, fix warnings in 77480.c file

* small style fixes

* fix action state enum and make use of enum

* merge master

* decomp some mario rendering functions

* run coverage.py

* review changes

* use decimal in func arg

* 891b0 and sprite functions

* finish lakilester world file

* run coverage.py

* remove duplication declarations

* requested changes and remove some warnings from sprite.c

* ...run coverage.py

* requested changes for laki file and update functions.h

* remove redundant includes
This commit is contained in:
Rainchus 2022-03-26 05:37:14 -05:00 committed by GitHub
parent 3ecb9263d1
commit 70a0b67237
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 464 additions and 1679 deletions

View File

@ -383,6 +383,7 @@ PlayerData* get_player_data(void);
s32 npc_raycast_down_around(s32, f32*, f32*, f32*, f32*, f32, f32);
s32 npc_raycast_down_sides(s32, f32*, f32*, f32*, f32*);
s32 player_raycast_up_corners(PlayerStatus*, f32*, f32*, f32*, f32*, f32);
s32 player_raycast_below_cam_relative(PlayerStatus*, f32*, f32*, f32*, f32*, f32*, f32*, f32*, f32*);
s32 npc_test_move_taller_with_slipping(s32, f32*, f32*, f32*, f32, f32, f32, f32);
s32 npc_test_move_simple_with_slipping(s32, f32*, f32*, f32*, f32, f32, f32, f32);
@ -906,4 +907,8 @@ void clear_area_flags(void);
void update_locomotion_state(void);
void func_802BFB44_323694(f32 arg0);
f32 get_player_normal_pitch(void);
void partner_kill_ability_script(void);
void func_800EF3D4(s32);
#endif

View File

@ -59,7 +59,7 @@ void func_800E5520(void);
void func_802B7000_E225B0(void);
void func_802B71D4(void);
void func_802B71C8(void);
void func_800EF3D4(s16);
void func_800EF3D4(s32);
void spr_draw_player_sprite(s32, s32, s32, s32, Matrix4f);
void func_802DDEE4(s32, s32, s32, s32, s32, s32, s32, s32);
void func_802DDFF8(u32, s32, s32, s32, s32, s32, s32);
@ -1341,7 +1341,6 @@ void render_player_model(void) {
if (!(playerStatus->flags & PLAYER_STATUS_FLAGS_20000)) {
if (playerStatus->alpha1 != playerStatus->alpha2) {
if (playerStatus->alpha1 < 254) {
if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_1000000)) {
renderModeTemp = RENDER_MODE_SURFACE_XLU_LAYER1;
} else {
@ -1350,7 +1349,7 @@ void render_player_model(void) {
playerStatus->renderMode = renderModeTemp;
func_802DDEE4(0, -1, 7, 0, 0, 0, playerStatus->alpha1, 0);
} else {
playerStatus->renderMode = RENDER_MODE_ALPHATEST;
func_802DDEE4(0, -1, 0, 0, 0, 0, 0, 0);
@ -1368,7 +1367,7 @@ void render_player_model(void) {
rtPtr->appendGfxArg = playerStatus;
rtPtr->distance = -z;
rtPtr->renderMode = playerStatus->renderMode;
if (!(playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_20000)) {
appendGfx = appendGfx_player;

View File

@ -9,7 +9,8 @@ extern SpriteAnimData* spr_npcSprites[0xEA];
extern struct spr_playerCurrentAnimInfo spr_playerCurrentAnimInfo[3];
extern struct D_802DFA48 D_802DFA48[51];
extern u8 spr_npcSpriteInstanceCount[];
extern s32** D_802DFE44;
extern s32 D_802DFE48[22];
void spr_init_player_raster_cache(s32 cacheSize, s32 maxRasterSize);
Vtx spr_defaultQuad[] = {
@ -84,23 +85,14 @@ PlayerSpriteSet spr_playerSpriteSets[] = {
/* Peach */ { 6, 0x900, 0x00003C00 },
};
#ifdef NON_EQUIVALENT
extern s32* gSpriteHeapPtr;
extern s32** D_802DFE44;
extern s32* D_802DFE9C;
void spr_init_quad_cache(void) {
s32 i;
s32* phi_v0;
D_802DFE44 = _heap_malloc(&gSpriteHeapPtr, 0x580);
for (i = 21; i >= 0; i--) {
D_802DFE44[i] = -1;
for (i = 0; i < 22; i++) {
D_802DFE48[i] = -1;
}
}
#else
INCLUDE_ASM(s32, "sprite", spr_init_quad_cache);
#endif
INCLUDE_ASM(s32, "sprite", spr_get_cached_quad);
@ -208,7 +200,7 @@ INCLUDE_ASM(s32, "sprite", spr_component_update_finish);
INCLUDE_ASM(s32, "sprite", spr_component_update);
void spr_init_component_anim_state(SpriteComponent* comp, s16*** anim) {
if (anim == -1) {
if (anim == (s16***)-1) {
comp->initialized = FALSE;
return;
}
@ -286,7 +278,7 @@ void spr_init_sprites(s32 playerSpriteSet) {
}
for (i = 0; i < ARRAY_COUNT(spr_npcSprites); i++) {
s32* npcSprites = spr_npcSprites;
s32* npcSprites = (s32*)spr_npcSprites;
u8* npcSpriteInstanceCount = spr_npcSpriteInstanceCount;
npcSprites[i] = 0;
@ -363,31 +355,33 @@ s32 func_802DE894(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s3
INCLUDE_ASM(s32, "sprite", func_802DE8DC);
#ifdef NON_EQUIVALENT
typedef struct UnkSpriteStruct {
/* 0x00 */ s32* unk_00;
/* 0x04 */ u8 width;
/* 0x05 */ u8 height;
/* 0x06 */ s8 unk_06;
/* 0x07 */ u8 unk_07;
} UnkSpriteStruct;
// Some WIP work on sprite raster stuff.
s32 spr_get_npc_raster_info(spr_raster_info* outInfo, int npcSpriteID, int rasterIndex) {
SpriteAnimData* sprite;
void *temp_v1;
sprite = spr_npcSprites[npcSpriteID];
if (sprite == 0) {
return FALSE;
s32 spr_get_npc_raster_info(SpriteRasterInfo* out, s32 npcSpriteID, s32 rasterIndex) {
SpriteAnimData* sprite = spr_npcSprites[npcSpriteID];
UnkSpriteStruct* temp_v1;
s32** paletteOffsetCopy;
s32 newVar;
if (sprite != NULL) {
paletteOffsetCopy = sprite->palettesOffset;
temp_v1 = (UnkSpriteStruct*)sprite->rastersOffset[rasterIndex];
out->raster = temp_v1->unk_00;
out->width = temp_v1->width;
newVar = npcSpriteID;
out->height = temp_v1->height;
out->defaultPal = paletteOffsetCopy[temp_v1->unk_06];
return TRUE;
}
temp_v1 = sprite->rastersOffset[rasterIndex];
outInfo->unk0 = (s32)temp_v1->unk0;
outInfo->unk8 = (s32)temp_v1->unk4;
outInfo->unkC = (s32)temp_v1->unk5;
outInfo->unk4 = sprite->unk4[temp_v1->unk6];
return TRUE;
return FALSE;
}
#else
INCLUDE_ASM(s32, "sprite", spr_get_npc_raster_info);
#endif
s32** spr_get_npc_palettes(s32 npcSpriteID) {
SpriteAnimData* sprite = spr_npcSprites[npcSpriteID];

View File

@ -146,10 +146,16 @@ void spr_set_anim_timescale(f32 timeScale);
void spr_load_player_sprite(s32 spriteIndex);
SpriteAnimData* spr_load_sprite(s32, s32, s32);
void fold_init(void);
void spr_init_sprites(s32 playerSpriteSet);
void spr_render_init(void);
void spr_update_player_raster_cache(void);
s32 func_802DDA84(void);
s32 spr_update_player_sprite(s32 arg0, s32 arg1, f32 arg2);
@ -180,13 +186,13 @@ s32 spr_free_sprite(s32 spriteInstanceID);
//s32 func_802DE748(); // TODO
//s32 func_802DE780(); // TODO
s32 func_802DE780(s32, s32, s32, s32, s32, s32, s32, s32);
s32 func_802DE894(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6);
//s32 func_802DE8DC(); // TODO
s32 spr_get_npc_raster_info(SpriteRasterInfo* out, int npcSpriteID, int rasterIndex);
s32 spr_get_npc_raster_info(SpriteRasterInfo* out, s32 npcSpriteID, s32 rasterIndex);
s32** spr_get_npc_palettes(s32 npcSpriteID);

View File

@ -1,5 +1,4 @@
#include "common.h"
#include "functions.h"
void func_802B62CC_E24BEC(void);
void func_802B644C_E24D6C(void);

View File

@ -4,7 +4,6 @@
extern Npc* wPartnerNpc;
void partner_set_goal_pos(s32, s32);
void func_800EF3D4(s16);
enum {
NPC_TUBBAS_HEART,

View File

@ -18,9 +18,6 @@ BSS f32 D_802BFF28;
BSS s32 D_802BFF2C;
BSS unkPartnerStruct D_802BFF30;
f32 get_player_normal_pitch(void);
void partner_kill_ability_script(void);
void func_802BD100_320C50(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
Npc* lakilester = get_npc_unsafe(NPC_PARTNER);
@ -345,14 +342,13 @@ void func_802BDA90_3215E0(Npc* lakilester) {
}
}
#ifdef NON_EQUIVALENT
void func_802BDDD8_321928(Npc* npc) {
PlayerStatus* playerStatus = &gPlayerStatus;
CollisionStatus* collisionStatus = &gCollisionStatus;
PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus;
f32 sp3C, sp40, sp44, sp48, sp4C, sp50, sp54;
f32 sp28 = 0.0f;
f32 sp2C = 0.0f;
f32 yaw = 0.0f;
f32 moveSpeed = 0.0f;
f32 x, y, z;
f32 temp_f0_3;
s32 raycastBelowResult;
@ -360,19 +356,19 @@ void func_802BDDD8_321928(Npc* npc) {
f32 phi_f20;
func_802BD6BC_32120C(&sp28, &sp2C);
func_802BD6BC_32120C(&yaw, &moveSpeed);
if ((get_collider_type_by_id(npc->unk_84) & 0xFF) == 3) {
sp2C *= 0.5f;
if ((u8)(get_collider_type_by_id(npc->currentFloor)) == 3) {
moveSpeed *= 0.5f;
}
if (D_802BFF28 >= 20.0f) {
sp2C *= 0.8f;
moveSpeed *= 0.8f;
}
npc->moveSpeed = sp2C;
npc->moveSpeed = moveSpeed;
if (sp2C != 0.0f) {
if (moveSpeed != 0.0f) {
D_802BFF1C += 1;
D_802BFF20 += 1;
if (!(D_802BFF1C & 7)) {
@ -386,7 +382,6 @@ void func_802BDDD8_321928(Npc* npc) {
} else {
phi_a3 = update_lerp(0, 100.0f, 0.0f, D_802BFF20 - 60, 60);
sfx_play_sound_with_params(SOUND_295, 0, 0x40, phi_a3);
}
}
}
@ -395,20 +390,19 @@ void func_802BDDD8_321928(Npc* npc) {
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_taller_with_slipping(npc->unk_80, &x, &y, &z, npc->collisionRadius, npc->yaw,
if (npc_test_move_taller_with_slipping(npc->collisionChannel, &x, &y, &z, npc->collisionRadius, npc->yaw,
npc->collisionHeight, npc->collisionRadius) != 0) {
collisionStatus->unk_0A = (partnerActionStatus->pressedButtons & 0x8000) ? D_8010C97A : -1;
}
if (sp2C != 0.0f) {
npc->yaw = sp28;
if (moveSpeed != 0.0f) {
npc->yaw = yaw;
x = npc->pos.x;
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_complex_with_slipping(npc->unk_80, &x, &y, &z, npc->moveSpeed, npc->yaw,
if (npc_test_move_complex_with_slipping(npc->collisionChannel, &x, &y, &z, npc->moveSpeed, npc->yaw,
npc->collisionHeight, npc->collisionRadius) != 0) {
if (D_802BFF10) {
@ -417,29 +411,29 @@ void func_802BDDD8_321928(Npc* npc) {
npc->pos.x += (x - npc->pos.x) / 5.0f;
npc->pos.z += (z - npc->pos.z) / 5.0f;
} else {
npc_move_heading(npc, npc->moveSpeed, sp28);
npc_move_heading(npc, npc->moveSpeed, yaw);
if (D_802BFF10) {
collisionStatus->pushingAgainstWall = -1;
}
}
sp28 = clamp_angle(npc->yaw - 30.0f);
yaw = clamp_angle(npc->yaw - 30.0f);
x = npc->pos.x;
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_taller_with_slipping(npc->unk_80, &x, &y, &z, npc->moveSpeed, sp28,
if (npc_test_move_taller_with_slipping(npc->collisionChannel, &x, &y, &z, npc->moveSpeed, yaw,
npc->collisionHeight, npc->collisionRadius) != 0) {
npc->pos.x += (x - npc->pos.x) / 5.0f;
npc->pos.z += (z - npc->pos.z) / 5.0f;
}
sp28 = clamp_angle(npc->yaw + 30.0f);
yaw = clamp_angle(npc->yaw + 30.0f);
x = npc->pos.x;
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_taller_with_slipping(npc->unk_80, &x, &y, &z, npc->moveSpeed, sp28,
if (npc_test_move_taller_with_slipping(npc->collisionChannel, &x, &y, &z, npc->moveSpeed, yaw,
npc->collisionHeight, npc->collisionRadius) != 0) {
npc->pos.x += (x - npc->pos.x) / 5.0f;
@ -449,24 +443,24 @@ void func_802BDDD8_321928(Npc* npc) {
func_8003D660(npc, 1);
} else {
sp28 = 90.0f;
yaw = 90.0f;
x = npc->pos.x;
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_taller_with_slipping(npc->unk_80, &x, &y, &z, 4.0f, sp28, npc->collisionHeight,
if (npc_test_move_taller_with_slipping(npc->collisionChannel, &x, &y, &z, 4.0f, yaw, npc->collisionHeight,
npc->collisionRadius) != 0) {
npc->pos.x += (x - npc->pos.x) / 5.0f;
npc->pos.z += (z - npc->pos.z) / 5.0f;
}
sp28 = 270.0f;
yaw = 270.0f;
x = npc->pos.x;
y = npc->moveToPos.y;
z = npc->pos.z;
if (npc_test_move_taller_with_slipping(npc->unk_80, &x, &y, &z, 4.0f, sp28, npc->collisionHeight,
if (npc_test_move_taller_with_slipping(npc->collisionChannel, &x, &y, &z, 4.0f, yaw, npc->collisionHeight,
npc->collisionRadius) != 0) {
npc->pos.x += (x - npc->pos.x) / 5.0f;
@ -475,11 +469,11 @@ void func_802BDDD8_321928(Npc* npc) {
}
func_802BDA90_3215E0(npc);
npc->moveToPos.y = npc->moveToPos.y - npc->jumpScale;
npc->moveToPos.y -= npc->jumpScale;
sp3C = npc->collisionHeight + 2;
y = npc->moveToPos.y + 12.0f;
x = playerStatus->position.x;
z = playerStatus->position.z;
y = npc->moveToPos.y + 12.0f;
sp3C = npc->collisionHeight + 2;
add_vec2D_polar(&x, &z, 2.0f, gCameras[gCurrentCameraID].currentYaw);
raycastBelowResult = player_raycast_below_cam_relative(playerStatus, &x, &y, &z, &sp3C, &sp40,
&sp44, &sp48, &sp4C);
@ -501,7 +495,7 @@ void func_802BDDD8_321928(Npc* npc) {
playerStatus->lastGoodPosition.z = npc->pos.z;
collisionStatus->currentFloor = raycastBelowResult;
npc->unk_84 = raycastBelowResult;
npc->currentFloor = raycastBelowResult;
npc->moveToPos.y = y;
npc->moveToPos.x = x;
npc->moveToPos.z = z;
@ -511,43 +505,424 @@ void func_802BDDD8_321928(Npc* npc) {
if ((get_collider_type_by_id(raycastBelowResult) & 0xFF) == 3) {
npc->currentAnim.w = 0x80006;
npc->moveSpeed = sp2C * 0.5f;
npc->moveSpeed = moveSpeed * 0.5f;
} else {
npc->currentAnim.w = 0x80005;
npc->moveSpeed = sp2C;
npc->moveSpeed = moveSpeed;
}
return;
}
collisionStatus->currentFloor = -1;
playerStatus->decorationList = playerStatus->decorationList + 1;
npc->unk_84 = -1;
npc->currentFloor = -1;
npc->jumpScale += 1.8;
if (npc->jumpScale > 12.0f) {
npc->jumpScale = 12.0f;
}
}
#else
INCLUDE_ASM(s32, "world/partner/lakilester", func_802BDDD8_321928);
#endif
s32 func_802BE6A0_3221F0(f32* arg0) {
f32 colliderHeight = gPlayerStatus.colliderHeight;
f32 hitDirX, hitDirZ;
f32 hitRx, hitRz;
f32 sp28, sp2C;
f32 x, z;
*arg0 = gPlayerStatus.position.y + colliderHeight;
sp28 = gPlayerStatus.position.x;
sp2C = gPlayerStatus.position.z;
x = gPlayerStatus.position.x;
z = gPlayerStatus.position.z;
player_raycast_below_cam_relative(&gPlayerStatus, &sp28, arg0, &sp2C, &colliderHeight, &hitRx, &hitRz,
player_raycast_below_cam_relative(&gPlayerStatus, &x, arg0, &z, &colliderHeight, &hitRx, &hitRz,
&hitDirX, &hitDirZ);
}
ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "world/partner/lakilester", func_802BE724_322274);
ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
PlayerStatus* playerStatus = &gPlayerStatus;
PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus;
Camera* camera = &gCameras[CAM_DEFAULT];
Npc* npc = script->owner2.npc;
s32 colliderHeightTemp;
f32 x, y, z, sp2C;
f32 yaw, camYaw;
s32 i;
playerStatus->animFlags &= ~PLAYER_STATUS_ANIM_FLAGS_400000;
if (isInitialCall) {
func_802BD678_3211C8(npc);
if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_100000)) {
npc->flags = npc->flags & ~PLAYER_STATUS_ANIM_FLAGS_40;
npc->moveToPos.x = npc->pos.x;
npc->moveToPos.y = npc->pos.y;
npc->moveToPos.z = npc->pos.z;
if (gGameStatusPtr->keepUsingPartnerOnMapChange ||
(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_200000)) {
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_200000) {
playerStatus->animFlags &= ~PLAYER_STATUS_ANIM_FLAGS_200000;
}
D_802BFF14 = 100;
} else {
D_802BFF14 = 40;
}
if (partnerActionStatus->actionState.b[1] == 0) {
if (gGameStatusPtr->keepUsingPartnerOnMapChange == FALSE) {
if (playerStatus->actionState == ACTION_STATE_RIDE ||
playerStatus->actionState == ACTION_STATE_IDLE ||
playerStatus->actionState == ACTION_STATE_WALK ||
playerStatus->actionState == ACTION_STATE_RUN ||
playerStatus->actionState == ACTION_STATE_FALLING) {
playerStatus->flags |= PLAYER_STATUS_ANIM_FLAGS_100;
} else {
return ApiStatus_DONE2;
}
}
} else {
partnerActionStatus->actionState.b[1] = 0;
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_100;
npc->flags &= ~(NPC_FLAG_40 | NPC_FLAG_ENABLE_HIT_SCRIPT);
npc->flags |= NPC_FLAG_100;
set_action_state(ACTION_STATE_RIDE);
suggest_player_anim_setUnkFlag(0x8000E);
npc->currentAnim.w = 0x80005;
D_802BFF0C = 1;
npc->flags &= ~(NPC_FLAG_40 | NPC_FLAG_ENABLE_HIT_SCRIPT);
npc->flags |= (NPC_FLAG_100 | NPC_FLAG_400000);
partnerActionStatus->actionState.b[3] = 8;
partnerActionStatus->actionState.b[0] = 1;
gGameStatusPtr->keepUsingPartnerOnMapChange = 0;
npc->pos.x = playerStatus->position.x;
npc->pos.y = npc->moveToPos.y;
npc->pos.z = playerStatus->position.z;
npc->currentAnim.w = 0x80005;
playerStatus->position.y = npc->pos.y + 10.0f;
npc->moveSpeed = 3.0f;
npc->jumpScale = 0.0f;
npc->yaw = playerStatus->targetYaw;
suggest_player_anim_setUnkFlag(0x8000E);
set_action_state(ACTION_STATE_RIDE);
disable_player_static_collisions();
D_802BFF08 = 1;
if (D_802BFF04 == 0) {
disable_player_input();
D_802BFF04 = 1;
}
D_802BFF18 = 0;
D_802BFF14 = 1;
npc->flags |= NPC_FLAG_40;
}
} else {
return ApiStatus_DONE2;
}
}
switch (D_802BFF14) {
case 40:
if (playerStatus->flags & PLAYER_STATUS_FLAGS_800 ||
playerStatus->statusMenuCounterinputEnabledCounter) {
playerStatus->flags &= ~NPC_FLAG_100;
return ApiStatus_DONE2;
}
script->functionTemp[1] = 3;
script->functionTemp[2] = disable_player_input();
D_802BFF04 = 1;
D_802BFF14 += 1;
break;
case 41:
if (playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_800) {
playerStatus->flags &= ~NPC_FLAG_100;
if (D_802BFF04 != 0) {
enable_player_input();
D_802BFF04 = 0;
}
return ApiStatus_DONE2;
}
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_100000) {
if (script->functionTemp[2] < playerStatus->statusMenuCounterinputEnabledCounter) {
enable_player_input();
D_802BFF04 = 0;
}
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_100;
return ApiStatus_DONE2;
}
if (script->functionTemp[1] == 0) {
if (script->functionTemp[2] < playerStatus->statusMenuCounterinputEnabledCounter) {
enable_player_input();
D_802BFF04 = 0;
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_100;
return ApiStatus_DONE2;
}
D_802BFF14 = 100;
break;
}
script->functionTemp[1]--;
break;
}
switch (D_802BFF14) {
case 100:
disable_player_static_collisions();
D_802BFF08 = 1;
if (D_802BFF04 == 0) {
disable_player_input();
D_802BFF04 = 1;
}
npc->flags &= ~NPC_FLAG_ENABLE_HIT_SCRIPT;
npc->flags |= (NPC_FLAG_400000 | NPC_FLAG_100);
set_action_state(ACTION_STATE_RIDE);
D_802BFF0C = 1;
func_800EF4E0();
npc->moveToPos.x = playerStatus->position.x;
npc->moveToPos.y = playerStatus->position.y;
npc->moveToPos.z = playerStatus->position.z;
yaw = 0.0f;
for (i = 0; i < 4; i++) {
x = npc->moveToPos.x;
y = npc->moveToPos.y;
z = npc->moveToPos.z;
npc_test_move_simple_with_slipping(0x10000, &x, &y, &z, npc->moveSpeed,
yaw, npc->collisionHeight, npc->collisionRadius);
npc->moveToPos.x = x;
npc->moveToPos.y = y;
npc->moveToPos.z = z;
yaw += 90.0f;
}
npc->yaw = atan2(npc->pos.x, npc->pos.z, npc->moveToPos.x, npc->moveToPos.z);
npc->duration = 12;
npc->currentAnim.w = 0x80005;
npc->jumpVelocity = 8.0f;
npc->jumpScale = 1.4f;
suggest_player_anim_clearUnkFlag(0x10006);
D_802BFF14 = 101;
break;
case 101:
sfx_play_sound_at_npc(SOUND_JUMP_2081, 0, NPC_PARTNER);
suggest_player_anim_clearUnkFlag(0x10007);
/* fallthrough */
case 102:
D_802BFF14 += 1;
/* fallthrough */
case 103:
if (!(playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_800)) {
npc->pos.x += (npc->moveToPos.x - npc->pos.x) / npc->duration;
npc->pos.z += (npc->moveToPos.z - npc->pos.z) / npc->duration;
npc->pos.y += (npc->moveToPos.y - npc->pos.y) / npc->duration;
playerStatus->position.y += npc->jumpVelocity;
colliderHeightTemp = playerStatus->colliderHeight;
func_802BD99C_3214EC(npc, colliderHeightTemp, (colliderHeightTemp * 2));
playerStatus->position.y += D_802BFF24;
npc->pos.y += D_802BFF24;
npc->jumpVelocity -= npc->jumpScale;
if (npc->jumpVelocity <= 0.0f) {
suggest_player_anim_clearUnkFlag(0x10008);
}
npc->duration--;
if (npc->duration > 0) {
if (npc->duration == 1) {
add_vec2D_polar(&npc->pos.x, &npc->pos.z, -2.0f,
gCameras[gCurrentCameraID].currentYaw);
}
} else {
playerStatus->position.y = npc->pos.y + 10.0f;
npc->moveSpeed = playerStatus->runSpeed;
npc->jumpScale = 0.0f;
npc->yaw = playerStatus->targetYaw;
npc->duration = 3;
set_action_state(ACTION_STATE_RIDE);
suggest_player_anim_setUnkFlag(0x8000E);
disable_player_shadow();
partnerActionStatus->actionState.b[3] = 8;
partnerActionStatus->actionState.b[0] = 1;
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_100;
gGameStatusPtr->keepUsingPartnerOnMapChange = 0;
D_802BFF18 = 0;
D_802BFF0C = 2;
func_802BFB44_323694(2.0f);
D_802BFF14 = 104;
playerStatus->animFlags |= PLAYER_STATUS_ANIM_FLAGS_400000;
}
} else {
D_802BFF14 = 10;
}
break;
case 104:
if (playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_800) {
D_802BFF14 = 10;
} else {
npc->duration--;
if (npc->duration != 0) {
if (partnerActionStatus->pressedButtons & (B_BUTTON | D_CBUTTONS) &&
func_802BD7DC() != 0) {
D_802BFF14 = 3;
}
} else {
D_802BFF14 = 1;
npc->flags |= NPC_FLAG_40;
case 1:
func_802BDDD8_321928(npc);
playerStatus->animFlags |= PLAYER_STATUS_ANIM_FLAGS_400000;
D_802BFF18++;
npc->pos.y = npc->moveToPos.y + 2.0f;
if (D_802BFF18 >= 10) {
D_802BFF18 = D_802BFF18 - 18;
}
if (partnerActionStatus->inputDisabled == FALSE) {
playerStatus->targetYaw = npc->yaw;
}
if (!(playerStatus->flags & PLAYER_STATUS_FLAGS_800)) {
if (partnerActionStatus->pressedButtons & (B_BUTTON | D_CBUTTONS)) {
if (func_802BD7DC() != 0) {
D_802BFF14 = 3;
} else {
if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_40000000)) {
sfx_play_sound_at_npc(SOUND_MENU_ERROR, 0, NPC_PARTNER);
}
playerStatus->animFlags &= ~PLAYER_STATUS_ANIM_FLAGS_40000000;
}
}
} else {
D_802BFF14 = 10;
break;
}
}
}
break;
case 3:
npc->flags &= ~NPC_FLAG_40;
playerStatus->flags |= NPC_FLAG_100;
func_802BD7DC();
camYaw = camera->currentYaw;
if (playerStatus->spriteFacingAngle >= 90.0f && playerStatus->spriteFacingAngle < 270.0f) {
yaw = (180.0f + camYaw) - 90.0f;
} else {
yaw = (0.0f + camYaw) - 90.0f;
}
npc->yaw = yaw;
sp2C = dist2D(playerStatus->position.x, playerStatus->position.z,
npc->moveToPos.x, npc->moveToPos.z);
npc->yaw = atan2(playerStatus->position.x, playerStatus->position.z,
npc->moveToPos.x, npc->moveToPos.z);
npc->duration = 14;
npc->jumpScale = 1.2f;
if (npc->moveToPos.y > npc->pos.y) {
npc->jumpVelocity = ((npc->moveToPos.y - npc->pos.y) / 14.0f) + 6.0f;
} else {
npc->jumpVelocity = 6.0f;
}
npc->moveSpeed = sp2C / npc->duration;
suggest_player_anim_clearUnkFlag(0x10006);
D_802BFF14 += 1;
break;
case 4:
suggest_player_anim_clearUnkFlag(0x10007);
D_802BFF14++;
/* fallthrough */
case 5:
gCameras[0].moveFlags |= 1;
playerStatus->position.y += npc->jumpVelocity;
sp2C = playerStatus->colliderHeight * 0.5f;
x = playerStatus->position.x;
y = playerStatus->position.y + (playerStatus->colliderHeight * 0.5f);
z = playerStatus->position.z;
yaw = playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].currentYaw;
if (player_raycast_up_corners(playerStatus, &x, &y, &z, &sp2C, yaw) >= 0) {
D_802BFF14 = 10;
break;
}
npc->jumpVelocity -= npc->jumpScale;
add_vec2D_polar(&playerStatus->position.x, &playerStatus->position.z, npc->moveSpeed, npc->yaw);
func_800E4AD8(0);
if (func_802BE6A0_3221F0(&y) >= 0) {
D_802BFF14 = 10;
playerStatus->position.y = y;
}
break;
}
gCameras[0].targetPos.x = playerStatus->position.x;
gCameras[0].targetPos.y = npc->moveToPos.y;
gCameras[0].targetPos.z = playerStatus->position.z;
if (D_802BFF14 == 10) {
D_802BFF0C = 0;
npc->flags &= ~(NPC_FLAG_40 | NPC_FLAG_400000 | NPC_FLAG_ENABLE_HIT_SCRIPT);
if (D_802BFF08 != 0) {
D_802BFF08 = 0;
enable_player_static_collisions();
}
enable_player_shadow();
gGameStatusPtr->keepUsingPartnerOnMapChange = 0;
if (playerStatus->flags & PLAYER_STATUS_FLAGS_800) {
partnerActionStatus->actionState.b[3] = 0;
partnerActionStatus->actionState.b[0] = 0;
if (D_802BFF04 != 0) {
D_802BFF04 = 0;
enable_player_input();
}
partner_clear_player_tracking(npc);
set_action_state(ACTION_STATE_HIT_FIRE);
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_100;
return ApiStatus_DONE1;
}
set_action_state(ACTION_STATE_FALLING);
gravity_use_fall_parms();
D_802BFF14 = 11;
return ApiStatus_BLOCK;
}
if (D_802BFF14 == 11) {
npc->flags &= ~(NPC_FLAG_40 | NPC_FLAG_400000 | NPC_FLAG_ENABLE_HIT_SCRIPT);
partnerActionStatus->actionState.b[3] = 0;
partnerActionStatus->actionState.b[0] = 0;
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_100;
if (D_802BFF04 != 0) {
D_802BFF04 = 0;
enable_player_input();
}
gGameStatusPtr->keepUsingPartnerOnMapChange = 0;
partner_clear_player_tracking(npc);
func_800EF3D4(2);
return ApiStatus_DONE1;
}
return ApiStatus_BLOCK;
}
EvtScript world_lakilester_use_ability = {
EVT_CALL(func_802BE724_322274)

View File

@ -928,7 +928,7 @@ void partner_set_goal_pos(s32 x, s32 z) {
wPartnerMoveGoalZ = z;
}
void func_800EF3D4(s16 arg0) {
void func_800EF3D4(s32 arg0) {
D_8010CFCA = arg0;
}

View File

@ -1,31 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel spr_get_npc_raster_info
/* 101AC8 802DE9D8 0080382D */ daddu $a3, $a0, $zero
/* 101ACC 802DE9DC 00052880 */ sll $a1, $a1, 2
/* 101AD0 802DE9E0 3C04802E */ lui $a0, %hi(spr_npcSprites)
/* 101AD4 802DE9E4 00852021 */ addu $a0, $a0, $a1
/* 101AD8 802DE9E8 8C84F5B0 */ lw $a0, %lo(spr_npcSprites)($a0)
/* 101ADC 802DE9EC 14800003 */ bnez $a0, .L802DE9FC
/* 101AE0 802DE9F0 00061080 */ sll $v0, $a2, 2
/* 101AE4 802DE9F4 03E00008 */ jr $ra
/* 101AE8 802DE9F8 0000102D */ daddu $v0, $zero, $zero
.L802DE9FC:
/* 101AEC 802DE9FC 8C830000 */ lw $v1, ($a0)
/* 101AF0 802DEA00 00431021 */ addu $v0, $v0, $v1
/* 101AF4 802DEA04 8C430000 */ lw $v1, ($v0)
/* 101AF8 802DEA08 8C840004 */ lw $a0, 4($a0)
/* 101AFC 802DEA0C 8C620000 */ lw $v0, ($v1)
/* 101B00 802DEA10 ACE20000 */ sw $v0, ($a3)
/* 101B04 802DEA14 90620004 */ lbu $v0, 4($v1)
/* 101B08 802DEA18 ACE20008 */ sw $v0, 8($a3)
/* 101B0C 802DEA1C 90620005 */ lbu $v0, 5($v1)
/* 101B10 802DEA20 ACE2000C */ sw $v0, 0xc($a3)
/* 101B14 802DEA24 80620006 */ lb $v0, 6($v1)
/* 101B18 802DEA28 00021080 */ sll $v0, $v0, 2
/* 101B1C 802DEA2C 00441021 */ addu $v0, $v0, $a0
/* 101B20 802DEA30 8C430000 */ lw $v1, ($v0)
/* 101B24 802DEA34 24020001 */ addiu $v0, $zero, 1
/* 101B28 802DEA38 03E00008 */ jr $ra
/* 101B2C 802DEA3C ACE30004 */ sw $v1, 4($a3)

View File

@ -1,24 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel spr_init_quad_cache
/* FEE30 802DBD40 27BDFFE8 */ addiu $sp, $sp, -0x18
/* FEE34 802DBD44 3C048035 */ lui $a0, %hi(gSpriteHeapPtr)
/* FEE38 802DBD48 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr)
/* FEE3C 802DBD4C AFBF0010 */ sw $ra, 0x10($sp)
/* FEE40 802DBD50 0C00A41B */ jal _heap_malloc
/* FEE44 802DBD54 24050580 */ addiu $a1, $zero, 0x580
/* FEE48 802DBD58 2404FFFF */ addiu $a0, $zero, -1
/* FEE4C 802DBD5C 24030015 */ addiu $v1, $zero, 0x15
/* FEE50 802DBD60 3C01802E */ lui $at, %hi(D_802DFE44)
/* FEE54 802DBD64 AC22FE44 */ sw $v0, %lo(D_802DFE44)($at)
/* FEE58 802DBD68 3C02802E */ lui $v0, %hi(D_802DFE9C)
/* FEE5C 802DBD6C 2442FE9C */ addiu $v0, $v0, %lo(D_802DFE9C)
.L802DBD70:
/* FEE60 802DBD70 AC440000 */ sw $a0, ($v0)
/* FEE64 802DBD74 2463FFFF */ addiu $v1, $v1, -1
/* FEE68 802DBD78 0461FFFD */ bgez $v1, .L802DBD70
/* FEE6C 802DBD7C 2442FFFC */ addiu $v0, $v0, -4
/* FEE70 802DBD80 8FBF0010 */ lw $ra, 0x10($sp)
/* FEE74 802DBD84 03E00008 */ jr $ra
/* FEE78 802DBD88 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,595 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_802BFEF8_323A48
.double 1.8
.section .text
glabel func_802BDDD8_321928
/* 321928 802BDDD8 27BDFF80 */ addiu $sp, $sp, -0x80
/* 32192C 802BDDDC AFB20060 */ sw $s2, 0x60($sp)
/* 321930 802BDDE0 0080902D */ daddu $s2, $a0, $zero
/* 321934 802BDDE4 27A40028 */ addiu $a0, $sp, 0x28
/* 321938 802BDDE8 F7B40078 */ sdc1 $f20, 0x78($sp)
/* 32193C 802BDDEC 4480A000 */ mtc1 $zero, $f20
/* 321940 802BDDF0 27A5002C */ addiu $a1, $sp, 0x2c
/* 321944 802BDDF4 AFBF0070 */ sw $ra, 0x70($sp)
/* 321948 802BDDF8 AFB5006C */ sw $s5, 0x6c($sp)
/* 32194C 802BDDFC AFB40068 */ sw $s4, 0x68($sp)
/* 321950 802BDE00 AFB30064 */ sw $s3, 0x64($sp)
/* 321954 802BDE04 AFB1005C */ sw $s1, 0x5c($sp)
/* 321958 802BDE08 AFB00058 */ sw $s0, 0x58($sp)
/* 32195C 802BDE0C E7B40028 */ swc1 $f20, 0x28($sp)
/* 321960 802BDE10 0C0AF5AF */ jal func_802BD6BC_32120C
/* 321964 802BDE14 E7B4002C */ swc1 $f20, 0x2c($sp)
/* 321968 802BDE18 86440084 */ lh $a0, 0x84($s2)
/* 32196C 802BDE1C 0C016F6A */ jal get_collider_type_by_id
/* 321970 802BDE20 00000000 */ nop
/* 321974 802BDE24 3C148011 */ lui $s4, %hi(gPlayerStatus)
/* 321978 802BDE28 2694EFC8 */ addiu $s4, $s4, %lo(gPlayerStatus)
/* 32197C 802BDE2C 3C158016 */ lui $s5, %hi(gCollisionStatus)
/* 321980 802BDE30 26B5A550 */ addiu $s5, $s5, %lo(gCollisionStatus)
/* 321984 802BDE34 304200FF */ andi $v0, $v0, 0xff
/* 321988 802BDE38 24030003 */ addiu $v1, $zero, 3
/* 32198C 802BDE3C 14430008 */ bne $v0, $v1, .L802BDE60
/* 321990 802BDE40 00000000 */ nop
/* 321994 802BDE44 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 321998 802BDE48 3C013F00 */ lui $at, 0x3f00
/* 32199C 802BDE4C 44811000 */ mtc1 $at, $f2
/* 3219A0 802BDE50 00000000 */ nop
/* 3219A4 802BDE54 46020002 */ mul.s $f0, $f0, $f2
/* 3219A8 802BDE58 00000000 */ nop
/* 3219AC 802BDE5C E7A0002C */ swc1 $f0, 0x2c($sp)
.L802BDE60:
/* 3219B0 802BDE60 3C01802C */ lui $at, %hi(D_802BFF28)
/* 3219B4 802BDE64 C422FF28 */ lwc1 $f2, %lo(D_802BFF28)($at)
/* 3219B8 802BDE68 3C0141A0 */ lui $at, 0x41a0
/* 3219BC 802BDE6C 44810000 */ mtc1 $at, $f0
/* 3219C0 802BDE70 00000000 */ nop
/* 3219C4 802BDE74 4602003E */ c.le.s $f0, $f2
/* 3219C8 802BDE78 00000000 */ nop
/* 3219CC 802BDE7C 45000009 */ bc1f .L802BDEA4
/* 3219D0 802BDE80 00000000 */ nop
/* 3219D4 802BDE84 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 3219D8 802BDE88 3C013F4C */ lui $at, 0x3f4c
/* 3219DC 802BDE8C 3421CCCD */ ori $at, $at, 0xcccd
/* 3219E0 802BDE90 44811000 */ mtc1 $at, $f2
/* 3219E4 802BDE94 00000000 */ nop
/* 3219E8 802BDE98 46020002 */ mul.s $f0, $f0, $f2
/* 3219EC 802BDE9C 00000000 */ nop
/* 3219F0 802BDEA0 E7A0002C */ swc1 $f0, 0x2c($sp)
.L802BDEA4:
/* 3219F4 802BDEA4 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 3219F8 802BDEA8 46140032 */ c.eq.s $f0, $f20
/* 3219FC 802BDEAC 00000000 */ nop
/* 321A00 802BDEB0 45010026 */ bc1t .L802BDF4C
/* 321A04 802BDEB4 E6400018 */ swc1 $f0, 0x18($s2)
/* 321A08 802BDEB8 3C02802C */ lui $v0, %hi(D_802BFF1C)
/* 321A0C 802BDEBC 2442FF1C */ addiu $v0, $v0, %lo(D_802BFF1C)
/* 321A10 802BDEC0 3C07802C */ lui $a3, %hi(D_802BFF20)
/* 321A14 802BDEC4 24E7FF20 */ addiu $a3, $a3, %lo(D_802BFF20)
/* 321A18 802BDEC8 8C430000 */ lw $v1, ($v0)
/* 321A1C 802BDECC 8CE40000 */ lw $a0, ($a3)
/* 321A20 802BDED0 24630001 */ addiu $v1, $v1, 1
/* 321A24 802BDED4 AC430000 */ sw $v1, ($v0)
/* 321A28 802BDED8 24820001 */ addiu $v0, $a0, 1
/* 321A2C 802BDEDC 30630007 */ andi $v1, $v1, 7
/* 321A30 802BDEE0 1460001A */ bnez $v1, .L802BDF4C
/* 321A34 802BDEE4 ACE20000 */ sw $v0, ($a3)
/* 321A38 802BDEE8 28420078 */ slti $v0, $v0, 0x78
/* 321A3C 802BDEEC 50400001 */ beql $v0, $zero, .L802BDEF4
/* 321A40 802BDEF0 ACE00000 */ sw $zero, ($a3)
.L802BDEF4:
/* 321A44 802BDEF4 8CE70000 */ lw $a3, ($a3)
/* 321A48 802BDEF8 28E2003C */ slti $v0, $a3, 0x3c
/* 321A4C 802BDEFC 10400005 */ beqz $v0, .L802BDF14
/* 321A50 802BDF00 0000202D */ daddu $a0, $zero, $zero
/* 321A54 802BDF04 4405A000 */ mfc1 $a1, $f20
/* 321A58 802BDF08 3C0642C8 */ lui $a2, 0x42c8
/* 321A5C 802BDF0C 080AF7C9 */ j .L802BDF24
/* 321A60 802BDF10 2402003C */ addiu $v0, $zero, 0x3c
.L802BDF14:
/* 321A64 802BDF14 24E7FFC4 */ addiu $a3, $a3, -0x3c
/* 321A68 802BDF18 3C0542C8 */ lui $a1, 0x42c8
/* 321A6C 802BDF1C 4406A000 */ mfc1 $a2, $f20
/* 321A70 802BDF20 2402003C */ addiu $v0, $zero, 0x3c
.L802BDF24:
/* 321A74 802BDF24 0C00A8ED */ jal update_lerp
/* 321A78 802BDF28 AFA20010 */ sw $v0, 0x10($sp)
/* 321A7C 802BDF2C 4600028D */ trunc.w.s $f10, $f0
/* 321A80 802BDF30 44075000 */ mfc1 $a3, $f10
/* 321A84 802BDF34 24040295 */ addiu $a0, $zero, 0x295
/* 321A88 802BDF38 0000282D */ daddu $a1, $zero, $zero
/* 321A8C 802BDF3C 24060040 */ addiu $a2, $zero, 0x40
/* 321A90 802BDF40 00073C00 */ sll $a3, $a3, 0x10
/* 321A94 802BDF44 0C0526AE */ jal sfx_play_sound_with_params
/* 321A98 802BDF48 00073C03 */ sra $a3, $a3, 0x10
.L802BDF4C:
/* 321A9C 802BDF4C C6400038 */ lwc1 $f0, 0x38($s2)
/* 321AA0 802BDF50 C6420064 */ lwc1 $f2, 0x64($s2)
/* 321AA4 802BDF54 C6440040 */ lwc1 $f4, 0x40($s2)
/* 321AA8 802BDF58 864200A6 */ lh $v0, 0xa6($s2)
/* 321AAC 802BDF5C E7A00030 */ swc1 $f0, 0x30($sp)
/* 321AB0 802BDF60 44820000 */ mtc1 $v0, $f0
/* 321AB4 802BDF64 00000000 */ nop
/* 321AB8 802BDF68 46800020 */ cvt.s.w $f0, $f0
/* 321ABC 802BDF6C E7A20034 */ swc1 $f2, 0x34($sp)
/* 321AC0 802BDF70 E7A40038 */ swc1 $f4, 0x38($sp)
/* 321AC4 802BDF74 E7A00010 */ swc1 $f0, 0x10($sp)
/* 321AC8 802BDF78 C640000C */ lwc1 $f0, 0xc($s2)
/* 321ACC 802BDF7C E7A00014 */ swc1 $f0, 0x14($sp)
/* 321AD0 802BDF80 864200A8 */ lh $v0, 0xa8($s2)
/* 321AD4 802BDF84 27A50030 */ addiu $a1, $sp, 0x30
/* 321AD8 802BDF88 44820000 */ mtc1 $v0, $f0
/* 321ADC 802BDF8C 00000000 */ nop
/* 321AE0 802BDF90 46800020 */ cvt.s.w $f0, $f0
/* 321AE4 802BDF94 E7A00018 */ swc1 $f0, 0x18($sp)
/* 321AE8 802BDF98 864200A6 */ lh $v0, 0xa6($s2)
/* 321AEC 802BDF9C 27A60034 */ addiu $a2, $sp, 0x34
/* 321AF0 802BDFA0 44820000 */ mtc1 $v0, $f0
/* 321AF4 802BDFA4 00000000 */ nop
/* 321AF8 802BDFA8 46800020 */ cvt.s.w $f0, $f0
/* 321AFC 802BDFAC E7A0001C */ swc1 $f0, 0x1c($sp)
/* 321B00 802BDFB0 8E440080 */ lw $a0, 0x80($s2)
/* 321B04 802BDFB4 0C0376B9 */ jal npc_test_move_taller_with_slipping
/* 321B08 802BDFB8 27A70038 */ addiu $a3, $sp, 0x38
/* 321B0C 802BDFBC 1040000D */ beqz $v0, .L802BDFF4
/* 321B10 802BDFC0 00000000 */ nop
/* 321B14 802BDFC4 3C028011 */ lui $v0, %hi(gPartnerActionStatus)
/* 321B18 802BDFC8 2442EBB0 */ addiu $v0, $v0, %lo(gPartnerActionStatus)
/* 321B1C 802BDFCC 8C42000C */ lw $v0, 0xc($v0)
/* 321B20 802BDFD0 30428000 */ andi $v0, $v0, 0x8000
/* 321B24 802BDFD4 10400005 */ beqz $v0, .L802BDFEC
/* 321B28 802BDFD8 26A3000A */ addiu $v1, $s5, 0xa
/* 321B2C 802BDFDC 3C028011 */ lui $v0, %hi(D_8010C97A)
/* 321B30 802BDFE0 9442C97A */ lhu $v0, %lo(D_8010C97A)($v0)
/* 321B34 802BDFE4 080AF7FD */ j .L802BDFF4
/* 321B38 802BDFE8 A4620000 */ sh $v0, ($v1)
.L802BDFEC:
/* 321B3C 802BDFEC 2402FFFF */ addiu $v0, $zero, -1
/* 321B40 802BDFF0 A4620000 */ sh $v0, ($v1)
.L802BDFF4:
/* 321B44 802BDFF4 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* 321B48 802BDFF8 44800000 */ mtc1 $zero, $f0
/* 321B4C 802BDFFC 00000000 */ nop
/* 321B50 802BE000 46001032 */ c.eq.s $f2, $f0
/* 321B54 802BE004 00000000 */ nop
/* 321B58 802BE008 4501009E */ bc1t .L802BE284
/* 321B5C 802BE00C 27B30030 */ addiu $s3, $sp, 0x30
/* 321B60 802BE010 C7A00028 */ lwc1 $f0, 0x28($sp)
/* 321B64 802BE014 C6420038 */ lwc1 $f2, 0x38($s2)
/* 321B68 802BE018 C6440064 */ lwc1 $f4, 0x64($s2)
/* 321B6C 802BE01C C6460040 */ lwc1 $f6, 0x40($s2)
/* 321B70 802BE020 C6480018 */ lwc1 $f8, 0x18($s2)
/* 321B74 802BE024 E640000C */ swc1 $f0, 0xc($s2)
/* 321B78 802BE028 E7A20030 */ swc1 $f2, 0x30($sp)
/* 321B7C 802BE02C E7A40034 */ swc1 $f4, 0x34($sp)
/* 321B80 802BE030 E7A60038 */ swc1 $f6, 0x38($sp)
/* 321B84 802BE034 E7A80010 */ swc1 $f8, 0x10($sp)
/* 321B88 802BE038 C640000C */ lwc1 $f0, 0xc($s2)
/* 321B8C 802BE03C E7A00014 */ swc1 $f0, 0x14($sp)
/* 321B90 802BE040 864200A8 */ lh $v0, 0xa8($s2)
/* 321B94 802BE044 27A50030 */ addiu $a1, $sp, 0x30
/* 321B98 802BE048 44820000 */ mtc1 $v0, $f0
/* 321B9C 802BE04C 00000000 */ nop
/* 321BA0 802BE050 46800020 */ cvt.s.w $f0, $f0
/* 321BA4 802BE054 E7A00018 */ swc1 $f0, 0x18($sp)
/* 321BA8 802BE058 864200A6 */ lh $v0, 0xa6($s2)
/* 321BAC 802BE05C 27A60034 */ addiu $a2, $sp, 0x34
/* 321BB0 802BE060 44820000 */ mtc1 $v0, $f0
/* 321BB4 802BE064 00000000 */ nop
/* 321BB8 802BE068 46800020 */ cvt.s.w $f0, $f0
/* 321BBC 802BE06C E7A0001C */ swc1 $f0, 0x1c($sp)
/* 321BC0 802BE070 8E440080 */ lw $a0, 0x80($s2)
/* 321BC4 802BE074 0C037765 */ jal npc_test_move_complex_with_slipping
/* 321BC8 802BE078 27A70038 */ addiu $a3, $sp, 0x38
/* 321BCC 802BE07C 10400017 */ beqz $v0, .L802BE0DC
/* 321BD0 802BE080 00000000 */ nop
/* 321BD4 802BE084 3C02802C */ lui $v0, %hi(D_802BFF10)
/* 321BD8 802BE088 8C42FF10 */ lw $v0, %lo(D_802BFF10)($v0)
/* 321BDC 802BE08C 10400004 */ beqz $v0, .L802BE0A0
/* 321BE0 802BE090 00000000 */ nop
/* 321BE4 802BE094 3C028011 */ lui $v0, %hi(D_8010C97A)
/* 321BE8 802BE098 9442C97A */ lhu $v0, %lo(D_8010C97A)($v0)
/* 321BEC 802BE09C A6A20000 */ sh $v0, ($s5)
.L802BE0A0:
/* 321BF0 802BE0A0 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 321BF4 802BE0A4 C6460038 */ lwc1 $f6, 0x38($s2)
/* 321BF8 802BE0A8 C7A20038 */ lwc1 $f2, 0x38($sp)
/* 321BFC 802BE0AC 46060001 */ sub.s $f0, $f0, $f6
/* 321C00 802BE0B0 C6440040 */ lwc1 $f4, 0x40($s2)
/* 321C04 802BE0B4 3C0140A0 */ lui $at, 0x40a0
/* 321C08 802BE0B8 44814000 */ mtc1 $at, $f8
/* 321C0C 802BE0BC 46041081 */ sub.s $f2, $f2, $f4
/* 321C10 802BE0C0 46080003 */ div.s $f0, $f0, $f8
/* 321C14 802BE0C4 46003180 */ add.s $f6, $f6, $f0
/* 321C18 802BE0C8 46081083 */ div.s $f2, $f2, $f8
/* 321C1C 802BE0CC 46022100 */ add.s $f4, $f4, $f2
/* 321C20 802BE0D0 E6460038 */ swc1 $f6, 0x38($s2)
/* 321C24 802BE0D4 080AF840 */ j .L802BE100
/* 321C28 802BE0D8 E6440040 */ swc1 $f4, 0x40($s2)
.L802BE0DC:
/* 321C2C 802BE0DC 8E450018 */ lw $a1, 0x18($s2)
/* 321C30 802BE0E0 8FA60028 */ lw $a2, 0x28($sp)
/* 321C34 802BE0E4 0C00EA95 */ jal npc_move_heading
/* 321C38 802BE0E8 0240202D */ daddu $a0, $s2, $zero
/* 321C3C 802BE0EC 3C02802C */ lui $v0, %hi(D_802BFF10)
/* 321C40 802BE0F0 8C42FF10 */ lw $v0, %lo(D_802BFF10)($v0)
/* 321C44 802BE0F4 10400002 */ beqz $v0, .L802BE100
/* 321C48 802BE0F8 2402FFFF */ addiu $v0, $zero, -1
/* 321C4C 802BE0FC A6A20000 */ sh $v0, ($s5)
.L802BE100:
/* 321C50 802BE100 C64C000C */ lwc1 $f12, 0xc($s2)
/* 321C54 802BE104 3C0141F0 */ lui $at, 0x41f0
/* 321C58 802BE108 4481A000 */ mtc1 $at, $f20
/* 321C5C 802BE10C 0C00A6C9 */ jal clamp_angle
/* 321C60 802BE110 46146301 */ sub.s $f12, $f12, $f20
/* 321C64 802BE114 27B30030 */ addiu $s3, $sp, 0x30
/* 321C68 802BE118 0260282D */ daddu $a1, $s3, $zero
/* 321C6C 802BE11C C6420038 */ lwc1 $f2, 0x38($s2)
/* 321C70 802BE120 C6440064 */ lwc1 $f4, 0x64($s2)
/* 321C74 802BE124 C6460040 */ lwc1 $f6, 0x40($s2)
/* 321C78 802BE128 C6480018 */ lwc1 $f8, 0x18($s2)
/* 321C7C 802BE12C 27B10034 */ addiu $s1, $sp, 0x34
/* 321C80 802BE130 E7A00028 */ swc1 $f0, 0x28($sp)
/* 321C84 802BE134 E7A20030 */ swc1 $f2, 0x30($sp)
/* 321C88 802BE138 E7A40034 */ swc1 $f4, 0x34($sp)
/* 321C8C 802BE13C E7A60038 */ swc1 $f6, 0x38($sp)
/* 321C90 802BE140 E7A80010 */ swc1 $f8, 0x10($sp)
/* 321C94 802BE144 E7A00014 */ swc1 $f0, 0x14($sp)
/* 321C98 802BE148 864200A8 */ lh $v0, 0xa8($s2)
/* 321C9C 802BE14C 0220302D */ daddu $a2, $s1, $zero
/* 321CA0 802BE150 44820000 */ mtc1 $v0, $f0
/* 321CA4 802BE154 00000000 */ nop
/* 321CA8 802BE158 46800020 */ cvt.s.w $f0, $f0
/* 321CAC 802BE15C E7A00018 */ swc1 $f0, 0x18($sp)
/* 321CB0 802BE160 864200A6 */ lh $v0, 0xa6($s2)
/* 321CB4 802BE164 27B00038 */ addiu $s0, $sp, 0x38
/* 321CB8 802BE168 44820000 */ mtc1 $v0, $f0
/* 321CBC 802BE16C 00000000 */ nop
/* 321CC0 802BE170 46800020 */ cvt.s.w $f0, $f0
/* 321CC4 802BE174 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 321CC8 802BE178 8E440080 */ lw $a0, 0x80($s2)
/* 321CCC 802BE17C 0C0376B9 */ jal npc_test_move_taller_with_slipping
/* 321CD0 802BE180 0200382D */ daddu $a3, $s0, $zero
/* 321CD4 802BE184 1040000F */ beqz $v0, .L802BE1C4
/* 321CD8 802BE188 00000000 */ nop
/* 321CDC 802BE18C C7A00030 */ lwc1 $f0, 0x30($sp)
/* 321CE0 802BE190 C6460038 */ lwc1 $f6, 0x38($s2)
/* 321CE4 802BE194 C7A20038 */ lwc1 $f2, 0x38($sp)
/* 321CE8 802BE198 46060001 */ sub.s $f0, $f0, $f6
/* 321CEC 802BE19C C6440040 */ lwc1 $f4, 0x40($s2)
/* 321CF0 802BE1A0 3C0140A0 */ lui $at, 0x40a0
/* 321CF4 802BE1A4 44814000 */ mtc1 $at, $f8
/* 321CF8 802BE1A8 46041081 */ sub.s $f2, $f2, $f4
/* 321CFC 802BE1AC 46080003 */ div.s $f0, $f0, $f8
/* 321D00 802BE1B0 46003180 */ add.s $f6, $f6, $f0
/* 321D04 802BE1B4 46081083 */ div.s $f2, $f2, $f8
/* 321D08 802BE1B8 46022100 */ add.s $f4, $f4, $f2
/* 321D0C 802BE1BC E6460038 */ swc1 $f6, 0x38($s2)
/* 321D10 802BE1C0 E6440040 */ swc1 $f4, 0x40($s2)
.L802BE1C4:
/* 321D14 802BE1C4 C64C000C */ lwc1 $f12, 0xc($s2)
/* 321D18 802BE1C8 0C00A6C9 */ jal clamp_angle
/* 321D1C 802BE1CC 46146300 */ add.s $f12, $f12, $f20
/* 321D20 802BE1D0 C6420038 */ lwc1 $f2, 0x38($s2)
/* 321D24 802BE1D4 C6440064 */ lwc1 $f4, 0x64($s2)
/* 321D28 802BE1D8 C6460040 */ lwc1 $f6, 0x40($s2)
/* 321D2C 802BE1DC C6480018 */ lwc1 $f8, 0x18($s2)
/* 321D30 802BE1E0 E7A00028 */ swc1 $f0, 0x28($sp)
/* 321D34 802BE1E4 E7A20030 */ swc1 $f2, 0x30($sp)
/* 321D38 802BE1E8 E7A40034 */ swc1 $f4, 0x34($sp)
/* 321D3C 802BE1EC E7A60038 */ swc1 $f6, 0x38($sp)
/* 321D40 802BE1F0 E7A80010 */ swc1 $f8, 0x10($sp)
/* 321D44 802BE1F4 E7A00014 */ swc1 $f0, 0x14($sp)
/* 321D48 802BE1F8 864200A8 */ lh $v0, 0xa8($s2)
/* 321D4C 802BE1FC 0260282D */ daddu $a1, $s3, $zero
/* 321D50 802BE200 44820000 */ mtc1 $v0, $f0
/* 321D54 802BE204 00000000 */ nop
/* 321D58 802BE208 46800020 */ cvt.s.w $f0, $f0
/* 321D5C 802BE20C E7A00018 */ swc1 $f0, 0x18($sp)
/* 321D60 802BE210 864200A6 */ lh $v0, 0xa6($s2)
/* 321D64 802BE214 0220302D */ daddu $a2, $s1, $zero
/* 321D68 802BE218 44820000 */ mtc1 $v0, $f0
/* 321D6C 802BE21C 00000000 */ nop
/* 321D70 802BE220 46800020 */ cvt.s.w $f0, $f0
/* 321D74 802BE224 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 321D78 802BE228 8E440080 */ lw $a0, 0x80($s2)
/* 321D7C 802BE22C 0C0376B9 */ jal npc_test_move_taller_with_slipping
/* 321D80 802BE230 0200382D */ daddu $a3, $s0, $zero
/* 321D84 802BE234 1040000F */ beqz $v0, .L802BE274
/* 321D88 802BE238 0240202D */ daddu $a0, $s2, $zero
/* 321D8C 802BE23C C7A00030 */ lwc1 $f0, 0x30($sp)
/* 321D90 802BE240 C6460038 */ lwc1 $f6, 0x38($s2)
/* 321D94 802BE244 C7A20038 */ lwc1 $f2, 0x38($sp)
/* 321D98 802BE248 46060001 */ sub.s $f0, $f0, $f6
/* 321D9C 802BE24C C6440040 */ lwc1 $f4, 0x40($s2)
/* 321DA0 802BE250 3C0140A0 */ lui $at, 0x40a0
/* 321DA4 802BE254 44814000 */ mtc1 $at, $f8
/* 321DA8 802BE258 46041081 */ sub.s $f2, $f2, $f4
/* 321DAC 802BE25C 46080003 */ div.s $f0, $f0, $f8
/* 321DB0 802BE260 46003180 */ add.s $f6, $f6, $f0
/* 321DB4 802BE264 46081083 */ div.s $f2, $f2, $f8
/* 321DB8 802BE268 46022100 */ add.s $f4, $f4, $f2
/* 321DBC 802BE26C E6460038 */ swc1 $f6, 0x38($s2)
/* 321DC0 802BE270 E6440040 */ swc1 $f4, 0x40($s2)
.L802BE274:
/* 321DC4 802BE274 0C00F598 */ jal func_8003D660
/* 321DC8 802BE278 24050001 */ addiu $a1, $zero, 1
/* 321DCC 802BE27C 080AF8F9 */ j .L802BE3E4
/* 321DD0 802BE280 00000000 */ nop
.L802BE284:
/* 321DD4 802BE284 0260282D */ daddu $a1, $s3, $zero
/* 321DD8 802BE288 3C0142B4 */ lui $at, 0x42b4
/* 321DDC 802BE28C 44813000 */ mtc1 $at, $f6
/* 321DE0 802BE290 C6400038 */ lwc1 $f0, 0x38($s2)
/* 321DE4 802BE294 C6420064 */ lwc1 $f2, 0x64($s2)
/* 321DE8 802BE298 C6440040 */ lwc1 $f4, 0x40($s2)
/* 321DEC 802BE29C 3C014080 */ lui $at, 0x4080
/* 321DF0 802BE2A0 4481A000 */ mtc1 $at, $f20
/* 321DF4 802BE2A4 27B10034 */ addiu $s1, $sp, 0x34
/* 321DF8 802BE2A8 E7A60028 */ swc1 $f6, 0x28($sp)
/* 321DFC 802BE2AC E7A00030 */ swc1 $f0, 0x30($sp)
/* 321E00 802BE2B0 E7A20034 */ swc1 $f2, 0x34($sp)
/* 321E04 802BE2B4 E7A40038 */ swc1 $f4, 0x38($sp)
/* 321E08 802BE2B8 E7B40010 */ swc1 $f20, 0x10($sp)
/* 321E0C 802BE2BC E7A60014 */ swc1 $f6, 0x14($sp)
/* 321E10 802BE2C0 864200A8 */ lh $v0, 0xa8($s2)
/* 321E14 802BE2C4 0220302D */ daddu $a2, $s1, $zero
/* 321E18 802BE2C8 44820000 */ mtc1 $v0, $f0
/* 321E1C 802BE2CC 00000000 */ nop
/* 321E20 802BE2D0 46800020 */ cvt.s.w $f0, $f0
/* 321E24 802BE2D4 E7A00018 */ swc1 $f0, 0x18($sp)
/* 321E28 802BE2D8 864200A6 */ lh $v0, 0xa6($s2)
/* 321E2C 802BE2DC 27B00038 */ addiu $s0, $sp, 0x38
/* 321E30 802BE2E0 44820000 */ mtc1 $v0, $f0
/* 321E34 802BE2E4 00000000 */ nop
/* 321E38 802BE2E8 46800020 */ cvt.s.w $f0, $f0
/* 321E3C 802BE2EC E7A0001C */ swc1 $f0, 0x1c($sp)
/* 321E40 802BE2F0 8E440080 */ lw $a0, 0x80($s2)
/* 321E44 802BE2F4 0C0376B9 */ jal npc_test_move_taller_with_slipping
/* 321E48 802BE2F8 0200382D */ daddu $a3, $s0, $zero
/* 321E4C 802BE2FC 1040000F */ beqz $v0, .L802BE33C
/* 321E50 802BE300 00000000 */ nop
/* 321E54 802BE304 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 321E58 802BE308 C6460038 */ lwc1 $f6, 0x38($s2)
/* 321E5C 802BE30C C7A20038 */ lwc1 $f2, 0x38($sp)
/* 321E60 802BE310 46060001 */ sub.s $f0, $f0, $f6
/* 321E64 802BE314 C6440040 */ lwc1 $f4, 0x40($s2)
/* 321E68 802BE318 3C0140A0 */ lui $at, 0x40a0
/* 321E6C 802BE31C 44814000 */ mtc1 $at, $f8
/* 321E70 802BE320 46041081 */ sub.s $f2, $f2, $f4
/* 321E74 802BE324 46080003 */ div.s $f0, $f0, $f8
/* 321E78 802BE328 46003180 */ add.s $f6, $f6, $f0
/* 321E7C 802BE32C 46081083 */ div.s $f2, $f2, $f8
/* 321E80 802BE330 46022100 */ add.s $f4, $f4, $f2
/* 321E84 802BE334 E6460038 */ swc1 $f6, 0x38($s2)
/* 321E88 802BE338 E6440040 */ swc1 $f4, 0x40($s2)
.L802BE33C:
/* 321E8C 802BE33C 3C014387 */ lui $at, 0x4387
/* 321E90 802BE340 44813000 */ mtc1 $at, $f6
/* 321E94 802BE344 C6400038 */ lwc1 $f0, 0x38($s2)
/* 321E98 802BE348 C6420064 */ lwc1 $f2, 0x64($s2)
/* 321E9C 802BE34C C6440040 */ lwc1 $f4, 0x40($s2)
/* 321EA0 802BE350 E7A60028 */ swc1 $f6, 0x28($sp)
/* 321EA4 802BE354 E7A00030 */ swc1 $f0, 0x30($sp)
/* 321EA8 802BE358 E7A20034 */ swc1 $f2, 0x34($sp)
/* 321EAC 802BE35C E7A40038 */ swc1 $f4, 0x38($sp)
/* 321EB0 802BE360 E7B40010 */ swc1 $f20, 0x10($sp)
/* 321EB4 802BE364 E7A60014 */ swc1 $f6, 0x14($sp)
/* 321EB8 802BE368 864200A8 */ lh $v0, 0xa8($s2)
/* 321EBC 802BE36C 0260282D */ daddu $a1, $s3, $zero
/* 321EC0 802BE370 44820000 */ mtc1 $v0, $f0
/* 321EC4 802BE374 00000000 */ nop
/* 321EC8 802BE378 46800020 */ cvt.s.w $f0, $f0
/* 321ECC 802BE37C E7A00018 */ swc1 $f0, 0x18($sp)
/* 321ED0 802BE380 864200A6 */ lh $v0, 0xa6($s2)
/* 321ED4 802BE384 0220302D */ daddu $a2, $s1, $zero
/* 321ED8 802BE388 44820000 */ mtc1 $v0, $f0
/* 321EDC 802BE38C 00000000 */ nop
/* 321EE0 802BE390 46800020 */ cvt.s.w $f0, $f0
/* 321EE4 802BE394 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 321EE8 802BE398 8E440080 */ lw $a0, 0x80($s2)
/* 321EEC 802BE39C 0C0376B9 */ jal npc_test_move_taller_with_slipping
/* 321EF0 802BE3A0 0200382D */ daddu $a3, $s0, $zero
/* 321EF4 802BE3A4 1040000F */ beqz $v0, .L802BE3E4
/* 321EF8 802BE3A8 00000000 */ nop
/* 321EFC 802BE3AC C7A00030 */ lwc1 $f0, 0x30($sp)
/* 321F00 802BE3B0 C6460038 */ lwc1 $f6, 0x38($s2)
/* 321F04 802BE3B4 C7A20038 */ lwc1 $f2, 0x38($sp)
/* 321F08 802BE3B8 46060001 */ sub.s $f0, $f0, $f6
/* 321F0C 802BE3BC C6440040 */ lwc1 $f4, 0x40($s2)
/* 321F10 802BE3C0 3C0140A0 */ lui $at, 0x40a0
/* 321F14 802BE3C4 44814000 */ mtc1 $at, $f8
/* 321F18 802BE3C8 46041081 */ sub.s $f2, $f2, $f4
/* 321F1C 802BE3CC 46080003 */ div.s $f0, $f0, $f8
/* 321F20 802BE3D0 46003180 */ add.s $f6, $f6, $f0
/* 321F24 802BE3D4 46081083 */ div.s $f2, $f2, $f8
/* 321F28 802BE3D8 46022100 */ add.s $f4, $f4, $f2
/* 321F2C 802BE3DC E6460038 */ swc1 $f6, 0x38($s2)
/* 321F30 802BE3E0 E6440040 */ swc1 $f4, 0x40($s2)
.L802BE3E4:
/* 321F34 802BE3E4 0C0AF6A4 */ jal func_802BDA90_3215E0
/* 321F38 802BE3E8 0240202D */ daddu $a0, $s2, $zero
/* 321F3C 802BE3EC 27B00030 */ addiu $s0, $sp, 0x30
/* 321F40 802BE3F0 0200202D */ daddu $a0, $s0, $zero
/* 321F44 802BE3F4 27B10038 */ addiu $s1, $sp, 0x38
/* 321F48 802BE3F8 0220282D */ daddu $a1, $s1, $zero
/* 321F4C 802BE3FC 3C014140 */ lui $at, 0x4140
/* 321F50 802BE400 44810000 */ mtc1 $at, $f0
/* 321F54 802BE404 3C064000 */ lui $a2, 0x4000
/* 321F58 802BE408 C6420064 */ lwc1 $f2, 0x64($s2)
/* 321F5C 802BE40C 864200A8 */ lh $v0, 0xa8($s2)
/* 321F60 802BE410 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 321F64 802BE414 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 321F68 802BE418 46000506 */ mov.s $f20, $f0
/* 321F6C 802BE41C C6400014 */ lwc1 $f0, 0x14($s2)
/* 321F70 802BE420 24420002 */ addiu $v0, $v0, 2
/* 321F74 802BE424 46001081 */ sub.s $f2, $f2, $f0
/* 321F78 802BE428 44820000 */ mtc1 $v0, $f0
/* 321F7C 802BE42C 00000000 */ nop
/* 321F80 802BE430 46800020 */ cvt.s.w $f0, $f0
/* 321F84 802BE434 00031080 */ sll $v0, $v1, 2
/* 321F88 802BE438 00431021 */ addu $v0, $v0, $v1
/* 321F8C 802BE43C 00021080 */ sll $v0, $v0, 2
/* 321F90 802BE440 00431023 */ subu $v0, $v0, $v1
/* 321F94 802BE444 000218C0 */ sll $v1, $v0, 3
/* 321F98 802BE448 00431021 */ addu $v0, $v0, $v1
/* 321F9C 802BE44C 000210C0 */ sll $v0, $v0, 3
/* 321FA0 802BE450 E7A0003C */ swc1 $f0, 0x3c($sp)
/* 321FA4 802BE454 E6420064 */ swc1 $f2, 0x64($s2)
/* 321FA8 802BE458 46001006 */ mov.s $f0, $f2
/* 321FAC 802BE45C 3C07800B */ lui $a3, %hi(gCameras+0x6C)
/* 321FB0 802BE460 00E23821 */ addu $a3, $a3, $v0
/* 321FB4 802BE464 8CE71DEC */ lw $a3, %lo(gCameras+0x6C)($a3)
/* 321FB8 802BE468 C6820028 */ lwc1 $f2, 0x28($s4)
/* 321FBC 802BE46C C6840030 */ lwc1 $f4, 0x30($s4)
/* 321FC0 802BE470 46140000 */ add.s $f0, $f0, $f20
/* 321FC4 802BE474 E7A20030 */ swc1 $f2, 0x30($sp)
/* 321FC8 802BE478 E7A40038 */ swc1 $f4, 0x38($sp)
/* 321FCC 802BE47C 0C00A7E7 */ jal add_vec2D_polar
/* 321FD0 802BE480 E7A00034 */ swc1 $f0, 0x34($sp)
/* 321FD4 802BE484 0280202D */ daddu $a0, $s4, $zero
/* 321FD8 802BE488 0200282D */ daddu $a1, $s0, $zero
/* 321FDC 802BE48C 27A60034 */ addiu $a2, $sp, 0x34
/* 321FE0 802BE490 0220382D */ daddu $a3, $s1, $zero
/* 321FE4 802BE494 27A2003C */ addiu $v0, $sp, 0x3c
/* 321FE8 802BE498 AFA20010 */ sw $v0, 0x10($sp)
/* 321FEC 802BE49C 27A20040 */ addiu $v0, $sp, 0x40
/* 321FF0 802BE4A0 AFA20014 */ sw $v0, 0x14($sp)
/* 321FF4 802BE4A4 27A20044 */ addiu $v0, $sp, 0x44
/* 321FF8 802BE4A8 AFA20018 */ sw $v0, 0x18($sp)
/* 321FFC 802BE4AC 27A20048 */ addiu $v0, $sp, 0x48
/* 322000 802BE4B0 AFA2001C */ sw $v0, 0x1c($sp)
/* 322004 802BE4B4 27A2004C */ addiu $v0, $sp, 0x4c
/* 322008 802BE4B8 0C03791B */ jal player_raycast_below_cam_relative
/* 32200C 802BE4BC AFA20020 */ sw $v0, 0x20($sp)
/* 322010 802BE4C0 0C00A794 */ jal get_player_normal_pitch
/* 322014 802BE4C4 0040802D */ daddu $s0, $v0, $zero
/* 322018 802BE4C8 44801000 */ mtc1 $zero, $f2
/* 32201C 802BE4CC 3C01802C */ lui $at, %hi(D_802BFF28)
/* 322020 802BE4D0 E420FF28 */ swc1 $f0, %lo(D_802BFF28)($at)
/* 322024 802BE4D4 46020032 */ c.eq.s $f0, $f2
/* 322028 802BE4D8 00000000 */ nop
/* 32202C 802BE4DC 45010003 */ bc1t .L802BE4EC
/* 322030 802BE4E0 00000000 */ nop
/* 322034 802BE4E4 3C014200 */ lui $at, 0x4200
/* 322038 802BE4E8 4481A000 */ mtc1 $at, $f20
.L802BE4EC:
/* 32203C 802BE4EC 4600103C */ c.lt.s $f2, $f0
/* 322040 802BE4F0 00000000 */ nop
/* 322044 802BE4F4 4500001B */ bc1f .L802BE564
/* 322048 802BE4F8 00000000 */ nop
/* 32204C 802BE4FC 06000019 */ bltz $s0, .L802BE564
/* 322050 802BE500 27A50050 */ addiu $a1, $sp, 0x50
/* 322054 802BE504 3C0140C9 */ lui $at, 0x40c9
/* 322058 802BE508 34210FD0 */ ori $at, $at, 0xfd0
/* 32205C 802BE50C 44816000 */ mtc1 $at, $f12
/* 322060 802BE510 00000000 */ nop
/* 322064 802BE514 460C0302 */ mul.s $f12, $f0, $f12
/* 322068 802BE518 00000000 */ nop
/* 32206C 802BE51C 3C0143B4 */ lui $at, 0x43b4
/* 322070 802BE520 44810000 */ mtc1 $at, $f0
/* 322074 802BE524 27A60054 */ addiu $a2, $sp, 0x54
/* 322078 802BE528 0C00A82D */ jal sin_cos_rad
/* 32207C 802BE52C 46006303 */ div.s $f12, $f12, $f0
/* 322080 802BE530 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 322084 802BE534 C7A00054 */ lwc1 $f0, 0x54($sp)
/* 322088 802BE538 C684005C */ lwc1 $f4, 0x5c($s4)
/* 32208C 802BE53C 46001083 */ div.s $f2, $f2, $f0
/* 322090 802BE540 46041082 */ mul.s $f2, $f2, $f4
/* 322094 802BE544 00000000 */ nop
/* 322098 802BE548 C640003C */ lwc1 $f0, 0x3c($s2)
/* 32209C 802BE54C 46000021 */ cvt.d.s $f0, $f0
/* 3220A0 802BE550 460010A1 */ cvt.d.s $f2, $f2
/* 3220A4 802BE554 46201085 */ abs.d $f2, $f2
/* 3220A8 802BE558 46220000 */ add.d $f0, $f0, $f2
/* 3220AC 802BE55C 46200020 */ cvt.s.d $f0, $f0
/* 3220B0 802BE560 E640003C */ swc1 $f0, 0x3c($s2)
.L802BE564:
/* 3220B4 802BE564 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 3220B8 802BE568 4614003E */ c.le.s $f0, $f20
/* 3220BC 802BE56C 00000000 */ nop
/* 3220C0 802BE570 4500002E */ bc1f .L802BE62C
/* 3220C4 802BE574 00000000 */ nop
/* 3220C8 802BE578 0600002C */ bltz $s0, .L802BE62C
/* 3220CC 802BE57C 0200202D */ daddu $a0, $s0, $zero
/* 3220D0 802BE580 C6400038 */ lwc1 $f0, 0x38($s2)
/* 3220D4 802BE584 4600028D */ trunc.w.s $f10, $f0
/* 3220D8 802BE588 44025000 */ mfc1 $v0, $f10
/* 3220DC 802BE58C 00000000 */ nop
/* 3220E0 802BE590 A6820016 */ sh $v0, 0x16($s4)
/* 3220E4 802BE594 C640003C */ lwc1 $f0, 0x3c($s2)
/* 3220E8 802BE598 4600028D */ trunc.w.s $f10, $f0
/* 3220EC 802BE59C 44025000 */ mfc1 $v0, $f10
/* 3220F0 802BE5A0 00000000 */ nop
/* 3220F4 802BE5A4 A6820018 */ sh $v0, 0x18($s4)
/* 3220F8 802BE5A8 C6400040 */ lwc1 $f0, 0x40($s2)
/* 3220FC 802BE5AC A6A40002 */ sh $a0, 2($s5)
/* 322100 802BE5B0 C7A20034 */ lwc1 $f2, 0x34($sp)
/* 322104 802BE5B4 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 322108 802BE5B8 C7A60038 */ lwc1 $f6, 0x38($sp)
/* 32210C 802BE5BC 4600028D */ trunc.w.s $f10, $f0
/* 322110 802BE5C0 44025000 */ mfc1 $v0, $f10
/* 322114 802BE5C4 00000000 */ nop
/* 322118 802BE5C8 A682001A */ sh $v0, 0x1a($s4)
/* 32211C 802BE5CC A6440084 */ sh $a0, 0x84($s2)
/* 322120 802BE5D0 E6420064 */ swc1 $f2, 0x64($s2)
/* 322124 802BE5D4 E6440060 */ swc1 $f4, 0x60($s2)
/* 322128 802BE5D8 E6460068 */ swc1 $f6, 0x68($s2)
/* 32212C 802BE5DC AE400014 */ sw $zero, 0x14($s2)
/* 322130 802BE5E0 0C016F6A */ jal get_collider_type_by_id
/* 322134 802BE5E4 A68000C0 */ sh $zero, 0xc0($s4)
/* 322138 802BE5E8 304200FF */ andi $v0, $v0, 0xff
/* 32213C 802BE5EC 24030003 */ addiu $v1, $zero, 3
/* 322140 802BE5F0 14430009 */ bne $v0, $v1, .L802BE618
/* 322144 802BE5F4 3C020008 */ lui $v0, 8
/* 322148 802BE5F8 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 32214C 802BE5FC 3C013F00 */ lui $at, 0x3f00
/* 322150 802BE600 44811000 */ mtc1 $at, $f2
/* 322154 802BE604 00000000 */ nop
/* 322158 802BE608 46020002 */ mul.s $f0, $f0, $f2
/* 32215C 802BE60C 00000000 */ nop
/* 322160 802BE610 080AF988 */ j .L802BE620
/* 322164 802BE614 34420006 */ ori $v0, $v0, 6
.L802BE618:
/* 322168 802BE618 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 32216C 802BE61C 34420005 */ ori $v0, $v0, 5
.L802BE620:
/* 322170 802BE620 AE420028 */ sw $v0, 0x28($s2)
/* 322174 802BE624 080AF99E */ j .L802BE678
/* 322178 802BE628 E6400018 */ swc1 $f0, 0x18($s2)
.L802BE62C:
/* 32217C 802BE62C 968200C0 */ lhu $v0, 0xc0($s4)
/* 322180 802BE630 2403FFFF */ addiu $v1, $zero, -1
/* 322184 802BE634 A6A30002 */ sh $v1, 2($s5)
/* 322188 802BE638 24420001 */ addiu $v0, $v0, 1
/* 32218C 802BE63C A68200C0 */ sh $v0, 0xc0($s4)
/* 322190 802BE640 C6400014 */ lwc1 $f0, 0x14($s2)
/* 322194 802BE644 3C01802C */ lui $at, %hi(D_802BFEF8)
/* 322198 802BE648 D422FEF8 */ ldc1 $f2, %lo(D_802BFEF8)($at)
/* 32219C 802BE64C 46000021 */ cvt.d.s $f0, $f0
/* 3221A0 802BE650 46220000 */ add.d $f0, $f0, $f2
/* 3221A4 802BE654 A6430084 */ sh $v1, 0x84($s2)
/* 3221A8 802BE658 3C014140 */ lui $at, 0x4140
/* 3221AC 802BE65C 44811000 */ mtc1 $at, $f2
/* 3221B0 802BE660 46200020 */ cvt.s.d $f0, $f0
/* 3221B4 802BE664 4600103C */ c.lt.s $f2, $f0
/* 3221B8 802BE668 00000000 */ nop
/* 3221BC 802BE66C 45000002 */ bc1f .L802BE678
/* 3221C0 802BE670 E6400014 */ swc1 $f0, 0x14($s2)
/* 3221C4 802BE674 E6420014 */ swc1 $f2, 0x14($s2)
.L802BE678:
/* 3221C8 802BE678 8FBF0070 */ lw $ra, 0x70($sp)
/* 3221CC 802BE67C 8FB5006C */ lw $s5, 0x6c($sp)
/* 3221D0 802BE680 8FB40068 */ lw $s4, 0x68($sp)
/* 3221D4 802BE684 8FB30064 */ lw $s3, 0x64($sp)
/* 3221D8 802BE688 8FB20060 */ lw $s2, 0x60($sp)
/* 3221DC 802BE68C 8FB1005C */ lw $s1, 0x5c($sp)
/* 3221E0 802BE690 8FB00058 */ lw $s0, 0x58($sp)
/* 3221E4 802BE694 D7B40078 */ ldc1 $f20, 0x78($sp)
/* 3221E8 802BE698 03E00008 */ jr $ra
/* 3221EC 802BE69C 27BD0080 */ addiu $sp, $sp, 0x80

View File

@ -1,942 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802BE724_322274
/* 322274 802BE724 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 322278 802BE728 AFB40040 */ sw $s4, 0x40($sp)
/* 32227C 802BE72C 0080A02D */ daddu $s4, $a0, $zero
/* 322280 802BE730 3C03FFBF */ lui $v1, 0xffbf
/* 322284 802BE734 3463FFFF */ ori $v1, $v1, 0xffff
/* 322288 802BE738 AFB20038 */ sw $s2, 0x38($sp)
/* 32228C 802BE73C 3C128011 */ lui $s2, %hi(gPlayerStatus)
/* 322290 802BE740 2652EFC8 */ addiu $s2, $s2, %lo(gPlayerStatus)
/* 322294 802BE744 AFB50044 */ sw $s5, 0x44($sp)
/* 322298 802BE748 3C158011 */ lui $s5, %hi(gPartnerActionStatus)
/* 32229C 802BE74C 26B5EBB0 */ addiu $s5, $s5, %lo(gPartnerActionStatus)
/* 3222A0 802BE750 AFBF0048 */ sw $ra, 0x48($sp)
/* 3222A4 802BE754 AFB3003C */ sw $s3, 0x3c($sp)
/* 3222A8 802BE758 AFB10034 */ sw $s1, 0x34($sp)
/* 3222AC 802BE75C AFB00030 */ sw $s0, 0x30($sp)
/* 3222B0 802BE760 F7B60058 */ sdc1 $f22, 0x58($sp)
/* 3222B4 802BE764 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 3222B8 802BE768 8E420004 */ lw $v0, 4($s2)
/* 3222BC 802BE76C 8E91014C */ lw $s1, 0x14c($s4)
/* 3222C0 802BE770 00431024 */ and $v0, $v0, $v1
/* 3222C4 802BE774 10A00087 */ beqz $a1, .L802BE994
/* 3222C8 802BE778 AE420004 */ sw $v0, 4($s2)
/* 3222CC 802BE77C 0C0AF59E */ jal func_802BD678_3211C8
/* 3222D0 802BE780 0220202D */ daddu $a0, $s1, $zero
/* 3222D4 802BE784 8E420004 */ lw $v0, 4($s2)
/* 3222D8 802BE788 3C030010 */ lui $v1, 0x10
/* 3222DC 802BE78C 00431024 */ and $v0, $v0, $v1
/* 3222E0 802BE790 1440034C */ bnez $v0, .L802BF4C4
/* 3222E4 802BE794 24020002 */ addiu $v0, $zero, 2
/* 3222E8 802BE798 2403FFBF */ addiu $v1, $zero, -0x41
/* 3222EC 802BE79C 8E220000 */ lw $v0, ($s1)
/* 3222F0 802BE7A0 C6200038 */ lwc1 $f0, 0x38($s1)
/* 3222F4 802BE7A4 C622003C */ lwc1 $f2, 0x3c($s1)
/* 3222F8 802BE7A8 C6240040 */ lwc1 $f4, 0x40($s1)
/* 3222FC 802BE7AC 3C048007 */ lui $a0, %hi(gGameStatusPtr)
/* 322300 802BE7B0 8C84419C */ lw $a0, %lo(gGameStatusPtr)($a0)
/* 322304 802BE7B4 00431024 */ and $v0, $v0, $v1
/* 322308 802BE7B8 AE220000 */ sw $v0, ($s1)
/* 32230C 802BE7BC E6200060 */ swc1 $f0, 0x60($s1)
/* 322310 802BE7C0 E6220064 */ swc1 $f2, 0x64($s1)
/* 322314 802BE7C4 E6240068 */ swc1 $f4, 0x68($s1)
/* 322318 802BE7C8 8082007D */ lb $v0, 0x7d($a0)
/* 32231C 802BE7CC 14400005 */ bnez $v0, .L802BE7E4
/* 322320 802BE7D0 3C030020 */ lui $v1, 0x20
/* 322324 802BE7D4 8E420004 */ lw $v0, 4($s2)
/* 322328 802BE7D8 00431024 */ and $v0, $v0, $v1
/* 32232C 802BE7DC 1040000A */ beqz $v0, .L802BE808
/* 322330 802BE7E0 24020028 */ addiu $v0, $zero, 0x28
.L802BE7E4:
/* 322334 802BE7E4 8E430004 */ lw $v1, 4($s2)
/* 322338 802BE7E8 3C020020 */ lui $v0, 0x20
/* 32233C 802BE7EC 00621024 */ and $v0, $v1, $v0
/* 322340 802BE7F0 10400004 */ beqz $v0, .L802BE804
/* 322344 802BE7F4 3C02FFDF */ lui $v0, 0xffdf
/* 322348 802BE7F8 3442FFFF */ ori $v0, $v0, 0xffff
/* 32234C 802BE7FC 00621024 */ and $v0, $v1, $v0
/* 322350 802BE800 AE420004 */ sw $v0, 4($s2)
.L802BE804:
/* 322354 802BE804 24020064 */ addiu $v0, $zero, 0x64
.L802BE808:
/* 322358 802BE808 3C01802C */ lui $at, %hi(D_802BFF14)
/* 32235C 802BE80C AC22FF14 */ sw $v0, %lo(D_802BFF14)($at)
/* 322360 802BE810 82A20001 */ lb $v0, 1($s5)
/* 322364 802BE814 14400015 */ bnez $v0, .L802BE86C
/* 322368 802BE818 24040021 */ addiu $a0, $zero, 0x21
/* 32236C 802BE81C 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 322370 802BE820 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 322374 802BE824 8042007D */ lb $v0, 0x7d($v0)
/* 322378 802BE828 1440005A */ bnez $v0, .L802BE994
/* 32237C 802BE82C 24020021 */ addiu $v0, $zero, 0x21
/* 322380 802BE830 824300B4 */ lb $v1, 0xb4($s2)
/* 322384 802BE834 10620009 */ beq $v1, $v0, .L802BE85C
/* 322388 802BE838 00000000 */ nop
/* 32238C 802BE83C 10600007 */ beqz $v1, .L802BE85C
/* 322390 802BE840 24020001 */ addiu $v0, $zero, 1
/* 322394 802BE844 10620005 */ beq $v1, $v0, .L802BE85C
/* 322398 802BE848 24020002 */ addiu $v0, $zero, 2
/* 32239C 802BE84C 10620003 */ beq $v1, $v0, .L802BE85C
/* 3223A0 802BE850 24020008 */ addiu $v0, $zero, 8
/* 3223A4 802BE854 1462031B */ bne $v1, $v0, .L802BF4C4
/* 3223A8 802BE858 24020002 */ addiu $v0, $zero, 2
.L802BE85C:
/* 3223AC 802BE85C 8E420000 */ lw $v0, ($s2)
/* 3223B0 802BE860 34420100 */ ori $v0, $v0, 0x100
/* 3223B4 802BE864 080AFA65 */ j .L802BE994
/* 3223B8 802BE868 AE420000 */ sw $v0, ($s2)
.L802BE86C:
/* 3223BC 802BE86C A2A00001 */ sb $zero, 1($s5)
/* 3223C0 802BE870 8E420000 */ lw $v0, ($s2)
/* 3223C4 802BE874 2403FEFF */ addiu $v1, $zero, -0x101
/* 3223C8 802BE878 00431024 */ and $v0, $v0, $v1
/* 3223CC 802BE87C AE420000 */ sw $v0, ($s2)
/* 3223D0 802BE880 8E220000 */ lw $v0, ($s1)
/* 3223D4 802BE884 2410FFB7 */ addiu $s0, $zero, -0x49
/* 3223D8 802BE888 00501024 */ and $v0, $v0, $s0
/* 3223DC 802BE88C 34420100 */ ori $v0, $v0, 0x100
/* 3223E0 802BE890 0C039769 */ jal set_action_state
/* 3223E4 802BE894 AE220000 */ sw $v0, ($s1)
/* 3223E8 802BE898 3C040008 */ lui $a0, 8
/* 3223EC 802BE89C 0C037FDE */ jal suggest_player_anim_setUnkFlag
/* 3223F0 802BE8A0 3484000E */ ori $a0, $a0, 0xe
/* 3223F4 802BE8A4 3C050008 */ lui $a1, 8
/* 3223F8 802BE8A8 34A50005 */ ori $a1, $a1, 5
/* 3223FC 802BE8AC 3C030040 */ lui $v1, 0x40
/* 322400 802BE8B0 34630100 */ ori $v1, $v1, 0x100
/* 322404 802BE8B4 8E220000 */ lw $v0, ($s1)
/* 322408 802BE8B8 3C014040 */ lui $at, 0x4040
/* 32240C 802BE8BC 44812000 */ mtc1 $at, $f4
/* 322410 802BE8C0 00501024 */ and $v0, $v0, $s0
/* 322414 802BE8C4 00431025 */ or $v0, $v0, $v1
/* 322418 802BE8C8 3C038007 */ lui $v1, %hi(gGameStatusPtr)
/* 32241C 802BE8CC 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
/* 322420 802BE8D0 24130001 */ addiu $s3, $zero, 1
/* 322424 802BE8D4 AE250028 */ sw $a1, 0x28($s1)
/* 322428 802BE8D8 3C01802C */ lui $at, %hi(D_802BFF0C)
/* 32242C 802BE8DC AC33FF0C */ sw $s3, %lo(D_802BFF0C)($at)
/* 322430 802BE8E0 AE220000 */ sw $v0, ($s1)
/* 322434 802BE8E4 24020008 */ addiu $v0, $zero, 8
/* 322438 802BE8E8 A2A20003 */ sb $v0, 3($s5)
/* 32243C 802BE8EC A2B30000 */ sb $s3, ($s5)
/* 322440 802BE8F0 A060007D */ sb $zero, 0x7d($v1)
/* 322444 802BE8F4 C6400028 */ lwc1 $f0, 0x28($s2)
/* 322448 802BE8F8 C6220064 */ lwc1 $f2, 0x64($s1)
/* 32244C 802BE8FC 3C040008 */ lui $a0, 8
/* 322450 802BE900 E6200038 */ swc1 $f0, 0x38($s1)
/* 322454 802BE904 E622003C */ swc1 $f2, 0x3c($s1)
/* 322458 802BE908 46001006 */ mov.s $f0, $f2
/* 32245C 802BE90C 3C014120 */ lui $at, 0x4120
/* 322460 802BE910 44811000 */ mtc1 $at, $f2
/* 322464 802BE914 C6460030 */ lwc1 $f6, 0x30($s2)
/* 322468 802BE918 46020000 */ add.s $f0, $f0, $f2
/* 32246C 802BE91C AE250028 */ sw $a1, 0x28($s1)
/* 322470 802BE920 E6260040 */ swc1 $f6, 0x40($s1)
/* 322474 802BE924 E640002C */ swc1 $f0, 0x2c($s2)
/* 322478 802BE928 E6240018 */ swc1 $f4, 0x18($s1)
/* 32247C 802BE92C AE200014 */ sw $zero, 0x14($s1)
/* 322480 802BE930 C6400080 */ lwc1 $f0, 0x80($s2)
/* 322484 802BE934 3484000E */ ori $a0, $a0, 0xe
/* 322488 802BE938 0C037FDE */ jal suggest_player_anim_setUnkFlag
/* 32248C 802BE93C E620000C */ swc1 $f0, 0xc($s1)
/* 322490 802BE940 0C039769 */ jal set_action_state
/* 322494 802BE944 24040021 */ addiu $a0, $zero, 0x21
/* 322498 802BE948 0C038045 */ jal disable_player_static_collisions
/* 32249C 802BE94C 00000000 */ nop
/* 3224A0 802BE950 3C10802C */ lui $s0, %hi(D_802BFF04)
/* 3224A4 802BE954 2610FF04 */ addiu $s0, $s0, %lo(D_802BFF04)
/* 3224A8 802BE958 8E020000 */ lw $v0, ($s0)
/* 3224AC 802BE95C 3C01802C */ lui $at, %hi(D_802BFF08)
/* 3224B0 802BE960 AC33FF08 */ sw $s3, %lo(D_802BFF08)($at)
/* 3224B4 802BE964 14400004 */ bnez $v0, .L802BE978
/* 3224B8 802BE968 00000000 */ nop
/* 3224BC 802BE96C 0C03805E */ jal disable_player_input
/* 3224C0 802BE970 00000000 */ nop
/* 3224C4 802BE974 AE130000 */ sw $s3, ($s0)
.L802BE978:
/* 3224C8 802BE978 8E220000 */ lw $v0, ($s1)
/* 3224CC 802BE97C 3C01802C */ lui $at, %hi(D_802BFF18)
/* 3224D0 802BE980 AC20FF18 */ sw $zero, %lo(D_802BFF18)($at)
/* 3224D4 802BE984 3C01802C */ lui $at, %hi(D_802BFF14)
/* 3224D8 802BE988 AC33FF14 */ sw $s3, %lo(D_802BFF14)($at)
/* 3224DC 802BE98C 34420040 */ ori $v0, $v0, 0x40
/* 3224E0 802BE990 AE220000 */ sw $v0, ($s1)
.L802BE994:
/* 3224E4 802BE994 3C10802C */ lui $s0, %hi(D_802BFF14)
/* 3224E8 802BE998 2610FF14 */ addiu $s0, $s0, %lo(D_802BFF14)
/* 3224EC 802BE99C 8E030000 */ lw $v1, ($s0)
/* 3224F0 802BE9A0 24020028 */ addiu $v0, $zero, 0x28
/* 3224F4 802BE9A4 10620005 */ beq $v1, $v0, .L802BE9BC
/* 3224F8 802BE9A8 24020029 */ addiu $v0, $zero, 0x29
/* 3224FC 802BE9AC 10620019 */ beq $v1, $v0, .L802BEA14
/* 322500 802BE9B0 24020064 */ addiu $v0, $zero, 0x64
/* 322504 802BE9B4 080AFABA */ j .L802BEAE8
/* 322508 802BE9B8 00000000 */ nop
.L802BE9BC:
/* 32250C 802BE9BC 8E430000 */ lw $v1, ($s2)
/* 322510 802BE9C0 30620800 */ andi $v0, $v1, 0x800
/* 322514 802BE9C4 14400004 */ bnez $v0, .L802BE9D8
/* 322518 802BE9C8 2402FEFF */ addiu $v0, $zero, -0x101
/* 32251C 802BE9CC 82420015 */ lb $v0, 0x15($s2)
/* 322520 802BE9D0 10400005 */ beqz $v0, .L802BE9E8
/* 322524 802BE9D4 2402FEFF */ addiu $v0, $zero, -0x101
.L802BE9D8:
/* 322528 802BE9D8 00621024 */ and $v0, $v1, $v0
/* 32252C 802BE9DC AE420000 */ sw $v0, ($s2)
.L802BE9E0:
/* 322530 802BE9E0 080AFD31 */ j .L802BF4C4
/* 322534 802BE9E4 24020002 */ addiu $v0, $zero, 2
.L802BE9E8:
/* 322538 802BE9E8 24020003 */ addiu $v0, $zero, 3
/* 32253C 802BE9EC 0C03805E */ jal disable_player_input
/* 322540 802BE9F0 AE820074 */ sw $v0, 0x74($s4)
/* 322544 802BE9F4 AE820078 */ sw $v0, 0x78($s4)
/* 322548 802BE9F8 8E020000 */ lw $v0, ($s0)
/* 32254C 802BE9FC 24030001 */ addiu $v1, $zero, 1
/* 322550 802BEA00 3C01802C */ lui $at, %hi(D_802BFF04)
/* 322554 802BEA04 AC23FF04 */ sw $v1, %lo(D_802BFF04)($at)
/* 322558 802BEA08 00431021 */ addu $v0, $v0, $v1
/* 32255C 802BEA0C 080AFAB6 */ j .L802BEAD8
/* 322560 802BEA10 AE020000 */ sw $v0, ($s0)
.L802BEA14:
/* 322564 802BEA14 8E440000 */ lw $a0, ($s2)
/* 322568 802BEA18 30820800 */ andi $v0, $a0, 0x800
/* 32256C 802BEA1C 1040000B */ beqz $v0, .L802BEA4C
/* 322570 802BEA20 2402FEFF */ addiu $v0, $zero, -0x101
/* 322574 802BEA24 3C10802C */ lui $s0, %hi(D_802BFF04)
/* 322578 802BEA28 2610FF04 */ addiu $s0, $s0, %lo(D_802BFF04)
/* 32257C 802BEA2C 8E030000 */ lw $v1, ($s0)
/* 322580 802BEA30 00821024 */ and $v0, $a0, $v0
/* 322584 802BEA34 1060FFEA */ beqz $v1, .L802BE9E0
/* 322588 802BEA38 AE420000 */ sw $v0, ($s2)
/* 32258C 802BEA3C 0C038069 */ jal enable_player_input
/* 322590 802BEA40 00000000 */ nop
/* 322594 802BEA44 080AFA78 */ j .L802BE9E0
/* 322598 802BEA48 AE000000 */ sw $zero, ($s0)
.L802BEA4C:
/* 32259C 802BEA4C 8E420004 */ lw $v0, 4($s2)
/* 3225A0 802BEA50 3C030010 */ lui $v1, 0x10
/* 3225A4 802BEA54 00431024 */ and $v0, $v0, $v1
/* 3225A8 802BEA58 1040000C */ beqz $v0, .L802BEA8C
/* 3225AC 802BEA5C 00000000 */ nop
/* 3225B0 802BEA60 82430015 */ lb $v1, 0x15($s2)
/* 3225B4 802BEA64 8E820078 */ lw $v0, 0x78($s4)
/* 3225B8 802BEA68 0043102A */ slt $v0, $v0, $v1
/* 3225BC 802BEA6C 1040026C */ beqz $v0, .L802BF420
/* 3225C0 802BEA70 24020002 */ addiu $v0, $zero, 2
/* 3225C4 802BEA74 0C038069 */ jal enable_player_input
/* 3225C8 802BEA78 00000000 */ nop
/* 3225CC 802BEA7C 3C01802C */ lui $at, %hi(D_802BFF04)
/* 3225D0 802BEA80 AC20FF04 */ sw $zero, %lo(D_802BFF04)($at)
/* 3225D4 802BEA84 080AFD08 */ j .L802BF420
/* 3225D8 802BEA88 24020002 */ addiu $v0, $zero, 2
.L802BEA8C:
/* 3225DC 802BEA8C 8E820074 */ lw $v0, 0x74($s4)
/* 3225E0 802BEA90 14400010 */ bnez $v0, .L802BEAD4
/* 3225E4 802BEA94 2442FFFF */ addiu $v0, $v0, -1
/* 3225E8 802BEA98 82430015 */ lb $v1, 0x15($s2)
/* 3225EC 802BEA9C 8E820078 */ lw $v0, 0x78($s4)
/* 3225F0 802BEAA0 0043102A */ slt $v0, $v0, $v1
/* 3225F4 802BEAA4 10400009 */ beqz $v0, .L802BEACC
/* 3225F8 802BEAA8 24020064 */ addiu $v0, $zero, 0x64
/* 3225FC 802BEAAC 0C038069 */ jal enable_player_input
/* 322600 802BEAB0 00000000 */ nop
/* 322604 802BEAB4 24020002 */ addiu $v0, $zero, 2
/* 322608 802BEAB8 8E430000 */ lw $v1, ($s2)
/* 32260C 802BEABC 3C01802C */ lui $at, %hi(D_802BFF04)
/* 322610 802BEAC0 AC20FF04 */ sw $zero, %lo(D_802BFF04)($at)
/* 322614 802BEAC4 080AFD0A */ j .L802BF428
/* 322618 802BEAC8 2404FEFF */ addiu $a0, $zero, -0x101
.L802BEACC:
/* 32261C 802BEACC 080AFAB6 */ j .L802BEAD8
/* 322620 802BEAD0 AE020000 */ sw $v0, ($s0)
.L802BEAD4:
/* 322624 802BEAD4 AE820074 */ sw $v0, 0x74($s4)
.L802BEAD8:
/* 322628 802BEAD8 3C10802C */ lui $s0, %hi(D_802BFF14)
/* 32262C 802BEADC 2610FF14 */ addiu $s0, $s0, %lo(D_802BFF14)
/* 322630 802BEAE0 8E030000 */ lw $v1, ($s0)
/* 322634 802BEAE4 24020064 */ addiu $v0, $zero, 0x64
.L802BEAE8:
/* 322638 802BEAE8 1062001E */ beq $v1, $v0, .L802BEB64
/* 32263C 802BEAEC 28620065 */ slti $v0, $v1, 0x65
/* 322640 802BEAF0 10400010 */ beqz $v0, .L802BEB34
/* 322644 802BEAF4 24020003 */ addiu $v0, $zero, 3
/* 322648 802BEAF8 10620165 */ beq $v1, $v0, .L802BF090
/* 32264C 802BEAFC 28620004 */ slti $v0, $v1, 4
/* 322650 802BEB00 10400005 */ beqz $v0, .L802BEB18
/* 322654 802BEB04 24020001 */ addiu $v0, $zero, 1
/* 322658 802BEB08 10620129 */ beq $v1, $v0, .L802BEFB0
/* 32265C 802BEB0C 00000000 */ nop
/* 322660 802BEB10 080AFCD7 */ j .L802BF35C
/* 322664 802BEB14 00000000 */ nop
.L802BEB18:
/* 322668 802BEB18 24020004 */ addiu $v0, $zero, 4
/* 32266C 802BEB1C 106201B6 */ beq $v1, $v0, .L802BF1F8
/* 322670 802BEB20 24020005 */ addiu $v0, $zero, 5
/* 322674 802BEB24 106201BB */ beq $v1, $v0, .L802BF214
/* 322678 802BEB28 0240202D */ daddu $a0, $s2, $zero
/* 32267C 802BEB2C 080AFCD7 */ j .L802BF35C
/* 322680 802BEB30 00000000 */ nop
.L802BEB34:
/* 322684 802BEB34 24020066 */ addiu $v0, $zero, 0x66
/* 322688 802BEB38 1062006F */ beq $v1, $v0, .L802BECF8
/* 32268C 802BEB3C 0062102A */ slt $v0, $v1, $v0
/* 322690 802BEB40 14400067 */ bnez $v0, .L802BECE0
/* 322694 802BEB44 24042081 */ addiu $a0, $zero, 0x2081
/* 322698 802BEB48 24020067 */ addiu $v0, $zero, 0x67
/* 32269C 802BEB4C 1062006F */ beq $v1, $v0, .L802BED0C
/* 3226A0 802BEB50 24020068 */ addiu $v0, $zero, 0x68
/* 3226A4 802BEB54 106200FC */ beq $v1, $v0, .L802BEF48
/* 3226A8 802BEB58 00000000 */ nop
/* 3226AC 802BEB5C 080AFCD7 */ j .L802BF35C
/* 3226B0 802BEB60 00000000 */ nop
.L802BEB64:
/* 3226B4 802BEB64 0C038045 */ jal disable_player_static_collisions
/* 3226B8 802BEB68 24100001 */ addiu $s0, $zero, 1
/* 3226BC 802BEB6C 3C13802C */ lui $s3, %hi(D_802BFF04)
/* 3226C0 802BEB70 2673FF04 */ addiu $s3, $s3, %lo(D_802BFF04)
/* 3226C4 802BEB74 8E620000 */ lw $v0, ($s3)
/* 3226C8 802BEB78 3C01802C */ lui $at, %hi(D_802BFF08)
/* 3226CC 802BEB7C AC30FF08 */ sw $s0, %lo(D_802BFF08)($at)
/* 3226D0 802BEB80 14400005 */ bnez $v0, .L802BEB98
/* 3226D4 802BEB84 3C050040 */ lui $a1, 0x40
/* 3226D8 802BEB88 0C03805E */ jal disable_player_input
/* 3226DC 802BEB8C 00000000 */ nop
/* 3226E0 802BEB90 AE700000 */ sw $s0, ($s3)
/* 3226E4 802BEB94 3C050040 */ lui $a1, 0x40
.L802BEB98:
/* 3226E8 802BEB98 34A50100 */ ori $a1, $a1, 0x100
/* 3226EC 802BEB9C 24040021 */ addiu $a0, $zero, 0x21
/* 3226F0 802BEBA0 2403FFF7 */ addiu $v1, $zero, -9
/* 3226F4 802BEBA4 4480A000 */ mtc1 $zero, $f20
/* 3226F8 802BEBA8 8E220000 */ lw $v0, ($s1)
/* 3226FC 802BEBAC 3C0142B4 */ lui $at, 0x42b4
/* 322700 802BEBB0 4481B000 */ mtc1 $at, $f22
/* 322704 802BEBB4 00431024 */ and $v0, $v0, $v1
/* 322708 802BEBB8 00451025 */ or $v0, $v0, $a1
/* 32270C 802BEBBC 0C039769 */ jal set_action_state
/* 322710 802BEBC0 AE220000 */ sw $v0, ($s1)
/* 322714 802BEBC4 3C01802C */ lui $at, %hi(D_802BFF0C)
/* 322718 802BEBC8 AC30FF0C */ sw $s0, %lo(D_802BFF0C)($at)
/* 32271C 802BEBCC 0C03BD38 */ jal func_800EF4E0
/* 322720 802BEBD0 0000802D */ daddu $s0, $zero, $zero
/* 322724 802BEBD4 C6400028 */ lwc1 $f0, 0x28($s2)
/* 322728 802BEBD8 E6200060 */ swc1 $f0, 0x60($s1)
/* 32272C 802BEBDC C640002C */ lwc1 $f0, 0x2c($s2)
/* 322730 802BEBE0 E6200064 */ swc1 $f0, 0x64($s1)
/* 322734 802BEBE4 C6400030 */ lwc1 $f0, 0x30($s2)
/* 322738 802BEBE8 E6200068 */ swc1 $f0, 0x68($s1)
.L802BEBEC:
/* 32273C 802BEBEC 3C040001 */ lui $a0, 1
/* 322740 802BEBF0 27A50020 */ addiu $a1, $sp, 0x20
/* 322744 802BEBF4 C6200060 */ lwc1 $f0, 0x60($s1)
/* 322748 802BEBF8 C6220064 */ lwc1 $f2, 0x64($s1)
/* 32274C 802BEBFC C6240068 */ lwc1 $f4, 0x68($s1)
/* 322750 802BEC00 C6260018 */ lwc1 $f6, 0x18($s1)
/* 322754 802BEC04 27A60024 */ addiu $a2, $sp, 0x24
/* 322758 802BEC08 E7A00020 */ swc1 $f0, 0x20($sp)
/* 32275C 802BEC0C E7A20024 */ swc1 $f2, 0x24($sp)
/* 322760 802BEC10 E7A40028 */ swc1 $f4, 0x28($sp)
/* 322764 802BEC14 E7A60010 */ swc1 $f6, 0x10($sp)
/* 322768 802BEC18 E7B40014 */ swc1 $f20, 0x14($sp)
/* 32276C 802BEC1C 862200A8 */ lh $v0, 0xa8($s1)
/* 322770 802BEC20 27A70028 */ addiu $a3, $sp, 0x28
/* 322774 802BEC24 44820000 */ mtc1 $v0, $f0
/* 322778 802BEC28 00000000 */ nop
/* 32277C 802BEC2C 46800020 */ cvt.s.w $f0, $f0
/* 322780 802BEC30 E7A00018 */ swc1 $f0, 0x18($sp)
/* 322784 802BEC34 862200A6 */ lh $v0, 0xa6($s1)
/* 322788 802BEC38 26100001 */ addiu $s0, $s0, 1
/* 32278C 802BEC3C 44820000 */ mtc1 $v0, $f0
/* 322790 802BEC40 00000000 */ nop
/* 322794 802BEC44 46800020 */ cvt.s.w $f0, $f0
/* 322798 802BEC48 0C037711 */ jal npc_test_move_simple_with_slipping
/* 32279C 802BEC4C E7A0001C */ swc1 $f0, 0x1c($sp)
/* 3227A0 802BEC50 2A020004 */ slti $v0, $s0, 4
/* 3227A4 802BEC54 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 3227A8 802BEC58 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 3227AC 802BEC5C C7A40028 */ lwc1 $f4, 0x28($sp)
/* 3227B0 802BEC60 4616A500 */ add.s $f20, $f20, $f22
/* 3227B4 802BEC64 E6200060 */ swc1 $f0, 0x60($s1)
/* 3227B8 802BEC68 E6220064 */ swc1 $f2, 0x64($s1)
/* 3227BC 802BEC6C 1440FFDF */ bnez $v0, .L802BEBEC
/* 3227C0 802BEC70 E6240068 */ swc1 $f4, 0x68($s1)
/* 3227C4 802BEC74 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 3227C8 802BEC78 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 3227CC 802BEC7C 44060000 */ mfc1 $a2, $f0
/* 3227D0 802BEC80 44072000 */ mfc1 $a3, $f4
/* 3227D4 802BEC84 0C00A720 */ jal atan2
/* 3227D8 802BEC88 00000000 */ nop
/* 3227DC 802BEC8C 3C030008 */ lui $v1, 8
/* 3227E0 802BEC90 34630005 */ ori $v1, $v1, 5
/* 3227E4 802BEC94 3C040001 */ lui $a0, 1
/* 3227E8 802BEC98 34840006 */ ori $a0, $a0, 6
/* 3227EC 802BEC9C E620000C */ swc1 $f0, 0xc($s1)
/* 3227F0 802BECA0 3C014100 */ lui $at, 0x4100
/* 3227F4 802BECA4 44810000 */ mtc1 $at, $f0
/* 3227F8 802BECA8 3C013FB3 */ lui $at, 0x3fb3
/* 3227FC 802BECAC 34213333 */ ori $at, $at, 0x3333
/* 322800 802BECB0 44811000 */ mtc1 $at, $f2
/* 322804 802BECB4 2402000C */ addiu $v0, $zero, 0xc
/* 322808 802BECB8 A622008E */ sh $v0, 0x8e($s1)
/* 32280C 802BECBC AE230028 */ sw $v1, 0x28($s1)
/* 322810 802BECC0 E620001C */ swc1 $f0, 0x1c($s1)
/* 322814 802BECC4 0C037FBF */ jal suggest_player_anim_clearUnkFlag
/* 322818 802BECC8 E6220014 */ swc1 $f2, 0x14($s1)
/* 32281C 802BECCC 24020065 */ addiu $v0, $zero, 0x65
/* 322820 802BECD0 3C01802C */ lui $at, %hi(D_802BFF14)
/* 322824 802BECD4 AC22FF14 */ sw $v0, %lo(D_802BFF14)($at)
/* 322828 802BECD8 080AFCD7 */ j .L802BF35C
/* 32282C 802BECDC 00000000 */ nop
.L802BECE0:
/* 322830 802BECE0 0000282D */ daddu $a1, $zero, $zero
/* 322834 802BECE4 0C052742 */ jal sfx_play_sound_at_npc
/* 322838 802BECE8 2406FFFC */ addiu $a2, $zero, -4
/* 32283C 802BECEC 3C040001 */ lui $a0, 1
/* 322840 802BECF0 0C037FBF */ jal suggest_player_anim_clearUnkFlag
/* 322844 802BECF4 34840007 */ ori $a0, $a0, 7
.L802BECF8:
/* 322848 802BECF8 3C03802C */ lui $v1, %hi(D_802BFF14)
/* 32284C 802BECFC 2463FF14 */ addiu $v1, $v1, %lo(D_802BFF14)
/* 322850 802BED00 8C620000 */ lw $v0, ($v1)
/* 322854 802BED04 24420001 */ addiu $v0, $v0, 1
/* 322858 802BED08 AC620000 */ sw $v0, ($v1)
.L802BED0C:
/* 32285C 802BED0C 8E420000 */ lw $v0, ($s2)
/* 322860 802BED10 30420800 */ andi $v0, $v0, 0x800
/* 322864 802BED14 1440017A */ bnez $v0, .L802BF300
/* 322868 802BED18 2402000A */ addiu $v0, $zero, 0xa
/* 32286C 802BED1C C6200060 */ lwc1 $f0, 0x60($s1)
/* 322870 802BED20 C62A0038 */ lwc1 $f10, 0x38($s1)
/* 322874 802BED24 8622008E */ lh $v0, 0x8e($s1)
/* 322878 802BED28 460A0001 */ sub.s $f0, $f0, $f10
/* 32287C 802BED2C C6280040 */ lwc1 $f8, 0x40($s1)
/* 322880 802BED30 44821000 */ mtc1 $v0, $f2
/* 322884 802BED34 00000000 */ nop
/* 322888 802BED38 468010A0 */ cvt.s.w $f2, $f2
/* 32288C 802BED3C 46020003 */ div.s $f0, $f0, $f2
/* 322890 802BED40 46005280 */ add.s $f10, $f10, $f0
/* 322894 802BED44 C6200068 */ lwc1 $f0, 0x68($s1)
/* 322898 802BED48 C626003C */ lwc1 $f6, 0x3c($s1)
/* 32289C 802BED4C 46080001 */ sub.s $f0, $f0, $f8
/* 3228A0 802BED50 C6220064 */ lwc1 $f2, 0x64($s1)
/* 3228A4 802BED54 46061081 */ sub.s $f2, $f2, $f6
/* 3228A8 802BED58 44822000 */ mtc1 $v0, $f4
/* 3228AC 802BED5C 00000000 */ nop
/* 3228B0 802BED60 46802120 */ cvt.s.w $f4, $f4
/* 3228B4 802BED64 46040003 */ div.s $f0, $f0, $f4
/* 3228B8 802BED68 46004200 */ add.s $f8, $f8, $f0
/* 3228BC 802BED6C 46002006 */ mov.s $f0, $f4
/* 3228C0 802BED70 46001083 */ div.s $f2, $f2, $f0
/* 3228C4 802BED74 46023180 */ add.s $f6, $f6, $f2
/* 3228C8 802BED78 C622001C */ lwc1 $f2, 0x1c($s1)
/* 3228CC 802BED7C E62A0038 */ swc1 $f10, 0x38($s1)
/* 3228D0 802BED80 E6280040 */ swc1 $f8, 0x40($s1)
/* 3228D4 802BED84 E626003C */ swc1 $f6, 0x3c($s1)
/* 3228D8 802BED88 864200B0 */ lh $v0, 0xb0($s2)
/* 3228DC 802BED8C C640002C */ lwc1 $f0, 0x2c($s2)
/* 3228E0 802BED90 44828000 */ mtc1 $v0, $f16
/* 3228E4 802BED94 00000000 */ nop
/* 3228E8 802BED98 46808420 */ cvt.s.w $f16, $f16
/* 3228EC 802BED9C 00021040 */ sll $v0, $v0, 1
/* 3228F0 802BEDA0 44058000 */ mfc1 $a1, $f16
/* 3228F4 802BEDA4 44828000 */ mtc1 $v0, $f16
/* 3228F8 802BEDA8 00000000 */ nop
/* 3228FC 802BEDAC 46808420 */ cvt.s.w $f16, $f16
/* 322900 802BEDB0 46020000 */ add.s $f0, $f0, $f2
/* 322904 802BEDB4 44068000 */ mfc1 $a2, $f16
/* 322908 802BEDB8 0220202D */ daddu $a0, $s1, $zero
/* 32290C 802BEDBC 0C0AF667 */ jal func_802BD99C_3214EC
/* 322910 802BEDC0 E640002C */ swc1 $f0, 0x2c($s2)
/* 322914 802BEDC4 C640002C */ lwc1 $f0, 0x2c($s2)
/* 322918 802BEDC8 3C01802C */ lui $at, %hi(D_802BFF24)
/* 32291C 802BEDCC C422FF24 */ lwc1 $f2, %lo(D_802BFF24)($at)
/* 322920 802BEDD0 468010A0 */ cvt.s.w $f2, $f2
/* 322924 802BEDD4 46020000 */ add.s $f0, $f0, $f2
/* 322928 802BEDD8 26300038 */ addiu $s0, $s1, 0x38
/* 32292C 802BEDDC E640002C */ swc1 $f0, 0x2c($s2)
/* 322930 802BEDE0 C624003C */ lwc1 $f4, 0x3c($s1)
/* 322934 802BEDE4 C6200014 */ lwc1 $f0, 0x14($s1)
/* 322938 802BEDE8 46022100 */ add.s $f4, $f4, $f2
/* 32293C 802BEDEC C622001C */ lwc1 $f2, 0x1c($s1)
/* 322940 802BEDF0 4480A000 */ mtc1 $zero, $f20
/* 322944 802BEDF4 46001081 */ sub.s $f2, $f2, $f0
/* 322948 802BEDF8 26330040 */ addiu $s3, $s1, 0x40
/* 32294C 802BEDFC E624003C */ swc1 $f4, 0x3c($s1)
/* 322950 802BEE00 4614103E */ c.le.s $f2, $f20
/* 322954 802BEE04 00000000 */ nop
/* 322958 802BEE08 45000004 */ bc1f .L802BEE1C
/* 32295C 802BEE0C E622001C */ swc1 $f2, 0x1c($s1)
/* 322960 802BEE10 3C040001 */ lui $a0, 1
/* 322964 802BEE14 0C037FBF */ jal suggest_player_anim_clearUnkFlag
/* 322968 802BEE18 34840008 */ ori $a0, $a0, 8
.L802BEE1C:
/* 32296C 802BEE1C 9622008E */ lhu $v0, 0x8e($s1)
/* 322970 802BEE20 2442FFFF */ addiu $v0, $v0, -1
/* 322974 802BEE24 A622008E */ sh $v0, 0x8e($s1)
/* 322978 802BEE28 00021400 */ sll $v0, $v0, 0x10
/* 32297C 802BEE2C 00021C03 */ sra $v1, $v0, 0x10
/* 322980 802BEE30 18600015 */ blez $v1, .L802BEE88
/* 322984 802BEE34 24020001 */ addiu $v0, $zero, 1
/* 322988 802BEE38 14620148 */ bne $v1, $v0, .L802BF35C
/* 32298C 802BEE3C 00000000 */ nop
/* 322990 802BEE40 0200202D */ daddu $a0, $s0, $zero
/* 322994 802BEE44 3C028007 */ lui $v0, %hi(gCurrentCameraID)
/* 322998 802BEE48 8C427410 */ lw $v0, %lo(gCurrentCameraID)($v0)
/* 32299C 802BEE4C 3C06C000 */ lui $a2, 0xc000
/* 3229A0 802BEE50 00021880 */ sll $v1, $v0, 2
/* 3229A4 802BEE54 00621821 */ addu $v1, $v1, $v0
/* 3229A8 802BEE58 00031880 */ sll $v1, $v1, 2
/* 3229AC 802BEE5C 00621823 */ subu $v1, $v1, $v0
/* 3229B0 802BEE60 000310C0 */ sll $v0, $v1, 3
/* 3229B4 802BEE64 00621821 */ addu $v1, $v1, $v0
/* 3229B8 802BEE68 000318C0 */ sll $v1, $v1, 3
/* 3229BC 802BEE6C 3C07800B */ lui $a3, %hi(gCameras+0x6C)
/* 3229C0 802BEE70 00E33821 */ addu $a3, $a3, $v1
/* 3229C4 802BEE74 8CE71DEC */ lw $a3, %lo(gCameras+0x6C)($a3)
/* 3229C8 802BEE78 0C00A7E7 */ jal add_vec2D_polar
/* 3229CC 802BEE7C 0260282D */ daddu $a1, $s3, $zero
/* 3229D0 802BEE80 080AFCD7 */ j .L802BF35C
/* 3229D4 802BEE84 00000000 */ nop
.L802BEE88:
/* 3229D8 802BEE88 C622003C */ lwc1 $f2, 0x3c($s1)
/* 3229DC 802BEE8C 3C014120 */ lui $at, 0x4120
/* 3229E0 802BEE90 44810000 */ mtc1 $at, $f0
/* 3229E4 802BEE94 00000000 */ nop
/* 3229E8 802BEE98 46001080 */ add.s $f2, $f2, $f0
/* 3229EC 802BEE9C C640005C */ lwc1 $f0, 0x5c($s2)
/* 3229F0 802BEEA0 24040021 */ addiu $a0, $zero, 0x21
/* 3229F4 802BEEA4 E642002C */ swc1 $f2, 0x2c($s2)
/* 3229F8 802BEEA8 E6200018 */ swc1 $f0, 0x18($s1)
/* 3229FC 802BEEAC E6340014 */ swc1 $f20, 0x14($s1)
/* 322A00 802BEEB0 C6400080 */ lwc1 $f0, 0x80($s2)
/* 322A04 802BEEB4 24020003 */ addiu $v0, $zero, 3
/* 322A08 802BEEB8 A622008E */ sh $v0, 0x8e($s1)
/* 322A0C 802BEEBC 0C039769 */ jal set_action_state
/* 322A10 802BEEC0 E620000C */ swc1 $f0, 0xc($s1)
/* 322A14 802BEEC4 3C040008 */ lui $a0, 8
/* 322A18 802BEEC8 0C037FDE */ jal suggest_player_anim_setUnkFlag
/* 322A1C 802BEECC 3484000E */ ori $a0, $a0, 0xe
/* 322A20 802BEED0 0C038039 */ jal disable_player_shadow
/* 322A24 802BEED4 00000000 */ nop
/* 322A28 802BEED8 24020008 */ addiu $v0, $zero, 8
/* 322A2C 802BEEDC A2A20003 */ sb $v0, 3($s5)
/* 322A30 802BEEE0 24020001 */ addiu $v0, $zero, 1
/* 322A34 802BEEE4 3C014000 */ lui $at, 0x4000
/* 322A38 802BEEE8 44816000 */ mtc1 $at, $f12
/* 322A3C 802BEEEC 2403FEFF */ addiu $v1, $zero, -0x101
/* 322A40 802BEEF0 A2A20000 */ sb $v0, ($s5)
/* 322A44 802BEEF4 8E420000 */ lw $v0, ($s2)
/* 322A48 802BEEF8 3C048007 */ lui $a0, %hi(gGameStatusPtr)
/* 322A4C 802BEEFC 8C84419C */ lw $a0, %lo(gGameStatusPtr)($a0)
/* 322A50 802BEF00 00431024 */ and $v0, $v0, $v1
/* 322A54 802BEF04 AE420000 */ sw $v0, ($s2)
/* 322A58 802BEF08 24020002 */ addiu $v0, $zero, 2
/* 322A5C 802BEF0C A080007D */ sb $zero, 0x7d($a0)
/* 322A60 802BEF10 3C01802C */ lui $at, %hi(D_802BFF18)
/* 322A64 802BEF14 AC20FF18 */ sw $zero, %lo(D_802BFF18)($at)
/* 322A68 802BEF18 3C01802C */ lui $at, %hi(D_802BFF0C)
/* 322A6C 802BEF1C AC22FF0C */ sw $v0, %lo(D_802BFF0C)($at)
/* 322A70 802BEF20 0C0AFED1 */ jal func_802BFB44_323694
/* 322A74 802BEF24 00000000 */ nop
/* 322A78 802BEF28 24020068 */ addiu $v0, $zero, 0x68
/* 322A7C 802BEF2C 3C01802C */ lui $at, %hi(D_802BFF14)
/* 322A80 802BEF30 AC22FF14 */ sw $v0, %lo(D_802BFF14)($at)
/* 322A84 802BEF34 8E420004 */ lw $v0, 4($s2)
/* 322A88 802BEF38 3C030040 */ lui $v1, 0x40
/* 322A8C 802BEF3C 00431025 */ or $v0, $v0, $v1
/* 322A90 802BEF40 080AFCD7 */ j .L802BF35C
/* 322A94 802BEF44 AE420004 */ sw $v0, 4($s2)
.L802BEF48:
/* 322A98 802BEF48 8E420000 */ lw $v0, ($s2)
/* 322A9C 802BEF4C 30420800 */ andi $v0, $v0, 0x800
/* 322AA0 802BEF50 10400003 */ beqz $v0, .L802BEF60
/* 322AA4 802BEF54 2402000A */ addiu $v0, $zero, 0xa
/* 322AA8 802BEF58 080AFCD7 */ j .L802BF35C
/* 322AAC 802BEF5C AE020000 */ sw $v0, ($s0)
.L802BEF60:
/* 322AB0 802BEF60 9622008E */ lhu $v0, 0x8e($s1)
/* 322AB4 802BEF64 2442FFFF */ addiu $v0, $v0, -1
/* 322AB8 802BEF68 A622008E */ sh $v0, 0x8e($s1)
/* 322ABC 802BEF6C 00021400 */ sll $v0, $v0, 0x10
/* 322AC0 802BEF70 1040000B */ beqz $v0, .L802BEFA0
/* 322AC4 802BEF74 24030001 */ addiu $v1, $zero, 1
/* 322AC8 802BEF78 8EA2000C */ lw $v0, 0xc($s5)
/* 322ACC 802BEF7C 30424004 */ andi $v0, $v0, 0x4004
/* 322AD0 802BEF80 104000F6 */ beqz $v0, .L802BF35C
/* 322AD4 802BEF84 00000000 */ nop
/* 322AD8 802BEF88 0C0AF5F7 */ jal func_802BD7DC
/* 322ADC 802BEF8C 00000000 */ nop
/* 322AE0 802BEF90 104000F2 */ beqz $v0, .L802BF35C
/* 322AE4 802BEF94 24020003 */ addiu $v0, $zero, 3
/* 322AE8 802BEF98 080AFCD7 */ j .L802BF35C
/* 322AEC 802BEF9C AE020000 */ sw $v0, ($s0)
.L802BEFA0:
/* 322AF0 802BEFA0 8E220000 */ lw $v0, ($s1)
/* 322AF4 802BEFA4 AE030000 */ sw $v1, ($s0)
/* 322AF8 802BEFA8 34420040 */ ori $v0, $v0, 0x40
/* 322AFC 802BEFAC AE220000 */ sw $v0, ($s1)
.L802BEFB0:
/* 322B00 802BEFB0 0C0AF776 */ jal func_802BDDD8_321928
/* 322B04 802BEFB4 0220202D */ daddu $a0, $s1, $zero
/* 322B08 802BEFB8 3C030040 */ lui $v1, 0x40
/* 322B0C 802BEFBC 3C04802C */ lui $a0, %hi(D_802BFF18)
/* 322B10 802BEFC0 2484FF18 */ addiu $a0, $a0, %lo(D_802BFF18)
/* 322B14 802BEFC4 8E420004 */ lw $v0, 4($s2)
/* 322B18 802BEFC8 3C014000 */ lui $at, 0x4000
/* 322B1C 802BEFCC 44811000 */ mtc1 $at, $f2
/* 322B20 802BEFD0 00431025 */ or $v0, $v0, $v1
/* 322B24 802BEFD4 AE420004 */ sw $v0, 4($s2)
/* 322B28 802BEFD8 8C830000 */ lw $v1, ($a0)
/* 322B2C 802BEFDC C6200064 */ lwc1 $f0, 0x64($s1)
/* 322B30 802BEFE0 24620001 */ addiu $v0, $v1, 1
/* 322B34 802BEFE4 46020000 */ add.s $f0, $f0, $f2
/* 322B38 802BEFE8 AC820000 */ sw $v0, ($a0)
/* 322B3C 802BEFEC 2842000A */ slti $v0, $v0, 0xa
/* 322B40 802BEFF0 14400003 */ bnez $v0, .L802BF000
/* 322B44 802BEFF4 E620003C */ swc1 $f0, 0x3c($s1)
/* 322B48 802BEFF8 2462FFEF */ addiu $v0, $v1, -0x11
/* 322B4C 802BEFFC AC820000 */ sw $v0, ($a0)
.L802BF000:
/* 322B50 802BF000 82A20014 */ lb $v0, 0x14($s5)
/* 322B54 802BF004 14400003 */ bnez $v0, .L802BF014
/* 322B58 802BF008 00000000 */ nop
/* 322B5C 802BF00C C620000C */ lwc1 $f0, 0xc($s1)
/* 322B60 802BF010 E6400080 */ swc1 $f0, 0x80($s2)
.L802BF014:
/* 322B64 802BF014 8E420000 */ lw $v0, ($s2)
/* 322B68 802BF018 30420800 */ andi $v0, $v0, 0x800
/* 322B6C 802BF01C 144000B8 */ bnez $v0, .L802BF300
/* 322B70 802BF020 2402000A */ addiu $v0, $zero, 0xa
/* 322B74 802BF024 8EA2000C */ lw $v0, 0xc($s5)
/* 322B78 802BF028 30424004 */ andi $v0, $v0, 0x4004
/* 322B7C 802BF02C 104000CB */ beqz $v0, .L802BF35C
/* 322B80 802BF030 00000000 */ nop
/* 322B84 802BF034 0C0AF5F7 */ jal func_802BD7DC
/* 322B88 802BF038 00000000 */ nop
/* 322B8C 802BF03C 10400005 */ beqz $v0, .L802BF054
/* 322B90 802BF040 24020003 */ addiu $v0, $zero, 3
/* 322B94 802BF044 3C01802C */ lui $at, %hi(D_802BFF14)
/* 322B98 802BF048 AC22FF14 */ sw $v0, %lo(D_802BFF14)($at)
/* 322B9C 802BF04C 080AFCD7 */ j .L802BF35C
/* 322BA0 802BF050 00000000 */ nop
.L802BF054:
/* 322BA4 802BF054 8E420004 */ lw $v0, 4($s2)
/* 322BA8 802BF058 3C034000 */ lui $v1, 0x4000
/* 322BAC 802BF05C 00431024 */ and $v0, $v0, $v1
/* 322BB0 802BF060 14400006 */ bnez $v0, .L802BF07C
/* 322BB4 802BF064 3C03BFFF */ lui $v1, 0xbfff
/* 322BB8 802BF068 2404021D */ addiu $a0, $zero, 0x21d
/* 322BBC 802BF06C 0000282D */ daddu $a1, $zero, $zero
/* 322BC0 802BF070 0C052742 */ jal sfx_play_sound_at_npc
/* 322BC4 802BF074 2406FFFC */ addiu $a2, $zero, -4
/* 322BC8 802BF078 3C03BFFF */ lui $v1, 0xbfff
.L802BF07C:
/* 322BCC 802BF07C 8E420004 */ lw $v0, 4($s2)
/* 322BD0 802BF080 3463FFFF */ ori $v1, $v1, 0xffff
/* 322BD4 802BF084 00431024 */ and $v0, $v0, $v1
/* 322BD8 802BF088 080AFCD7 */ j .L802BF35C
/* 322BDC 802BF08C AE420004 */ sw $v0, 4($s2)
.L802BF090:
/* 322BE0 802BF090 8E220000 */ lw $v0, ($s1)
/* 322BE4 802BF094 2403FFBF */ addiu $v1, $zero, -0x41
/* 322BE8 802BF098 00431024 */ and $v0, $v0, $v1
/* 322BEC 802BF09C AE220000 */ sw $v0, ($s1)
/* 322BF0 802BF0A0 8E420000 */ lw $v0, ($s2)
/* 322BF4 802BF0A4 34420100 */ ori $v0, $v0, 0x100
/* 322BF8 802BF0A8 0C0AF5F7 */ jal func_802BD7DC
/* 322BFC 802BF0AC AE420000 */ sw $v0, ($s2)
/* 322C00 802BF0B0 3C02800B */ lui $v0, %hi(gCameras)
/* 322C04 802BF0B4 24421D80 */ addiu $v0, $v0, %lo(gCameras)
/* 322C08 802BF0B8 C64200A8 */ lwc1 $f2, 0xa8($s2)
/* 322C0C 802BF0BC 3C0142B4 */ lui $at, 0x42b4
/* 322C10 802BF0C0 44813000 */ mtc1 $at, $f6
/* 322C14 802BF0C4 C444006C */ lwc1 $f4, 0x6c($v0)
/* 322C18 802BF0C8 4602303E */ c.le.s $f6, $f2
/* 322C1C 802BF0CC 00000000 */ nop
/* 322C20 802BF0D0 4500000E */ bc1f .L802BF10C
/* 322C24 802BF0D4 00000000 */ nop
/* 322C28 802BF0D8 3C014387 */ lui $at, 0x4387
/* 322C2C 802BF0DC 44810000 */ mtc1 $at, $f0
/* 322C30 802BF0E0 00000000 */ nop
/* 322C34 802BF0E4 4600103C */ c.lt.s $f2, $f0
/* 322C38 802BF0E8 00000000 */ nop
/* 322C3C 802BF0EC 45000007 */ bc1f .L802BF10C
/* 322C40 802BF0F0 00000000 */ nop
/* 322C44 802BF0F4 3C014334 */ lui $at, 0x4334
/* 322C48 802BF0F8 44810000 */ mtc1 $at, $f0
/* 322C4C 802BF0FC 00000000 */ nop
/* 322C50 802BF100 46002000 */ add.s $f0, $f4, $f0
/* 322C54 802BF104 080AFC4A */ j .L802BF128
/* 322C58 802BF108 46060501 */ sub.s $f20, $f0, $f6
.L802BF10C:
/* 322C5C 802BF10C 44800000 */ mtc1 $zero, $f0
/* 322C60 802BF110 00000000 */ nop
/* 322C64 802BF114 46002000 */ add.s $f0, $f4, $f0
/* 322C68 802BF118 3C0142B4 */ lui $at, 0x42b4
/* 322C6C 802BF11C 44811000 */ mtc1 $at, $f2
/* 322C70 802BF120 00000000 */ nop
/* 322C74 802BF124 46020501 */ sub.s $f20, $f0, $f2
.L802BF128:
/* 322C78 802BF128 E634000C */ swc1 $f20, 0xc($s1)
/* 322C7C 802BF12C C64C0028 */ lwc1 $f12, 0x28($s2)
/* 322C80 802BF130 C64E0030 */ lwc1 $f14, 0x30($s2)
/* 322C84 802BF134 8E260060 */ lw $a2, 0x60($s1)
/* 322C88 802BF138 0C00A7B5 */ jal dist2D
/* 322C8C 802BF13C 8E270068 */ lw $a3, 0x68($s1)
/* 322C90 802BF140 C64C0028 */ lwc1 $f12, 0x28($s2)
/* 322C94 802BF144 C64E0030 */ lwc1 $f14, 0x30($s2)
/* 322C98 802BF148 8E260060 */ lw $a2, 0x60($s1)
/* 322C9C 802BF14C 8E270068 */ lw $a3, 0x68($s1)
/* 322CA0 802BF150 0C00A720 */ jal atan2
/* 322CA4 802BF154 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 322CA8 802BF158 C6240064 */ lwc1 $f4, 0x64($s1)
/* 322CAC 802BF15C C622003C */ lwc1 $f2, 0x3c($s1)
/* 322CB0 802BF160 E620000C */ swc1 $f0, 0xc($s1)
/* 322CB4 802BF164 3C013F99 */ lui $at, 0x3f99
/* 322CB8 802BF168 3421999A */ ori $at, $at, 0x999a
/* 322CBC 802BF16C 44810000 */ mtc1 $at, $f0
/* 322CC0 802BF170 2402000E */ addiu $v0, $zero, 0xe
/* 322CC4 802BF174 A622008E */ sh $v0, 0x8e($s1)
/* 322CC8 802BF178 4604103C */ c.lt.s $f2, $f4
/* 322CCC 802BF17C 00000000 */ nop
/* 322CD0 802BF180 45000009 */ bc1f .L802BF1A8
/* 322CD4 802BF184 E6200014 */ swc1 $f0, 0x14($s1)
/* 322CD8 802BF188 46022001 */ sub.s $f0, $f4, $f2
/* 322CDC 802BF18C 3C014160 */ lui $at, 0x4160
/* 322CE0 802BF190 44811000 */ mtc1 $at, $f2
/* 322CE4 802BF194 3C0140C0 */ lui $at, 0x40c0
/* 322CE8 802BF198 44812000 */ mtc1 $at, $f4
/* 322CEC 802BF19C 46020003 */ div.s $f0, $f0, $f2
/* 322CF0 802BF1A0 080AFC6D */ j .L802BF1B4
/* 322CF4 802BF1A4 46040000 */ add.s $f0, $f0, $f4
.L802BF1A8:
/* 322CF8 802BF1A8 3C0140C0 */ lui $at, 0x40c0
/* 322CFC 802BF1AC 44810000 */ mtc1 $at, $f0
/* 322D00 802BF1B0 00000000 */ nop
.L802BF1B4:
/* 322D04 802BF1B4 E620001C */ swc1 $f0, 0x1c($s1)
/* 322D08 802BF1B8 3C040001 */ lui $a0, 1
/* 322D0C 802BF1BC 34840006 */ ori $a0, $a0, 6
/* 322D10 802BF1C0 8622008E */ lh $v0, 0x8e($s1)
/* 322D14 802BF1C4 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 322D18 802BF1C8 44821000 */ mtc1 $v0, $f2
/* 322D1C 802BF1CC 00000000 */ nop
/* 322D20 802BF1D0 468010A0 */ cvt.s.w $f2, $f2
/* 322D24 802BF1D4 46020003 */ div.s $f0, $f0, $f2
/* 322D28 802BF1D8 0C037FBF */ jal suggest_player_anim_clearUnkFlag
/* 322D2C 802BF1DC E6200018 */ swc1 $f0, 0x18($s1)
/* 322D30 802BF1E0 3C03802C */ lui $v1, %hi(D_802BFF14)
/* 322D34 802BF1E4 2463FF14 */ addiu $v1, $v1, %lo(D_802BFF14)
/* 322D38 802BF1E8 8C620000 */ lw $v0, ($v1)
/* 322D3C 802BF1EC 24420001 */ addiu $v0, $v0, 1
/* 322D40 802BF1F0 080AFCD7 */ j .L802BF35C
/* 322D44 802BF1F4 AC620000 */ sw $v0, ($v1)
.L802BF1F8:
/* 322D48 802BF1F8 3C040001 */ lui $a0, 1
/* 322D4C 802BF1FC 0C037FBF */ jal suggest_player_anim_clearUnkFlag
/* 322D50 802BF200 34840007 */ ori $a0, $a0, 7
/* 322D54 802BF204 8E020000 */ lw $v0, ($s0)
/* 322D58 802BF208 24420001 */ addiu $v0, $v0, 1
/* 322D5C 802BF20C AE020000 */ sw $v0, ($s0)
/* 322D60 802BF210 0240202D */ daddu $a0, $s2, $zero
.L802BF214:
/* 322D64 802BF214 3C08800B */ lui $t0, %hi(gCameras)
/* 322D68 802BF218 25081D80 */ addiu $t0, $t0, %lo(gCameras)
/* 322D6C 802BF21C 27A50020 */ addiu $a1, $sp, 0x20
/* 322D70 802BF220 27B40024 */ addiu $s4, $sp, 0x24
/* 322D74 802BF224 0280302D */ daddu $a2, $s4, $zero
/* 322D78 802BF228 27A70028 */ addiu $a3, $sp, 0x28
/* 322D7C 802BF22C 26500028 */ addiu $s0, $s2, 0x28
/* 322D80 802BF230 95020002 */ lhu $v0, 2($t0)
/* 322D84 802BF234 26530030 */ addiu $s3, $s2, 0x30
/* 322D88 802BF238 34420001 */ ori $v0, $v0, 1
/* 322D8C 802BF23C A5020002 */ sh $v0, 2($t0)
/* 322D90 802BF240 C640002C */ lwc1 $f0, 0x2c($s2)
/* 322D94 802BF244 C622001C */ lwc1 $f2, 0x1c($s1)
/* 322D98 802BF248 864200B0 */ lh $v0, 0xb0($s2)
/* 322D9C 802BF24C C6480028 */ lwc1 $f8, 0x28($s2)
/* 322DA0 802BF250 46020000 */ add.s $f0, $f0, $f2
/* 322DA4 802BF254 3C013F00 */ lui $at, 0x3f00
/* 322DA8 802BF258 44811000 */ mtc1 $at, $f2
/* 322DAC 802BF25C 44826000 */ mtc1 $v0, $f12
/* 322DB0 802BF260 00000000 */ nop
/* 322DB4 802BF264 46806320 */ cvt.s.w $f12, $f12
/* 322DB8 802BF268 46026302 */ mul.s $f12, $f12, $f2
/* 322DBC 802BF26C 00000000 */ nop
/* 322DC0 802BF270 C64A0030 */ lwc1 $f10, 0x30($s2)
/* 322DC4 802BF274 0040182D */ daddu $v1, $v0, $zero
/* 322DC8 802BF278 E640002C */ swc1 $f0, 0x2c($s2)
/* 322DCC 802BF27C 44830000 */ mtc1 $v1, $f0
/* 322DD0 802BF280 00000000 */ nop
/* 322DD4 802BF284 46800020 */ cvt.s.w $f0, $f0
/* 322DD8 802BF288 46020002 */ mul.s $f0, $f0, $f2
/* 322DDC 802BF28C 00000000 */ nop
/* 322DE0 802BF290 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 322DE4 802BF294 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 322DE8 802BF298 C644002C */ lwc1 $f4, 0x2c($s2)
/* 322DEC 802BF29C 3C0142B4 */ lui $at, 0x42b4
/* 322DF0 802BF2A0 44811000 */ mtc1 $at, $f2
/* 322DF4 802BF2A4 00031080 */ sll $v0, $v1, 2
/* 322DF8 802BF2A8 00431021 */ addu $v0, $v0, $v1
/* 322DFC 802BF2AC 00021080 */ sll $v0, $v0, 2
/* 322E00 802BF2B0 00431023 */ subu $v0, $v0, $v1
/* 322E04 802BF2B4 000218C0 */ sll $v1, $v0, 3
/* 322E08 802BF2B8 00431021 */ addu $v0, $v0, $v1
/* 322E0C 802BF2BC 000210C0 */ sll $v0, $v0, 3
/* 322E10 802BF2C0 00481021 */ addu $v0, $v0, $t0
/* 322E14 802BF2C4 C446006C */ lwc1 $f6, 0x6c($v0)
/* 322E18 802BF2C8 46002100 */ add.s $f4, $f4, $f0
/* 322E1C 802BF2CC C64000A8 */ lwc1 $f0, 0xa8($s2)
/* 322E20 802BF2D0 27A2002C */ addiu $v0, $sp, 0x2c
/* 322E24 802BF2D4 E7A80020 */ swc1 $f8, 0x20($sp)
/* 322E28 802BF2D8 46020001 */ sub.s $f0, $f0, $f2
/* 322E2C 802BF2DC E7AA0028 */ swc1 $f10, 0x28($sp)
/* 322E30 802BF2E0 E7AC002C */ swc1 $f12, 0x2c($sp)
/* 322E34 802BF2E4 46060500 */ add.s $f20, $f0, $f6
/* 322E38 802BF2E8 E7A40024 */ swc1 $f4, 0x24($sp)
/* 322E3C 802BF2EC AFA20010 */ sw $v0, 0x10($sp)
/* 322E40 802BF2F0 0C0379F9 */ jal player_raycast_up_corners
/* 322E44 802BF2F4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 322E48 802BF2F8 04400005 */ bltz $v0, .L802BF310
/* 322E4C 802BF2FC 2402000A */ addiu $v0, $zero, 0xa
.L802BF300:
/* 322E50 802BF300 3C01802C */ lui $at, %hi(D_802BFF14)
/* 322E54 802BF304 AC22FF14 */ sw $v0, %lo(D_802BFF14)($at)
/* 322E58 802BF308 080AFCD7 */ j .L802BF35C
/* 322E5C 802BF30C 00000000 */ nop
.L802BF310:
/* 322E60 802BF310 0200202D */ daddu $a0, $s0, $zero
/* 322E64 802BF314 C620001C */ lwc1 $f0, 0x1c($s1)
/* 322E68 802BF318 C6220014 */ lwc1 $f2, 0x14($s1)
/* 322E6C 802BF31C 8E260018 */ lw $a2, 0x18($s1)
/* 322E70 802BF320 46020001 */ sub.s $f0, $f0, $f2
/* 322E74 802BF324 8E27000C */ lw $a3, 0xc($s1)
/* 322E78 802BF328 0260282D */ daddu $a1, $s3, $zero
/* 322E7C 802BF32C 0C00A7E7 */ jal add_vec2D_polar
/* 322E80 802BF330 E620001C */ swc1 $f0, 0x1c($s1)
/* 322E84 802BF334 0C0392B6 */ jal func_800E4AD8
/* 322E88 802BF338 0000202D */ daddu $a0, $zero, $zero
/* 322E8C 802BF33C 0C0AF9A8 */ jal func_802BE6A0_3221F0
/* 322E90 802BF340 0280202D */ daddu $a0, $s4, $zero
/* 322E94 802BF344 04400005 */ bltz $v0, .L802BF35C
/* 322E98 802BF348 2402000A */ addiu $v0, $zero, 0xa
/* 322E9C 802BF34C C7A00024 */ lwc1 $f0, 0x24($sp)
/* 322EA0 802BF350 3C01802C */ lui $at, %hi(D_802BFF14)
/* 322EA4 802BF354 AC22FF14 */ sw $v0, %lo(D_802BFF14)($at)
/* 322EA8 802BF358 E640002C */ swc1 $f0, 0x2c($s2)
.L802BF35C:
/* 322EAC 802BF35C C6400028 */ lwc1 $f0, 0x28($s2)
/* 322EB0 802BF360 3C02800B */ lui $v0, %hi(gCameras)
/* 322EB4 802BF364 24421D80 */ addiu $v0, $v0, %lo(gCameras)
/* 322EB8 802BF368 E4400060 */ swc1 $f0, 0x60($v0)
/* 322EBC 802BF36C C6400030 */ lwc1 $f0, 0x30($s2)
/* 322EC0 802BF370 C6220064 */ lwc1 $f2, 0x64($s1)
/* 322EC4 802BF374 3C10802C */ lui $s0, %hi(D_802BFF14)
/* 322EC8 802BF378 2610FF14 */ addiu $s0, $s0, %lo(D_802BFF14)
/* 322ECC 802BF37C E4400068 */ swc1 $f0, 0x68($v0)
/* 322ED0 802BF380 E4420064 */ swc1 $f2, 0x64($v0)
/* 322ED4 802BF384 8E030000 */ lw $v1, ($s0)
/* 322ED8 802BF388 2402000A */ addiu $v0, $zero, 0xa
/* 322EDC 802BF38C 14620030 */ bne $v1, $v0, .L802BF450
/* 322EE0 802BF390 2402000B */ addiu $v0, $zero, 0xb
/* 322EE4 802BF394 3C02FFBF */ lui $v0, 0xffbf
/* 322EE8 802BF398 3442FFB7 */ ori $v0, $v0, 0xffb7
/* 322EEC 802BF39C 8E230000 */ lw $v1, ($s1)
/* 322EF0 802BF3A0 3C05802C */ lui $a1, %hi(D_802BFF08)
/* 322EF4 802BF3A4 24A5FF08 */ addiu $a1, $a1, %lo(D_802BFF08)
/* 322EF8 802BF3A8 3C01802C */ lui $at, %hi(D_802BFF0C)
/* 322EFC 802BF3AC AC20FF0C */ sw $zero, %lo(D_802BFF0C)($at)
/* 322F00 802BF3B0 8CA40000 */ lw $a0, ($a1)
/* 322F04 802BF3B4 00621824 */ and $v1, $v1, $v0
/* 322F08 802BF3B8 10800003 */ beqz $a0, .L802BF3C8
/* 322F0C 802BF3BC AE230000 */ sw $v1, ($s1)
/* 322F10 802BF3C0 0C038050 */ jal enable_player_static_collisions
/* 322F14 802BF3C4 ACA00000 */ sw $zero, ($a1)
.L802BF3C8:
/* 322F18 802BF3C8 0C03802C */ jal enable_player_shadow
/* 322F1C 802BF3CC 00000000 */ nop
/* 322F20 802BF3D0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 322F24 802BF3D4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 322F28 802BF3D8 A040007D */ sb $zero, 0x7d($v0)
/* 322F2C 802BF3DC 8E420000 */ lw $v0, ($s2)
/* 322F30 802BF3E0 30420800 */ andi $v0, $v0, 0x800
/* 322F34 802BF3E4 10400013 */ beqz $v0, .L802BF434
/* 322F38 802BF3E8 00000000 */ nop
/* 322F3C 802BF3EC 3C03802C */ lui $v1, %hi(D_802BFF04)
/* 322F40 802BF3F0 2463FF04 */ addiu $v1, $v1, %lo(D_802BFF04)
/* 322F44 802BF3F4 8C620000 */ lw $v0, ($v1)
/* 322F48 802BF3F8 A2A00003 */ sb $zero, 3($s5)
/* 322F4C 802BF3FC 10400003 */ beqz $v0, .L802BF40C
/* 322F50 802BF400 A2A00000 */ sb $zero, ($s5)
/* 322F54 802BF404 0C038069 */ jal enable_player_input
/* 322F58 802BF408 AC600000 */ sw $zero, ($v1)
.L802BF40C:
/* 322F5C 802BF40C 0C03BD17 */ jal partner_clear_player_tracking
/* 322F60 802BF410 0220202D */ daddu $a0, $s1, $zero
/* 322F64 802BF414 0C039769 */ jal set_action_state
/* 322F68 802BF418 24040015 */ addiu $a0, $zero, 0x15
/* 322F6C 802BF41C 24020001 */ addiu $v0, $zero, 1
.L802BF420:
/* 322F70 802BF420 8E430000 */ lw $v1, ($s2)
/* 322F74 802BF424 2404FEFF */ addiu $a0, $zero, -0x101
.L802BF428:
/* 322F78 802BF428 00641824 */ and $v1, $v1, $a0
/* 322F7C 802BF42C 080AFD31 */ j .L802BF4C4
/* 322F80 802BF430 AE430000 */ sw $v1, ($s2)
.L802BF434:
/* 322F84 802BF434 0C039769 */ jal set_action_state
/* 322F88 802BF438 24040008 */ addiu $a0, $zero, 8
/* 322F8C 802BF43C 0C038C1B */ jal gravity_use_fall_parms
/* 322F90 802BF440 00000000 */ nop
/* 322F94 802BF444 2402000B */ addiu $v0, $zero, 0xb
/* 322F98 802BF448 080AFD30 */ j .L802BF4C0
/* 322F9C 802BF44C AE020000 */ sw $v0, ($s0)
.L802BF450:
/* 322FA0 802BF450 1462001C */ bne $v1, $v0, .L802BF4C4
/* 322FA4 802BF454 0000102D */ daddu $v0, $zero, $zero
/* 322FA8 802BF458 3C03FFBF */ lui $v1, 0xffbf
/* 322FAC 802BF45C 3463FFB7 */ ori $v1, $v1, 0xffb7
/* 322FB0 802BF460 2404FEFF */ addiu $a0, $zero, -0x101
/* 322FB4 802BF464 8E220000 */ lw $v0, ($s1)
/* 322FB8 802BF468 3C05802C */ lui $a1, %hi(D_802BFF04)
/* 322FBC 802BF46C 24A5FF04 */ addiu $a1, $a1, %lo(D_802BFF04)
/* 322FC0 802BF470 00431024 */ and $v0, $v0, $v1
/* 322FC4 802BF474 AE220000 */ sw $v0, ($s1)
/* 322FC8 802BF478 A2A00003 */ sb $zero, 3($s5)
/* 322FCC 802BF47C A2A00000 */ sb $zero, ($s5)
/* 322FD0 802BF480 8E420000 */ lw $v0, ($s2)
/* 322FD4 802BF484 8CA30000 */ lw $v1, ($a1)
/* 322FD8 802BF488 00441024 */ and $v0, $v0, $a0
/* 322FDC 802BF48C 10600003 */ beqz $v1, .L802BF49C
/* 322FE0 802BF490 AE420000 */ sw $v0, ($s2)
/* 322FE4 802BF494 0C038069 */ jal enable_player_input
/* 322FE8 802BF498 ACA00000 */ sw $zero, ($a1)
.L802BF49C:
/* 322FEC 802BF49C 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 322FF0 802BF4A0 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 322FF4 802BF4A4 0220202D */ daddu $a0, $s1, $zero
/* 322FF8 802BF4A8 0C03BD17 */ jal partner_clear_player_tracking
/* 322FFC 802BF4AC A040007D */ sb $zero, 0x7d($v0)
/* 323000 802BF4B0 0C03BCF5 */ jal func_800EF3D4
/* 323004 802BF4B4 24040002 */ addiu $a0, $zero, 2
/* 323008 802BF4B8 080AFD31 */ j .L802BF4C4
/* 32300C 802BF4BC 24020001 */ addiu $v0, $zero, 1
.L802BF4C0:
/* 323010 802BF4C0 0000102D */ daddu $v0, $zero, $zero
.L802BF4C4:
/* 323014 802BF4C4 8FBF0048 */ lw $ra, 0x48($sp)
/* 323018 802BF4C8 8FB50044 */ lw $s5, 0x44($sp)
/* 32301C 802BF4CC 8FB40040 */ lw $s4, 0x40($sp)
/* 323020 802BF4D0 8FB3003C */ lw $s3, 0x3c($sp)
/* 323024 802BF4D4 8FB20038 */ lw $s2, 0x38($sp)
/* 323028 802BF4D8 8FB10034 */ lw $s1, 0x34($sp)
/* 32302C 802BF4DC 8FB00030 */ lw $s0, 0x30($sp)
/* 323030 802BF4E0 D7B60058 */ ldc1 $f22, 0x58($sp)
/* 323034 802BF4E4 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 323038 802BF4E8 03E00008 */ jr $ra
/* 32303C 802BF4EC 27BD0060 */ addiu $sp, $sp, 0x60