diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index dd510e1e0..c13ab539b 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -5483,7 +5483,7 @@ glabel func0f064ce8 /* f064d6c: 00000000 */ sll $zero,$zero,0x0 /* f064d70: 24100001 */ addiu $s0,$zero,0x1 .L0f064d74: -/* f064d74: 0fc6830c */ jal func0f1a0c30 +/* f064d74: 0fc6830c */ jal frIsInTraining /* f064d78: 24140003 */ addiu $s4,$zero,0x3 /* f064d7c: 10400009 */ beqz $v0,.L0f064da4 /* f064d80: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/game/game_102240.c b/src/game/game_102240.c index c614c2378..369821a9a 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -4604,7 +4604,7 @@ bool soloChoosePauseDialog(void) dtPushEndscreen(); handled = true; } else if (room == CIROOM_FIRINGRANGE) { - if (func0f1a0c30()) { + if (frIsInTraining()) { menuPushRootDialog(&g_FrTrainingInfoMenuDialog, MENUROOT_TRAINING); } else { menuPushRootDialog(&g_FrWeaponListMenuDialog, MENUROOT_TRAINING); diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 5939bb182..29bdccfea 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -2382,7 +2382,7 @@ glabel var7f1b7868 /* f169f94: 3c054000 */ lui $a1,0x4000 /* f169f98: 5040002c */ beqzl $v0,.L0f16a04c /* f169f9c: 8e700284 */ lw $s0,0x284($s3) -/* f169fa0: 0fc6830c */ jal func0f1a0c30 +/* f169fa0: 0fc6830c */ jal frIsInTraining /* f169fa4: 00000000 */ sll $zero,$zero,0x0 /* f169fa8: 5040000f */ beqzl $v0,.L0f169fe8 /* f169fac: 8e640284 */ lw $a0,0x284($s3) diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 7c7d627a1..a96b12154 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -4935,7 +4935,7 @@ glabel func0f1a0a70 /* f1a0c2c: 27bd0060 */ addiu $sp,$sp,0x60 ); -s32 func0f1a0c30(void) +s32 frIsInTraining(void) { if (g_FiringRangeData.unk464 > 0 && (g_FiringRangeData.unk465 == 2 || g_FiringRangeData.unk465 == 3)) { diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index e016e3b82..703bb64aa 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -49,7 +49,7 @@ glabel menuhandler001a3340 /* f1a3364: 10000034 */ beqz $zero,.L0f1a3438 /* f1a3368: 24020001 */ addiu $v0,$zero,0x1 .L0f1a336c: -/* f1a336c: 0fc6830c */ jal func0f1a0c30 +/* f1a336c: 0fc6830c */ jal frIsInTraining /* f1a3370: 00000000 */ sll $zero,$zero,0x0 /* f1a3374: 1440002d */ bnez $v0,.L0f1a342c /* f1a3378: 00000000 */ sll $zero,$zero,0x0 @@ -115,7 +115,7 @@ glabel menuhandler001a3340 s32 menuhandler001a3448(u32 operation, struct menu_item *item, s32 *value) { if (operation == MENUOP_SET) { - if (func0f1a0c30()) { + if (frIsInTraining()) { func0f19ecdc(1); } } @@ -546,7 +546,7 @@ glabel var7f1b9944 /* f1a3a18: ac22ee28 */ sw $v0,%lo(g_MenuStack+0xe28)($at) /* f1a3a1c: 0fc41652 */ jal func0f105948 /* f1a3a20: 00402025 */ or $a0,$v0,$zero -/* f1a3a24: 0fc6830c */ jal func0f1a0c30 +/* f1a3a24: 0fc6830c */ jal frIsInTraining /* f1a3a28: 00000000 */ sll $zero,$zero,0x0 /* f1a3a2c: 5440002d */ bnezl $v0,.L0f1a3ae4 /* f1a3a30: 8fbf0014 */ lw $ra,0x14($sp) @@ -589,7 +589,7 @@ glabel var7f1b9944 /* f1a3ac0: 10000007 */ beqz $zero,.L0f1a3ae0 /* f1a3ac4: e4400d64 */ swc1 $f0,0xd64($v0) .L0f1a3ac8: -/* f1a3ac8: 0fc6830c */ jal func0f1a0c30 +/* f1a3ac8: 0fc6830c */ jal frIsInTraining /* f1a3acc: 00000000 */ sll $zero,$zero,0x0 /* f1a3ad0: 54400004 */ bnezl $v0,.L0f1a3ae4 /* f1a3ad4: 8fbf0014 */ lw $ra,0x14($sp) @@ -612,7 +612,7 @@ glabel menudialog001a3af4 /* f1a3b00: afa5001c */ sw $a1,0x1c($sp) /* f1a3b04: 14810007 */ bne $a0,$at,.L0f1a3b24 /* f1a3b08: afa60020 */ sw $a2,0x20($sp) -/* f1a3b0c: 0fc6830c */ jal func0f1a0c30 +/* f1a3b0c: 0fc6830c */ jal frIsInTraining /* f1a3b10: 00000000 */ sll $zero,$zero,0x0 /* f1a3b14: 54400004 */ bnezl $v0,.L0f1a3b28 /* f1a3b18: 8fbf0014 */ lw $ra,0x14($sp) diff --git a/src/game/propobj.c b/src/game/propobj.c index 177e96452..14a958bb2 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -21795,7 +21795,7 @@ glabel var7f1aa580 /* f079024: afa2006c */ sw $v0,0x6c($sp) /* f079028: afa3006c */ sw $v1,0x6c($sp) .L0f07902c: -/* f07902c: 0fc6830c */ jal func0f1a0c30 +/* f07902c: 0fc6830c */ jal frIsInTraining /* f079030: afa800ac */ sw $t0,0xac($sp) /* f079034: 1040000a */ beqz $v0,.L0f079060 /* f079038: 8fa800ac */ lw $t0,0xac($sp) @@ -21967,7 +21967,7 @@ glabel var7f1aa580 /* f079294: 10410009 */ beq $v0,$at,.L0f0792bc /* f079298: afa3006c */ sw $v1,0x6c($sp) /* f07929c: afa3006c */ sw $v1,0x6c($sp) -/* f0792a0: 0fc6830c */ jal func0f1a0c30 +/* f0792a0: 0fc6830c */ jal frIsInTraining /* f0792a4: afa800ac */ sw $t0,0xac($sp) /* f0792a8: 3c09800a */ lui $t1,%hi(g_Vars) /* f0792ac: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars) @@ -37956,7 +37956,7 @@ bool propobjInteract(struct prop *prop) } else if (tag_id == 0x7f) { handled = true; - if (func0f1a0c30()) { + if (frIsInTraining()) { func0f0f85e0(&g_FrTrainingInfoMenuDialog, MENUROOT_TRAINING); } else { func0f0f85e0(&g_FrWeaponListMenuDialog, MENUROOT_TRAINING); @@ -38692,95 +38692,39 @@ u32 propPlayPickupSound(struct prop *prop, s32 weapon) -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1); } -GLOBAL_ASM( -glabel func0f087d10 -/* f087d10: 27bdffd8 */ addiu $sp,$sp,-40 -/* f087d14: 2402001a */ addiu $v0,$zero,0x1a -/* f087d18: 10820003 */ beq $a0,$v0,.L0f087d28 -/* f087d1c: afbf0024 */ sw $ra,0x24($sp) -/* f087d20: 14820003 */ bne $a0,$v0,.L0f087d30 -/* f087d24: 24010022 */ addiu $at,$zero,0x22 -.L0f087d28: -/* f087d28: 10000030 */ beqz $zero,.L0f087dec -/* f087d2c: 240200e9 */ addiu $v0,$zero,0xe9 -.L0f087d30: -/* f087d30: 1081000d */ beq $a0,$at,.L0f087d68 -/* f087d34: 24010021 */ addiu $at,$zero,0x21 -/* f087d38: 1081000b */ beq $a0,$at,.L0f087d68 -/* f087d3c: 24010020 */ addiu $at,$zero,0x20 -/* f087d40: 10810009 */ beq $a0,$at,.L0f087d68 -/* f087d44: 2401003e */ addiu $at,$zero,0x3e -/* f087d48: 10810007 */ beq $a0,$at,.L0f087d68 -/* f087d4c: 2401003f */ addiu $at,$zero,0x3f -/* f087d50: 10810005 */ beq $a0,$at,.L0f087d68 -/* f087d54: 2401003d */ addiu $at,$zero,0x3d -/* f087d58: 10810003 */ beq $a0,$at,.L0f087d68 -/* f087d5c: 24010035 */ addiu $at,$zero,0x35 -/* f087d60: 54810004 */ bnel $a0,$at,.L0f087d74 -/* f087d64: 2401001e */ addiu $at,$zero,0x1e -.L0f087d68: -/* f087d68: 10000020 */ beqz $zero,.L0f087dec -/* f087d6c: 240200eb */ addiu $v0,$zero,0xeb -/* f087d70: 2401001e */ addiu $at,$zero,0x1e -.L0f087d74: -/* f087d74: 10810007 */ beq $a0,$at,.L0f087d94 -/* f087d78: 24010055 */ addiu $at,$zero,0x55 -/* f087d7c: 10810005 */ beq $a0,$at,.L0f087d94 -/* f087d80: 24010053 */ addiu $at,$zero,0x53 -/* f087d84: 10810003 */ beq $a0,$at,.L0f087d94 -/* f087d88: 24010054 */ addiu $at,$zero,0x54 -/* f087d8c: 54810004 */ bnel $a0,$at,.L0f087da0 -/* f087d90: 2401001d */ addiu $at,$zero,0x1d -.L0f087d94: -/* f087d94: 10000015 */ beqz $zero,.L0f087dec -/* f087d98: 240200ea */ addiu $v0,$zero,0xea -/* f087d9c: 2401001d */ addiu $at,$zero,0x1d -.L0f087da0: -/* f087da0: 54810004 */ bnel $a0,$at,.L0f087db4 -/* f087da4: 24010056 */ addiu $at,$zero,0x56 -/* f087da8: 10000010 */ beqz $zero,.L0f087dec -/* f087dac: 240200f2 */ addiu $v0,$zero,0xf2 -/* f087db0: 24010056 */ addiu $at,$zero,0x56 -.L0f087db4: -/* f087db4: 54810004 */ bnel $a0,$at,.L0f087dc8 -/* f087db8: 2401002e */ addiu $at,$zero,0x2e -/* f087dbc: 1000000b */ beqz $zero,.L0f087dec -/* f087dc0: 240200e8 */ addiu $v0,$zero,0xe8 -/* f087dc4: 2401002e */ addiu $at,$zero,0x2e -.L0f087dc8: -/* f087dc8: 54810004 */ bnel $a0,$at,.L0f087ddc -/* f087dcc: 2881002d */ slti $at,$a0,0x2d -/* f087dd0: 10000006 */ beqz $zero,.L0f087dec -/* f087dd4: 240200e5 */ addiu $v0,$zero,0xe5 -/* f087dd8: 2881002d */ slti $at,$a0,0x2d -.L0f087ddc: -/* f087ddc: 14200003 */ bnez $at,.L0f087dec -/* f087de0: 240200e8 */ addiu $v0,$zero,0xe8 -/* f087de4: 10000001 */ beqz $zero,.L0f087dec -/* f087de8: 240200e5 */ addiu $v0,$zero,0xe5 -.L0f087dec: -/* f087dec: 3c01bf80 */ lui $at,0xbf80 -/* f087df0: 44812000 */ mtc1 $at,$f4 -/* f087df4: 00022c00 */ sll $a1,$v0,0x10 -/* f087df8: 00057403 */ sra $t6,$a1,0x10 -/* f087dfc: 3c048009 */ lui $a0,%hi(var80095200) -/* f087e00: 240fffff */ addiu $t7,$zero,-1 -/* f087e04: 2418ffff */ addiu $t8,$zero,-1 -/* f087e08: 2419ffff */ addiu $t9,$zero,-1 -/* f087e0c: afb9001c */ sw $t9,0x1c($sp) -/* f087e10: afb80018 */ sw $t8,0x18($sp) -/* f087e14: afaf0010 */ sw $t7,0x10($sp) -/* f087e18: 8c845200 */ lw $a0,%lo(var80095200)($a0) -/* f087e1c: 01c02825 */ or $a1,$t6,$zero -/* f087e20: 00003025 */ or $a2,$zero,$zero -/* f087e24: 2407ffff */ addiu $a3,$zero,-1 -/* f087e28: 0c004241 */ jal func00010904 -/* f087e2c: e7a40014 */ swc1 $f4,0x14($sp) -/* f087e30: 8fbf0024 */ lw $ra,0x24($sp) -/* f087e34: 27bd0028 */ addiu $sp,$sp,0x28 -/* f087e38: 03e00008 */ jr $ra -/* f087e3c: 00000000 */ sll $zero,$zero,0x0 -); +void func0f087d10(s32 weaponnum) +{ + s32 sound; + + if (weaponnum == WEAPON_COMBATKNIFE || weaponnum == WEAPON_COMBATKNIFE) { + sound = 0xe9; + } else if (weaponnum == WEAPON_REMOTEMINE + || weaponnum == WEAPON_PROXIMITYMINE + || weaponnum == WEAPON_TIMEDMINE + || weaponnum == WEAPON_TRACERBUG + || weaponnum == WEAPON_TARGETAMPLIFIER + || weaponnum == WEAPON_COMMSRIDER + || weaponnum == WEAPON_ECMMINE) { + sound = 0xeb; + } else if (weaponnum == WEAPON_GRENADE + || weaponnum == WEAPON_GRENADEROUND + || weaponnum == WEAPON_ROCKET + || weaponnum == WEAPON_HOMINGROCKET) { + sound = 0xea; + } else if (weaponnum == WEAPON_LASER) { + sound = 0xf2; + } else if (weaponnum == WEAPON_BOLT) { + sound = 0xe8; + } else if (weaponnum == WEAPON_CAMSPY) { + sound = 0xe5; + } else if (weaponnum > WEAPON_PSYCHOSISGUN) { + sound = 0xe5; + } else { + sound = 0xe8; + } + + func00010904(var80095200, sound, 0, -1, -1, -1, -1, -1); +} GLOBAL_ASM( glabel func0f087e40 diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index 0aaedfe9b..0a6105f5e 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -54,7 +54,7 @@ u32 func0f19f524(void); void func0f19f994(void); u32 func0f1a0924(void); u32 func0f1a0a70(void); -s32 func0f1a0c30(void); +s32 frIsInTraining(void); u32 func0f1a0cc0(void); u32 func0f1a0fc8(void); bool ciIsChrBioUnlocked(u32 bodynum); diff --git a/src/include/game/propobj.h b/src/include/game/propobj.h index 6cf83109f..841be6035 100644 --- a/src/include/game/propobj.h +++ b/src/include/game/propobj.h @@ -238,7 +238,7 @@ u32 func0f087668(void); u32 func0f08791c(void); void func0f087b0c(u32 arg0); u32 propPlayPickupSound(struct prop *prop, s32 weapon); -void func0f087d10(u32 weaponnum); +void func0f087d10(s32 weaponnum); u32 func0f087e40(void); u32 func0f087fb0(void); u32 func0f088028(void); diff --git a/src/include/lib/lib_0e9d0.h b/src/include/lib/lib_0e9d0.h index 7cc27e83f..7857da2da 100644 --- a/src/include/lib/lib_0e9d0.h +++ b/src/include/lib/lib_0e9d0.h @@ -33,7 +33,7 @@ u32 func00010360(void); u32 func0001036c(void); u32 func000104a0(void); void func00010718(s32 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8); -s32 func00010904(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7); +s32 func00010904(s32 arg0, s16 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7); u32 func00010ae4(void); void func00010db0(s32 room_id); void func00010de0(s32 room_id);