diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 8efbff1f5..f8e906932 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -19507,7 +19507,7 @@ glabel func0f02e9a0 /* f02e9a4: afbf001c */ sw $ra,0x1c($sp) /* f02e9a8: afb00018 */ sw $s0,0x18($sp) /* f02e9ac: 00808025 */ or $s0,$a0,$zero -/* f02e9b0: 0fc0fe3d */ jal func0f03f8f4 +/* f02e9b0: 0fc0fe3d */ jal chrStopFiring /* f02e9b4: afa50024 */ sw $a1,0x24($sp) /* f02e9b8: 240e0001 */ addiu $t6,$zero,0x1 /* f02e9bc: 240f0002 */ addiu $t7,$zero,0x2 @@ -19595,7 +19595,7 @@ glabel func0f02eabc /* f02eadc: 24010003 */ addiu $at,$zero,0x3 /* f02eae0: 10410067 */ beq $v0,$at,.L0f02ec80 /* f02eae4: 02002025 */ or $a0,$s0,$zero -/* f02eae8: 0fc0fe3d */ jal func0f03f8f4 +/* f02eae8: 0fc0fe3d */ jal chrStopFiring /* f02eaec: afa2002c */ sw $v0,0x2c($sp) /* f02eaf0: 8fa2002c */ lw $v0,0x2c($sp) /* f02eaf4: 54400047 */ bnezl $v0,.L0f02ec14 @@ -19604,7 +19604,7 @@ glabel func0f02eabc /* f02eb00: 24030002 */ addiu $v1,$zero,0x2 /* f02eb04: 546e0043 */ bnel $v1,$t6,.L0f02ec14 /* f02eb08: 24030002 */ addiu $v1,$zero,0x2 -/* f02eb0c: 0fc0fe3d */ jal func0f03f8f4 +/* f02eb0c: 0fc0fe3d */ jal chrStopFiring /* f02eb10: 02002025 */ or $a0,$s0,$zero /* f02eb14: 24020001 */ addiu $v0,$zero,0x1 /* f02eb18: 24030002 */ addiu $v1,$zero,0x2 @@ -19870,7 +19870,7 @@ glabel func0f02ed88 void chrKneel(struct chrdata *chr) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_KNEEL; chr->sleep = 0; @@ -19940,7 +19940,7 @@ glabel func0f02ef40 void func0f02effc(struct chrdata *chr) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_STARTALARM; chr->sleep = 0; @@ -20098,7 +20098,7 @@ glabel func0f02f070 void func0f02f288(struct chrdata *chr, s32 arg1, s32 arg2) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_THROWGRENADE; chr->unk034 = arg1; chr->unk038 = arg2; @@ -20284,7 +20284,7 @@ glabel func0f02f530 /* f02f578: 45000019 */ bc1f .L0f02f5e0 /* f02f57c: 00000000 */ sll $zero,$zero,0x0 .L0f02f580: -/* f02f580: 0fc0fe3d */ jal func0f03f8f4 +/* f02f580: 0fc0fe3d */ jal chrStopFiring /* f02f584: 02002025 */ or $a0,$s0,$zero /* f02f588: 240e0012 */ addiu $t6,$zero,0x12 /* f02f58c: 240f0001 */ addiu $t7,$zero,0x1 @@ -20327,7 +20327,7 @@ glabel func0f02f530 void func0f02f60c(struct chrdata *chr) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_SURPRISED; chr->unk02c = 2; chr->sleep = 0; @@ -20342,7 +20342,7 @@ void func0f02f60c(struct chrdata *chr) void func0f02f688(struct chrdata *chr) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_SURPRISED; chr->unk02c = 3; chr->sleep = 0; @@ -20439,7 +20439,7 @@ void chrSurrender(struct chrdata *chr) u32 action = ACT_SURRENDER; if (chr->actiontype != action) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = action; chr->sleep = action; @@ -20666,7 +20666,7 @@ glabel func0f02f8a4 void chrSidestep(struct chrdata *chr, s32 arg1) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_SIDESTEP; chr->unk02c = arg1; chr->sleep = 0; @@ -20785,7 +20785,7 @@ glabel func0f02fc2c void chrJumpOut(struct chrdata *chr, s32 arg1) { - func0f03f8f4(chr); + chrStopFiring(chr); chr->actiontype = ACT_JUMPOUT; chr->unk02c = arg1; chr->sleep = 0; @@ -20973,7 +20973,7 @@ glabel chrRunToPos /* f03007c: afbf001c */ sw $ra,0x1c($sp) /* f030080: afb00018 */ sw $s0,0x18($sp) /* f030084: 00808025 */ or $s0,$a0,$zero -/* f030088: 0fc0fe3d */ jal func0f03f8f4 +/* f030088: 0fc0fe3d */ jal chrStopFiring /* f03008c: afa50024 */ sw $a1,0x24($sp) /* f030090: 8fa50024 */ lw $a1,0x24($sp) /* f030094: 240e000d */ addiu $t6,$zero,0xd @@ -22105,7 +22105,7 @@ glabel func0f030ff8 .L0f03104c: /* f03104c: 10610004 */ beq $v1,$at,.L0f031060 /* f031050: 02002025 */ or $a0,$s0,$zero -/* f031054: 0fc0fe3d */ jal func0f03f8f4 +/* f031054: 0fc0fe3d */ jal chrStopFiring /* f031058: afa2002c */ sw $v0,0x2c($sp) /* f03105c: 8fa2002c */ lw $v0,0x2c($sp) .L0f031060: @@ -22199,7 +22199,7 @@ glabel func0f030ff8 void func0f03119c(struct chrdata *chr) { if (chr->actiontype != ACT_DEAD) { - func0f03f8f4(chr); + chrStopFiring(chr); if (chr->cover != -1) { func0f1164a4(chr->cover, 0); @@ -23035,7 +23035,7 @@ glabel func0f0319a8 /* f031da4: a60002d8 */ sh $zero,0x2d8($s0) .L0f031da8: /* f031da8: afa80040 */ sw $t0,0x40($sp) -/* f031dac: 0fc0fe3d */ jal func0f03f8f4 +/* f031dac: 0fc0fe3d */ jal chrStopFiring /* f031db0: 02002025 */ or $a0,$s0,$zero /* f031db4: 02002025 */ or $a0,$s0,$zero /* f031db8: 0fc08946 */ jal chrUncloak @@ -24094,7 +24094,7 @@ glabel func0f032ac4 /* f032d0c: 8d2b0004 */ lw $t3,0x4($t1) /* f032d10: 02002025 */ or $a0,$s0,$zero /* f032d14: af210000 */ sw $at,0x0($t9) -/* f032d18: 0fc0fe3d */ jal func0f03f8f4 +/* f032d18: 0fc0fe3d */ jal chrStopFiring /* f032d1c: af2b0004 */ sw $t3,0x4($t9) /* f032d20: 240c0006 */ addiu $t4,$zero,0x6 /* f032d24: a20c0007 */ sb $t4,0x7($s0) @@ -24222,7 +24222,7 @@ glabel func0f032ac4 /* f032efc: 0007000d */ break 0x7 .L0f032f00: /* f032f00: 014b4021 */ addu $t0,$t2,$t3 -/* f032f04: 0fc0fe3d */ jal func0f03f8f4 +/* f032f04: 0fc0fe3d */ jal chrStopFiring /* f032f08: afa80048 */ sw $t0,0x48($sp) /* f032f0c: 8fa80048 */ lw $t0,0x48($sp) /* f032f10: 24090006 */ addiu $t1,$zero,0x6 @@ -24626,7 +24626,7 @@ glabel func0f03323c /* f0334c0: 014b6021 */ addu $t4,$t2,$t3 /* f0334c4: afac0040 */ sw $t4,0x40($sp) .L0f0334c8: -/* f0334c8: 0fc0fe3d */ jal func0f03f8f4 +/* f0334c8: 0fc0fe3d */ jal chrStopFiring /* f0334cc: 02002025 */ or $a0,$s0,$zero /* f0334d0: 02002025 */ or $a0,$s0,$zero /* f0334d4: 0fc08946 */ jal chrUncloak @@ -27897,7 +27897,7 @@ glabel func0f034524 void func0f036358(struct chrdata *chr, s32 arg1) { if (chr->actiontype != ACT_DIE) { - func0f03f8f4(chr); + chrStopFiring(chr); chrUncloak(chr, 1); chr->actiontype = ACT_DIE; @@ -30364,7 +30364,7 @@ glabel func0f03843c /* f038628: e7a80040 */ swc1 $f8,0x40($sp) .L0f03862c: /* f03862c: 02002025 */ or $a0,$s0,$zero -/* f038630: 0fc0fe3d */ jal func0f03f8f4 +/* f038630: 0fc0fe3d */ jal chrStopFiring /* f038634: afaa0030 */ sw $t2,0x30($sp) /* f038638: 240c000f */ addiu $t4,$zero,0xf /* f03863c: a20c0007 */ sb $t4,0x7($s0) @@ -30887,7 +30887,7 @@ glabel func0f038b9c /* f038dbc: e7aa0018 */ swc1 $f10,0x18($sp) /* f038dc0: 1040004a */ beqz $v0,.L0f038eec /* f038dc4: 8fa900f0 */ lw $t1,0xf0($sp) -/* f038dc8: 0fc0fe3d */ jal func0f03f8f4 +/* f038dc8: 0fc0fe3d */ jal chrStopFiring /* f038dcc: 02602025 */ or $a0,$s3,$zero /* f038dd0: 240d000e */ addiu $t5,$zero,0xe /* f038dd4: 240e0001 */ addiu $t6,$zero,0x1 @@ -31486,7 +31486,7 @@ glabel func0f0395d8 /* f039620: 01cf082a */ slt $at,$t6,$t7 /* f039624: 54200006 */ bnezl $at,.L0f039640 /* f039628: 82020007 */ lb $v0,0x7($s0) -/* f03962c: 0fc0fe3d */ jal func0f03f8f4 +/* f03962c: 0fc0fe3d */ jal chrStopFiring /* f039630: 02002025 */ or $a0,$s0,$zero /* f039634: 10000050 */ beqz $zero,.L0f039778 /* f039638: 24020001 */ addiu $v0,$zero,0x1 @@ -35089,11 +35089,11 @@ glabel func0f03c91c /* f03cb3c: 14410008 */ bne $v0,$at,.L0f03cb60 /* f03cb40: 02002025 */ or $a0,$s0,$zero /* f03cb44: 00002825 */ or $a1,$zero,$zero -/* f03cb48: 0fc0fe12 */ jal func0f03f848 +/* f03cb48: 0fc0fe12 */ jal chrSetFiring /* f03cb4c: 00003025 */ or $a2,$zero,$zero /* f03cb50: 02002025 */ or $a0,$s0,$zero /* f03cb54: 24050001 */ addiu $a1,$zero,0x1 -/* f03cb58: 0fc0fe12 */ jal func0f03f848 +/* f03cb58: 0fc0fe12 */ jal chrSetFiring /* f03cb5c: 00003025 */ or $a2,$zero,$zero .L0f03cb60: /* f03cb60: 8fbf004c */ lw $ra,0x4c($sp) @@ -38263,7 +38263,7 @@ glabel func0f03f778 ); GLOBAL_ASM( -glabel func0f03f828 +glabel chrResetAimProperties /* f03f828: 44800000 */ mtc1 $zero,$f0 /* f03f82c: 240e000a */ addiu $t6,$zero,0xa /* f03f830: a08e000e */ sb $t6,0xe($a0) @@ -38275,7 +38275,7 @@ glabel func0f03f828 ); GLOBAL_ASM( -glabel func0f03f848 +glabel chrSetFiring /* f03f848: 27bdffe8 */ addiu $sp,$sp,-24 /* f03f84c: afbf0014 */ sw $ra,0x14($sp) /* f03f850: afa60020 */ sw $a2,0x20($sp) @@ -38326,50 +38326,18 @@ glabel func0f03f848 /* f03f8f0: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f03f8f4 -/* f03f8f4: 27bdffe0 */ addiu $sp,$sp,-32 -/* f03f8f8: afb00018 */ sw $s0,0x18($sp) -/* f03f8fc: 00808025 */ or $s0,$a0,$zero -/* f03f900: 10800003 */ beqz $a0,.L0f03f910 -/* f03f904: afbf001c */ sw $ra,0x1c($sp) -/* f03f908: 10000002 */ beqz $zero,.L0f03f914 -/* f03f90c: 908202fe */ lbu $v0,0x2fe($a0) -.L0f03f910: -/* f03f910: 00001025 */ or $v0,$zero,$zero -.L0f03f914: -/* f03f914: 24010002 */ addiu $at,$zero,0x2 -/* f03f918: 10410016 */ beq $v0,$at,.L0f03f974 -/* f03f91c: 24010003 */ addiu $at,$zero,0x3 -/* f03f920: 50410015 */ beql $v0,$at,.L0f03f978 -/* f03f924: 8fbf001c */ lw $ra,0x1c($sp) -/* f03f928: 8e0e02d4 */ lw $t6,0x2d4($s0) -/* f03f92c: 02002025 */ or $a0,$s0,$zero -/* f03f930: 00002825 */ or $a1,$zero,$zero -/* f03f934: 55c00010 */ bnezl $t6,.L0f03f978 -/* f03f938: 8fbf001c */ lw $ra,0x1c($sp) -/* f03f93c: 0fc0fe12 */ jal func0f03f848 -/* f03f940: 00003025 */ or $a2,$zero,$zero -/* f03f944: 02002025 */ or $a0,$s0,$zero -/* f03f948: 24050001 */ addiu $a1,$zero,0x1 -/* f03f94c: 0fc0fe12 */ jal func0f03f848 -/* f03f950: 00003025 */ or $a2,$zero,$zero -/* f03f954: 0fc0fe0a */ jal func0f03f828 -/* f03f958: 02002025 */ or $a0,$s0,$zero -/* f03f95c: 0fc29c32 */ jal func0f0a70c8 -/* f03f960: 8204017c */ lb $a0,0x17c($s0) -/* f03f964: a202017c */ sb $v0,0x17c($s0) -/* f03f968: 0fc29c32 */ jal func0f0a70c8 -/* f03f96c: 8204017d */ lb $a0,0x17d($s0) -/* f03f970: a202017d */ sb $v0,0x17d($s0) -.L0f03f974: -/* f03f974: 8fbf001c */ lw $ra,0x1c($sp) -.L0f03f978: -/* f03f978: 8fb00018 */ lw $s0,0x18($sp) -/* f03f97c: 27bd0020 */ addiu $sp,$sp,0x20 -/* f03f980: 03e00008 */ jr $ra -/* f03f984: 00000000 */ sll $zero,$zero,0x0 -); +void chrStopFiring(struct chrdata *chr) +{ + u8 race = chr ? chr->race : RACE_HUMAN; + + if (race != RACE_MAIAN && race != RACE_ROBOT && chr->unk2d4 == NULL) { + chrSetFiring(chr, 0, false); + chrSetFiring(chr, 1, false); + chrResetAimProperties(chr); + chr->fireslot[0] = freeFireslot(chr->fireslot[0]); + chr->fireslot[1] = freeFireslot(chr->fireslot[1]); + } +} GLOBAL_ASM( glabel func0f03f988 @@ -38405,7 +38373,7 @@ glabel func0f03f988 .L0f03f9f0: /* f03f9f0: 54c00004 */ bnezl $a2,.L0f03fa04 /* f03f9f4: 8fbf0014 */ lw $ra,0x14($sp) -/* f03f9f8: 0fc0fe12 */ jal func0f03f848 +/* f03f9f8: 0fc0fe12 */ jal chrSetFiring /* f03f9fc: 00003025 */ or $a2,$zero,$zero /* f03fa00: 8fbf0014 */ lw $ra,0x14($sp) .L0f03fa04: @@ -40649,12 +40617,12 @@ glabel func0f0404d4 /* f041a44: 0006502b */ sltu $t2,$zero,$a2 /* f041a48: 01403025 */ or $a2,$t2,$zero .L0f041a4c: -/* f041a4c: 0fc0fe12 */ jal func0f03f848 +/* f041a4c: 0fc0fe12 */ jal chrSetFiring /* f041a50: 8fa5027c */ lw $a1,0x27c($sp) /* f041a54: 10000004 */ beqz $zero,.L0f041a68 /* f041a58: 8fbf0044 */ lw $ra,0x44($sp) .L0f041a5c: -/* f041a5c: 0fc0fe12 */ jal func0f03f848 +/* f041a5c: 0fc0fe12 */ jal chrSetFiring /* f041a60: 8fa60268 */ lw $a2,0x268($sp) /* f041a64: 8fbf0044 */ lw $ra,0x44($sp) .L0f041a68: @@ -41281,7 +41249,7 @@ glabel func0f041e48 /* f042334: 10000004 */ beqz $zero,.L0f042348 /* f042338: 00008825 */ or $s1,$zero,$zero .L0f04233c: -/* f04233c: 0fc0fe0a */ jal func0f03f828 +/* f04233c: 0fc0fe0a */ jal chrResetAimProperties /* f042340: 02002025 */ or $a0,$s0,$zero /* f042344: 00008825 */ or $s1,$zero,$zero .L0f042348: @@ -41539,7 +41507,7 @@ glabel func0f04262c /* f0426dc: 10000004 */ beqz $zero,.L0f0426f0 /* f0426e0: 8e2e002c */ lw $t6,0x2c($s1) .L0f0426e4: -/* f0426e4: 0fc0fe0a */ jal func0f03f828 +/* f0426e4: 0fc0fe0a */ jal chrResetAimProperties /* f0426e8: 02202025 */ or $a0,$s1,$zero /* f0426ec: 8e2e002c */ lw $t6,0x2c($s1) .L0f0426f0: @@ -42298,7 +42266,7 @@ glabel func0f042ffc /* f0431c0: 240d0002 */ addiu $t5,$zero,0x2 .L0f0431c4: /* f0431c4: ae0d0058 */ sw $t5,0x58($s0) -/* f0431c8: 0fc0fe0a */ jal func0f03f828 +/* f0431c8: 0fc0fe0a */ jal chrResetAimProperties /* f0431cc: 02002025 */ or $a0,$s0,$zero /* f0431d0: 1000007f */ beqz $zero,.L0f0433d0 /* f0431d4: 8fbf0024 */ lw $ra,0x24($sp) @@ -43612,7 +43580,7 @@ glabel func0f044208 /* f04442c: 10000004 */ beqz $zero,.L0f044440 /* f044430: 8e0b0038 */ lw $t3,0x38($s0) .L0f044434: -/* f044434: 0fc0fe0a */ jal func0f03f828 +/* f044434: 0fc0fe0a */ jal chrResetAimProperties /* f044438: 02002025 */ or $a0,$s0,$zero /* f04443c: 8e0b0038 */ lw $t3,0x38($s0) .L0f044440: diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index d85f6f140..400a19add 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -14210,7 +14210,7 @@ glabel ai01cf /* f05f450: 1100000f */ beqz $t0,.L0f05f490 /* f05f454: 00000000 */ sll $zero,$zero,0x0 /* f05f458: 00002825 */ or $a1,$zero,$zero -/* f05f45c: 0fc0fe12 */ jal func0f03f848 +/* f05f45c: 0fc0fe12 */ jal chrSetFiring /* f05f460: afa20038 */ sw $v0,0x38($sp) /* f05f464: 27b8002c */ addiu $t8,$sp,0x2c /* f05f468: 27b90020 */ addiu $t9,$sp,0x20 @@ -14224,7 +14224,7 @@ glabel ai01cf /* f05f488: 10000003 */ beqz $zero,.L0f05f498 /* f05f48c: 00000000 */ sll $zero,$zero,0x0 .L0f05f490: -/* f05f490: 0fc0fe12 */ jal func0f03f848 +/* f05f490: 0fc0fe12 */ jal chrSetFiring /* f05f494: 00003025 */ or $a2,$zero,$zero .L0f05f498: /* f05f498: 3c03800a */ lui $v1,%hi(g_Vars) diff --git a/src/game/game_066310.c b/src/game/game_066310.c index 8a2a1f6a8..658f699f4 100644 --- a/src/game/game_066310.c +++ b/src/game/game_066310.c @@ -33673,7 +33673,7 @@ glabel func0f082f88 /* f083028: 54f90008 */ bnel $a3,$t9,.L0f08304c /* f08302c: 8c880174 */ lw $t0,0x174($a0) /* f083030: afa40018 */ sw $a0,0x18($sp) -/* f083034: 0fc0fe12 */ jal func0f03f848 +/* f083034: 0fc0fe12 */ jal chrSetFiring /* f083038: afa70028 */ sw $a3,0x28($sp) /* f08303c: 8fa40018 */ lw $a0,0x18($sp) /* f083040: 8fa70028 */ lw $a3,0x28($sp) @@ -33684,7 +33684,7 @@ glabel func0f082f88 /* f083050: 00003025 */ or $a2,$zero,$zero /* f083054: 54e80006 */ bnel $a3,$t0,.L0f083070 /* f083058: 8fbf0014 */ lw $ra,0x14($sp) -/* f08305c: 0fc0fe12 */ jal func0f03f848 +/* f08305c: 0fc0fe12 */ jal chrSetFiring /* f083060: afa40018 */ sw $a0,0x18($sp) /* f083064: 8fa40018 */ lw $a0,0x18($sp) /* f083068: ac800174 */ sw $zero,0x174($a0) diff --git a/src/game/game_097a50.c b/src/game/game_097a50.c index d50e60c21..adfc3c617 100644 --- a/src/game/game_097a50.c +++ b/src/game/game_097a50.c @@ -18216,7 +18216,7 @@ GLOBAL_ASM( glabel func0f0a70a8 /* f0a70a8: 27bdffe8 */ addiu $sp,$sp,-24 /* f0a70ac: afbf0014 */ sw $ra,0x14($sp) -/* f0a70b0: 0fc29c32 */ jal func0f0a70c8 +/* f0a70b0: 0fc29c32 */ jal freeFireslot /* f0a70b4: 00000000 */ sll $zero,$zero,0x0 /* f0a70b8: 8fbf0014 */ lw $ra,0x14($sp) /* f0a70bc: 27bd0018 */ addiu $sp,$sp,0x18 @@ -18225,7 +18225,7 @@ glabel func0f0a70a8 ); GLOBAL_ASM( -glabel func0f0a70c8 +glabel freeFireslot /* f0a70c8: 04800009 */ bltz $a0,.L0f0a70f0 /* f0a70cc: 28810014 */ slti $at,$a0,0x14 /* f0a70d0: 10200007 */ beqz $at,.L0f0a70f0 diff --git a/src/game/game_0b28d0.c b/src/game/game_0b28d0.c index 5cd2725f8..54e65e3f2 100644 --- a/src/game/game_0b28d0.c +++ b/src/game/game_0b28d0.c @@ -18166,11 +18166,11 @@ glabel func0f0c2364 /* f0c2710: a20d000e */ sb $t5,0xe($s0) /* f0c2714: 8226063d */ lb $a2,0x63d($s1) /* f0c2718: 02002025 */ or $a0,$s0,$zero -/* f0c271c: 0fc0fe12 */ jal func0f03f848 +/* f0c271c: 0fc0fe12 */ jal chrSetFiring /* f0c2720: 00002825 */ or $a1,$zero,$zero /* f0c2724: 02002025 */ or $a0,$s0,$zero /* f0c2728: 24050001 */ addiu $a1,$zero,0x1 -/* f0c272c: 0fc0fe12 */ jal func0f03f848 +/* f0c272c: 0fc0fe12 */ jal chrSetFiring /* f0c2730: 82260de1 */ lb $a2,0xde1($s1) .L0f0c2734: /* f0c2734: 8fae0100 */ lw $t6,0x100($sp) diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 6333dda4d..34d487b1f 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -15504,7 +15504,7 @@ glabel func0f0fdd84 /* f0fde28: 8e790474 */ lw $t9,0x474($s3) /* f0fde2c: 52c20008 */ beql $s6,$v0,.L0f0fde50 /* f0fde30: 8e790474 */ lw $t9,0x474($s3) -/* f0fde34: 0fc0fe3d */ jal func0f03f8f4 +/* f0fde34: 0fc0fe3d */ jal chrStopFiring /* f0fde38: 02002025 */ or $a0,$s0,$zero /* f0fde3c: 0c006134 */ jal ailistFindById /* f0fde40: 24040015 */ addiu $a0,$zero,0x15 diff --git a/src/game/game_187770.c b/src/game/game_187770.c index eca90cae5..040d52f41 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -10356,9 +10356,9 @@ glabel func0f19028c /* f19030c: a4860292 */ sh $a2,0x292($a0) /* f190310: a2200184 */ sb $zero,0x184($s1) /* f190314: a2200185 */ sb $zero,0x185($s1) -/* f190318: 0fc29c32 */ jal func0f0a70c8 +/* f190318: 0fc29c32 */ jal freeFireslot /* f19031c: 8224017c */ lb $a0,0x17c($s1) -/* f190320: 0fc29c32 */ jal func0f0a70c8 +/* f190320: 0fc29c32 */ jal freeFireslot /* f190324: 8224017d */ lb $a0,0x17d($s1) /* f190328: 922b032d */ lbu $t3,0x32d($s1) /* f19032c: 3c014339 */ lui $at,0x4339 @@ -12312,7 +12312,7 @@ glabel func0f1918d0 /* f191e8c: 10000006 */ beqz $zero,.L0f191ea8 /* f191e90: 82220007 */ lb $v0,0x7($s1) .L0f191e94: -/* f191e94: 0fc0fe0a */ jal func0f03f828 +/* f191e94: 0fc0fe0a */ jal chrResetAimProperties /* f191e98: 02202025 */ or $a0,$s1,$zero /* f191e9c: 44809000 */ mtc1 $zero,$f18 /* f191ea0: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/include/game/chr/chr.h b/src/include/game/chr/chr.h index 8d5bfccbd..d039da1d8 100644 --- a/src/include/game/chr/chr.h +++ b/src/include/game/chr/chr.h @@ -299,9 +299,9 @@ u32 func0f03e754(void); u32 func0f03e788(void); u32 func0f03e9f4(void); u32 func0f03f778(void); -u32 func0f03f828(void); -u32 func0f03f848(void); -void func0f03f8f4(struct chrdata *chr); +void chrResetAimProperties(struct chrdata *chr); +void chrSetFiring(struct chrdata *chr, s32 hand, bool firing); +void chrStopFiring(struct chrdata *chr); u32 func0f03f988(void); u32 func0f03fa10(void); u32 func0f03fab0(void); diff --git a/src/include/game/game_097a50.h b/src/include/game/game_097a50.h index fdab5a8a8..4c74d36b5 100644 --- a/src/include/game/game_097a50.h +++ b/src/include/game/game_097a50.h @@ -139,7 +139,7 @@ u32 func0f0a5550(void); u32 func0f0a695c(void); u32 func0f0a6c30(void); u32 func0f0a70a8(void); -u32 func0f0a70c8(void); +s8 freeFireslot(s8 fireslot); u32 func0f0a70f8(void); u32 func0f0a7138(void); u32 func0f0a7d5c(void); diff --git a/src/include/types.h b/src/include/types.h index cb85ce98e..ba2499faf 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -271,7 +271,7 @@ struct chrdata { /*0x16c*/ u32 aimendsideback; /*0x170*/ struct attachment *weapons_held[2]; /*0x178*/ u32 unk178; - /*0x17c*/ u16 fireslot; + /*0x17c*/ s8 fireslot[2]; /*0x17e*/ s16 target; // index into g_Vars.positions /*0x180*/ float cshield; /*0x184*/ u8 cmnum;