diff --git a/src/game/data/inventory.c b/src/game/data/inventory.c index a6aa571ab..e838d0e7c 100644 --- a/src/game/data/inventory.c +++ b/src/game/data/inventory.c @@ -128,7 +128,7 @@ struct weaponfunc_shootsingle invfunc_00011160 = { 4, 4, 0x8039, - 0x01000000, + 1, }; struct inventory_ammo invammo_default = { @@ -451,7 +451,7 @@ struct weaponfunc_shootsingle invfunc_falcon2_singleshot = { 0, 0, 0x804d, - 0x01000000, + 1, }; struct weaponfunc_shootsingle invfunc_falcon2silenced_singleshot = { @@ -473,7 +473,7 @@ struct weaponfunc_shootsingle invfunc_falcon2silenced_singleshot = { 0, 0, 0x8054, - 0x01000000, + 1, }; struct weaponfunc_close invfunc_falcon2_pistolwhip = { @@ -680,7 +680,7 @@ struct weaponfunc_shootsingle invfunc_magsec_singleshot = { 10, 0, 0x804c, - 0x01000000, + 1, }; struct weaponfunc_shootsingle invfunc_magsec_burst = { @@ -702,7 +702,7 @@ struct weaponfunc_shootsingle invfunc_magsec_burst = { 10, 0, 0x804c, - 0x01000000, + 1, }; struct inventory_ammo invammo_magsec = { @@ -847,7 +847,7 @@ struct weaponfunc_shootsingle invfunc_dy357_singleshot = { 6, 0, 0x8066, - 0x05000000, + 5, }; struct weaponfunc_shootsingle invfunc_dy357lx_singleshot = { @@ -869,7 +869,7 @@ struct weaponfunc_shootsingle invfunc_dy357lx_singleshot = { 6, 0, 0x8066, - 0x05000000, + 5, }; struct weaponfunc_close invfunc_dy357_pistolwhip = { @@ -1016,7 +1016,7 @@ struct weaponfunc_shootsingle invfunc_phoenix_singleshot = { 0, 0, 0x8071, - 0x01000000, + 1, }; struct weaponfunc_shootsingle invfunc_phoenix_explosiveshells = { @@ -1038,7 +1038,7 @@ struct weaponfunc_shootsingle invfunc_phoenix_explosiveshells = { 0, 0, 0x8072, - 0x01000000, + 1, }; struct inventory_ammo invammo_phoenix = { @@ -1156,7 +1156,7 @@ struct weaponfunc_shootsingle invfunc_mauler_singleshot = { 4, 0, 0x805b, - 0x01000000, + 1, }; struct weaponfunc_shootsingle invfunc_mauler_chargeshot = { @@ -1178,7 +1178,7 @@ struct weaponfunc_shootsingle invfunc_mauler_chargeshot = { 4, 0, 0x805b, - 0x01000000, + 1, }; struct inventory_ammo invammo_mauler = { @@ -2410,7 +2410,7 @@ struct weaponfunc_shootsingle invfunc_shotgun_single = { 4, 0, 0x8055, - 0x01000000, + 1, }; struct weaponfunc_shootsingle invfunc_shotgun_double = { @@ -2432,7 +2432,7 @@ struct weaponfunc_shootsingle invfunc_shotgun_double = { 4, 0, 0x8055, - 0x01000000, + 1, }; struct inventory_ammo invammo_shotgun = { @@ -3452,7 +3452,7 @@ struct weaponfunc_shootsingle invfunc_farsight_shoot = { 0, 4, 0x813e, - 0x05000000, + 5, }; struct weaponfunc_shootsingle invfunc_farsight_targetlocator = { @@ -3474,7 +3474,7 @@ struct weaponfunc_shootsingle invfunc_farsight_targetlocator = { 0, 4, 0x813e, - 0x05000000, + 5, }; struct inventory_ammo invammo_farsight = { @@ -3715,7 +3715,7 @@ struct weaponfunc_shootsingle invfunc_tranquilizer_shoot = { 0, 0, 0x8057, - 0x01000000, + 1, }; struct weaponfunc_close invfunc_tranquilizer_lethal = { @@ -3809,7 +3809,7 @@ struct weaponfunc_shootsingle invfunc_psychosisgun_shoot = { 0, 0, 0x8057, - 0x01000000, + 1, }; struct weapon invitem_psychosisgun = { @@ -3891,7 +3891,7 @@ struct weaponfunc_shootsingle invfunc_sniperrifle_singleshot = { 0, 4, 0x8058, - 0x01000000, + 1, }; struct weaponfunc_special invfunc_sniperrifle_crouch = { @@ -3974,7 +3974,7 @@ struct weaponfunc_shootsingle invfunc_laser_pulse = { 0, 3, 0x8043, - 0x01000000, + 1, }; struct weaponfunc_shootauto invfunc_laser_stream = { @@ -4063,7 +4063,7 @@ struct weaponfunc_shootsingle invfunc_pp9i_shoot = { 0, 0, 0x8069, - 0x01000000, + 1, }; struct inventory_ammo invammo_pp9i = { @@ -4124,7 +4124,7 @@ struct weaponfunc_shootsingle invfunc_cc13_shoot = { 0, 0, 0x806a, - 0x01000000, + 1, }; struct inventory_ammo invammo_cc13 = { @@ -5938,7 +5938,7 @@ struct weaponfunc_shootsingle invfunc_tester_primary = { 0, 0, 0x804d, - 0x01000000, + 1, }; struct inventory_ammo invammo_tester = { diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index 0e7469e42..959698bdc 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -992,7 +992,7 @@ glabel var7f1a9eb8 .L0f060f18: /* f060f18: 53000006 */ beqzl $t8,.L0f060f34 /* f060f1c: 24190001 */ addiu $t9,$zero,0x1 -/* f060f20: 0fc2c71e */ jal func0f0b1c78 +/* f060f20: 0fc2c71e */ jal handGetSingleUnk3c /* f060f24: 27a40214 */ addiu $a0,$sp,0x214 /* f060f28: 10000003 */ b .L0f060f38 /* f060f2c: afa20234 */ sw $v0,0x234($sp) diff --git a/src/game/game_0b0420.c b/src/game/game_0b0420.c index ab8e33042..51df29d55 100644 --- a/src/game/game_0b0420.c +++ b/src/game/game_0b0420.c @@ -1342,26 +1342,20 @@ glabel func0f0b1c24 /* f0b1c74: 27bd0020 */ addiu $sp,$sp,0x20 ); +u8 handGetSingleUnk3c(struct hand *hand) +{ + struct weaponfunc *func = handGetWeaponFunction(hand); + + if (func && (func->type & 0xff) == INVENTORYFUNCTYPE_SHOOT_SINGLE) { + struct weaponfunc_shootsingle *funcshoot = (struct weaponfunc_shootsingle *)func; + return funcshoot->unk3c; + } + + return 0; +} + GLOBAL_ASM( -glabel func0f0b1c78 -/* f0b1c78: 27bdffe8 */ addiu $sp,$sp,-24 -/* f0b1c7c: afbf0014 */ sw $ra,0x14($sp) -/* f0b1c80: 0fc2c41f */ jal handGetWeaponFunction -/* f0b1c84: 00000000 */ nop -/* f0b1c88: 10400008 */ beqz $v0,.L0f0b1cac -/* f0b1c8c: 8fbf0014 */ lw $ra,0x14($sp) -/* f0b1c90: 8c4e0000 */ lw $t6,0x0($v0) -/* f0b1c94: 24010001 */ addiu $at,$zero,0x1 -/* f0b1c98: 31cf00ff */ andi $t7,$t6,0xff -/* f0b1c9c: 55e10004 */ bnel $t7,$at,.L0f0b1cb0 -/* f0b1ca0: 00001025 */ or $v0,$zero,$zero -/* f0b1ca4: 10000002 */ b .L0f0b1cb0 -/* f0b1ca8: 9042003c */ lbu $v0,0x3c($v0) -.L0f0b1cac: -/* f0b1cac: 00001025 */ or $v0,$zero,$zero -.L0f0b1cb0: -/* f0b1cb0: 03e00008 */ jr $ra -/* f0b1cb4: 27bd0018 */ addiu $sp,$sp,0x18 +glabel func0f0b1cb8 /* f0b1cb8: 27bdffe0 */ addiu $sp,$sp,-32 /* f0b1cbc: afbf0014 */ sw $ra,0x14($sp) /* f0b1cc0: 0fc2c709 */ jal func0f0b1c24 diff --git a/src/include/game/game_0b0420.h b/src/include/game/game_0b0420.h index 7db656dff..582e41dfc 100644 --- a/src/include/game/game_0b0420.h +++ b/src/include/game/game_0b0420.h @@ -39,7 +39,7 @@ u16 weaponGetModelNum(s32 weaponnum); u32 func0f0b1ad0(void); u32 func0f0b1af0(void); u32 func0f0b1c24(void); -u32 func0f0b1c78(void); +u8 handGetSingleUnk3c(struct hand *hand); f32 handGetSingleUnk34(struct hand *hand); f32 func0f0b1d28(u8 *weaponnum); u8 handGetSingleUnk38(struct hand *hand); diff --git a/src/include/types.h b/src/include/types.h index f4f5f152a..8ed3f32f4 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -2900,7 +2900,7 @@ struct weaponfunc_shootsingle { /*0x34*/ f32 unk34; /*0x38*/ u8 unk38; /*0x3a*/ u16 shootsound; - /*0x3c*/ u32 unk3c; + /*0x3c*/ u8 unk3c; }; struct weaponfunc_shootauto {