mirror of
https://github.com/pmret/papermario.git
synced 2024-09-19 16:01:48 +02:00
Matched the rest of world/actions (#715)
* Matched func_802B6000_E28A30 * oops * Attempted to match func_802B6000_E236E0 and added UB check * Removed Goto for walk.c func * Matched func_802B609C_E28ACC * Cleanup * oops * rodata moment * autoformat why * oop * oop but again * Fixed Warnings * Fixed Misc Whitespace
This commit is contained in:
parent
6815d6b296
commit
5b0cf78903
@ -1,76 +1,70 @@
|
||||
#include "common.h"
|
||||
#include "world/actions.h"
|
||||
#include "world/partner/goombario.h"
|
||||
|
||||
extern f32 D_802B6770_E27C80;
|
||||
|
||||
// the switch
|
||||
#ifdef NON_MATCHING
|
||||
void func_802B6000_E28A30(void) {
|
||||
s32 func_802B6000_E28A30(void) {
|
||||
PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus;
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
s32 oldFlags = playerStatus->flags;
|
||||
|
||||
if (playerStatus->flags & PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED) {
|
||||
playerStatus->flags &= ~(
|
||||
PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED | PLAYER_STATUS_FLAGS_80000 | PLAYER_STATUS_FLAGS_8 |
|
||||
PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED | PLAYER_STATUS_FLAGS_80000 | PLAYER_STATUS_FLAGS_FLYING |
|
||||
PLAYER_STATUS_FLAGS_FALLING | PLAYER_STATUS_FLAGS_JUMPING
|
||||
);
|
||||
playerStatus->fallState = 0;
|
||||
playerStatus->framesOnGround = 0;
|
||||
playerStatus->currentStateTime = 0;
|
||||
playerStatus->timeInAir = 0;
|
||||
playerStatus->unk_C2 = 0;
|
||||
playerStatus->currentSpeed = 0.0f;
|
||||
playerStatus->unk_8C = 0.0f;
|
||||
playerStatus->pitch = 0.0f;
|
||||
}
|
||||
|
||||
if (playerStatus->animFlags & 0x400000) {
|
||||
switch (gPartnerActionStatus.actingPartner) {
|
||||
case 8:
|
||||
func_802BD100_317020(oldFlags);
|
||||
break;
|
||||
case 7:
|
||||
func_802BD100_317020(oldFlags);
|
||||
break;
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_400000) {
|
||||
if (partnerActionStatus->actingPartner == PARTNER_LAKILESTER) {
|
||||
return func_802BD100_317020(oldFlags);
|
||||
}
|
||||
if (partnerActionStatus->actingPartner == PARTNER_SUSHIE) {
|
||||
return func_802BD100_317020(oldFlags);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "world/action/encounter", func_802B6000_E28A30);
|
||||
#endif
|
||||
|
||||
//wip - not good yet
|
||||
#ifdef NON_EQUIVALENT
|
||||
#ifdef AVOID_UB
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
extern f32 D_802B6770_E27C80;
|
||||
|
||||
void func_802B609C_E28ACC(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
|
||||
s32 sp4C;
|
||||
s32 sp48;
|
||||
s32 sp44;
|
||||
s32 sp40;
|
||||
f32 sp3C;
|
||||
f32 sp38;
|
||||
f32 sp34;
|
||||
f32 sp30;
|
||||
f32 hitDirZ;
|
||||
f32 hitDirX;
|
||||
f32 hitRz;
|
||||
f32 hitRx;
|
||||
f32 outLength;
|
||||
f32 outZ;
|
||||
f32 outY;
|
||||
f32 outX;
|
||||
f32 cosTheta;
|
||||
f32 sinTheta;
|
||||
f32 *temp_a1;
|
||||
f32 *temp_a2;
|
||||
f32 *temp_a3;
|
||||
f32 *temp_v0;
|
||||
f32 temp_f20;
|
||||
f32 temp_f4;
|
||||
f32 temp_f6;
|
||||
f32 phi_f4;
|
||||
f32 miscTempVariable;
|
||||
f32 playerXOffset;
|
||||
f32 playerZOffset;
|
||||
f32 zDelta;
|
||||
f32 phi_f20;
|
||||
f32 playerOffsetTempVar;
|
||||
|
||||
if (playerStatus->flags & PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED) {
|
||||
playerStatus->flags &= ~(0x80080000 | 0x80000 | 0x8 | 0x4 | 0x2);
|
||||
playerStatus->flags &= ~(
|
||||
PLAYER_STATUS_FLAGS_ACTION_STATE_CHANGED | PLAYER_STATUS_FLAGS_80000 | PLAYER_STATUS_FLAGS_FLYING |
|
||||
PLAYER_STATUS_FLAGS_FALLING | PLAYER_STATUS_FLAGS_JUMPING
|
||||
);
|
||||
playerStatus->fallState = 0;
|
||||
playerStatus->framesOnGround = 0;
|
||||
playerStatus->currentStateTime = 0;
|
||||
playerStatus->timeInAir = 0;
|
||||
playerStatus->unk_C2 = 0;
|
||||
playerStatus->currentSpeed = 0.0f;
|
||||
playerStatus->unk_8C = 0.0f;
|
||||
playerStatus->pitch = 0.0f;
|
||||
D_802B6770_E27C80 = D_8010C938;
|
||||
}
|
||||
|
||||
@ -84,56 +78,52 @@ void func_802B609C_E28ACC(void) {
|
||||
}
|
||||
|
||||
sin_cos_rad((D_8010C990 * TAU) / 360.0f, &sinTheta, &cosTheta);
|
||||
temp_f20 = sinTheta * 3.0f;
|
||||
|
||||
miscTempVariable = 3.0f;
|
||||
miscTempVariable = sinTheta * miscTempVariable;
|
||||
|
||||
sin_cos_rad((D_802B6770_E27C80 * TAU) / 360.0f, &sinTheta, &cosTheta);
|
||||
temp_f4 = sinTheta * temp_f20;
|
||||
temp_f6 = cosTheta * temp_f20;
|
||||
|
||||
playerXOffset = sinTheta * miscTempVariable;
|
||||
playerZOffset = cosTheta * miscTempVariable;
|
||||
|
||||
if (!(fabs(temp_f4) < 0.1)) {
|
||||
phi_f4 = temp_f4;
|
||||
} else {
|
||||
phi_f4 = 0.1f;
|
||||
if (temp_f4 < 0.0f) {
|
||||
phi_f4 = -0.1f;
|
||||
if (fabs(playerXOffset) < 0.1) {
|
||||
playerOffsetTempVar = 0.1f;
|
||||
if (playerXOffset < 0.0f) {
|
||||
playerOffsetTempVar = -0.1f;
|
||||
}
|
||||
playerXOffset = playerOffsetTempVar;
|
||||
}
|
||||
|
||||
zDelta = temp_f6;
|
||||
if (fabs(temp_f6) < 0.1) {
|
||||
zDelta = 0.1f;
|
||||
if (temp_f6 < 0.0f) {
|
||||
zDelta = -0.1f;
|
||||
|
||||
if (fabs(playerZOffset) < 0.1) {
|
||||
playerOffsetTempVar = 0.1f;
|
||||
if (playerZOffset < 0.0f) {
|
||||
playerOffsetTempVar = -0.1f;
|
||||
}
|
||||
playerZOffset = playerOffsetTempVar;
|
||||
}
|
||||
|
||||
playerStatus->position.x += playerXOffset;
|
||||
playerStatus->position.z -= playerZOffset;
|
||||
outX = playerStatus->position.x;
|
||||
outY = playerStatus->position.y;
|
||||
outZ = playerStatus->position.z;
|
||||
outLength = 5.0f;
|
||||
if (player_raycast_below_cam_relative(playerStatus, &outX, &outY, &outZ, &outLength, &hitRx, &hitRz, &hitDirX, &hitDirZ) >= 0) {
|
||||
playerStatus->position.y = outY;
|
||||
}
|
||||
|
||||
temp_a1 = &sp30;
|
||||
temp_a2 = &sp34;
|
||||
temp_v0 = &sp3C;
|
||||
|
||||
playerStatus->position.x += phi_f4;
|
||||
playerStatus->position.z -= zDelta;
|
||||
temp_a3 = &sp38;
|
||||
sp30 = playerStatus->position.x;
|
||||
sp34 = playerStatus->position.y;
|
||||
sp38 = playerStatus->position.z;
|
||||
sp3C = 5.0f;
|
||||
if (player_raycast_below_cam_relative(&gPlayerStatus, temp_a1, temp_a2, temp_a3, temp_v0, &sp40, &sp44, &sp48, &sp4C) >= 0) {
|
||||
playerStatus->position.y = sp34;
|
||||
}
|
||||
|
||||
phi_f20 = 60.0f;
|
||||
if (gGameStatusPtr->areaID == AREA_SBK) {
|
||||
phi_f20 = 30.0f;
|
||||
miscTempVariable = 30.0f;
|
||||
} else {
|
||||
miscTempVariable = 60.0f;
|
||||
}
|
||||
|
||||
if (D_8010C990 < phi_f20) {
|
||||
if (D_8010C990 < miscTempVariable) {
|
||||
set_action_state(ACTION_STATE_FALLING);
|
||||
gravity_use_fall_parms();
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "world/action/encounter", func_802B609C_E28ACC);
|
||||
#endif
|
||||
|
||||
void func_802B6350_E28D80(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
|
@ -1,33 +1,115 @@
|
||||
#include "common.h"
|
||||
#include "world/actions.h"
|
||||
|
||||
s32 WalkPeachAnims[] = {
|
||||
0x000A0002, // none
|
||||
0x000A002B, // cream
|
||||
0x000A002D, // strawberry
|
||||
0x000A002F, // butter
|
||||
0x000A0031, // cleanser
|
||||
0x000A0033, // water
|
||||
0x000A0035, // milk
|
||||
0x000A0037, // flour
|
||||
0x000A0039, // egg
|
||||
0x000A003B, // complete cake
|
||||
0x000A003D, // cake bowl
|
||||
0x000A003F, // cake mixed
|
||||
0x000A0041, // cake pan
|
||||
0x000A0043, // cake batter
|
||||
0x000A0045, // cake bare
|
||||
0x000A0047, // salt
|
||||
0x000A0049, // sugar
|
||||
0x000A004B, // cake with icing
|
||||
0x000A004D, // cake with berries
|
||||
s32 WalkPeachAnims[] = {
|
||||
0x000A0002, // none
|
||||
0x000A002B, // cream
|
||||
0x000A002D, // strawberry
|
||||
0x000A002F, // butter
|
||||
0x000A0031, // cleanser
|
||||
0x000A0033, // water
|
||||
0x000A0035, // milk
|
||||
0x000A0037, // flour
|
||||
0x000A0039, // egg
|
||||
0x000A003B, // complete cake
|
||||
0x000A003D, // cake bowl
|
||||
0x000A003F, // cake mixed
|
||||
0x000A0041, // cake pan
|
||||
0x000A0043, // cake batter
|
||||
0x000A0045, // cake bare
|
||||
0x000A0047, // salt
|
||||
0x000A0049, // sugar
|
||||
0x000A004B, // cake with icing
|
||||
0x000A004D, // cake with berries
|
||||
0x00000000
|
||||
};
|
||||
|
||||
void action_run_update_peach(void);
|
||||
void func_802B65E8_E23CC8(void);
|
||||
|
||||
// walk
|
||||
INCLUDE_ASM(void, "world/action/walk", func_802B6000_E236E0, void);
|
||||
void func_802B6000_E236E0(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
PlayerData* playerData = &gPlayerData;
|
||||
f32 moveVectorMagnitude;
|
||||
f32 moveVectorAngle;
|
||||
s32 stickAxisX;
|
||||
s32 stickAxisY;
|
||||
s32 playerAnim;
|
||||
s32 changedAnim = FALSE;
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_USING_PEACH_PHYSICS) {
|
||||
func_802B65E8_E23CC8();
|
||||
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);
|
||||
playerStatus->unk_60 = 0;
|
||||
changedAnim = TRUE;
|
||||
|
||||
if (!(playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_8BIT_MARIO)) {
|
||||
playerStatus->currentSpeed = playerStatus->walkSpeed;
|
||||
}
|
||||
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_8BIT_MARIO) {
|
||||
playerAnim = 0x90003;
|
||||
}
|
||||
else if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_HOLDING_WATT)) {
|
||||
playerAnim = 0x10004;
|
||||
}
|
||||
else {
|
||||
playerAnim = 0x60000;
|
||||
}
|
||||
suggest_player_anim_clearUnkFlag(playerAnim);
|
||||
}
|
||||
|
||||
if (playerStatus->flags & PLAYER_STATUS_ANIM_FLAGS_8BIT_MARIO) {
|
||||
playerStatus->targetYaw = playerStatus->heading;
|
||||
try_player_footstep_sounds(8);
|
||||
return;
|
||||
}
|
||||
|
||||
player_input_to_move_vector(&moveVectorAngle, &moveVectorMagnitude);
|
||||
phys_update_interact_collider();
|
||||
|
||||
if (!check_input_jump()) {
|
||||
if (changedAnim != 0 || !check_input_hammer()) {
|
||||
player_input_to_move_vector(&moveVectorAngle, &moveVectorMagnitude);
|
||||
if (moveVectorMagnitude == 0.0f) {
|
||||
set_action_state(ACTION_STATE_IDLE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (fabsf(D_800F7B40 - moveVectorAngle) <= 90.0f && abs(moveVectorMagnitude - D_800F7B44) < 20) {
|
||||
if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_80000000)) {
|
||||
if (moveVectorMagnitude >= 20.0f) {
|
||||
playerStatus->targetYaw = moveVectorAngle;
|
||||
}
|
||||
}
|
||||
playerStatus->animFlags &= ~PLAYER_STATUS_ANIM_FLAGS_80000000;
|
||||
} else {
|
||||
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_80000000) {
|
||||
playerStatus->targetYaw = moveVectorAngle;
|
||||
} else {
|
||||
playerStatus->animFlags |= PLAYER_STATUS_ANIM_FLAGS_80000000;
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_ability_active(ABILITY_SLOW_GO)) {
|
||||
stickAxisX = playerStatus->stickAxis[0];
|
||||
stickAxisY = playerStatus->stickAxis[1];
|
||||
if (SQ(stickAxisX) + SQ(stickAxisY) > SQ(55)) {
|
||||
set_action_state(ACTION_STATE_RUN);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
try_player_footstep_sounds(8);
|
||||
playerData->walkingStepsTaken++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// run
|
||||
void action_run_update(void) {
|
||||
@ -101,7 +183,7 @@ void action_run_update(void) {
|
||||
if (temp_v1 >= 0) {
|
||||
playerStatus->targetYaw = moveX;
|
||||
}
|
||||
playerStatus->animFlags &= ~0x80000000;
|
||||
playerStatus->animFlags &= ~0x80000000;
|
||||
} else {
|
||||
temp_v1 = playerStatus->animFlags;
|
||||
temp_v1 = temp_v1 < 0;
|
||||
|
@ -8,6 +8,7 @@ void world_goombario_init(Npc* partner);
|
||||
s32 world_goombario_can_pause(Npc* partner);
|
||||
ApiStatus func_802BDB84(Evt* script, s32 isInitialCall);
|
||||
void world_goombario_pre_battle(Npc* partner);
|
||||
s32 func_802BD100_317020(s32 arg0);
|
||||
|
||||
extern EvtScript world_goombario_take_out;
|
||||
extern EvtScript world_goombario_update;
|
||||
|
@ -1,46 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B6000_E28A30
|
||||
/* E28A30 802B6000 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* E28A34 802B6004 3C038011 */ lui $v1, %hi(gPlayerStatus)
|
||||
/* E28A38 802B6008 2463EFC8 */ addiu $v1, $v1, %lo(gPlayerStatus)
|
||||
/* E28A3C 802B600C AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* E28A40 802B6010 8C640000 */ lw $a0, ($v1)
|
||||
/* E28A44 802B6014 0481000B */ bgez $a0, .L802B6044
|
||||
/* E28A48 802B6018 0060282D */ daddu $a1, $v1, $zero
|
||||
/* E28A4C 802B601C 3C027FF7 */ lui $v0, 0x7ff7
|
||||
/* E28A50 802B6020 3442FFF1 */ ori $v0, $v0, 0xfff1
|
||||
/* E28A54 802B6024 00821024 */ and $v0, $a0, $v0
|
||||
/* E28A58 802B6028 AC620000 */ sw $v0, ($v1)
|
||||
/* E28A5C 802B602C A06000B6 */ sb $zero, 0xb6($v1)
|
||||
/* E28A60 802B6030 A4600008 */ sh $zero, 8($v1)
|
||||
/* E28A64 802B6034 A46000C0 */ sh $zero, 0xc0($v1)
|
||||
/* E28A68 802B6038 A46000C2 */ sh $zero, 0xc2($v1)
|
||||
/* E28A6C 802B603C AC600054 */ sw $zero, 0x54($v1)
|
||||
/* E28A70 802B6040 AC60008C */ sw $zero, 0x8c($v1)
|
||||
.L802B6044:
|
||||
/* E28A74 802B6044 8CA20004 */ lw $v0, 4($a1)
|
||||
/* E28A78 802B6048 3C030040 */ lui $v1, 0x40
|
||||
/* E28A7C 802B604C 00431024 */ and $v0, $v0, $v1
|
||||
/* E28A80 802B6050 1040000F */ beqz $v0, .L802B6090
|
||||
/* E28A84 802B6054 00000000 */ nop
|
||||
/* E28A88 802B6058 3C028011 */ lui $v0, %hi(gPartnerActionStatus)
|
||||
/* E28A8C 802B605C 2442EBB0 */ addiu $v0, $v0, %lo(gPartnerActionStatus)
|
||||
/* E28A90 802B6060 80430003 */ lb $v1, 3($v0)
|
||||
/* E28A94 802B6064 24020008 */ addiu $v0, $zero, 8
|
||||
/* E28A98 802B6068 14620005 */ bne $v1, $v0, .L802B6080
|
||||
/* E28A9C 802B606C 24020007 */ addiu $v0, $zero, 7
|
||||
/* E28AA0 802B6070 0C0AF440 */ jal func_802BD100_317020
|
||||
/* E28AA4 802B6074 00000000 */ nop
|
||||
/* E28AA8 802B6078 080AD824 */ j .L802B6090
|
||||
/* E28AAC 802B607C 00000000 */ nop
|
||||
.L802B6080:
|
||||
/* E28AB0 802B6080 14620003 */ bne $v1, $v0, .L802B6090
|
||||
/* E28AB4 802B6084 00000000 */ nop
|
||||
/* E28AB8 802B6088 0C0AF440 */ jal func_802BD100_317020
|
||||
/* E28ABC 802B608C 00000000 */ nop
|
||||
.L802B6090:
|
||||
/* E28AC0 802B6090 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* E28AC4 802B6094 03E00008 */ jr $ra
|
||||
/* E28AC8 802B6098 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,196 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
dlabel D_802B6760_E29190
|
||||
.double 0.1
|
||||
|
||||
dlabel D_802B6768_E29198
|
||||
.double 0.1
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_802B609C_E28ACC
|
||||
/* E28ACC 802B609C 27BDFF90 */ addiu $sp, $sp, -0x70
|
||||
/* E28AD0 802B60A0 AFB20058 */ sw $s2, 0x58($sp)
|
||||
/* E28AD4 802B60A4 3C128011 */ lui $s2, %hi(gPlayerStatus)
|
||||
/* E28AD8 802B60A8 2652EFC8 */ addiu $s2, $s2, %lo(gPlayerStatus)
|
||||
/* E28ADC 802B60AC AFBF005C */ sw $ra, 0x5c($sp)
|
||||
/* E28AE0 802B60B0 AFB10054 */ sw $s1, 0x54($sp)
|
||||
/* E28AE4 802B60B4 AFB00050 */ sw $s0, 0x50($sp)
|
||||
/* E28AE8 802B60B8 F7B60068 */ sdc1 $f22, 0x68($sp)
|
||||
/* E28AEC 802B60BC F7B40060 */ sdc1 $f20, 0x60($sp)
|
||||
/* E28AF0 802B60C0 8E430000 */ lw $v1, ($s2)
|
||||
/* E28AF4 802B60C4 0461000E */ bgez $v1, .L802B6100
|
||||
/* E28AF8 802B60C8 3C027FF7 */ lui $v0, 0x7ff7
|
||||
/* E28AFC 802B60CC 3442FFF1 */ ori $v0, $v0, 0xfff1
|
||||
/* E28B00 802B60D0 3C018011 */ lui $at, %hi(D_8010C938)
|
||||
/* E28B04 802B60D4 C420C938 */ lwc1 $f0, %lo(D_8010C938)($at)
|
||||
/* E28B08 802B60D8 00621024 */ and $v0, $v1, $v0
|
||||
/* E28B0C 802B60DC AE420000 */ sw $v0, ($s2)
|
||||
/* E28B10 802B60E0 A24000B6 */ sb $zero, 0xb6($s2)
|
||||
/* E28B14 802B60E4 A6400008 */ sh $zero, 8($s2)
|
||||
/* E28B18 802B60E8 A64000C0 */ sh $zero, 0xc0($s2)
|
||||
/* E28B1C 802B60EC A64000C2 */ sh $zero, 0xc2($s2)
|
||||
/* E28B20 802B60F0 AE400054 */ sw $zero, 0x54($s2)
|
||||
/* E28B24 802B60F4 AE40008C */ sw $zero, 0x8c($s2)
|
||||
/* E28B28 802B60F8 3C01802B */ lui $at, %hi(D_802B6770_E27C80)
|
||||
/* E28B2C 802B60FC E4206770 */ swc1 $f0, %lo(D_802B6770_E27C80)($at)
|
||||
.L802B6100:
|
||||
/* E28B30 802B6100 824300B6 */ lb $v1, 0xb6($s2)
|
||||
/* E28B34 802B6104 924200B6 */ lbu $v0, 0xb6($s2)
|
||||
/* E28B38 802B6108 10600006 */ beqz $v1, .L802B6124
|
||||
/* E28B3C 802B610C 24420001 */ addiu $v0, $v0, 1
|
||||
/* E28B40 802B6110 24020001 */ addiu $v0, $zero, 1
|
||||
/* E28B44 802B6114 10620004 */ beq $v1, $v0, .L802B6128
|
||||
/* E28B48 802B6118 00000000 */ nop
|
||||
/* E28B4C 802B611C 080AD8CC */ j .L802B6330
|
||||
/* E28B50 802B6120 00000000 */ nop
|
||||
.L802B6124:
|
||||
/* E28B54 802B6124 A24200B6 */ sb $v0, 0xb6($s2)
|
||||
.L802B6128:
|
||||
/* E28B58 802B6128 3C018011 */ lui $at, %hi(D_8010C990)
|
||||
/* E28B5C 802B612C C42CC990 */ lwc1 $f12, %lo(D_8010C990)($at)
|
||||
/* E28B60 802B6130 3C0140C9 */ lui $at, 0x40c9
|
||||
/* E28B64 802B6134 34210FD0 */ ori $at, $at, 0xfd0
|
||||
/* E28B68 802B6138 4481A000 */ mtc1 $at, $f20
|
||||
/* E28B6C 802B613C 27B10028 */ addiu $s1, $sp, 0x28
|
||||
/* E28B70 802B6140 46146302 */ mul.s $f12, $f12, $f20
|
||||
/* E28B74 802B6144 00000000 */ nop
|
||||
/* E28B78 802B6148 0220282D */ daddu $a1, $s1, $zero
|
||||
/* E28B7C 802B614C 27B0002C */ addiu $s0, $sp, 0x2c
|
||||
/* E28B80 802B6150 3C0143B4 */ lui $at, 0x43b4
|
||||
/* E28B84 802B6154 4481B000 */ mtc1 $at, $f22
|
||||
/* E28B88 802B6158 0200302D */ daddu $a2, $s0, $zero
|
||||
/* E28B8C 802B615C 0C00A82D */ jal sin_cos_rad
|
||||
/* E28B90 802B6160 46166303 */ div.s $f12, $f12, $f22
|
||||
/* E28B94 802B6164 3C01802B */ lui $at, %hi(D_802B6770_E27C80)
|
||||
/* E28B98 802B6168 C42C6770 */ lwc1 $f12, %lo(D_802B6770_E27C80)($at)
|
||||
/* E28B9C 802B616C 46146302 */ mul.s $f12, $f12, $f20
|
||||
/* E28BA0 802B6170 00000000 */ nop
|
||||
/* E28BA4 802B6174 0220282D */ daddu $a1, $s1, $zero
|
||||
/* E28BA8 802B6178 C7A00028 */ lwc1 $f0, 0x28($sp)
|
||||
/* E28BAC 802B617C 3C014040 */ lui $at, 0x4040
|
||||
/* E28BB0 802B6180 4481A000 */ mtc1 $at, $f20
|
||||
/* E28BB4 802B6184 0200302D */ daddu $a2, $s0, $zero
|
||||
/* E28BB8 802B6188 46140502 */ mul.s $f20, $f0, $f20
|
||||
/* E28BBC 802B618C 00000000 */ nop
|
||||
/* E28BC0 802B6190 0C00A82D */ jal sin_cos_rad
|
||||
/* E28BC4 802B6194 46166303 */ div.s $f12, $f12, $f22
|
||||
/* E28BC8 802B6198 C7A00028 */ lwc1 $f0, 0x28($sp)
|
||||
/* E28BCC 802B619C 46140102 */ mul.s $f4, $f0, $f20
|
||||
/* E28BD0 802B61A0 00000000 */ nop
|
||||
/* E28BD4 802B61A4 C7A0002C */ lwc1 $f0, 0x2c($sp)
|
||||
/* E28BD8 802B61A8 46140182 */ mul.s $f6, $f0, $f20
|
||||
/* E28BDC 802B61AC 00000000 */ nop
|
||||
/* E28BE0 802B61B0 3C01802B */ lui $at, %hi(D_802B6760_E29190)
|
||||
/* E28BE4 802B61B4 D4226760 */ ldc1 $f2, %lo(D_802B6760_E29190)($at)
|
||||
/* E28BE8 802B61B8 46002021 */ cvt.d.s $f0, $f4
|
||||
/* E28BEC 802B61BC 46200005 */ abs.d $f0, $f0
|
||||
/* E28BF0 802B61C0 4622003C */ c.lt.d $f0, $f2
|
||||
/* E28BF4 802B61C4 00000000 */ nop
|
||||
/* E28BF8 802B61C8 45020011 */ bc1fl .L802B6210
|
||||
/* E28BFC 802B61CC 46003021 */ cvt.d.s $f0, $f6
|
||||
/* E28C00 802B61D0 44800000 */ mtc1 $zero, $f0
|
||||
/* E28C04 802B61D4 3C013DCC */ lui $at, 0x3dcc
|
||||
/* E28C08 802B61D8 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* E28C0C 802B61DC 44811000 */ mtc1 $at, $f2
|
||||
/* E28C10 802B61E0 4600203C */ c.lt.s $f4, $f0
|
||||
/* E28C14 802B61E4 00000000 */ nop
|
||||
/* E28C18 802B61E8 45000006 */ bc1f .L802B6204
|
||||
/* E28C1C 802B61EC 46001106 */ mov.s $f4, $f2
|
||||
/* E28C20 802B61F0 3C01BDCC */ lui $at, 0xbdcc
|
||||
/* E28C24 802B61F4 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* E28C28 802B61F8 44811000 */ mtc1 $at, $f2
|
||||
/* E28C2C 802B61FC 00000000 */ nop
|
||||
/* E28C30 802B6200 46001106 */ mov.s $f4, $f2
|
||||
.L802B6204:
|
||||
/* E28C34 802B6204 46003021 */ cvt.d.s $f0, $f6
|
||||
/* E28C38 802B6208 3C01802B */ lui $at, %hi(D_802B6768_E29198)
|
||||
/* E28C3C 802B620C D4226768 */ ldc1 $f2, %lo(D_802B6768_E29198)($at)
|
||||
.L802B6210:
|
||||
/* E28C40 802B6210 46200005 */ abs.d $f0, $f0
|
||||
/* E28C44 802B6214 4622003C */ c.lt.d $f0, $f2
|
||||
/* E28C48 802B6218 00000000 */ nop
|
||||
/* E28C4C 802B621C 4500000F */ bc1f .L802B625C
|
||||
/* E28C50 802B6220 0240202D */ daddu $a0, $s2, $zero
|
||||
/* E28C54 802B6224 44800000 */ mtc1 $zero, $f0
|
||||
/* E28C58 802B6228 3C013DCC */ lui $at, 0x3dcc
|
||||
/* E28C5C 802B622C 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* E28C60 802B6230 44811000 */ mtc1 $at, $f2
|
||||
/* E28C64 802B6234 4600303C */ c.lt.s $f6, $f0
|
||||
/* E28C68 802B6238 00000000 */ nop
|
||||
/* E28C6C 802B623C 45000007 */ bc1f .L802B625C
|
||||
/* E28C70 802B6240 46001186 */ mov.s $f6, $f2
|
||||
/* E28C74 802B6244 3C01BDCC */ lui $at, 0xbdcc
|
||||
/* E28C78 802B6248 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* E28C7C 802B624C 44811000 */ mtc1 $at, $f2
|
||||
/* E28C80 802B6250 00000000 */ nop
|
||||
/* E28C84 802B6254 46001186 */ mov.s $f6, $f2
|
||||
/* E28C88 802B6258 0240202D */ daddu $a0, $s2, $zero
|
||||
.L802B625C:
|
||||
/* E28C8C 802B625C 27A50030 */ addiu $a1, $sp, 0x30
|
||||
/* E28C90 802B6260 C6420028 */ lwc1 $f2, 0x28($s2)
|
||||
/* E28C94 802B6264 27A60034 */ addiu $a2, $sp, 0x34
|
||||
/* E28C98 802B6268 46041080 */ add.s $f2, $f2, $f4
|
||||
/* E28C9C 802B626C C6400030 */ lwc1 $f0, 0x30($s2)
|
||||
/* E28CA0 802B6270 27A2003C */ addiu $v0, $sp, 0x3c
|
||||
/* E28CA4 802B6274 46060001 */ sub.s $f0, $f0, $f6
|
||||
/* E28CA8 802B6278 E6420028 */ swc1 $f2, 0x28($s2)
|
||||
/* E28CAC 802B627C 46001186 */ mov.s $f6, $f2
|
||||
/* E28CB0 802B6280 E6400030 */ swc1 $f0, 0x30($s2)
|
||||
/* E28CB4 802B6284 46000106 */ mov.s $f4, $f0
|
||||
/* E28CB8 802B6288 C642002C */ lwc1 $f2, 0x2c($s2)
|
||||
/* E28CBC 802B628C 3C0140A0 */ lui $at, 0x40a0
|
||||
/* E28CC0 802B6290 44810000 */ mtc1 $at, $f0
|
||||
/* E28CC4 802B6294 27A70038 */ addiu $a3, $sp, 0x38
|
||||
/* E28CC8 802B6298 E7A60030 */ swc1 $f6, 0x30($sp)
|
||||
/* E28CCC 802B629C E7A40038 */ swc1 $f4, 0x38($sp)
|
||||
/* E28CD0 802B62A0 E7A20034 */ swc1 $f2, 0x34($sp)
|
||||
/* E28CD4 802B62A4 E7A0003C */ swc1 $f0, 0x3c($sp)
|
||||
/* E28CD8 802B62A8 AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* E28CDC 802B62AC 27A20040 */ addiu $v0, $sp, 0x40
|
||||
/* E28CE0 802B62B0 AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* E28CE4 802B62B4 27A20044 */ addiu $v0, $sp, 0x44
|
||||
/* E28CE8 802B62B8 AFA20018 */ sw $v0, 0x18($sp)
|
||||
/* E28CEC 802B62BC 27A20048 */ addiu $v0, $sp, 0x48
|
||||
/* E28CF0 802B62C0 AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* E28CF4 802B62C4 27A2004C */ addiu $v0, $sp, 0x4c
|
||||
/* E28CF8 802B62C8 0C03791B */ jal player_raycast_below_cam_relative
|
||||
/* E28CFC 802B62CC AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* E28D00 802B62D0 04400003 */ bltz $v0, .L802B62E0
|
||||
/* E28D04 802B62D4 00000000 */ nop
|
||||
/* E28D08 802B62D8 C7A00034 */ lwc1 $f0, 0x34($sp)
|
||||
/* E28D0C 802B62DC E640002C */ swc1 $f0, 0x2c($s2)
|
||||
.L802B62E0:
|
||||
/* E28D10 802B62E0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* E28D14 802B62E4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* E28D18 802B62E8 3C014270 */ lui $at, 0x4270
|
||||
/* E28D1C 802B62EC 4481A000 */ mtc1 $at, $f20
|
||||
/* E28D20 802B62F0 84430086 */ lh $v1, 0x86($v0)
|
||||
/* E28D24 802B62F4 2402000A */ addiu $v0, $zero, 0xa
|
||||
/* E28D28 802B62F8 14620003 */ bne $v1, $v0, .L802B6308
|
||||
/* E28D2C 802B62FC 00000000 */ nop
|
||||
/* E28D30 802B6300 3C0141F0 */ lui $at, 0x41f0
|
||||
/* E28D34 802B6304 4481A000 */ mtc1 $at, $f20
|
||||
.L802B6308:
|
||||
/* E28D38 802B6308 3C018011 */ lui $at, %hi(D_8010C990)
|
||||
/* E28D3C 802B630C C420C990 */ lwc1 $f0, %lo(D_8010C990)($at)
|
||||
/* E28D40 802B6310 4614003C */ c.lt.s $f0, $f20
|
||||
/* E28D44 802B6314 00000000 */ nop
|
||||
/* E28D48 802B6318 45000005 */ bc1f .L802B6330
|
||||
/* E28D4C 802B631C 00000000 */ nop
|
||||
/* E28D50 802B6320 0C039769 */ jal set_action_state
|
||||
/* E28D54 802B6324 24040008 */ addiu $a0, $zero, 8
|
||||
/* E28D58 802B6328 0C038C1B */ jal gravity_use_fall_parms
|
||||
/* E28D5C 802B632C 00000000 */ nop
|
||||
.L802B6330:
|
||||
/* E28D60 802B6330 8FBF005C */ lw $ra, 0x5c($sp)
|
||||
/* E28D64 802B6334 8FB20058 */ lw $s2, 0x58($sp)
|
||||
/* E28D68 802B6338 8FB10054 */ lw $s1, 0x54($sp)
|
||||
/* E28D6C 802B633C 8FB00050 */ lw $s0, 0x50($sp)
|
||||
/* E28D70 802B6340 D7B60068 */ ldc1 $f22, 0x68($sp)
|
||||
/* E28D74 802B6344 D7B40060 */ ldc1 $f20, 0x60($sp)
|
||||
/* E28D78 802B6348 03E00008 */ jr $ra
|
||||
/* E28D7C 802B634C 27BD0070 */ addiu $sp, $sp, 0x70
|
@ -1,183 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B6000_E236E0
|
||||
/* E236E0 802B6000 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* E236E4 802B6004 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* E236E8 802B6008 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E236EC 802B600C 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E236F0 802B6010 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E236F4 802B6014 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* E236F8 802B6018 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* E236FC 802B601C AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* E23700 802B6020 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* E23704 802B6024 8E050004 */ lw $a1, 4($s0)
|
||||
/* E23708 802B6028 3C148011 */ lui $s4, %hi(gPlayerData)
|
||||
/* E2370C 802B602C 2694F290 */ addiu $s4, $s4, %lo(gPlayerData)
|
||||
/* E23710 802B6030 30A21000 */ andi $v0, $a1, 0x1000
|
||||
/* E23714 802B6034 10400005 */ beqz $v0, .L802B604C
|
||||
/* E23718 802B6038 0000982D */ daddu $s3, $zero, $zero
|
||||
/* E2371C 802B603C 0C0AD97A */ jal func_802B65E8_E23CC8
|
||||
/* E23720 802B6040 00000000 */ nop
|
||||
/* E23724 802B6044 080AD89A */ j .L802B6268
|
||||
/* E23728 802B6048 00000000 */ nop
|
||||
.L802B604C:
|
||||
/* E2372C 802B604C 8E030000 */ lw $v1, ($s0)
|
||||
/* E23730 802B6050 04610016 */ bgez $v1, .L802B60AC
|
||||
/* E23734 802B6054 3C027F77 */ lui $v0, 0x7f77
|
||||
/* E23738 802B6058 3442FFFF */ ori $v0, $v0, 0xffff
|
||||
/* E2373C 802B605C 24130001 */ addiu $s3, $zero, 1
|
||||
/* E23740 802B6060 00621024 */ and $v0, $v1, $v0
|
||||
/* E23744 802B6064 AE020000 */ sw $v0, ($s0)
|
||||
/* E23748 802B6068 30624000 */ andi $v0, $v1, 0x4000
|
||||
/* E2374C 802B606C 14400003 */ bnez $v0, .L802B607C
|
||||
/* E23750 802B6070 AE000060 */ sw $zero, 0x60($s0)
|
||||
/* E23754 802B6074 C6000058 */ lwc1 $f0, 0x58($s0)
|
||||
/* E23758 802B6078 E6000054 */ swc1 $f0, 0x54($s0)
|
||||
.L802B607C:
|
||||
/* E2375C 802B607C 30A24000 */ andi $v0, $a1, 0x4000
|
||||
/* E23760 802B6080 10400003 */ beqz $v0, .L802B6090
|
||||
/* E23764 802B6084 3C040009 */ lui $a0, 9
|
||||
/* E23768 802B6088 080AD829 */ j .L802B60A4
|
||||
/* E2376C 802B608C 34840003 */ ori $a0, $a0, 3
|
||||
.L802B6090:
|
||||
/* E23770 802B6090 30A20001 */ andi $v0, $a1, 1
|
||||
/* E23774 802B6094 14400003 */ bnez $v0, .L802B60A4
|
||||
/* E23778 802B6098 3C040006 */ lui $a0, 6
|
||||
/* E2377C 802B609C 3C040001 */ lui $a0, 1
|
||||
/* E23780 802B60A0 34840004 */ ori $a0, $a0, 4
|
||||
.L802B60A4:
|
||||
/* E23784 802B60A4 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23788 802B60A8 00000000 */ nop
|
||||
.L802B60AC:
|
||||
/* E2378C 802B60AC 8E020000 */ lw $v0, ($s0)
|
||||
/* E23790 802B60B0 30424000 */ andi $v0, $v0, 0x4000
|
||||
/* E23794 802B60B4 10400006 */ beqz $v0, .L802B60D0
|
||||
/* E23798 802B60B8 24040008 */ addiu $a0, $zero, 8
|
||||
/* E2379C 802B60BC C60000A0 */ lwc1 $f0, 0xa0($s0)
|
||||
/* E237A0 802B60C0 0C039426 */ jal try_player_footstep_sounds
|
||||
/* E237A4 802B60C4 E6000080 */ swc1 $f0, 0x80($s0)
|
||||
/* E237A8 802B60C8 080AD89A */ j .L802B6268
|
||||
/* E237AC 802B60CC 00000000 */ nop
|
||||
.L802B60D0:
|
||||
/* E237B0 802B60D0 27B20010 */ addiu $s2, $sp, 0x10
|
||||
/* E237B4 802B60D4 0240202D */ daddu $a0, $s2, $zero
|
||||
/* E237B8 802B60D8 27B10014 */ addiu $s1, $sp, 0x14
|
||||
/* E237BC 802B60DC 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E237C0 802B60E0 0220282D */ daddu $a1, $s1, $zero
|
||||
/* E237C4 802B60E4 0C039454 */ jal phys_update_interact_collider
|
||||
/* E237C8 802B60E8 00000000 */ nop
|
||||
/* E237CC 802B60EC 0C039858 */ jal check_input_jump
|
||||
/* E237D0 802B60F0 00000000 */ nop
|
||||
/* E237D4 802B60F4 1440005C */ bnez $v0, .L802B6268
|
||||
/* E237D8 802B60F8 00000000 */ nop
|
||||
/* E237DC 802B60FC 16600006 */ bnez $s3, .L802B6118
|
||||
/* E237E0 802B6100 0240202D */ daddu $a0, $s2, $zero
|
||||
/* E237E4 802B6104 0C039838 */ jal check_input_hammer
|
||||
/* E237E8 802B6108 00000000 */ nop
|
||||
/* E237EC 802B610C 14400056 */ bnez $v0, .L802B6268
|
||||
/* E237F0 802B6110 00000000 */ nop
|
||||
/* E237F4 802B6114 0240202D */ daddu $a0, $s2, $zero
|
||||
.L802B6118:
|
||||
/* E237F8 802B6118 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E237FC 802B611C 0220282D */ daddu $a1, $s1, $zero
|
||||
/* E23800 802B6120 C7A40014 */ lwc1 $f4, 0x14($sp)
|
||||
/* E23804 802B6124 44800000 */ mtc1 $zero, $f0
|
||||
/* E23808 802B6128 00000000 */ nop
|
||||
/* E2380C 802B612C 46002032 */ c.eq.s $f4, $f0
|
||||
/* E23810 802B6130 00000000 */ nop
|
||||
/* E23814 802B6134 45000005 */ bc1f .L802B614C
|
||||
/* E23818 802B6138 00000000 */ nop
|
||||
/* E2381C 802B613C 0C039769 */ jal set_action_state
|
||||
/* E23820 802B6140 0000202D */ daddu $a0, $zero, $zero
|
||||
/* E23824 802B6144 080AD89A */ j .L802B6268
|
||||
/* E23828 802B6148 00000000 */ nop
|
||||
.L802B614C:
|
||||
/* E2382C 802B614C C7A60010 */ lwc1 $f6, 0x10($sp)
|
||||
/* E23830 802B6150 3C01800F */ lui $at, %hi(D_800F7B40)
|
||||
/* E23834 802B6154 C4207B40 */ lwc1 $f0, %lo(D_800F7B40)($at)
|
||||
/* E23838 802B6158 46800020 */ cvt.s.w $f0, $f0
|
||||
/* E2383C 802B615C 46060001 */ sub.s $f0, $f0, $f6
|
||||
/* E23840 802B6160 3C0142B4 */ lui $at, 0x42b4
|
||||
/* E23844 802B6164 44811000 */ mtc1 $at, $f2
|
||||
/* E23848 802B6168 46000005 */ abs.s $f0, $f0
|
||||
/* E2384C 802B616C 4602003E */ c.le.s $f0, $f2
|
||||
/* E23850 802B6170 00000000 */ nop
|
||||
/* E23854 802B6174 4500001C */ bc1f .L802B61E8
|
||||
/* E23858 802B6178 00000000 */ nop
|
||||
/* E2385C 802B617C 3C01800F */ lui $at, %hi(D_800F7B44)
|
||||
/* E23860 802B6180 C4207B44 */ lwc1 $f0, %lo(D_800F7B44)($at)
|
||||
/* E23864 802B6184 46800020 */ cvt.s.w $f0, $f0
|
||||
/* E23868 802B6188 46002001 */ sub.s $f0, $f4, $f0
|
||||
/* E2386C 802B618C 4600020D */ trunc.w.s $f8, $f0
|
||||
/* E23870 802B6190 44024000 */ mfc1 $v0, $f8
|
||||
/* E23874 802B6194 00000000 */ nop
|
||||
/* E23878 802B6198 04420001 */ bltzl $v0, .L802B61A0
|
||||
/* E2387C 802B619C 00021023 */ negu $v0, $v0
|
||||
.L802B61A0:
|
||||
/* E23880 802B61A0 28420014 */ slti $v0, $v0, 0x14
|
||||
/* E23884 802B61A4 10400010 */ beqz $v0, .L802B61E8
|
||||
/* E23888 802B61A8 00000000 */ nop
|
||||
/* E2388C 802B61AC 8E020004 */ lw $v0, 4($s0)
|
||||
/* E23890 802B61B0 0440000A */ bltz $v0, .L802B61DC
|
||||
/* E23894 802B61B4 3C037FFF */ lui $v1, 0x7fff
|
||||
/* E23898 802B61B8 3C0141A0 */ lui $at, 0x41a0
|
||||
/* E2389C 802B61BC 44810000 */ mtc1 $at, $f0
|
||||
/* E238A0 802B61C0 00000000 */ nop
|
||||
/* E238A4 802B61C4 4604003E */ c.le.s $f0, $f4
|
||||
/* E238A8 802B61C8 00000000 */ nop
|
||||
/* E238AC 802B61CC 45030002 */ bc1tl .L802B61D8
|
||||
/* E238B0 802B61D0 E6060080 */ swc1 $f6, 0x80($s0)
|
||||
/* E238B4 802B61D4 3C037FFF */ lui $v1, 0x7fff
|
||||
.L802B61D8:
|
||||
/* E238B8 802B61D8 8E020004 */ lw $v0, 4($s0)
|
||||
.L802B61DC:
|
||||
/* E238BC 802B61DC 3463FFFF */ ori $v1, $v1, 0xffff
|
||||
/* E238C0 802B61E0 080AD881 */ j .L802B6204
|
||||
/* E238C4 802B61E4 00431024 */ and $v0, $v0, $v1
|
||||
.L802B61E8:
|
||||
/* E238C8 802B61E8 8E020004 */ lw $v0, 4($s0)
|
||||
/* E238CC 802B61EC 04410004 */ bgez $v0, .L802B6200
|
||||
/* E238D0 802B61F0 3C038000 */ lui $v1, 0x8000
|
||||
/* E238D4 802B61F4 C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E238D8 802B61F8 080AD882 */ j .L802B6208
|
||||
/* E238DC 802B61FC E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B6200:
|
||||
/* E238E0 802B6200 00431025 */ or $v0, $v0, $v1
|
||||
.L802B6204:
|
||||
/* E238E4 802B6204 AE020004 */ sw $v0, 4($s0)
|
||||
.L802B6208:
|
||||
/* E238E8 802B6208 0C03A752 */ jal is_ability_active
|
||||
/* E238EC 802B620C 2404000B */ addiu $a0, $zero, 0xb
|
||||
/* E238F0 802B6210 14400010 */ bnez $v0, .L802B6254
|
||||
/* E238F4 802B6214 00000000 */ nop
|
||||
/* E238F8 802B6218 8E0200E8 */ lw $v0, 0xe8($s0)
|
||||
/* E238FC 802B621C 00420018 */ mult $v0, $v0
|
||||
/* E23900 802B6220 00001812 */ mflo $v1
|
||||
/* E23904 802B6224 8E0200EC */ lw $v0, 0xec($s0)
|
||||
/* E23908 802B6228 00000000 */ nop
|
||||
/* E2390C 802B622C 00420018 */ mult $v0, $v0
|
||||
/* E23910 802B6230 00003812 */ mflo $a3
|
||||
/* E23914 802B6234 00671021 */ addu $v0, $v1, $a3
|
||||
/* E23918 802B6238 28420BD2 */ slti $v0, $v0, 0xbd2
|
||||
/* E2391C 802B623C 14400005 */ bnez $v0, .L802B6254
|
||||
/* E23920 802B6240 00000000 */ nop
|
||||
/* E23924 802B6244 0C039769 */ jal set_action_state
|
||||
/* E23928 802B6248 24040002 */ addiu $a0, $zero, 2
|
||||
/* E2392C 802B624C 080AD89A */ j .L802B6268
|
||||
/* E23930 802B6250 00000000 */ nop
|
||||
.L802B6254:
|
||||
/* E23934 802B6254 0C039426 */ jal try_player_footstep_sounds
|
||||
/* E23938 802B6258 24040008 */ addiu $a0, $zero, 8
|
||||
/* E2393C 802B625C 8E8202AC */ lw $v0, 0x2ac($s4)
|
||||
/* E23940 802B6260 24420001 */ addiu $v0, $v0, 1
|
||||
/* E23944 802B6264 AE8202AC */ sw $v0, 0x2ac($s4)
|
||||
.L802B6268:
|
||||
/* E23948 802B6268 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* E2394C 802B626C 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* E23950 802B6270 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* E23954 802B6274 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* E23958 802B6278 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* E2395C 802B627C 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E23960 802B6280 03E00008 */ jr $ra
|
||||
/* E23964 802B6284 27BD0030 */ addiu $sp, $sp, 0x30
|
Loading…
Reference in New Issue
Block a user