mirror of
https://github.com/pmret/papermario.git
synced 2024-11-09 12:32:38 +01:00
Match some funcs in world/action/walk (#362)
* match some walk funcs * fix D_800F7B40 type * update functions.h * update splat.yaml * remove walk.data.s * run coverage.py * remove line at top * changed brace * requested changes Co-authored-by: ThreeMustyFears <>
This commit is contained in:
parent
5ba7b53d06
commit
25dcbe4b92
@ -132,6 +132,7 @@ void get_model_center_and_size(u16 modelID, f32* centerX, f32* centerY, f32* cen
|
||||
s32 collision_main_above(void);
|
||||
s32 player_test_lateral_overlap(s32, PlayerStatus*, f32*, f32*, f32*, f32, f32);
|
||||
Npc* peach_make_disguise_npc(s32 peachDisguise);
|
||||
void peach_set_disguise_anim(s32);
|
||||
|
||||
void draw_box(s32 flags, s32 windowStyle, s32 posX, s32 posY, s32 posZ, s32 width, s32 height, s32 opacity,
|
||||
s32 darkening, f32 scaleX, f32 scaleY, f32 rotX, f32 rotY, f32 rotZ, void (*fpDrawContents)(s32),
|
||||
@ -293,6 +294,7 @@ void disable_player_shadow(void);
|
||||
void move_player(s32 duration, f32 heading, f32 speed);
|
||||
s32 enable_player_input(void);
|
||||
s32 check_input_jump();
|
||||
s32 check_input_hammer();
|
||||
|
||||
Npc* get_npc_safe(NpcID npcId);
|
||||
Npc* get_npc_unsafe(NpcID npcId);
|
||||
|
@ -284,7 +284,7 @@ extern s32 D_8010C95C;
|
||||
extern s32 D_8010C96C;
|
||||
extern s32 D_8010C980;
|
||||
extern s32 D_8010C9A0;
|
||||
extern f32 D_800F7B40;
|
||||
extern s32 D_800F7B40;
|
||||
extern s32 D_800F7B44;
|
||||
extern f32 D_8010C938;
|
||||
extern f32 D_8010C990;
|
||||
|
@ -1,13 +1,121 @@
|
||||
#include "common.h"
|
||||
#include "world/actions.h"
|
||||
|
||||
// TODO figure out these peach player animation IDs
|
||||
s32 D_802B6910_E23FF0[] = {0x000A0002, 0x000A002B, 0x000A002D, 0x000A002F, 0x000A0031, 0x000A0033, 0x000A0035, 0x000A0037, 0x000A0039, 0x000A003B, 0x000A003D, 0x000A003F,
|
||||
0x000A0041, 0x000A0043, 0x000A0045, 0x000A0047, 0x000A0049, 0x000A004B, 0x000A004D, 0x00000000 };
|
||||
|
||||
// walk
|
||||
INCLUDE_ASM(void, "world/action/walk", func_802B6000_E236E0, void);
|
||||
|
||||
// run
|
||||
INCLUDE_ASM(void, "world/action/walk", func_802B6288_E23968, void);
|
||||
void func_802B6288_E23968() {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
PlayerData* playerData = &gPlayerData;
|
||||
f32 moveX;
|
||||
f32 moveY;
|
||||
s32 temp_v1;
|
||||
s32 phi_a0;
|
||||
f32 phi_f2;
|
||||
s32 phi_s3;
|
||||
|
||||
// same as func_802B6198_E24768 but requires data stuff
|
||||
INCLUDE_ASM(void, "world/action/walk", func_802B6550_E23C30, void);
|
||||
phi_s3 = 0;
|
||||
if (playerStatus->animFlags & PLAYER_ANIM_FLAG_PEACH_PHYSICS) {
|
||||
func_802B6738_E23E18();
|
||||
return;
|
||||
}
|
||||
|
||||
if (playerStatus->flags < 0) {
|
||||
playerStatus->flags &= ~0x80880000;
|
||||
D_8010C980 = 0;
|
||||
playerStatus->unk_60 = 0;
|
||||
phi_s3 = 1;
|
||||
|
||||
if (!(playerStatus->flags & 0x00004000)) {
|
||||
playerStatus->currentSpeed = playerStatus->runSpeed;
|
||||
}
|
||||
if (playerStatus->animFlags & PLAYER_ANIM_FLAG_8BIT_MARIO) {
|
||||
phi_a0 = 0x90003;
|
||||
} else {
|
||||
if (!(playerStatus->animFlags & PLAYER_ANIM_FLAG_HOLDING_ITEM)) {
|
||||
phi_a0 = 0x10005;
|
||||
} else {
|
||||
phi_a0 = 0x60002;
|
||||
}
|
||||
}
|
||||
suggest_player_anim_clearUnkFlag(phi_a0);
|
||||
}
|
||||
|
||||
if (playerStatus->flags & 0x00004000) {
|
||||
playerStatus->targetYaw = playerStatus->heading;
|
||||
try_player_footstep_sounds(4);
|
||||
return;
|
||||
}
|
||||
|
||||
D_8010C980++;
|
||||
phi_f2 = 1.0f;
|
||||
|
||||
if (playerStatus->animFlags & 0x10000) {
|
||||
phi_f2 = 1.5f;
|
||||
}
|
||||
|
||||
playerStatus->currentSpeed = playerStatus->runSpeed * phi_f2;
|
||||
player_input_to_move_vector(&moveX, &moveY);
|
||||
phys_update_interact_collider();
|
||||
if (check_input_jump() == FALSE) {
|
||||
if (phi_s3 == 0) {
|
||||
if (check_input_hammer()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
player_input_to_move_vector(&moveX, &moveY);
|
||||
if (moveY == 0.0f) {
|
||||
set_action_state(ACTION_STATE_IDLE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (fabsf(D_800F7B40 - moveX) <= 90.0f) {
|
||||
temp_v1 = playerStatus->animFlags;
|
||||
if (temp_v1 >= 0) {
|
||||
playerStatus->targetYaw = moveX;
|
||||
}
|
||||
playerStatus->animFlags &= ~0x80000000;
|
||||
} else {
|
||||
temp_v1 = playerStatus->animFlags;
|
||||
temp_v1 = temp_v1 < 0;
|
||||
if (temp_v1) {
|
||||
playerStatus->targetYaw = moveX;
|
||||
} else {
|
||||
playerStatus->animFlags |= 0x80000000;
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_ability_active(ABILITY_SLOW_GO)) {
|
||||
if (sqrtf(SQ(playerStatus->stickAxis[0]) + SQ(playerStatus->stickAxis[1])) <= 55.0f) {
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
return;
|
||||
}
|
||||
try_player_footstep_sounds(4);
|
||||
playerData->unk_2B0++;
|
||||
}
|
||||
}
|
||||
|
||||
void func_802B6550_E23C30(void) {
|
||||
if (!(gPlayerStatus.animFlags & PLAYER_ANIM_FLAG_IN_DISGUISE)) {
|
||||
if (!(gGameStatusPtr->peachFlags & 0x10)) {
|
||||
suggest_player_anim_clearUnkFlag(D_802B6910_E23FF0[gGameStatusPtr->peachAnimIdx]);
|
||||
return;
|
||||
}
|
||||
suggest_player_anim_clearUnkFlag(0xD000D);
|
||||
return;
|
||||
}
|
||||
peach_set_disguise_anim(world_actions_peachDisguises[gPlayerStatus.peachDisguise].unk_04);
|
||||
}
|
||||
|
||||
void func_802B65E8_E23CC8(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
@ -45,4 +153,54 @@ void func_802B65E8_E23CC8(void) {
|
||||
try_player_footstep_sounds(8);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "world/action/walk", func_802B6738_E23E18, void);
|
||||
void func_802B6738_E23E18(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
GameStatus* gameStatus;
|
||||
f32 moveX;
|
||||
f32 moveY;
|
||||
|
||||
if (playerStatus->flags < 0) {
|
||||
playerStatus->flags &= ~0x80000000;
|
||||
playerStatus->unk_60 = 0;
|
||||
if (!(playerStatus->flags & 0x00004000)) {
|
||||
playerStatus->currentSpeed = playerStatus->runSpeed;
|
||||
}
|
||||
|
||||
if (!(playerStatus->animFlags & PLAYER_ANIM_FLAG_IN_DISGUISE)) {
|
||||
gameStatus = gGameStatusPtr;
|
||||
if (!(gameStatus->peachFlags & 0x10)) {
|
||||
if (!gameStatus->peachAnimIdx) {
|
||||
suggest_player_anim_clearUnkFlag(0xA0003);
|
||||
} else {
|
||||
suggest_player_anim_clearUnkFlag(D_802B6910_E23FF0[gameStatus->peachAnimIdx]);
|
||||
}
|
||||
} else {
|
||||
suggest_player_anim_clearUnkFlag(0xD000D);
|
||||
}
|
||||
} else {
|
||||
peach_set_disguise_anim(world_actions_peachDisguises[playerStatus->peachDisguise].unk_08);
|
||||
}
|
||||
}
|
||||
|
||||
if (playerStatus->flags & 0x00004000) {
|
||||
playerStatus->targetYaw = playerStatus->heading;
|
||||
try_player_footstep_sounds(4);
|
||||
return;
|
||||
}
|
||||
|
||||
playerStatus->currentSpeed = playerStatus->runSpeed;
|
||||
player_input_to_move_vector(&moveX, &moveY);
|
||||
phys_update_interact_collider();
|
||||
if (moveY == 0.0f) {
|
||||
set_action_state(ACTION_STATE_IDLE);
|
||||
return;
|
||||
}
|
||||
|
||||
playerStatus->targetYaw = moveX;
|
||||
if (sqrtf(SQ(playerStatus->stickAxis[0]) + SQ(playerStatus->stickAxis[1])) < 55.0f) {
|
||||
set_action_state(ACTION_STATE_WALK);
|
||||
return;
|
||||
} else {
|
||||
try_player_footstep_sounds(4);
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ void func_802B6478_E28EA8(void);
|
||||
void func_802B60A4_E29514(void);
|
||||
void func_802B609C_E28ACC(void);
|
||||
|
||||
f32 D_800F7B40 = 0.0f;
|
||||
s32 D_800F7B40 = 0;
|
||||
s32 D_800F7B44 = 0;
|
||||
f32 D_800F7B48 = 0.0f;
|
||||
s32 D_800F7B4C = 0;
|
||||
|
@ -1,6 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
glabel D_802B6910_E23FF0
|
||||
.word 0x000A0002, 0x000A002B, 0x000A002D, 0x000A002F, 0x000A0031, 0x000A0033, 0x000A0035, 0x000A0037, 0x000A0039, 0x000A003B, 0x000A003D, 0x000A003F, 0x000A0041, 0x000A0043, 0x000A0045, 0x000A0047, 0x000A0049, 0x000A004B, 0x000A004D, 0x00000000
|
@ -1,200 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B6288_E23968
|
||||
/* E23968 802B6288 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* E2396C 802B628C AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* E23970 802B6290 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E23974 802B6294 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E23978 802B6298 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E2397C 802B629C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* E23980 802B62A0 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* E23984 802B62A4 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* E23988 802B62A8 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* E2398C 802B62AC 8E050004 */ lw $a1, 4($s0)
|
||||
/* E23990 802B62B0 3C148011 */ lui $s4, %hi(gPlayerData)
|
||||
/* E23994 802B62B4 2694F290 */ addiu $s4, $s4, %lo(gPlayerData)
|
||||
/* E23998 802B62B8 30A21000 */ andi $v0, $a1, 0x1000
|
||||
/* E2399C 802B62BC 10400005 */ beqz $v0, .L802B62D4
|
||||
/* E239A0 802B62C0 0000982D */ daddu $s3, $zero, $zero
|
||||
/* E239A4 802B62C4 0C0AD9CE */ jal func_802B6738_E23E18
|
||||
/* E239A8 802B62C8 00000000 */ nop
|
||||
/* E239AC 802B62CC 080AD94C */ j .L802B6530
|
||||
/* E239B0 802B62D0 00000000 */ nop
|
||||
.L802B62D4:
|
||||
/* E239B4 802B62D4 8E030000 */ lw $v1, ($s0)
|
||||
/* E239B8 802B62D8 04610019 */ bgez $v1, .L802B6340
|
||||
/* E239BC 802B62DC 3C027F77 */ lui $v0, 0x7f77
|
||||
/* E239C0 802B62E0 3442FFFF */ ori $v0, $v0, 0xffff
|
||||
/* E239C4 802B62E4 24130001 */ addiu $s3, $zero, 1
|
||||
/* E239C8 802B62E8 00621024 */ and $v0, $v1, $v0
|
||||
/* E239CC 802B62EC AE020000 */ sw $v0, ($s0)
|
||||
/* E239D0 802B62F0 30624000 */ andi $v0, $v1, 0x4000
|
||||
/* E239D4 802B62F4 3C018011 */ lui $at, %hi(D_8010C980)
|
||||
/* E239D8 802B62F8 AC20C980 */ sw $zero, %lo(D_8010C980)($at)
|
||||
/* E239DC 802B62FC 14400003 */ bnez $v0, .L802B630C
|
||||
/* E239E0 802B6300 AE000060 */ sw $zero, 0x60($s0)
|
||||
/* E239E4 802B6304 C600005C */ lwc1 $f0, 0x5c($s0)
|
||||
/* E239E8 802B6308 E6000054 */ swc1 $f0, 0x54($s0)
|
||||
.L802B630C:
|
||||
/* E239EC 802B630C 30A24000 */ andi $v0, $a1, 0x4000
|
||||
/* E239F0 802B6310 10400003 */ beqz $v0, .L802B6320
|
||||
/* E239F4 802B6314 3C040009 */ lui $a0, 9
|
||||
/* E239F8 802B6318 080AD8CE */ j .L802B6338
|
||||
/* E239FC 802B631C 34840003 */ ori $a0, $a0, 3
|
||||
.L802B6320:
|
||||
/* E23A00 802B6320 3C040006 */ lui $a0, 6
|
||||
/* E23A04 802B6324 30A20001 */ andi $v0, $a1, 1
|
||||
/* E23A08 802B6328 14400003 */ bnez $v0, .L802B6338
|
||||
/* E23A0C 802B632C 34840002 */ ori $a0, $a0, 2
|
||||
/* E23A10 802B6330 3C040001 */ lui $a0, 1
|
||||
/* E23A14 802B6334 34840005 */ ori $a0, $a0, 5
|
||||
.L802B6338:
|
||||
/* E23A18 802B6338 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23A1C 802B633C 00000000 */ nop
|
||||
.L802B6340:
|
||||
/* E23A20 802B6340 8E020000 */ lw $v0, ($s0)
|
||||
/* E23A24 802B6344 30424000 */ andi $v0, $v0, 0x4000
|
||||
/* E23A28 802B6348 10400006 */ beqz $v0, .L802B6364
|
||||
/* E23A2C 802B634C 24040004 */ addiu $a0, $zero, 4
|
||||
/* E23A30 802B6350 C60000A0 */ lwc1 $f0, 0xa0($s0)
|
||||
/* E23A34 802B6354 0C039426 */ jal try_player_footstep_sounds
|
||||
/* E23A38 802B6358 E6000080 */ swc1 $f0, 0x80($s0)
|
||||
/* E23A3C 802B635C 080AD94C */ j .L802B6530
|
||||
/* E23A40 802B6360 00000000 */ nop
|
||||
.L802B6364:
|
||||
/* E23A44 802B6364 3C038011 */ lui $v1, %hi(D_8010C980)
|
||||
/* E23A48 802B6368 2463C980 */ addiu $v1, $v1, %lo(D_8010C980)
|
||||
/* E23A4C 802B636C 8C620000 */ lw $v0, ($v1)
|
||||
/* E23A50 802B6370 3C013F80 */ lui $at, 0x3f80
|
||||
/* E23A54 802B6374 44811000 */ mtc1 $at, $f2
|
||||
/* E23A58 802B6378 24420001 */ addiu $v0, $v0, 1
|
||||
/* E23A5C 802B637C AC620000 */ sw $v0, ($v1)
|
||||
/* E23A60 802B6380 8E020004 */ lw $v0, 4($s0)
|
||||
/* E23A64 802B6384 3C030001 */ lui $v1, 1
|
||||
/* E23A68 802B6388 00431024 */ and $v0, $v0, $v1
|
||||
/* E23A6C 802B638C 10400003 */ beqz $v0, .L802B639C
|
||||
/* E23A70 802B6390 00000000 */ nop
|
||||
/* E23A74 802B6394 3C013FC0 */ lui $at, 0x3fc0
|
||||
/* E23A78 802B6398 44811000 */ mtc1 $at, $f2
|
||||
.L802B639C:
|
||||
/* E23A7C 802B639C C600005C */ lwc1 $f0, 0x5c($s0)
|
||||
/* E23A80 802B63A0 46020002 */ mul.s $f0, $f0, $f2
|
||||
/* E23A84 802B63A4 00000000 */ nop
|
||||
/* E23A88 802B63A8 27B20010 */ addiu $s2, $sp, 0x10
|
||||
/* E23A8C 802B63AC 0240202D */ daddu $a0, $s2, $zero
|
||||
/* E23A90 802B63B0 27B10014 */ addiu $s1, $sp, 0x14
|
||||
/* E23A94 802B63B4 0220282D */ daddu $a1, $s1, $zero
|
||||
/* E23A98 802B63B8 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E23A9C 802B63BC E6000054 */ swc1 $f0, 0x54($s0)
|
||||
/* E23AA0 802B63C0 0C039454 */ jal phys_update_interact_collider
|
||||
/* E23AA4 802B63C4 00000000 */ nop
|
||||
/* E23AA8 802B63C8 0C039858 */ jal check_input_jump
|
||||
/* E23AAC 802B63CC 00000000 */ nop
|
||||
/* E23AB0 802B63D0 14400057 */ bnez $v0, .L802B6530
|
||||
/* E23AB4 802B63D4 00000000 */ nop
|
||||
/* E23AB8 802B63D8 16600006 */ bnez $s3, .L802B63F4
|
||||
/* E23ABC 802B63DC 0240202D */ daddu $a0, $s2, $zero
|
||||
/* E23AC0 802B63E0 0C039838 */ jal check_input_hammer
|
||||
/* E23AC4 802B63E4 00000000 */ nop
|
||||
/* E23AC8 802B63E8 14400051 */ bnez $v0, .L802B6530
|
||||
/* E23ACC 802B63EC 00000000 */ nop
|
||||
/* E23AD0 802B63F0 0240202D */ daddu $a0, $s2, $zero
|
||||
.L802B63F4:
|
||||
/* E23AD4 802B63F4 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E23AD8 802B63F8 0220282D */ daddu $a1, $s1, $zero
|
||||
/* E23ADC 802B63FC C7A20014 */ lwc1 $f2, 0x14($sp)
|
||||
/* E23AE0 802B6400 44800000 */ mtc1 $zero, $f0
|
||||
/* E23AE4 802B6404 00000000 */ nop
|
||||
/* E23AE8 802B6408 46001032 */ c.eq.s $f2, $f0
|
||||
/* E23AEC 802B640C 00000000 */ nop
|
||||
/* E23AF0 802B6410 45000005 */ bc1f .L802B6428
|
||||
/* E23AF4 802B6414 00000000 */ nop
|
||||
/* E23AF8 802B6418 0C039769 */ jal set_action_state
|
||||
/* E23AFC 802B641C 0000202D */ daddu $a0, $zero, $zero
|
||||
/* E23B00 802B6420 080AD94C */ j .L802B6530
|
||||
/* E23B04 802B6424 00000000 */ nop
|
||||
.L802B6428:
|
||||
/* E23B08 802B6428 C7A40010 */ lwc1 $f4, 0x10($sp)
|
||||
/* E23B0C 802B642C 3C01800F */ lui $at, %hi(D_800F7B40)
|
||||
/* E23B10 802B6430 C4207B40 */ lwc1 $f0, %lo(D_800F7B40)($at)
|
||||
/* E23B14 802B6434 46800020 */ cvt.s.w $f0, $f0
|
||||
/* E23B18 802B6438 46040001 */ sub.s $f0, $f0, $f4
|
||||
/* E23B1C 802B643C 3C0142B4 */ lui $at, 0x42b4
|
||||
/* E23B20 802B6440 44811000 */ mtc1 $at, $f2
|
||||
/* E23B24 802B6444 46000005 */ abs.s $f0, $f0
|
||||
/* E23B28 802B6448 4602003E */ c.le.s $f0, $f2
|
||||
/* E23B2C 802B644C 00000000 */ nop
|
||||
/* E23B30 802B6450 45000009 */ bc1f .L802B6478
|
||||
/* E23B34 802B6454 00000000 */ nop
|
||||
/* E23B38 802B6458 8E020004 */ lw $v0, 4($s0)
|
||||
/* E23B3C 802B645C 04430001 */ bgezl $v0, .L802B6464
|
||||
/* E23B40 802B6460 E6040080 */ swc1 $f4, 0x80($s0)
|
||||
.L802B6464:
|
||||
/* E23B44 802B6464 3C037FFF */ lui $v1, 0x7fff
|
||||
/* E23B48 802B6468 8E020004 */ lw $v0, 4($s0)
|
||||
/* E23B4C 802B646C 3463FFFF */ ori $v1, $v1, 0xffff
|
||||
/* E23B50 802B6470 080AD924 */ j .L802B6490
|
||||
/* E23B54 802B6474 00431024 */ and $v0, $v0, $v1
|
||||
.L802B6478:
|
||||
/* E23B58 802B6478 8E020004 */ lw $v0, 4($s0)
|
||||
/* E23B5C 802B647C 04410003 */ bgez $v0, .L802B648C
|
||||
/* E23B60 802B6480 3C038000 */ lui $v1, 0x8000
|
||||
/* E23B64 802B6484 080AD925 */ j .L802B6494
|
||||
/* E23B68 802B6488 E6040080 */ swc1 $f4, 0x80($s0)
|
||||
.L802B648C:
|
||||
/* E23B6C 802B648C 00431025 */ or $v0, $v0, $v1
|
||||
.L802B6490:
|
||||
/* E23B70 802B6490 AE020004 */ sw $v0, 4($s0)
|
||||
.L802B6494:
|
||||
/* E23B74 802B6494 0C03A752 */ jal is_ability_active
|
||||
/* E23B78 802B6498 2404000B */ addiu $a0, $zero, 0xb
|
||||
/* E23B7C 802B649C 1440001B */ bnez $v0, .L802B650C
|
||||
/* E23B80 802B64A0 00000000 */ nop
|
||||
/* E23B84 802B64A4 8E0200E8 */ lw $v0, 0xe8($s0)
|
||||
/* E23B88 802B64A8 00420018 */ mult $v0, $v0
|
||||
/* E23B8C 802B64AC 00001812 */ mflo $v1
|
||||
/* E23B90 802B64B0 8E0200EC */ lw $v0, 0xec($s0)
|
||||
/* E23B94 802B64B4 00000000 */ nop
|
||||
/* E23B98 802B64B8 00420018 */ mult $v0, $v0
|
||||
/* E23B9C 802B64BC 00003812 */ mflo $a3
|
||||
/* E23BA0 802B64C0 00671021 */ addu $v0, $v1, $a3
|
||||
/* E23BA4 802B64C4 44826000 */ mtc1 $v0, $f12
|
||||
/* E23BA8 802B64C8 00000000 */ nop
|
||||
/* E23BAC 802B64CC 46806320 */ cvt.s.w $f12, $f12
|
||||
/* E23BB0 802B64D0 46006084 */ sqrt.s $f2, $f12
|
||||
/* E23BB4 802B64D4 46021032 */ c.eq.s $f2, $f2
|
||||
/* E23BB8 802B64D8 00000000 */ nop
|
||||
/* E23BBC 802B64DC 45010004 */ bc1t .L802B64F0
|
||||
/* E23BC0 802B64E0 00000000 */ nop
|
||||
/* E23BC4 802B64E4 0C0187BC */ jal sqrtf
|
||||
/* E23BC8 802B64E8 00000000 */ nop
|
||||
/* E23BCC 802B64EC 46000086 */ mov.s $f2, $f0
|
||||
.L802B64F0:
|
||||
/* E23BD0 802B64F0 3C01425C */ lui $at, 0x425c
|
||||
/* E23BD4 802B64F4 44810000 */ mtc1 $at, $f0
|
||||
/* E23BD8 802B64F8 00000000 */ nop
|
||||
/* E23BDC 802B64FC 4600103E */ c.le.s $f2, $f0
|
||||
/* E23BE0 802B6500 00000000 */ nop
|
||||
/* E23BE4 802B6504 45000005 */ bc1f .L802B651C
|
||||
/* E23BE8 802B6508 00000000 */ nop
|
||||
.L802B650C:
|
||||
/* E23BEC 802B650C 0C039769 */ jal set_action_state
|
||||
/* E23BF0 802B6510 24040001 */ addiu $a0, $zero, 1
|
||||
/* E23BF4 802B6514 080AD94C */ j .L802B6530
|
||||
/* E23BF8 802B6518 00000000 */ nop
|
||||
.L802B651C:
|
||||
/* E23BFC 802B651C 0C039426 */ jal try_player_footstep_sounds
|
||||
/* E23C00 802B6520 24040004 */ addiu $a0, $zero, 4
|
||||
/* E23C04 802B6524 8E8202B0 */ lw $v0, 0x2b0($s4)
|
||||
/* E23C08 802B6528 24420001 */ addiu $v0, $v0, 1
|
||||
/* E23C0C 802B652C AE8202B0 */ sw $v0, 0x2b0($s4)
|
||||
.L802B6530:
|
||||
/* E23C10 802B6530 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* E23C14 802B6534 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* E23C18 802B6538 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* E23C1C 802B653C 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* E23C20 802B6540 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* E23C24 802B6544 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E23C28 802B6548 03E00008 */ jr $ra
|
||||
/* E23C2C 802B654C 27BD0030 */ addiu $sp, $sp, 0x30
|
@ -1,45 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B6550_E23C30
|
||||
/* E23C30 802B6550 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* E23C34 802B6554 3C038011 */ lui $v1, %hi(gPlayerStatus)
|
||||
/* E23C38 802B6558 2463EFC8 */ addiu $v1, $v1, %lo(gPlayerStatus)
|
||||
/* E23C3C 802B655C AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* E23C40 802B6560 8C620004 */ lw $v0, 4($v1)
|
||||
/* E23C44 802B6564 30422000 */ andi $v0, $v0, 0x2000
|
||||
/* E23C48 802B6568 14400013 */ bnez $v0, .L802B65B8
|
||||
/* E23C4C 802B656C 00000000 */ nop
|
||||
/* E23C50 802B6570 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
||||
/* E23C54 802B6574 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
||||
/* E23C58 802B6578 9062007E */ lbu $v0, 0x7e($v1)
|
||||
/* E23C5C 802B657C 30420010 */ andi $v0, $v0, 0x10
|
||||
/* E23C60 802B6580 14400009 */ bnez $v0, .L802B65A8
|
||||
/* E23C64 802B6584 3C04000D */ lui $a0, 0xd
|
||||
/* E23C68 802B6588 90620080 */ lbu $v0, 0x80($v1)
|
||||
/* E23C6C 802B658C 00021080 */ sll $v0, $v0, 2
|
||||
/* E23C70 802B6590 3C04802B */ lui $a0, %hi(D_802B6910_E23FF0)
|
||||
/* E23C74 802B6594 00822021 */ addu $a0, $a0, $v0
|
||||
/* E23C78 802B6598 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23C7C 802B659C 8C846910 */ lw $a0, %lo(D_802B6910_E23FF0)($a0)
|
||||
/* E23C80 802B65A0 080AD977 */ j .L802B65DC
|
||||
/* E23C84 802B65A4 00000000 */ nop
|
||||
.L802B65A8:
|
||||
/* E23C88 802B65A8 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23C8C 802B65AC 3484000D */ ori $a0, $a0, 0xd
|
||||
/* E23C90 802B65B0 080AD977 */ j .L802B65DC
|
||||
/* E23C94 802B65B4 00000000 */ nop
|
||||
.L802B65B8:
|
||||
/* E23C98 802B65B8 8063000C */ lb $v1, 0xc($v1)
|
||||
/* E23C9C 802B65BC 00031040 */ sll $v0, $v1, 1
|
||||
/* E23CA0 802B65C0 00431021 */ addu $v0, $v0, $v1
|
||||
/* E23CA4 802B65C4 000210C0 */ sll $v0, $v0, 3
|
||||
/* E23CA8 802B65C8 3C04800F */ lui $a0, %hi(world_actions_peachDisguises+0x4)
|
||||
/* E23CAC 802B65CC 00822021 */ addu $a0, $a0, $v0
|
||||
/* E23CB0 802B65D0 8C847C20 */ lw $a0, %lo(world_actions_peachDisguises+0x4)($a0)
|
||||
/* E23CB4 802B65D4 0C0398DB */ jal peach_set_disguise_anim
|
||||
/* E23CB8 802B65D8 00000000 */ nop
|
||||
.L802B65DC:
|
||||
/* E23CBC 802B65DC 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* E23CC0 802B65E0 03E00008 */ jr $ra
|
||||
/* E23CC4 802B65E4 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,132 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802B6738_E23E18
|
||||
/* E23E18 802B6738 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* E23E1C 802B673C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* E23E20 802B6740 3C108011 */ lui $s0, %hi(gPlayerStatus)
|
||||
/* E23E24 802B6744 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
|
||||
/* E23E28 802B6748 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* E23E2C 802B674C 8E030000 */ lw $v1, ($s0)
|
||||
/* E23E30 802B6750 0461002E */ bgez $v1, .L802B680C
|
||||
/* E23E34 802B6754 3C027FFF */ lui $v0, 0x7fff
|
||||
/* E23E38 802B6758 3442FFFF */ ori $v0, $v0, 0xffff
|
||||
/* E23E3C 802B675C 00621024 */ and $v0, $v1, $v0
|
||||
/* E23E40 802B6760 AE020000 */ sw $v0, ($s0)
|
||||
/* E23E44 802B6764 30624000 */ andi $v0, $v1, 0x4000
|
||||
/* E23E48 802B6768 14400003 */ bnez $v0, .L802B6778
|
||||
/* E23E4C 802B676C AE000060 */ sw $zero, 0x60($s0)
|
||||
/* E23E50 802B6770 C600005C */ lwc1 $f0, 0x5c($s0)
|
||||
/* E23E54 802B6774 E6000054 */ swc1 $f0, 0x54($s0)
|
||||
.L802B6778:
|
||||
/* E23E58 802B6778 8E020004 */ lw $v0, 4($s0)
|
||||
/* E23E5C 802B677C 30422000 */ andi $v0, $v0, 0x2000
|
||||
/* E23E60 802B6780 14400019 */ bnez $v0, .L802B67E8
|
||||
/* E23E64 802B6784 00000000 */ nop
|
||||
/* E23E68 802B6788 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
||||
/* E23E6C 802B678C 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
||||
/* E23E70 802B6790 9062007E */ lbu $v0, 0x7e($v1)
|
||||
/* E23E74 802B6794 30420010 */ andi $v0, $v0, 0x10
|
||||
/* E23E78 802B6798 1440000F */ bnez $v0, .L802B67D8
|
||||
/* E23E7C 802B679C 3C04000D */ lui $a0, 0xd
|
||||
/* E23E80 802B67A0 90620080 */ lbu $v0, 0x80($v1)
|
||||
/* E23E84 802B67A4 14400006 */ bnez $v0, .L802B67C0
|
||||
/* E23E88 802B67A8 00021080 */ sll $v0, $v0, 2
|
||||
/* E23E8C 802B67AC 3C04000A */ lui $a0, 0xa
|
||||
/* E23E90 802B67B0 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23E94 802B67B4 34840003 */ ori $a0, $a0, 3
|
||||
/* E23E98 802B67B8 080ADA03 */ j .L802B680C
|
||||
/* E23E9C 802B67BC 00000000 */ nop
|
||||
.L802B67C0:
|
||||
/* E23EA0 802B67C0 3C04802B */ lui $a0, %hi(D_802B6910_E23FF0)
|
||||
/* E23EA4 802B67C4 00822021 */ addu $a0, $a0, $v0
|
||||
/* E23EA8 802B67C8 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23EAC 802B67CC 8C846910 */ lw $a0, %lo(D_802B6910_E23FF0)($a0)
|
||||
/* E23EB0 802B67D0 080ADA03 */ j .L802B680C
|
||||
/* E23EB4 802B67D4 00000000 */ nop
|
||||
.L802B67D8:
|
||||
/* E23EB8 802B67D8 0C037FBF */ jal suggest_player_anim_clearUnkFlag
|
||||
/* E23EBC 802B67DC 3484000D */ ori $a0, $a0, 0xd
|
||||
/* E23EC0 802B67E0 080ADA03 */ j .L802B680C
|
||||
/* E23EC4 802B67E4 00000000 */ nop
|
||||
.L802B67E8:
|
||||
/* E23EC8 802B67E8 8203000C */ lb $v1, 0xc($s0)
|
||||
/* E23ECC 802B67EC 00031040 */ sll $v0, $v1, 1
|
||||
/* E23ED0 802B67F0 00431021 */ addu $v0, $v0, $v1
|
||||
/* E23ED4 802B67F4 000210C0 */ sll $v0, $v0, 3
|
||||
/* E23ED8 802B67F8 3C04800F */ lui $a0, %hi(world_actions_peachDisguises+0x8)
|
||||
/* E23EDC 802B67FC 00822021 */ addu $a0, $a0, $v0
|
||||
/* E23EE0 802B6800 8C847C24 */ lw $a0, %lo(world_actions_peachDisguises+0x8)($a0)
|
||||
/* E23EE4 802B6804 0C0398DB */ jal peach_set_disguise_anim
|
||||
/* E23EE8 802B6808 00000000 */ nop
|
||||
.L802B680C:
|
||||
/* E23EEC 802B680C 8E020000 */ lw $v0, ($s0)
|
||||
/* E23EF0 802B6810 30424000 */ andi $v0, $v0, 0x4000
|
||||
/* E23EF4 802B6814 10400004 */ beqz $v0, .L802B6828
|
||||
/* E23EF8 802B6818 24040004 */ addiu $a0, $zero, 4
|
||||
/* E23EFC 802B681C C60000A0 */ lwc1 $f0, 0xa0($s0)
|
||||
/* E23F00 802B6820 080ADA3B */ j .L802B68EC
|
||||
/* E23F04 802B6824 E6000080 */ swc1 $f0, 0x80($s0)
|
||||
.L802B6828:
|
||||
/* E23F08 802B6828 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E23F0C 802B682C C600005C */ lwc1 $f0, 0x5c($s0)
|
||||
/* E23F10 802B6830 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* E23F14 802B6834 0C0388C1 */ jal player_input_to_move_vector
|
||||
/* E23F18 802B6838 E6000054 */ swc1 $f0, 0x54($s0)
|
||||
/* E23F1C 802B683C 0C039454 */ jal phys_update_interact_collider
|
||||
/* E23F20 802B6840 00000000 */ nop
|
||||
/* E23F24 802B6844 C7A20014 */ lwc1 $f2, 0x14($sp)
|
||||
/* E23F28 802B6848 44800000 */ mtc1 $zero, $f0
|
||||
/* E23F2C 802B684C 00000000 */ nop
|
||||
/* E23F30 802B6850 46001032 */ c.eq.s $f2, $f0
|
||||
/* E23F34 802B6854 00000000 */ nop
|
||||
/* E23F38 802B6858 45000005 */ bc1f .L802B6870
|
||||
/* E23F3C 802B685C 00000000 */ nop
|
||||
/* E23F40 802B6860 0C039769 */ jal set_action_state
|
||||
/* E23F44 802B6864 0000202D */ daddu $a0, $zero, $zero
|
||||
/* E23F48 802B6868 080ADA3D */ j .L802B68F4
|
||||
/* E23F4C 802B686C 00000000 */ nop
|
||||
.L802B6870:
|
||||
/* E23F50 802B6870 8E0200E8 */ lw $v0, 0xe8($s0)
|
||||
/* E23F54 802B6874 00420018 */ mult $v0, $v0
|
||||
/* E23F58 802B6878 00001812 */ mflo $v1
|
||||
/* E23F5C 802B687C 8E0200EC */ lw $v0, 0xec($s0)
|
||||
/* E23F60 802B6880 00000000 */ nop
|
||||
/* E23F64 802B6884 00420018 */ mult $v0, $v0
|
||||
/* E23F68 802B6888 C7A00010 */ lwc1 $f0, 0x10($sp)
|
||||
/* E23F6C 802B688C 00001012 */ mflo $v0
|
||||
/* E23F70 802B6890 00621021 */ addu $v0, $v1, $v0
|
||||
/* E23F74 802B6894 44826000 */ mtc1 $v0, $f12
|
||||
/* E23F78 802B6898 00000000 */ nop
|
||||
/* E23F7C 802B689C 46806320 */ cvt.s.w $f12, $f12
|
||||
/* E23F80 802B68A0 46006084 */ sqrt.s $f2, $f12
|
||||
/* E23F84 802B68A4 46021032 */ c.eq.s $f2, $f2
|
||||
/* E23F88 802B68A8 00000000 */ nop
|
||||
/* E23F8C 802B68AC 45010004 */ bc1t .L802B68C0
|
||||
/* E23F90 802B68B0 E6000080 */ swc1 $f0, 0x80($s0)
|
||||
/* E23F94 802B68B4 0C0187BC */ jal sqrtf
|
||||
/* E23F98 802B68B8 00000000 */ nop
|
||||
/* E23F9C 802B68BC 46000086 */ mov.s $f2, $f0
|
||||
.L802B68C0:
|
||||
/* E23FA0 802B68C0 3C01425C */ lui $at, 0x425c
|
||||
/* E23FA4 802B68C4 44810000 */ mtc1 $at, $f0
|
||||
/* E23FA8 802B68C8 00000000 */ nop
|
||||
/* E23FAC 802B68CC 4600103C */ c.lt.s $f2, $f0
|
||||
/* E23FB0 802B68D0 00000000 */ nop
|
||||
/* E23FB4 802B68D4 45000005 */ bc1f .L802B68EC
|
||||
/* E23FB8 802B68D8 24040004 */ addiu $a0, $zero, 4
|
||||
/* E23FBC 802B68DC 0C039769 */ jal set_action_state
|
||||
/* E23FC0 802B68E0 24040001 */ addiu $a0, $zero, 1
|
||||
/* E23FC4 802B68E4 080ADA3D */ j .L802B68F4
|
||||
/* E23FC8 802B68E8 00000000 */ nop
|
||||
.L802B68EC:
|
||||
/* E23FCC 802B68EC 0C039426 */ jal try_player_footstep_sounds
|
||||
/* E23FD0 802B68F0 00000000 */ nop
|
||||
.L802B68F4:
|
||||
/* E23FD4 802B68F4 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* E23FD8 802B68F8 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* E23FDC 802B68FC 03E00008 */ jr $ra
|
||||
/* E23FE0 802B6900 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* E23FE4 802B6904 00000000 */ nop
|
||||
/* E23FE8 802B6908 00000000 */ nop
|
||||
/* E23FEC 802B690C 00000000 */ nop
|
@ -10365,7 +10365,7 @@ segments:
|
||||
overlay: True
|
||||
subsegments:
|
||||
- [0xE236E0, c, walk]
|
||||
- [0xE23FF0, data, walk]
|
||||
- [0xE23FF0]
|
||||
- type: code
|
||||
name: world_action_jump
|
||||
dir: world/action
|
||||
|
Loading…
Reference in New Issue
Block a user