diff --git a/src/game/bondwalk.c b/src/game/bondwalk.c index 7c0b277cb..54acc0f9f 100644 --- a/src/game/bondwalk.c +++ b/src/game/bondwalk.c @@ -2841,7 +2841,7 @@ GLOBAL_ASM( glabel func0f0c5fe8 /* f0c5fe8: 27bdffe8 */ addiu $sp,$sp,-24 /* f0c5fec: afbf0014 */ sw $ra,0x14($sp) -/* f0c5ff0: 0fc331a0 */ jal func0f0cc680 +/* f0c5ff0: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c5ff4: 00000000 */ sll $zero,$zero,0x0 /* f0c5ff8: 24010001 */ addiu $at,$zero,0x1 /* f0c5ffc: 1441000d */ bne $v0,$at,.L0f0c6034 @@ -2859,7 +2859,7 @@ glabel func0f0c5fe8 /* f0c602c: 10000010 */ beqz $zero,.L0f0c6070 /* f0c6030: e44a0168 */ swc1 $f10,0x168($v0) .L0f0c6034: -/* f0c6034: 0fc331a0 */ jal func0f0cc680 +/* f0c6034: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c6038: 00000000 */ sll $zero,$zero,0x0 /* f0c603c: 1440000c */ bnez $v0,.L0f0c6070 /* f0c6040: 3c03800a */ lui $v1,%hi(g_Vars) @@ -2959,7 +2959,7 @@ glabel func0f0c6180 /* f0c6184: f7b40020 */ sdc1 $f20,0x20($sp) /* f0c6188: afbf002c */ sw $ra,0x2c($sp) /* f0c618c: 4480a000 */ mtc1 $zero,$f20 -/* f0c6190: 0fc331a0 */ jal func0f0cc680 +/* f0c6190: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c6194: afb00028 */ sw $s0,0x28($sp) /* f0c6198: 14400004 */ bnez $v0,.L0f0c61ac /* f0c619c: 3c01c2b4 */ lui $at,0xc2b4 @@ -2967,7 +2967,7 @@ glabel func0f0c6180 /* f0c61a4: 1000000b */ beqz $zero,.L0f0c61d4 /* f0c61a8: 00000000 */ sll $zero,$zero,0x0 .L0f0c61ac: -/* f0c61ac: 0fc331a0 */ jal func0f0cc680 +/* f0c61ac: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c61b0: 00000000 */ sll $zero,$zero,0x0 /* f0c61b4: 24010001 */ addiu $at,$zero,0x1 /* f0c61b8: 14410004 */ bne $v0,$at,.L0f0c61cc @@ -2976,7 +2976,7 @@ glabel func0f0c6180 /* f0c61c4: 10000003 */ beqz $zero,.L0f0c61d4 /* f0c61c8: 00000000 */ sll $zero,$zero,0x0 .L0f0c61cc: -/* f0c61cc: 0fc331a0 */ jal func0f0cc680 +/* f0c61cc: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c61d0: 00000000 */ sll $zero,$zero,0x0 .L0f0c61d4: /* f0c61d4: 3c10800a */ lui $s0,%hi(g_Vars) @@ -3443,7 +3443,7 @@ glabel func0f0c65c8 /* f0c6860: 11200005 */ beqz $t1,.L0f0c6878 /* f0c6864: 00000000 */ sll $zero,$zero,0x0 .L0f0c6868: -/* f0c6868: 0fc331a0 */ jal func0f0cc680 +/* f0c6868: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c686c: 00000000 */ sll $zero,$zero,0x0 /* f0c6870: 24010002 */ addiu $at,$zero,0x2 /* f0c6874: 10410003 */ beq $v0,$at,.L0f0c6884 @@ -3515,7 +3515,7 @@ GLOBAL_ASM( glabel func0f0c6948 /* f0c6948: 27bdffe8 */ addiu $sp,$sp,-24 /* f0c694c: afbf0014 */ sw $ra,0x14($sp) -/* f0c6950: 0fc331a0 */ jal func0f0cc680 +/* f0c6950: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c6954: 00000000 */ sll $zero,$zero,0x0 /* f0c6958: 14400008 */ bnez $v0,.L0f0c697c /* f0c695c: 3c02800a */ lui $v0,0x800a @@ -3527,7 +3527,7 @@ glabel func0f0c6948 /* f0c6974: 1000000c */ beqz $zero,.L0f0c69a8 /* f0c6978: e4480148 */ swc1 $f8,0x148($v0) .L0f0c697c: -/* f0c697c: 0fc331a0 */ jal func0f0cc680 +/* f0c697c: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c6980: 00000000 */ sll $zero,$zero,0x0 /* f0c6984: 24010001 */ addiu $at,$zero,0x1 /* f0c6988: 14410007 */ bne $v0,$at,.L0f0c69a8 diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 71f8dcd90..9bb4392ae 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -10314,7 +10314,7 @@ bool aiChrGrabObject(void) setCurrentPlayerNum(playernum); if (g_Vars.currentplayer->bondmovemode == MOVEMODE_WALK - && func0f0cc680() == 2 + && currentPlayerGetCrouchPos() == 2 && g_Vars.currentplayer->unk00b4 == 0) { currentPlayerGrabProp(obj->prop); } diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index a3b4c28c8..26a352ae4 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -2723,7 +2723,7 @@ glabel func0f062270 /* f062644: 0fc0ffcb */ jal func0f03ff2c /* f062648: afae0010 */ sw $t6,0x10($sp) .L0f06264c: -/* f06264c: 0fc331a0 */ jal func0f0cc680 +/* f06264c: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f062650: 00000000 */ sll $zero,$zero,0x0 /* f062654: 24010001 */ addiu $at,$zero,0x1 /* f062658: 14410003 */ bne $v0,$at,.L0f062668 @@ -2731,7 +2731,7 @@ glabel func0f062270 /* f062660: 10000009 */ beqz $zero,.L0f062688 /* f062664: afb9009c */ sw $t9,0x9c($sp) .L0f062668: -/* f062668: 0fc331a0 */ jal func0f0cc680 +/* f062668: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f06266c: 00000000 */ sll $zero,$zero,0x0 /* f062670: 14400004 */ bnez $v0,.L0f062684 /* f062674: 2409000f */ addiu $t1,$zero,0xf diff --git a/src/game/game_066310.c b/src/game/game_066310.c index 6a41e313f..f9f91489c 100644 --- a/src/game/game_066310.c +++ b/src/game/game_066310.c @@ -37378,7 +37378,7 @@ glabel func0f0869cc /* f086a78: 14400028 */ bnez $v0,.L0f086b1c /* f086a7c: 00000000 */ sll $zero,$zero,0x0 /* f086a80: afa50024 */ sw $a1,0x24($sp) -/* f086a84: 0fc331a0 */ jal func0f0cc680 +/* f086a84: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f086a88: afa60028 */ sw $a2,0x28($sp) /* f086a8c: 24010002 */ addiu $at,$zero,0x2 /* f086a90: 8fa50024 */ lw $a1,0x24($sp) @@ -37402,7 +37402,7 @@ glabel func0f0869cc /* f086ad4: 15a00011 */ bnez $t5,.L0f086b1c /* f086ad8: 00000000 */ sll $zero,$zero,0x0 /* f086adc: afa50024 */ sw $a1,0x24($sp) -/* f086ae0: 0fc331a0 */ jal func0f0cc680 +/* f086ae0: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f086ae4: afa60028 */ sw $a2,0x28($sp) /* f086ae8: 24010002 */ addiu $at,$zero,0x2 /* f086aec: 8fa50024 */ lw $a1,0x24($sp) @@ -37623,7 +37623,7 @@ glabel func0f086d60 /* f086e04: 54400011 */ bnezl $v0,.L0f086e4c /* f086e08: 00001825 */ or $v1,$zero,$zero /* f086e0c: afa30028 */ sw $v1,0x28($sp) -/* f086e10: 0fc331a0 */ jal func0f0cc680 +/* f086e10: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f086e14: afa5002c */ sw $a1,0x2c($sp) /* f086e18: 24010002 */ addiu $at,$zero,0x2 /* f086e1c: 8fa30028 */ lw $v1,0x28($sp) @@ -37989,7 +37989,7 @@ glabel func0f086f40 /* f08733c: 8df801b0 */ lw $t8,0x1b0($t7) /* f087340: 17000012 */ bnez $t8,.L0f08738c /* f087344: 00000000 */ sll $zero,$zero,0x0 -/* f087348: 0fc331a0 */ jal func0f0cc680 +/* f087348: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f08734c: 00000000 */ sll $zero,$zero,0x0 /* f087350: 24010002 */ addiu $at,$zero,0x2 /* f087354: 1441000d */ bne $v0,$at,.L0f08738c diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index bcb00e57d..85e3a5112 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -6792,7 +6792,7 @@ glabel func0f09d8dc .L0f09d9b8: /* f09d9b8: e60015f8 */ swc1 $f0,0x15f8($s0) .L0f09d9bc: -/* f09d9bc: 0fc331a0 */ jal func0f0cc680 +/* f09d9bc: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f09d9c0: e7b00050 */ swc1 $f16,0x50($sp) /* f09d9c4: 3c03800a */ lui $v1,%hi(g_Vars) /* f09d9c8: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars) @@ -10427,7 +10427,7 @@ glabel func0f0a0cb0 /* f0a0d64: 46041082 */ mul.s $f2,$f2,$f4 /* f0a0d68: 00000000 */ sll $zero,$zero,0x0 .L0f0a0d6c: -/* f0a0d6c: 0fc331a0 */ jal func0f0cc680 +/* f0a0d6c: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0a0d70: e7a2003c */ swc1 $f2,0x3c($sp) /* f0a0d74: 14400006 */ bnez $v0,.L0f0a0d90 /* f0a0d78: c7a2003c */ lwc1 $f2,0x3c($sp) diff --git a/src/game/game_0c79f0.c b/src/game/game_0c79f0.c index 3f2113ffd..7a5620fd5 100644 --- a/src/game/game_0c79f0.c +++ b/src/game/game_0c79f0.c @@ -1854,7 +1854,7 @@ glabel var7f1ad8e4 /* f0c999c: 5616ffab */ bnel $s0,$s6,.L0f0c984c /* f0c99a0: 8fab01a8 */ lw $t3,0x1a8($sp) .L0f0c99a4: -/* f0c99a4: 0fc331a0 */ jal func0f0cc680 +/* f0c99a4: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0c99a8: 00000000 */ sll $zero,$zero,0x0 /* f0c99ac: 1440001d */ bnez $v0,.L0f0c9a24 /* f0c99b0: 00000000 */ sll $zero,$zero,0x0 @@ -2762,7 +2762,7 @@ glabel var7f1ad8e4 /* f0ca668: 5616ffb3 */ bnel $s0,$s6,.L0f0ca538 /* f0ca66c: 8fae01a8 */ lw $t6,0x1a8($sp) .L0f0ca670: -/* f0ca670: 0fc331a0 */ jal func0f0cc680 +/* f0ca670: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f0ca674: 00000000 */ sll $zero,$zero,0x0 /* f0ca678: 1440001e */ bnez $v0,.L0f0ca6f4 /* f0ca67c: 00000000 */ sll $zero,$zero,0x0 @@ -4503,21 +4503,12 @@ glabel func0f0cc654 /* f0cc67c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f0cc680 -/* f0cc680: 3c02800a */ lui $v0,0x800a -/* f0cc684: 8c42a244 */ lw $v0,-0x5dbc($v0) -/* f0cc688: 8c4300ac */ lw $v1,0xac($v0) -/* f0cc68c: 8c4400b0 */ lw $a0,0xb0($v0) -/* f0cc690: 0064082a */ slt $at,$v1,$a0 -/* f0cc694: 10200003 */ beqz $at,.L0f0cc6a4 -/* f0cc698: 00802825 */ or $a1,$a0,$zero -/* f0cc69c: 03e00008 */ jr $ra -/* f0cc6a0: 00601025 */ or $v0,$v1,$zero -.L0f0cc6a4: -/* f0cc6a4: 03e00008 */ jr $ra -/* f0cc6a8: 00a01025 */ or $v0,$a1,$zero -); +s32 currentPlayerGetCrouchPos(void) +{ + return (g_Vars.currentplayer->crouchpos < g_Vars.currentplayer->autocrouchpos) + ? g_Vars.currentplayer->crouchpos + : g_Vars.currentplayer->autocrouchpos; +} GLOBAL_ASM( glabel func0f0cc6ac diff --git a/src/game/game_113220.c b/src/game/game_113220.c index 588083ace..2f8c1d0bb 100644 --- a/src/game/game_113220.c +++ b/src/game/game_113220.c @@ -464,7 +464,7 @@ glabel var7f1b3a74 /* f113d64: ac4003b4 */ sw $zero,0x3b4($v0) /* f113d68: 0fc44df2 */ jal currentPlayerSetHeadAmp /* f113d6c: c42c3a6c */ lwc1 $f12,%lo(var7f1b3a6c)($at) -/* f113d70: 0fc331a0 */ jal func0f0cc680 +/* f113d70: 0fc331a0 */ jal currentPlayerGetCrouchPos /* f113d74: 00000000 */ sll $zero,$zero,0x0 /* f113d78: 1040005b */ beqz $v0,.L0f113ee8 /* f113d7c: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/include/game/game_0c79f0.h b/src/include/game/game_0c79f0.h index 387f3a063..3142bbf43 100644 --- a/src/include/game/game_0c79f0.h +++ b/src/include/game/game_0c79f0.h @@ -40,7 +40,7 @@ void func0f0cbf50(void); void func0f0cc19c(struct coord *arg); u32 func0f0cc3b8(void); u32 func0f0cc654(void); -u32 func0f0cc680(void); +s32 currentPlayerGetCrouchPos(void); u32 func0f0cc6ac(void); #endif diff --git a/src/include/types.h b/src/include/types.h index 68bde1624..b354f666e 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1061,8 +1061,8 @@ struct player { /*0x00a0*/ u32 unk00a0; /*0x00a4*/ u32 unk00a4; /*0x00a8*/ u32 unk00a8; - /*0x00ac*/ u32 unk00ac; - /*0x00b0*/ u32 unk00b0; + /*0x00ac*/ s32 crouchpos; + /*0x00b0*/ s32 autocrouchpos; /*0x00b4*/ f32 unk00b4; /*0x00b8*/ u32 unk00b8; /*0x00bc*/ struct prop *prop;