From 9bda9a992c384af01b62574c4f27593ba028295a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 16 Apr 2021 22:27:32 +1000 Subject: [PATCH] Decompile func0f097f28 --- src/game/game_097ba0.c | 112 ++++++-------------- src/game/inventory/items.c | 188 ++++++++++++++++----------------- src/include/game/game_097ba0.h | 2 +- src/include/types.h | 8 +- 4 files changed, 134 insertions(+), 176 deletions(-) diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 76423d5a3..45f93b25c 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -461,83 +461,41 @@ void func0f097e74(s16 partnum, s32 arg1, struct hand *hand, struct modelfiledata } } -GLOBAL_ASM( -glabel func0f097f28 -/* f097f28: 27bdffd0 */ addiu $sp,$sp,-48 -/* f097f2c: afb30020 */ sw $s3,0x20($sp) -/* f097f30: afb2001c */ sw $s2,0x1c($sp) -/* f097f34: afb10018 */ sw $s1,0x18($sp) -/* f097f38: afb00014 */ sw $s0,0x14($sp) -/* f097f3c: 00808825 */ or $s1,$a0,$zero -/* f097f40: 00a09025 */ or $s2,$a1,$zero -/* f097f44: afbf002c */ sw $ra,0x2c($sp) -/* f097f48: afb50028 */ sw $s5,0x28($sp) -/* f097f4c: afb40024 */ sw $s4,0x24($sp) -/* f097f50: 00c08025 */ or $s0,$a2,$zero -/* f097f54: 10c0002d */ beqz $a2,.L0f09800c -/* f097f58: 00009825 */ or $s3,$zero,$zero -/* f097f5c: 24150001 */ addiu $s5,$zero,0x1 -/* f097f60: 24140003 */ addiu $s4,$zero,0x3 -/* f097f64: 02002025 */ or $a0,$s0,$zero -.L0f097f68: -/* f097f68: 0fc25f7c */ jal func0f097df0 -/* f097f6c: 02202825 */ or $a1,$s1,$zero -/* f097f70: 50400019 */ beqzl $v0,.L0f097fd8 -/* f097f74: 920e0004 */ lbu $t6,0x4($s0) -/* f097f78: 92020004 */ lbu $v0,0x4($s0) -/* f097f7c: 02a02825 */ or $a1,$s5,$zero -/* f097f80: 02203025 */ or $a2,$s1,$zero -/* f097f84: 14400004 */ bnez $v0,.L0f097f98 -/* f097f88: 02403825 */ or $a3,$s2,$zero -/* f097f8c: 0fc25f9d */ jal func0f097e74 -/* f097f90: 86040006 */ lh $a0,0x6($s0) -/* f097f94: 92020004 */ lbu $v0,0x4($s0) -.L0f097f98: -/* f097f98: 16a20006 */ bne $s5,$v0,.L0f097fb4 -/* f097f9c: 00002825 */ or $a1,$zero,$zero -/* f097fa0: 86040006 */ lh $a0,0x6($s0) -/* f097fa4: 02203025 */ or $a2,$s1,$zero -/* f097fa8: 0fc25f9d */ jal func0f097e74 -/* f097fac: 02403825 */ or $a3,$s2,$zero -/* f097fb0: 92020004 */ lbu $v0,0x4($s0) -.L0f097fb4: -/* f097fb4: 1682000e */ bne $s4,$v0,.L0f097ff0 -/* f097fb8: 02a02825 */ or $a1,$s5,$zero -/* f097fbc: 86040006 */ lh $a0,0x6($s0) -/* f097fc0: 02203025 */ or $a2,$s1,$zero -/* f097fc4: 0fc25f9d */ jal func0f097e74 -/* f097fc8: 02403825 */ or $a3,$s2,$zero -/* f097fcc: 10000009 */ b .L0f097ff4 -/* f097fd0: 920f000a */ lbu $t7,0xa($s0) -/* f097fd4: 920e0004 */ lbu $t6,0x4($s0) -.L0f097fd8: -/* f097fd8: 00002825 */ or $a1,$zero,$zero -/* f097fdc: 02203025 */ or $a2,$s1,$zero -/* f097fe0: 168e0003 */ bne $s4,$t6,.L0f097ff0 -/* f097fe4: 02403825 */ or $a3,$s2,$zero -/* f097fe8: 0fc25f9d */ jal func0f097e74 -/* f097fec: 86040006 */ lh $a0,0x6($s0) -.L0f097ff0: -/* f097ff0: 920f000a */ lbu $t7,0xa($s0) -.L0f097ff4: -/* f097ff4: 2610000a */ addiu $s0,$s0,0xa -/* f097ff8: 15e00002 */ bnez $t7,.L0f098004 -/* f097ffc: 00000000 */ nop -/* f098000: 02a09825 */ or $s3,$s5,$zero -.L0f098004: -/* f098004: 5260ffd8 */ beqzl $s3,.L0f097f68 -/* f098008: 02002025 */ or $a0,$s0,$zero -.L0f09800c: -/* f09800c: 8fbf002c */ lw $ra,0x2c($sp) -/* f098010: 8fb00014 */ lw $s0,0x14($sp) -/* f098014: 8fb10018 */ lw $s1,0x18($sp) -/* f098018: 8fb2001c */ lw $s2,0x1c($sp) -/* f09801c: 8fb30020 */ lw $s3,0x20($sp) -/* f098020: 8fb40024 */ lw $s4,0x24($sp) -/* f098024: 8fb50028 */ lw $s5,0x28($sp) -/* f098028: 03e00008 */ jr $ra -/* f09802c: 27bd0030 */ addiu $sp,$sp,0x30 -); +void func0f097f28(struct hand *hand, struct modelfiledata *filedata, struct inventory_typef *arg2) +{ + struct inventory_typef *thing = arg2; + bool done = false; + + if (thing == NULL) { + return; + } + + while (!done) { + if (func0f097df0(thing, hand)) { + if (thing->unk04 == 0) { + func0f097e74(thing->unk06, 1, hand, filedata); + } + + if (thing->unk04 == 1) { + func0f097e74(thing->unk06, 0, hand, filedata); + } + + if (thing->unk04 == 3) { + func0f097e74(thing->unk06, 1, hand, filedata); + } + } else { + if (thing->unk04 == 3) { + func0f097e74(thing->unk06, 0, hand, filedata); + } + } + + thing++; + + if (thing->unk00 == 0) { + done = true; + } + } +} void func0f098030(struct hand *hand, struct modelfiledata *arg1) { diff --git a/src/game/inventory/items.c b/src/game/inventory/items.c index 5f6b4c1ee..01b8202ab 100644 --- a/src/game/inventory/items.c +++ b/src/game/inventory/items.c @@ -328,34 +328,34 @@ struct modelpartvisibility invpartvisibility_falcon2silencer[] = { }; struct inventory_typef invf_000113f4[] = { - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002c, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002d, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002e, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002f, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 1, 0x0000, 1, 0x002c, 0x0000 }, + { 1, 0x0000, 1, 0x002d, 0x0000 }, + { 1, 0x0000, 1, 0x002e, 0x0000 }, + { 1, 0x0000, 1, 0x002f, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct inventory_typef invf_00011444[] = { - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002d, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002e, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002f, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 1, 0x0000, 1, 0x002d, 0x0000 }, + { 1, 0x0000, 1, 0x002e, 0x0000 }, + { 1, 0x0000, 1, 0x002f, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct inventory_typef invf_0001148c[] = { - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002c, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002e, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002f, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 1, 0x0000, 1, 0x002c, 0x0000 }, + { 1, 0x0000, 1, 0x002e, 0x0000 }, + { 1, 0x0000, 1, 0x002f, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_falcon2_reload_0[] = { @@ -600,10 +600,10 @@ struct modelpartvisibility invpartvisibility_magsec[] = { }; struct inventory_typef invf_00011840[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_magsec_reload_0[] = { @@ -751,14 +751,14 @@ struct modelpartvisibility invpartvisibility_dy357[] = { }; struct inventory_typef invf_00011a84[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002c, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002d, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 1, 0x0000, 1, 0x002c, 0x0000 }, + { 1, 0x0000, 1, 0x002d, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_dy357_equiporshoot[] = { @@ -961,9 +961,9 @@ struct modelpartvisibility invpartvisibility_phoenix[] = { }; struct inventory_typef invf_00011e00[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_equiporreload_0[] = { @@ -1082,9 +1082,9 @@ struct modelpartvisibility invpartvisibility_mauler[] = { }; struct inventory_typef invf_00011fac[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_mauler_equiporshoot[] = { @@ -1222,10 +1222,10 @@ struct modelpartvisibility invpartvisibility_cmp150[] = { }; struct inventory_typef invf_000121d8[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0047, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 1, 0x0000, 1, 0x0047, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_cmp150_reload_0[] = { @@ -1378,9 +1378,9 @@ struct modelpartvisibility invpartvisibility_cyclone[] = { }; struct inventory_typef invf_0001243c[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_cyclone_equiporreload_0[] = { @@ -1524,8 +1524,8 @@ struct modelpartvisibility invpartvisibility_rcp120[] = { }; struct inventory_typef invf_00012658[] = { - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct weaponfunc_shootauto invfunc_rcp120_rapidfire = { @@ -1623,8 +1623,8 @@ struct modelpartvisibility invpartvisibility_callisto[] = { }; struct inventory_typef invf_00012798[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct weaponfunc_shootauto invfunc_callisto_rapidfire = { @@ -1715,8 +1715,8 @@ struct weapon invitem_callisto = { }; struct inventory_typef invf_000128b8[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct modelpartvisibility invpartvisibility_dragon[] = { @@ -1817,9 +1817,9 @@ struct weapon invitem_dragon = { }; struct inventory_typef invf_00012a08[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct modelpartvisibility invpartvisibility_superdragon[] = { @@ -1975,8 +1975,8 @@ struct weapon invitem_superdragon = { }; struct inventory_typef invf_00012c40[] = { - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct modelpartvisibility invpartvisibility_ar34[] = { @@ -2100,8 +2100,8 @@ struct weapon invitem_ar34 = { }; struct inventory_typef invf_00012df0[] = { - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct modelpartvisibility invpartvisibility_k7avenger[] = { @@ -2239,9 +2239,9 @@ struct weapon invitem_k7avenger = { }; struct inventory_typef invf_00012fc8[] = { - { 0x0100, 0x0000, 0x0100, 0x002a, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002a, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct modelpartvisibility invpartvisibility_laptopgun[] = { @@ -2372,8 +2372,8 @@ struct weapon invitem_laptopgun = { }; struct inventory_typef invf_000131dc[] = { - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct modelpartvisibility invpartvisibility_shotgun[] = { @@ -2496,8 +2496,8 @@ struct modelpartvisibility invpartvisibility_reaper[] = { }; struct inventory_typef invf_000133c8[] = { - { 0x0100, 0x0000, 0x0100, 0x002b, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x002b, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_reaper_shoot[] = { @@ -2618,8 +2618,8 @@ struct modelpartvisibility invpartvisibility_rocketlauncher[] = { }; struct inventory_typef invf_00013564[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_rocketlauncher_reload[] = { @@ -2860,8 +2860,8 @@ struct weapon invitem_slayer = { }; struct inventory_typef invf_unused_8006d890[] = { - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_devastator_equiporshoot[] = { @@ -3059,11 +3059,11 @@ struct weapon invitem_timedmine = { }; struct inventory_typef invf_00013b40[] = { - { 0x0500, 0x0000, 0x0300, 0x0035, 0x0000 }, - { 0x0500, 0x0000, 0x0300, 0x0029, 0x0000 }, - { 0x0600, 0x0000, 0x0300, 0x0036, 0x0000 }, - { 0x0600, 0x0000, 0x0300, 0x0028, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 5, 0x0000, 3, 0x0035, 0x0000 }, + { 5, 0x0000, 3, 0x0029, 0x0000 }, + { 6, 0x0000, 3, 0x0036, 0x0000 }, + { 6, 0x0000, 3, 0x0028, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_remotemine_equiporreload[] = { @@ -3286,8 +3286,8 @@ struct weapon invitem_unused_8007dd88 = { }; struct inventory_typef invf_00013df8[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_grenade_throw[] = { @@ -3427,8 +3427,8 @@ struct weapon invitem_nbomb = { }; struct inventory_typef invf_00013fa4[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_farsight_reload[] = { @@ -3539,9 +3539,9 @@ struct weapon invitem_farsight = { }; struct inventory_typef invf_00014100[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_crossbow_reload[] = { @@ -3683,9 +3683,9 @@ struct weapon invitem_crossbow = { }; struct inventory_typef invf_00014314[] = { - { 0x0100, 0x0000, 0x0100, 0x0028, 0x0000 }, - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0028, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_tranquilizer_lethalinject[] = { @@ -3863,8 +3863,8 @@ struct weapon invitem_psychosisgun = { }; struct inventory_typef invf_00014590[] = { - { 0x0100, 0x0000, 0x0100, 0x0029, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0029, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_sniperrifle_equip[] = { @@ -4060,8 +4060,8 @@ struct modelpartvisibility invpartvisibility_classic[] = { }; struct inventory_typef invf_000147fc[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_pp9i_equiporshoot[] = { @@ -4557,8 +4557,8 @@ struct weaponfunc invfunc_briefcase_use = { }; struct inventory_typef invf_unused_8006edcc[] = { - { 0x0000, 0x001e, 0x0000, 0x0002, 0x0001 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 0, 0x001e, 0, 0x0002, 0x0001 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct weapon invitem_briefcase2 = { @@ -4707,8 +4707,8 @@ struct weapon invitem_5a = { }; struct inventory_typef invf_00014fc0[] = { - { 0x0100, 0x0000, 0x0100, 0x0035, 0x0000 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 1, 0x0000, 1, 0x0035, 0x0000 }, + { 0, 0x0000, 0, 0x0000, 0x0000 }, }; struct guncmd invanim_combatknife_equip[] = { diff --git a/src/include/game/game_097ba0.h b/src/include/game/game_097ba0.h index 79d9fc357..1c158ce09 100644 --- a/src/include/game/game_097ba0.h +++ b/src/include/game/game_097ba0.h @@ -7,7 +7,7 @@ void func0f097ba0(s32 handnum, s32 weaponnum); s32 weaponGetUnequippedReloadIndex(s32 weaponnum); void handsTickUnequippedReload(void); -u32 func0f097df0(void); +bool func0f097df0(struct inventory_typef *arg0, struct hand *hand); void func0f097e74(s16 partnum, s32 arg1, struct hand *hand, struct modelfiledata *arg3); void func0f097f28(struct hand *hand, struct modelfiledata *arg1, struct inventory_typef *arg2); void func0f098030(struct hand *hand, struct modelfiledata *arg1); diff --git a/src/include/types.h b/src/include/types.h index c0834044f..7cab58fb9 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -3038,11 +3038,11 @@ struct inventory_class { }; struct inventory_typef { - u16 unk00; - u16 unk04; + u8 unk00; + u16 unk02; + u8 unk04; + u16 unk06; u16 unk08; - u16 unk0c; - u16 unk10; }; struct weaponfunc {