mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
Decomp world/actions/land.c and func_802B61E4_E23444 (#665)
* Decompiled func_802A10A4_77F2E4 * Resolved Suggestions * Fixed Formatting Error * Fixed Formatting Errors * oops * Move playerActorState Assignment * Matched func 802B61E4 in idle.c * Decomped and Matched func_802B6000_E24920.s * Decomped and Matched func_802B61C0_E24AE0 * Decomped and Matched the rest of the functions in land.c * Cleaned up land.c * Cleaned up matched idle.c function * Removed Function ASM files * Fixed most warnings * Fixed all warnings * Applied Suggestions * Appliied Style Suggestions * Fix if statement
This commit is contained in:
parent
bcffe508ba
commit
3ecb9263d1
@ -1826,6 +1826,7 @@ enum NpcFlags {
|
||||
enum PlayerStatusFlags {
|
||||
PLAYER_STATUS_FLAGS_JUMPING = 0x00000002,
|
||||
PLAYER_STATUS_FLAGS_FALLING = 0x00000004,
|
||||
PLAYER_STATUS_FLAGS_8 = 0x00000008,
|
||||
PLAYER_STATUS_FLAGS_10 = 0x00000010,
|
||||
PLAYER_STATUS_FLAGS_20 = 0x00000020,
|
||||
PLAYER_STATUS_FLAGS_80 = 0x00000080,
|
||||
@ -1839,6 +1840,7 @@ enum PlayerStatusFlags {
|
||||
PLAYER_STATUS_FLAGS_8000 = 0x00008000,
|
||||
PLAYER_STATUS_FLAGS_20000 = 0x00020000,
|
||||
PLAYER_STATUS_FLAGS_40000 = 0x00040000,
|
||||
PLAYER_STATUS_FLAGS_80000 = 0x00080000,
|
||||
PLAYER_STATUS_FLAGS_800000 = 0x00800000,
|
||||
PLAYER_STATUS_FLAGS_HAS_CONVERSATION_NPC = 0x02000000,
|
||||
PLAYER_STATUS_FLAGS_CAMERA_DOESNT_FOLLOW = 0x04000000,
|
||||
|
@ -208,7 +208,7 @@ void get_dpad_input_radial(f32* angle, f32* magnitude);
|
||||
void transform_point(Matrix4f mtx, f32 inX, f32 inY, f32 inZ, f32 inS, f32* outX, f32* outY, f32* outZ, f32* outS);
|
||||
void try_player_footstep_sounds(s32 arg0);
|
||||
void phys_update_interact_collider(void);
|
||||
void phys_adjust_cam_on_landing(void);
|
||||
s32 phys_adjust_cam_on_landing(void);
|
||||
void phys_init_integrator_for_current_state(void);
|
||||
void phys_player_land(void);
|
||||
void phys_main_collision_below(void);
|
||||
@ -904,4 +904,6 @@ void clear_entity_data(s32);
|
||||
void clear_effect_data(void);
|
||||
void clear_area_flags(void);
|
||||
|
||||
void update_locomotion_state(void);
|
||||
|
||||
#endif
|
||||
|
@ -18,7 +18,7 @@ void func_800E5520(void) {
|
||||
D_8010C9B0 = 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "7bb60_len_41b0", phys_adjust_cam_on_landing, void);
|
||||
INCLUDE_ASM(s32, "7bb60_len_41b0", phys_adjust_cam_on_landing, void);
|
||||
|
||||
void phys_clear_spin_history(void) {
|
||||
s32 i;
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "common.h"
|
||||
#include "effects.h"
|
||||
|
||||
#include "effects.h"
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
#include "common.h"
|
||||
#include "../actions.h"
|
||||
|
||||
void func_802B61E4_E23444(void);
|
||||
|
||||
s32 world_action_idle_peachAnims[] = {
|
||||
0x000A0001, // Idle
|
||||
|
||||
@ -12,6 +10,8 @@ s32 world_action_idle_peachAnims[] = {
|
||||
0x000A0025, 0x000A0027, 0x000A0029, 0x00000000,
|
||||
};
|
||||
|
||||
void func_802B61E4_E23444(void);
|
||||
|
||||
void world_action_idle_update(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
PlayerData* playerData = &gPlayerData;
|
||||
@ -76,12 +76,11 @@ void world_action_idle_update(void) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef NON_EQUIVALENT
|
||||
INCLUDE_ASM(void, "world/action/idle", func_802B61E4_E23444, void);
|
||||
#else
|
||||
void func_802B61E4_E23444(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
PlayerData* playerData = &gPlayerData;
|
||||
f32 angle;
|
||||
f32 magnitude;
|
||||
|
||||
if (playerStatus->flags & 0x80000000) {
|
||||
playerStatus->flags &= ~0x80000000;
|
||||
@ -96,10 +95,10 @@ void func_802B61E4_E23444(void) {
|
||||
if (!(gGameStatusPtr->peachFlags & 0x10)) {
|
||||
suggest_player_anim_clearUnkFlag(world_action_idle_peachAnims[gGameStatusPtr->peachAnimIdx]);
|
||||
} else {
|
||||
suggest_player_anim_clearUnkFlag(world_actions_peachDisguises[playerStatus->peachDisguise].idle);
|
||||
suggest_player_anim_clearUnkFlag(0xC000E);
|
||||
}
|
||||
} else {
|
||||
suggest_player_anim_clearUnkFlag(0xC000E);
|
||||
peach_set_disguise_anim(world_actions_peachDisguises[gPlayerStatus.peachDisguise].idle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,18 +140,12 @@ void func_802B61E4_E23444(void) {
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
f32 angle;
|
||||
f32 magnitude;
|
||||
player_input_to_move_vector(&angle, &magnitude);
|
||||
phys_update_interact_collider();
|
||||
|
||||
player_input_to_move_vector(&angle, &magnitude);
|
||||
phys_update_interact_collider();
|
||||
|
||||
if (magnitude != 0.0f) {
|
||||
playerStatus->framesOnGround = 0;
|
||||
playerStatus->targetYaw = angle;
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
}
|
||||
if (magnitude != 0.0f) {
|
||||
playerStatus->framesOnGround = 0;
|
||||
playerStatus->targetYaw = angle;
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -1,9 +1,215 @@
|
||||
#include "common.h"
|
||||
#include "functions.h"
|
||||
|
||||
INCLUDE_ASM(void, "world/action/land", func_802B6000_E24920, void);
|
||||
void func_802B62CC_E24BEC(void);
|
||||
void func_802B644C_E24D6C(void);
|
||||
|
||||
INCLUDE_ASM(void, "world/action/land", func_802B61C0_E24AE0, void);
|
||||
void func_802B6000_E24920(void) {
|
||||
CollisionStatus* currentCollisionStatus = &gCollisionStatus;
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
Camera* camera = &gCameras[CAM_DEFAULT];
|
||||
f32 inputMoveMagnitude;
|
||||
f32 inputMoveAngle;
|
||||
s32 jumpInputCheck;
|
||||
s32 phi_a0;
|
||||
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_USING_PEACH_PHYSICS) {
|
||||
func_802B62CC_E24BEC();
|
||||
return;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "world/action/land", func_802B62CC_E24BEC, void);
|
||||
if (playerStatus->flags & PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED) {
|
||||
playerStatus->flags &= ~(
|
||||
PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED |
|
||||
PLAYER_STATUS_FLAGS_800000 |
|
||||
PLAYER_STATUS_FLAGS_80000 |
|
||||
PLAYER_STATUS_FLAGS_8 |
|
||||
PLAYER_STATUS_FLAGS_FALLING |
|
||||
PLAYER_STATUS_FLAGS_JUMPING
|
||||
);
|
||||
playerStatus->fallState = 0;
|
||||
playerStatus->decorationList = 0;
|
||||
playerStatus->unk_C2 = 0;
|
||||
playerStatus->decorationPos[0] = playerStatus->position.x;
|
||||
playerStatus->decorationPos[1] = playerStatus->position.z;
|
||||
|
||||
INCLUDE_ASM(void, "world/action/land", func_802B644C_E24D6C, void);
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_8BIT_MARIO) {
|
||||
phi_a0 = 0x90000;
|
||||
phi_a0 |= 0x2;
|
||||
|
||||
} else {
|
||||
phi_a0 = 0x6000B;
|
||||
if (!(playerStatus->animFlags & 1)) {
|
||||
phi_a0 = 0x10000;
|
||||
phi_a0 |= 0x9;
|
||||
}
|
||||
}
|
||||
|
||||
suggest_player_anim_clearUnkFlag(phi_a0);
|
||||
sfx_play_sound_at_player(0x8161, 0);
|
||||
sfx_play_sound_at_player(0x148, 0);
|
||||
|
||||
if (!(currentCollisionStatus->currentFloor & 0x4000)) {
|
||||
phys_adjust_cam_on_landing();
|
||||
}
|
||||
|
||||
currentCollisionStatus->lastTouchedFloor = -1;
|
||||
playerStatus->animFlags &= ~PLAYER_STATUS_ANIM_FLAGS_40000;
|
||||
camera->moveFlags &= ~0x4;
|
||||
}
|
||||
playerStatus->fallState++;
|
||||
playerStatus->currentSpeed *= 0.6f;
|
||||
|
||||
player_input_to_move_vector(&inputMoveAngle, &inputMoveMagnitude);
|
||||
jumpInputCheck = check_input_jump();
|
||||
|
||||
if (jumpInputCheck != 0 || jumpInputCheck < playerStatus->fallState) {
|
||||
if (inputMoveMagnitude == 0.0f) {
|
||||
set_action_state(0);
|
||||
return;
|
||||
}
|
||||
if (inputMoveMagnitude != 0.0f) {
|
||||
playerStatus->targetYaw = inputMoveAngle;
|
||||
}
|
||||
update_locomotion_state();
|
||||
}
|
||||
}
|
||||
|
||||
void func_802B61C0_E24AE0(void) {
|
||||
CollisionStatus* currentCollisionStatus = &gCollisionStatus;
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
f32 inputMoveMagnitude;
|
||||
f32 inputMoveAngle;
|
||||
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_USING_PEACH_PHYSICS) {
|
||||
func_802B644C_E24D6C();
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerStatus->flags & PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED) {
|
||||
playerStatus->flags &= ~(
|
||||
PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED |
|
||||
PLAYER_STATUS_FLAGS_800000 |
|
||||
PLAYER_STATUS_FLAGS_80000 |
|
||||
PLAYER_STATUS_FLAGS_8 |
|
||||
PLAYER_STATUS_FLAGS_FALLING |
|
||||
PLAYER_STATUS_FLAGS_JUMPING
|
||||
);
|
||||
playerStatus->fallState = 0;
|
||||
playerStatus->decorationList = 0;
|
||||
playerStatus->unk_C2 = 0;
|
||||
playerStatus->decorationPos[0] = playerStatus->position.x;
|
||||
playerStatus->decorationPos[1] = playerStatus->position.z;
|
||||
|
||||
if (!(currentCollisionStatus->currentFloor & 0x4000)) {
|
||||
phys_adjust_cam_on_landing();
|
||||
}
|
||||
|
||||
currentCollisionStatus->lastTouchedFloor = -1;
|
||||
}
|
||||
|
||||
playerStatus->fallState++;
|
||||
playerStatus->currentSpeed *= 0.6f;
|
||||
|
||||
player_input_to_move_vector(&inputMoveAngle, &inputMoveMagnitude);
|
||||
check_input_jump();
|
||||
|
||||
if (inputMoveMagnitude != 0.0f) {
|
||||
playerStatus->targetYaw = inputMoveAngle;
|
||||
}
|
||||
|
||||
update_locomotion_state();
|
||||
}
|
||||
|
||||
void func_802B62CC_E24BEC(void) {
|
||||
CollisionStatus* currentCollisionStatus = &gCollisionStatus;
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
f32 inputMoveMagnitude;
|
||||
f32 inputMoveAngle;
|
||||
s32 squaredStick0;
|
||||
s32 squaredStick1;
|
||||
|
||||
if (playerStatus->flags & PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED) {
|
||||
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED;
|
||||
playerStatus->fallState = 0;
|
||||
playerStatus->decorationList = 0;
|
||||
playerStatus->unk_C2 = 0;
|
||||
playerStatus->flags &= ~(PLAYER_STATUS_FLAGS_8 | PLAYER_STATUS_FLAGS_FALLING | PLAYER_STATUS_FLAGS_JUMPING);
|
||||
playerStatus->decorationPos[0] = playerStatus->position.x;
|
||||
playerStatus->decorationPos[1] = playerStatus->position.z;
|
||||
|
||||
sfx_play_sound_at_player(0x148, 0);
|
||||
|
||||
if (!(currentCollisionStatus->currentFloor & 0x4000)) {
|
||||
phys_adjust_cam_on_landing();
|
||||
}
|
||||
|
||||
currentCollisionStatus->lastTouchedFloor = -1;
|
||||
}
|
||||
|
||||
playerStatus->fallState++;
|
||||
playerStatus->currentSpeed *= 0.6f;
|
||||
|
||||
player_input_to_move_vector(&inputMoveAngle, &inputMoveMagnitude);
|
||||
|
||||
if (inputMoveMagnitude != 0.0f) {
|
||||
if (inputMoveMagnitude != 0.0f) {
|
||||
playerStatus->targetYaw = inputMoveAngle;
|
||||
}
|
||||
|
||||
squaredStick0 = SQ(playerStatus->stickAxis[0]);
|
||||
squaredStick1 = SQ(playerStatus->stickAxis[1]);
|
||||
|
||||
if (!(sqrtf(squaredStick0 + squaredStick1) > 55.0f)) {
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
return;
|
||||
}
|
||||
|
||||
set_action_state(ACTION_STATE_RUN);
|
||||
} else {
|
||||
set_action_state(ACTION_STATE_IDLE);
|
||||
}
|
||||
}
|
||||
|
||||
void func_802B644C_E24D6C(void) {
|
||||
CollisionStatus* currentCollisionStatus = &gCollisionStatus;
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
f32 inputMoveMagnitude;
|
||||
f32 inputMoveAngle;
|
||||
s32 squaredStick0;
|
||||
s32 squaredStick1;
|
||||
|
||||
if (playerStatus->flags & PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED) {
|
||||
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED;
|
||||
playerStatus->fallState = 0;
|
||||
playerStatus->decorationList = 0;
|
||||
playerStatus->unk_C2 = 0;
|
||||
playerStatus->flags &= ~(PLAYER_STATUS_FLAGS_8 | PLAYER_STATUS_FLAGS_FALLING | PLAYER_STATUS_FLAGS_JUMPING);
|
||||
playerStatus->decorationPos[0] = playerStatus->position.x;
|
||||
playerStatus->decorationPos[1] = playerStatus->position.z;
|
||||
|
||||
if (!(currentCollisionStatus->currentFloor & 0x4000)) {
|
||||
phys_adjust_cam_on_landing();
|
||||
}
|
||||
|
||||
currentCollisionStatus->lastTouchedFloor = -1;
|
||||
}
|
||||
|
||||
playerStatus->fallState = playerStatus->fallState + 1;
|
||||
playerStatus->currentSpeed *= 0.6f;
|
||||
|
||||
player_input_to_move_vector(&inputMoveAngle, &inputMoveMagnitude);
|
||||
|
||||
if (inputMoveMagnitude != 0.0f) {
|
||||
playerStatus->targetYaw = inputMoveAngle;
|
||||
}
|
||||
|
||||
squaredStick0 = playerStatus->stickAxis[0] * playerStatus->stickAxis[0];
|
||||
squaredStick1 = playerStatus->stickAxis[1] * playerStatus->stickAxis[1];
|
||||
|
||||
if (sqrtf(squaredStick0 + squaredStick1) > 55.0f) {
|
||||
set_action_state(ACTION_STATE_RUN);
|
||||
} else {
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
}
|
||||
}
|
||||
|
@ -1,165 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B61E4_E23444
|
||||
/* E23444 802B61E4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* E23448 802B61E8 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E2344C 802B61EC 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E23450 802B61F0 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E23454 802B61F4 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* E23458 802B61F8 8E030000 */ lw $v1, ($s0)
|
||||
/* E2345C 802B61FC 0461002A */ bgez $v1, .L802B62A8
|
||||
/* E23460 802B6200 3C027FFF */ lui $v0, 0x7fff
|
||||
/* E23464 802B6204 3442FFFF */ ori $v0, $v0, 0xffff
|
||||
/* E23468 802B6208 00621024 */ and $v0, $v1, $v0
|
||||
/* E2346C 802B620C 8E030004 */ lw $v1, 4($s0)
|
||||
/* E23470 802B6210 2404FFF1 */ addiu $a0, $zero, -0xf
|
||||
/* E23474 802B6214 AE020000 */ sw $v0, ($s0)
|
||||
/* E23478 802B6218 00441024 */ and $v0, $v0, $a0
|
||||
/* E2347C 802B621C A20000B6 */ sb $zero, 0xb6($s0)
|
||||
/* E23480 802B6220 A6000008 */ sh $zero, 8($s0)
|
||||
/* E23484 802B6224 A60000C0 */ sh $zero, 0xc0($s0)
|
||||
/* E23488 802B6228 A60000C2 */ sh $zero, 0xc2($s0)
|
||||
/* E2348C 802B622C AE000054 */ sw $zero, 0x54($s0)
|
||||
/* E23490 802B6230 30632000 */ andi $v1, $v1, 0x2000
|
||||
/* E23494 802B6234 14600013 */ bnez $v1, .L802B6284
|
||||
/* E23498 802B6238 AE020000 */ sw $v0, ($s0)
|
||||
/* E2349C 802B623C 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
||||
/* E234A0 802B6240 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
||||
/* E234A4 802B6244 9062007E */ lbu $v0, 0x7e($v1)
|
||||
/* E234A8 802B6248 30420010 */ andi $v0, $v0, 0x10
|
||||
/* E234AC 802B624C 14400009 */ bnez $v0, .L802B6274
|
||||
/* E234B0 802B6250 3C04000C */ lui $a0, 0xc
|
||||
/* E234B4 802B6254 90620080 */ lbu $v0, 0x80($v1)
|
||||
/* E234B8 802B6258 00021080 */ sll $v0, $v0, 2
|
||||
/* E234BC 802B625C 3C04802B */ lui $a0, %hi(world_action_idle_peachAnims)
|
||||
/* E234C0 802B6260 00822021 */ addu $a0, $a0, $v0
|
||||
/* E234C4 802B6264 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E234C8 802B6268 8C846430 */ lw $a0, %lo(world_action_idle_peachAnims)($a0)
|
||||
/* E234CC 802B626C 080AD8AA */ j .L802B62A8
|
||||
/* E234D0 802B6270 00000000 */ nop
|
||||
.L802B6274:
|
||||
/* E234D4 802B6274 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E234D8 802B6278 3484000E */ ori $a0, $a0, 0xe
|
||||
/* E234DC 802B627C 080AD8AA */ j .L802B62A8
|
||||
/* E234E0 802B6280 00000000 */ nop
|
||||
.L802B6284:
|
||||
/* E234E4 802B6284 8203000C */ lb $v1, 0xc($s0)
|
||||
/* E234E8 802B6288 00031040 */ sll $v0, $v1, 1
|
||||
/* E234EC 802B628C 00431021 */ addu $v0, $v0, $v1
|
||||
/* E234F0 802B6290 000210C0 */ sll $v0, $v0, 3
|
||||
/* E234F4 802B6294 3C04800F */ lui $a0, %hi(world_actions_peachDisguises)
|
||||
/* E234F8 802B6298 00822021 */ addu $a0, $a0, $v0
|
||||
/* E234FC 802B629C 8C847C1C */ lw $a0, %lo(world_actions_peachDisguises)($a0)
|
||||
/* E23500 802B62A0 0C0398DB */ jal peach_set_disguise_anim
|
||||
/* E23504 802B62A4 00000000 */ nop
|
||||
.L802B62A8:
|
||||
/* E23508 802B62A8 8E020004 */ lw $v0, 4($s0)
|
||||
/* E2350C 802B62AC 30422000 */ andi $v0, $v0, 0x2000
|
||||
/* E23510 802B62B0 1440004C */ bnez $v0, .L802B63E4
|
||||
/* E23514 802B62B4 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E23518 802B62B8 24020001 */ addiu $v0, $zero, 1
|
||||
/* E2351C 802B62BC 820300B6 */ lb $v1, 0xb6($s0)
|
||||
/* E23520 802B62C0 920500B6 */ lbu $a1, 0xb6($s0)
|
||||
/* E23524 802B62C4 10620022 */ beq $v1, $v0, .L802B6350
|
||||
/* E23528 802B62C8 28620002 */ slti $v0, $v1, 2
|
||||
/* E2352C 802B62CC 10400005 */ beqz $v0, .L802B62E4
|
||||
/* E23530 802B62D0 24020002 */ addiu $v0, $zero, 2
|
||||
/* E23534 802B62D4 10600009 */ beqz $v1, .L802B62FC
|
||||
/* E23538 802B62D8 00000000 */ nop
|
||||
/* E2353C 802B62DC 080AD8F9 */ j .L802B63E4
|
||||
/* E23540 802B62E0 00000000 */ nop
|
||||
.L802B62E4:
|
||||
/* E23544 802B62E4 10620022 */ beq $v1, $v0, .L802B6370
|
||||
/* E23548 802B62E8 24020003 */ addiu $v0, $zero, 3
|
||||
/* E2354C 802B62EC 1062002E */ beq $v1, $v0, .L802B63A8
|
||||
/* E23550 802B62F0 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E23554 802B62F4 080AD8F9 */ j .L802B63E4
|
||||
/* E23558 802B62F8 00000000 */ nop
|
||||
.L802B62FC:
|
||||
/* E2355C 802B62FC 8E020000 */ lw $v0, ($s0)
|
||||
/* E23560 802B6300 30423000 */ andi $v0, $v0, 0x3000
|
||||
/* E23564 802B6304 14400037 */ bnez $v0, .L802B63E4
|
||||
/* E23568 802B6308 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E2356C 802B630C 820200C4 */ lb $v0, 0xc4($s0)
|
||||
/* E23570 802B6310 14400034 */ bnez $v0, .L802B63E4
|
||||
/* E23574 802B6314 00000000 */ nop
|
||||
/* E23578 802B6318 86020008 */ lh $v0, 8($s0)
|
||||
/* E2357C 802B631C 96030008 */ lhu $v1, 8($s0)
|
||||
/* E23580 802B6320 28420709 */ slti $v0, $v0, 0x709
|
||||
/* E23584 802B6324 14400008 */ bnez $v0, .L802B6348
|
||||
/* E23588 802B6328 24620001 */ addiu $v0, $v1, 1
|
||||
/* E2358C 802B632C 24A20001 */ addiu $v0, $a1, 1
|
||||
/* E23590 802B6330 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
/* E23594 802B6334 3C04000C */ lui $a0, 0xc
|
||||
/* E23598 802B6338 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E2359C 802B633C 34840003 */ ori $a0, $a0, 3
|
||||
/* E235A0 802B6340 080AD908 */ j .L802B6420
|
||||
/* E235A4 802B6344 00000000 */ nop
|
||||
.L802B6348:
|
||||
/* E235A8 802B6348 080AD8F8 */ j .L802B63E0
|
||||
/* E235AC 802B634C A6020008 */ sh $v0, 8($s0)
|
||||
.L802B6350:
|
||||
/* E235B0 802B6350 960200BC */ lhu $v0, 0xbc($s0)
|
||||
/* E235B4 802B6354 10400022 */ beqz $v0, .L802B63E0
|
||||
/* E235B8 802B6358 3C04000A */ lui $a0, 0xa
|
||||
/* E235BC 802B635C 34840001 */ ori $a0, $a0, 1
|
||||
/* E235C0 802B6360 24A20001 */ addiu $v0, $a1, 1
|
||||
/* E235C4 802B6364 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
/* E235C8 802B6368 080AD8F6 */ j .L802B63D8
|
||||
/* E235CC 802B636C A6000008 */ sh $zero, 8($s0)
|
||||
.L802B6370:
|
||||
/* E235D0 802B6370 96020008 */ lhu $v0, 8($s0)
|
||||
/* E235D4 802B6374 24420001 */ addiu $v0, $v0, 1
|
||||
/* E235D8 802B6378 A6020008 */ sh $v0, 8($s0)
|
||||
/* E235DC 802B637C 00021400 */ sll $v0, $v0, 0x10
|
||||
/* E235E0 802B6380 00021403 */ sra $v0, $v0, 0x10
|
||||
/* E235E4 802B6384 284200C9 */ slti $v0, $v0, 0xc9
|
||||
/* E235E8 802B6388 14400016 */ bnez $v0, .L802B63E4
|
||||
/* E235EC 802B638C 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E235F0 802B6390 3C04000C */ lui $a0, 0xc
|
||||
/* E235F4 802B6394 920200B6 */ lbu $v0, 0xb6($s0)
|
||||
/* E235F8 802B6398 34840003 */ ori $a0, $a0, 3
|
||||
/* E235FC 802B639C 24420001 */ addiu $v0, $v0, 1
|
||||
/* E23600 802B63A0 080AD8F6 */ j .L802B63D8
|
||||
/* E23604 802B63A4 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
.L802B63A8:
|
||||
/* E23608 802B63A8 8E020000 */ lw $v0, ($s0)
|
||||
/* E2360C 802B63AC 30423000 */ andi $v0, $v0, 0x3000
|
||||
/* E23610 802B63B0 10400005 */ beqz $v0, .L802B63C8
|
||||
/* E23614 802B63B4 3C04000A */ lui $a0, 0xa
|
||||
/* E23618 802B63B8 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E2361C 802B63BC 34840001 */ ori $a0, $a0, 1
|
||||
/* E23620 802B63C0 080AD8F8 */ j .L802B63E0
|
||||
/* E23624 802B63C4 A20000B6 */ sb $zero, 0xb6($s0)
|
||||
.L802B63C8:
|
||||
/* E23628 802B63C8 960200BC */ lhu $v0, 0xbc($s0)
|
||||
/* E2362C 802B63CC 10400004 */ beqz $v0, .L802B63E0
|
||||
/* E23630 802B63D0 3C04000C */ lui $a0, 0xc
|
||||
/* E23634 802B63D4 34840004 */ ori $a0, $a0, 4
|
||||
.L802B63D8:
|
||||
/* E23638 802B63D8 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E2363C 802B63DC 00000000 */ nop
|
||||
.L802B63E0:
|
||||
/* E23640 802B63E0 27A40010 */ addiu $a0, $sp, 0x10
|
||||
.L802B63E4:
|
||||
/* E23644 802B63E4 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E23648 802B63E8 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* E2364C 802B63EC 0C039454 */ jal phys_update_interact_collider
|
||||
/* E23650 802B63F0 00000000 */ nop
|
||||
/* E23654 802B63F4 C7A20014 */ lwc1 $f2, 0x14($sp)
|
||||
/* E23658 802B63F8 44800000 */ mtc1 $zero, $f0
|
||||
/* E2365C 802B63FC 00000000 */ nop
|
||||
/* E23660 802B6400 46001032 */ c.eq.s $f2, $f0
|
||||
/* E23664 802B6404 00000000 */ nop
|
||||
/* E23668 802B6408 45010005 */ bc1t .L802B6420
|
||||
/* E2366C 802B640C 24040001 */ addiu $a0, $zero, 1
|
||||
/* E23670 802B6410 C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E23674 802B6414 A6000008 */ sh $zero, 8($s0)
|
||||
/* E23678 802B6418 0C039769 */ jal set_action_state
|
||||
/* E2367C 802B641C E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B6420:
|
||||
/* E23680 802B6420 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* E23684 802B6424 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E23688 802B6428 03E00008 */ jr $ra
|
||||
/* E2368C 802B642C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,125 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B6000_E24920
|
||||
/* E24920 802B6000 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* E24924 802B6004 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* E24928 802B6008 3C118016 */ lui $s1, %hi(gCollisionStatus)
|
||||
/* E2492C 802B600C 2631A550 */ addiu $s1, $s1, %lo(gCollisionStatus)
|
||||
/* E24930 802B6010 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E24934 802B6014 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E24938 802B6018 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E2493C 802B601C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* E24940 802B6020 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* E24944 802B6024 8E050004 */ lw $a1, 4($s0)
|
||||
/* E24948 802B6028 3C12800B */ lui $s2, %hi(gCameras)
|
||||
/* E2494C 802B602C 26521D80 */ addiu $s2, $s2, %lo(gCameras)
|
||||
/* E24950 802B6030 30A21000 */ andi $v0, $a1, 0x1000
|
||||
/* E24954 802B6034 10400005 */ beqz $v0, .L802B604C
|
||||
/* E24958 802B6038 00000000 */ nop
|
||||
/* E2495C 802B603C 0C0AD8B3 */ jal func_802B62CC_E24BEC
|
||||
/* E24960 802B6040 00000000 */ nop
|
||||
/* E24964 802B6044 080AD86A */ j .L802B61A8
|
||||
/* E24968 802B6048 00000000 */ nop
|
||||
.L802B604C:
|
||||
/* E2496C 802B604C 8E030000 */ lw $v1, ($s0)
|
||||
/* E24970 802B6050 0461002E */ bgez $v1, .L802B610C
|
||||
/* E24974 802B6054 3C027F77 */ lui $v0, 0x7f77
|
||||
/* E24978 802B6058 3442FFF1 */ ori $v0, $v0, 0xfff1
|
||||
/* E2497C 802B605C C6000028 */ lwc1 $f0, 0x28($s0)
|
||||
/* E24980 802B6060 C6020030 */ lwc1 $f2, 0x30($s0)
|
||||
/* E24984 802B6064 00621024 */ and $v0, $v1, $v0
|
||||
/* E24988 802B6068 AE020000 */ sw $v0, ($s0)
|
||||
/* E2498C 802B606C 30A24000 */ andi $v0, $a1, 0x4000
|
||||
/* E24990 802B6070 A20000B6 */ sb $zero, 0xb6($s0)
|
||||
/* E24994 802B6074 A60000C0 */ sh $zero, 0xc0($s0)
|
||||
/* E24998 802B6078 A60000C2 */ sh $zero, 0xc2($s0)
|
||||
/* E2499C 802B607C E6000044 */ swc1 $f0, 0x44($s0)
|
||||
/* E249A0 802B6080 10400004 */ beqz $v0, .L802B6094
|
||||
/* E249A4 802B6084 E6020048 */ swc1 $f2, 0x48($s0)
|
||||
/* E249A8 802B6088 3C040009 */ lui $a0, 9
|
||||
/* E249AC 802B608C 080AD82B */ j .L802B60AC
|
||||
/* E249B0 802B6090 34840002 */ ori $a0, $a0, 2
|
||||
.L802B6094:
|
||||
/* E249B4 802B6094 3C040006 */ lui $a0, 6
|
||||
/* E249B8 802B6098 30A20001 */ andi $v0, $a1, 1
|
||||
/* E249BC 802B609C 14400003 */ bnez $v0, .L802B60AC
|
||||
/* E249C0 802B60A0 3484000B */ ori $a0, $a0, 0xb
|
||||
/* E249C4 802B60A4 3C040001 */ lui $a0, 1
|
||||
/* E249C8 802B60A8 34840009 */ ori $a0, $a0, 9
|
||||
.L802B60AC:
|
||||
/* E249CC 802B60AC 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E249D0 802B60B0 00000000 */ nop
|
||||
/* E249D4 802B60B4 34048161 */ ori $a0, $zero, 0x8161
|
||||
/* E249D8 802B60B8 0C052736 */ jal sfx_play_sound_at_player
|
||||
/* E249DC 802B60BC 0000282D */ daddu $a1, $zero, $zero
|
||||
/* E249E0 802B60C0 24040148 */ addiu $a0, $zero, 0x148
|
||||
/* E249E4 802B60C4 0C052736 */ jal sfx_play_sound_at_player
|
||||
/* E249E8 802B60C8 0000282D */ daddu $a1, $zero, $zero
|
||||
/* E249EC 802B60CC 96220002 */ lhu $v0, 2($s1)
|
||||
/* E249F0 802B60D0 30424000 */ andi $v0, $v0, 0x4000
|
||||
/* E249F4 802B60D4 14400004 */ bnez $v0, .L802B60E8
|
||||
/* E249F8 802B60D8 3C04FFFB */ lui $a0, 0xfffb
|
||||
/* E249FC 802B60DC 0C03954C */ jal phys_adjust_cam_on_landing
|
||||
/* E24A00 802B60E0 00000000 */ nop
|
||||
/* E24A04 802B60E4 3C04FFFB */ lui $a0, 0xfffb
|
||||
.L802B60E8:
|
||||
/* E24A08 802B60E8 3484FFFF */ ori $a0, $a0, 0xffff
|
||||
/* E24A0C 802B60EC 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* E24A10 802B60F0 A6220004 */ sh $v0, 4($s1)
|
||||
/* E24A14 802B60F4 8E020004 */ lw $v0, 4($s0)
|
||||
/* E24A18 802B60F8 96430002 */ lhu $v1, 2($s2)
|
||||
/* E24A1C 802B60FC 00441024 */ and $v0, $v0, $a0
|
||||
/* E24A20 802B6100 3063FFFB */ andi $v1, $v1, 0xfffb
|
||||
/* E24A24 802B6104 AE020004 */ sw $v0, 4($s0)
|
||||
/* E24A28 802B6108 A6430002 */ sh $v1, 2($s2)
|
||||
.L802B610C:
|
||||
/* E24A2C 802B610C C6000054 */ lwc1 $f0, 0x54($s0)
|
||||
/* E24A30 802B6110 3C013F19 */ lui $at, 0x3f19
|
||||
/* E24A34 802B6114 3421999A */ ori $at, $at, 0x999a
|
||||
/* E24A38 802B6118 44811000 */ mtc1 $at, $f2
|
||||
/* E24A3C 802B611C 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E24A40 802B6120 46020002 */ mul.s $f0, $f0, $f2
|
||||
/* E24A44 802B6124 00000000 */ nop
|
||||
/* E24A48 802B6128 920200B6 */ lbu $v0, 0xb6($s0)
|
||||
/* E24A4C 802B612C 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* E24A50 802B6130 24420001 */ addiu $v0, $v0, 1
|
||||
/* E24A54 802B6134 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
/* E24A58 802B6138 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E24A5C 802B613C E6000054 */ swc1 $f0, 0x54($s0)
|
||||
/* E24A60 802B6140 0C039858 */ jal check_input_jump
|
||||
/* E24A64 802B6144 00000000 */ nop
|
||||
/* E24A68 802B6148 0040182D */ daddu $v1, $v0, $zero
|
||||
/* E24A6C 802B614C 14600005 */ bnez $v1, .L802B6164
|
||||
/* E24A70 802B6150 00000000 */ nop
|
||||
/* E24A74 802B6154 820200B6 */ lb $v0, 0xb6($s0)
|
||||
/* E24A78 802B6158 0062102A */ slt $v0, $v1, $v0
|
||||
/* E24A7C 802B615C 10400012 */ beqz $v0, .L802B61A8
|
||||
/* E24A80 802B6160 00000000 */ nop
|
||||
.L802B6164:
|
||||
/* E24A84 802B6164 C7A00014 */ lwc1 $f0, 0x14($sp)
|
||||
/* E24A88 802B6168 44801000 */ mtc1 $zero, $f2
|
||||
/* E24A8C 802B616C 00000000 */ nop
|
||||
/* E24A90 802B6170 46020032 */ c.eq.s $f0, $f2
|
||||
/* E24A94 802B6174 00000000 */ nop
|
||||
/* E24A98 802B6178 45000005 */ bc1f .L802B6190
|
||||
/* E24A9C 802B617C 00000000 */ nop
|
||||
/* E24AA0 802B6180 0C039769 */ jal set_action_state
|
||||
/* E24AA4 802B6184 0000202D */ daddu $a0, $zero, $zero
|
||||
/* E24AA8 802B6188 080AD86A */ j .L802B61A8
|
||||
/* E24AAC 802B618C 00000000 */ nop
|
||||
.L802B6190:
|
||||
/* E24AB0 802B6190 45010003 */ bc1t .L802B61A0
|
||||
/* E24AB4 802B6194 00000000 */ nop
|
||||
/* E24AB8 802B6198 C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E24ABC 802B619C E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B61A0:
|
||||
/* E24AC0 802B61A0 0C0397DA */ jal update_locomotion_state
|
||||
/* E24AC4 802B61A4 00000000 */ nop
|
||||
.L802B61A8:
|
||||
/* E24AC8 802B61A8 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* E24ACC 802B61AC 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* E24AD0 802B61B0 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* E24AD4 802B61B4 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E24AD8 802B61B8 03E00008 */ jr $ra
|
||||
/* E24ADC 802B61BC 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,76 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B61C0_E24AE0
|
||||
/* E24AE0 802B61C0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* E24AE4 802B61C4 3C038016 */ lui $v1, %hi(gCollisionStatus)
|
||||
/* E24AE8 802B61C8 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus)
|
||||
/* E24AEC 802B61CC AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E24AF0 802B61D0 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E24AF4 802B61D4 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E24AF8 802B61D8 AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* E24AFC 802B61DC AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* E24B00 802B61E0 8E020004 */ lw $v0, 4($s0)
|
||||
/* E24B04 802B61E4 30421000 */ andi $v0, $v0, 0x1000
|
||||
/* E24B08 802B61E8 10400005 */ beqz $v0, .L802B6200
|
||||
/* E24B0C 802B61EC 0060882D */ daddu $s1, $v1, $zero
|
||||
/* E24B10 802B61F0 0C0AD913 */ jal func_802B644C_E24D6C
|
||||
/* E24B14 802B61F4 00000000 */ nop
|
||||
/* E24B18 802B61F8 080AD8AE */ j .L802B62B8
|
||||
/* E24B1C 802B61FC 00000000 */ nop
|
||||
.L802B6200:
|
||||
/* E24B20 802B6200 8E040000 */ lw $a0, ($s0)
|
||||
/* E24B24 802B6204 04810012 */ bgez $a0, .L802B6250
|
||||
/* E24B28 802B6208 3C027F77 */ lui $v0, 0x7f77
|
||||
/* E24B2C 802B620C 3442FFF1 */ ori $v0, $v0, 0xfff1
|
||||
/* E24B30 802B6210 C6000028 */ lwc1 $f0, 0x28($s0)
|
||||
/* E24B34 802B6214 C6020030 */ lwc1 $f2, 0x30($s0)
|
||||
/* E24B38 802B6218 94630002 */ lhu $v1, 2($v1)
|
||||
/* E24B3C 802B621C 00821024 */ and $v0, $a0, $v0
|
||||
/* E24B40 802B6220 AE020000 */ sw $v0, ($s0)
|
||||
/* E24B44 802B6224 A20000B6 */ sb $zero, 0xb6($s0)
|
||||
/* E24B48 802B6228 A60000C0 */ sh $zero, 0xc0($s0)
|
||||
/* E24B4C 802B622C A60000C2 */ sh $zero, 0xc2($s0)
|
||||
/* E24B50 802B6230 30634000 */ andi $v1, $v1, 0x4000
|
||||
/* E24B54 802B6234 E6000044 */ swc1 $f0, 0x44($s0)
|
||||
/* E24B58 802B6238 14600003 */ bnez $v1, .L802B6248
|
||||
/* E24B5C 802B623C E6020048 */ swc1 $f2, 0x48($s0)
|
||||
/* E24B60 802B6240 0C03954C */ jal phys_adjust_cam_on_landing
|
||||
/* E24B64 802B6244 00000000 */ nop
|
||||
.L802B6248:
|
||||
/* E24B68 802B6248 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* E24B6C 802B624C A6220004 */ sh $v0, 4($s1)
|
||||
.L802B6250:
|
||||
/* E24B70 802B6250 C6020054 */ lwc1 $f2, 0x54($s0)
|
||||
/* E24B74 802B6254 3C013F19 */ lui $at, 0x3f19
|
||||
/* E24B78 802B6258 3421999A */ ori $at, $at, 0x999a
|
||||
/* E24B7C 802B625C 44810000 */ mtc1 $at, $f0
|
||||
/* E24B80 802B6260 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E24B84 802B6264 46001082 */ mul.s $f2, $f2, $f0
|
||||
/* E24B88 802B6268 00000000 */ nop
|
||||
/* E24B8C 802B626C 920200B6 */ lbu $v0, 0xb6($s0)
|
||||
/* E24B90 802B6270 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* E24B94 802B6274 24420001 */ addiu $v0, $v0, 1
|
||||
/* E24B98 802B6278 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
/* E24B9C 802B627C 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E24BA0 802B6280 E6020054 */ swc1 $f2, 0x54($s0)
|
||||
/* E24BA4 802B6284 0C039858 */ jal check_input_jump
|
||||
/* E24BA8 802B6288 00000000 */ nop
|
||||
/* E24BAC 802B628C C7A20014 */ lwc1 $f2, 0x14($sp)
|
||||
/* E24BB0 802B6290 44800000 */ mtc1 $zero, $f0
|
||||
/* E24BB4 802B6294 00000000 */ nop
|
||||
/* E24BB8 802B6298 46001032 */ c.eq.s $f2, $f0
|
||||
/* E24BBC 802B629C 00000000 */ nop
|
||||
/* E24BC0 802B62A0 45010003 */ bc1t .L802B62B0
|
||||
/* E24BC4 802B62A4 00000000 */ nop
|
||||
/* E24BC8 802B62A8 C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E24BCC 802B62AC E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B62B0:
|
||||
/* E24BD0 802B62B0 0C0397DA */ jal update_locomotion_state
|
||||
/* E24BD4 802B62B4 00000000 */ nop
|
||||
.L802B62B8:
|
||||
/* E24BD8 802B62B8 8FBF0020 */ lw $ra, 0x20($sp)
|
||||
/* E24BDC 802B62BC 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* E24BE0 802B62C0 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E24BE4 802B62C4 03E00008 */ jr $ra
|
||||
/* E24BE8 802B62C8 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,105 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B62CC_E24BEC
|
||||
/* E24BEC 802B62CC 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* E24BF0 802B62D0 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* E24BF4 802B62D4 3C118016 */ lui $s1, %hi(gCollisionStatus)
|
||||
/* E24BF8 802B62D8 2631A550 */ addiu $s1, $s1, %lo(gCollisionStatus)
|
||||
/* E24BFC 802B62DC AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E24C00 802B62E0 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E24C04 802B62E4 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E24C08 802B62E8 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* E24C0C 802B62EC AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* E24C10 802B62F0 8E030000 */ lw $v1, ($s0)
|
||||
/* E24C14 802B62F4 0461001A */ bgez $v1, .L802B6360
|
||||
/* E24C18 802B62F8 0220902D */ daddu $s2, $s1, $zero
|
||||
/* E24C1C 802B62FC 3C027FFF */ lui $v0, 0x7fff
|
||||
/* E24C20 802B6300 3442FFFF */ ori $v0, $v0, 0xffff
|
||||
/* E24C24 802B6304 24040148 */ addiu $a0, $zero, 0x148
|
||||
/* E24C28 802B6308 0000282D */ daddu $a1, $zero, $zero
|
||||
/* E24C2C 802B630C 00621024 */ and $v0, $v1, $v0
|
||||
/* E24C30 802B6310 C6000028 */ lwc1 $f0, 0x28($s0)
|
||||
/* E24C34 802B6314 C6020030 */ lwc1 $f2, 0x30($s0)
|
||||
/* E24C38 802B6318 2403FFF1 */ addiu $v1, $zero, -0xf
|
||||
/* E24C3C 802B631C AE020000 */ sw $v0, ($s0)
|
||||
/* E24C40 802B6320 00431024 */ and $v0, $v0, $v1
|
||||
/* E24C44 802B6324 A20000B6 */ sb $zero, 0xb6($s0)
|
||||
/* E24C48 802B6328 A60000C0 */ sh $zero, 0xc0($s0)
|
||||
/* E24C4C 802B632C A60000C2 */ sh $zero, 0xc2($s0)
|
||||
/* E24C50 802B6330 AE020000 */ sw $v0, ($s0)
|
||||
/* E24C54 802B6334 E6000044 */ swc1 $f0, 0x44($s0)
|
||||
/* E24C58 802B6338 0C052736 */ jal sfx_play_sound_at_player
|
||||
/* E24C5C 802B633C E6020048 */ swc1 $f2, 0x48($s0)
|
||||
/* E24C60 802B6340 96220002 */ lhu $v0, 2($s1)
|
||||
/* E24C64 802B6344 30424000 */ andi $v0, $v0, 0x4000
|
||||
/* E24C68 802B6348 14400004 */ bnez $v0, .L802B635C
|
||||
/* E24C6C 802B634C 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* E24C70 802B6350 0C03954C */ jal phys_adjust_cam_on_landing
|
||||
/* E24C74 802B6354 00000000 */ nop
|
||||
/* E24C78 802B6358 2402FFFF */ addiu $v0, $zero, -1
|
||||
.L802B635C:
|
||||
/* E24C7C 802B635C A6420004 */ sh $v0, 4($s2)
|
||||
.L802B6360:
|
||||
/* E24C80 802B6360 C6000054 */ lwc1 $f0, 0x54($s0)
|
||||
/* E24C84 802B6364 3C013F19 */ lui $at, 0x3f19
|
||||
/* E24C88 802B6368 3421999A */ ori $at, $at, 0x999a
|
||||
/* E24C8C 802B636C 44811000 */ mtc1 $at, $f2
|
||||
/* E24C90 802B6370 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E24C94 802B6374 46020002 */ mul.s $f0, $f0, $f2
|
||||
/* E24C98 802B6378 00000000 */ nop
|
||||
/* E24C9C 802B637C 920200B6 */ lbu $v0, 0xb6($s0)
|
||||
/* E24CA0 802B6380 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* E24CA4 802B6384 24420001 */ addiu $v0, $v0, 1
|
||||
/* E24CA8 802B6388 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
/* E24CAC 802B638C 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E24CB0 802B6390 E6000054 */ swc1 $f0, 0x54($s0)
|
||||
/* E24CB4 802B6394 C7A00014 */ lwc1 $f0, 0x14($sp)
|
||||
/* E24CB8 802B6398 44801000 */ mtc1 $zero, $f2
|
||||
/* E24CBC 802B639C 00000000 */ nop
|
||||
/* E24CC0 802B63A0 46020032 */ c.eq.s $f0, $f2
|
||||
/* E24CC4 802B63A4 00000000 */ nop
|
||||
/* E24CC8 802B63A8 45010020 */ bc1t .L802B642C
|
||||
/* E24CCC 802B63AC 0000202D */ daddu $a0, $zero, $zero
|
||||
/* E24CD0 802B63B0 45010003 */ bc1t .L802B63C0
|
||||
/* E24CD4 802B63B4 00000000 */ nop
|
||||
/* E24CD8 802B63B8 C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E24CDC 802B63BC E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B63C0:
|
||||
/* E24CE0 802B63C0 8E0200E8 */ lw $v0, 0xe8($s0)
|
||||
/* E24CE4 802B63C4 00420018 */ mult $v0, $v0
|
||||
/* E24CE8 802B63C8 00001812 */ mflo $v1
|
||||
/* E24CEC 802B63CC 8E0200EC */ lw $v0, 0xec($s0)
|
||||
/* E24CF0 802B63D0 00000000 */ nop
|
||||
/* E24CF4 802B63D4 00420018 */ mult $v0, $v0
|
||||
/* E24CF8 802B63D8 00003812 */ mflo $a3
|
||||
/* E24CFC 802B63DC 00671021 */ addu $v0, $v1, $a3
|
||||
/* E24D00 802B63E0 44826000 */ mtc1 $v0, $f12
|
||||
/* E24D04 802B63E4 00000000 */ nop
|
||||
/* E24D08 802B63E8 46806320 */ cvt.s.w $f12, $f12
|
||||
/* E24D0C 802B63EC 46006084 */ sqrt.s $f2, $f12
|
||||
/* E24D10 802B63F0 46021032 */ c.eq.s $f2, $f2
|
||||
/* E24D14 802B63F4 00000000 */ nop
|
||||
/* E24D18 802B63F8 45010004 */ bc1t .L802B640C
|
||||
/* E24D1C 802B63FC 00000000 */ nop
|
||||
/* E24D20 802B6400 0C0187BC */ jal sqrtf
|
||||
/* E24D24 802B6404 00000000 */ nop
|
||||
/* E24D28 802B6408 46000086 */ mov.s $f2, $f0
|
||||
.L802B640C:
|
||||
/* E24D2C 802B640C 3C01425C */ lui $at, 0x425c
|
||||
/* E24D30 802B6410 44810000 */ mtc1 $at, $f0
|
||||
/* E24D34 802B6414 00000000 */ nop
|
||||
/* E24D38 802B6418 4602003C */ c.lt.s $f0, $f2
|
||||
/* E24D3C 802B641C 00000000 */ nop
|
||||
/* E24D40 802B6420 45000002 */ bc1f .L802B642C
|
||||
/* E24D44 802B6424 24040001 */ addiu $a0, $zero, 1
|
||||
/* E24D48 802B6428 24040002 */ addiu $a0, $zero, 2
|
||||
.L802B642C:
|
||||
/* E24D4C 802B642C 0C039769 */ jal set_action_state
|
||||
/* E24D50 802B6430 00000000 */ nop
|
||||
/* E24D54 802B6434 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* E24D58 802B6438 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* E24D5C 802B643C 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* E24D60 802B6440 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E24D64 802B6444 03E00008 */ jr $ra
|
||||
/* E24D68 802B6448 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,98 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B644C_E24D6C
|
||||
/* E24D6C 802B644C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* E24D70 802B6450 3C058016 */ lui $a1, %hi(gCollisionStatus)
|
||||
/* E24D74 802B6454 24A5A550 */ addiu $a1, $a1, %lo(gCollisionStatus)
|
||||
/* E24D78 802B6458 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E24D7C 802B645C 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E24D80 802B6460 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E24D84 802B6464 AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* E24D88 802B6468 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* E24D8C 802B646C 8E020000 */ lw $v0, ($s0)
|
||||
/* E24D90 802B6470 04410016 */ bgez $v0, .L802B64CC
|
||||
/* E24D94 802B6474 00A0882D */ daddu $s1, $a1, $zero
|
||||
/* E24D98 802B6478 3C037FFF */ lui $v1, 0x7fff
|
||||
/* E24D9C 802B647C 3463FFFF */ ori $v1, $v1, 0xffff
|
||||
/* E24DA0 802B6480 00431824 */ and $v1, $v0, $v1
|
||||
/* E24DA4 802B6484 C6000028 */ lwc1 $f0, 0x28($s0)
|
||||
/* E24DA8 802B6488 C6020030 */ lwc1 $f2, 0x30($s0)
|
||||
/* E24DAC 802B648C 2404FFF1 */ addiu $a0, $zero, -0xf
|
||||
/* E24DB0 802B6490 AE030000 */ sw $v1, ($s0)
|
||||
/* E24DB4 802B6494 A20000B6 */ sb $zero, 0xb6($s0)
|
||||
/* E24DB8 802B6498 A60000C0 */ sh $zero, 0xc0($s0)
|
||||
/* E24DBC 802B649C A60000C2 */ sh $zero, 0xc2($s0)
|
||||
/* E24DC0 802B64A0 94A20002 */ lhu $v0, 2($a1)
|
||||
/* E24DC4 802B64A4 00641824 */ and $v1, $v1, $a0
|
||||
/* E24DC8 802B64A8 AE030000 */ sw $v1, ($s0)
|
||||
/* E24DCC 802B64AC 30424000 */ andi $v0, $v0, 0x4000
|
||||
/* E24DD0 802B64B0 E6000044 */ swc1 $f0, 0x44($s0)
|
||||
/* E24DD4 802B64B4 14400003 */ bnez $v0, .L802B64C4
|
||||
/* E24DD8 802B64B8 E6020048 */ swc1 $f2, 0x48($s0)
|
||||
/* E24DDC 802B64BC 0C03954C */ jal phys_adjust_cam_on_landing
|
||||
/* E24DE0 802B64C0 00000000 */ nop
|
||||
.L802B64C4:
|
||||
/* E24DE4 802B64C4 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* E24DE8 802B64C8 A6220004 */ sh $v0, 4($s1)
|
||||
.L802B64CC:
|
||||
/* E24DEC 802B64CC C6020054 */ lwc1 $f2, 0x54($s0)
|
||||
/* E24DF0 802B64D0 3C013F19 */ lui $at, 0x3f19
|
||||
/* E24DF4 802B64D4 3421999A */ ori $at, $at, 0x999a
|
||||
/* E24DF8 802B64D8 44810000 */ mtc1 $at, $f0
|
||||
/* E24DFC 802B64DC 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E24E00 802B64E0 46001082 */ mul.s $f2, $f2, $f0
|
||||
/* E24E04 802B64E4 00000000 */ nop
|
||||
/* E24E08 802B64E8 920200B6 */ lbu $v0, 0xb6($s0)
|
||||
/* E24E0C 802B64EC 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* E24E10 802B64F0 24420001 */ addiu $v0, $v0, 1
|
||||
/* E24E14 802B64F4 A20200B6 */ sb $v0, 0xb6($s0)
|
||||
/* E24E18 802B64F8 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E24E1C 802B64FC E6020054 */ swc1 $f2, 0x54($s0)
|
||||
/* E24E20 802B6500 C7A20014 */ lwc1 $f2, 0x14($sp)
|
||||
/* E24E24 802B6504 44800000 */ mtc1 $zero, $f0
|
||||
/* E24E28 802B6508 00000000 */ nop
|
||||
/* E24E2C 802B650C 46001032 */ c.eq.s $f2, $f0
|
||||
/* E24E30 802B6510 00000000 */ nop
|
||||
/* E24E34 802B6514 45010003 */ bc1t .L802B6524
|
||||
/* E24E38 802B6518 00000000 */ nop
|
||||
/* E24E3C 802B651C C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E24E40 802B6520 E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B6524:
|
||||
/* E24E44 802B6524 8E0200E8 */ lw $v0, 0xe8($s0)
|
||||
/* E24E48 802B6528 00420018 */ mult $v0, $v0
|
||||
/* E24E4C 802B652C 00001812 */ mflo $v1
|
||||
/* E24E50 802B6530 8E0200EC */ lw $v0, 0xec($s0)
|
||||
/* E24E54 802B6534 00000000 */ nop
|
||||
/* E24E58 802B6538 00420018 */ mult $v0, $v0
|
||||
/* E24E5C 802B653C 00003812 */ mflo $a3
|
||||
/* E24E60 802B6540 00671021 */ addu $v0, $v1, $a3
|
||||
/* E24E64 802B6544 44826000 */ mtc1 $v0, $f12
|
||||
/* E24E68 802B6548 00000000 */ nop
|
||||
/* E24E6C 802B654C 46806320 */ cvt.s.w $f12, $f12
|
||||
/* E24E70 802B6550 46006084 */ sqrt.s $f2, $f12
|
||||
/* E24E74 802B6554 46021032 */ c.eq.s $f2, $f2
|
||||
/* E24E78 802B6558 00000000 */ nop
|
||||
/* E24E7C 802B655C 45010004 */ bc1t .L802B6570
|
||||
/* E24E80 802B6560 00000000 */ nop
|
||||
/* E24E84 802B6564 0C0187BC */ jal sqrtf
|
||||
/* E24E88 802B6568 00000000 */ nop
|
||||
/* E24E8C 802B656C 46000086 */ mov.s $f2, $f0
|
||||
.L802B6570:
|
||||
/* E24E90 802B6570 3C01425C */ lui $at, 0x425c
|
||||
/* E24E94 802B6574 44810000 */ mtc1 $at, $f0
|
||||
/* E24E98 802B6578 00000000 */ nop
|
||||
/* E24E9C 802B657C 4602003C */ c.lt.s $f0, $f2
|
||||
/* E24EA0 802B6580 00000000 */ nop
|
||||
/* E24EA4 802B6584 45000002 */ bc1f .L802B6590
|
||||
/* E24EA8 802B6588 24040001 */ addiu $a0, $zero, 1
|
||||
/* E24EAC 802B658C 24040002 */ addiu $a0, $zero, 2
|
||||
.L802B6590:
|
||||
/* E24EB0 802B6590 0C039769 */ jal set_action_state
|
||||
/* E24EB4 802B6594 00000000 */ nop
|
||||
/* E24EB8 802B6598 8FBF0020 */ lw $ra, 0x20($sp)
|
||||
/* E24EBC 802B659C 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* E24EC0 802B65A0 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E24EC4 802B65A4 03E00008 */ jr $ra
|
||||
/* E24EC8 802B65A8 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* E24ECC 802B65AC 00000000 */ nop
|
Loading…
Reference in New Issue
Block a user