Decompile handHasFunctionFlags

This commit is contained in:
Ryan Dwyer 2021-01-02 09:26:50 +10:00
parent 8bbe2d99ef
commit a56cc3a9da
8 changed files with 26 additions and 35 deletions

View File

@ -5855,7 +5855,7 @@ glabel var7f1a8d98
/* f0347ec: 000d182b */ sltu $v1,$zero,$t5
/* f0347f0: 10600004 */ beqz $v1,.L0f034804
/* f0347f4: afa3005c */ sw $v1,0x5c($sp)
/* f0347f8: 0fc2c7aa */ jal func0f0b1ea8
/* f0347f8: 0fc2c7aa */ jal handHasFunctionFlags
/* f0347fc: 8fa4014c */ lw $a0,0x14c($sp)
/* f034800: 0002182b */ sltu $v1,$zero,$v0
.L0f034804:
@ -5897,7 +5897,7 @@ glabel var7f1a8d98
.L0f034888:
/* f034888: 8fa4014c */ lw $a0,0x14c($sp)
.L0f03488c:
/* f03488c: 0fc2c7aa */ jal func0f0b1ea8
/* f03488c: 0fc2c7aa */ jal handHasFunctionFlags
/* f034890: 24050400 */ addiu $a1,$zero,0x400
/* f034894: 10400011 */ beqz $v0,.L0f0348dc
/* f034898: 3c08800a */ lui $t0,%hi(g_Vars+0x314)
@ -6752,7 +6752,7 @@ glabel var7f1a8d98
/* f0354ec: 4604a502 */ mul.s $f20,$f20,$f4
/* f0354f0: 00000000 */ nop
.L0f0354f4:
/* f0354f4: 0fc2c7aa */ jal func0f0b1ea8
/* f0354f4: 0fc2c7aa */ jal handHasFunctionFlags
/* f0354f8: 34058000 */ dli $a1,0x8000
/* f0354fc: 1040003e */ beqz $v0,.L0f0355f8
/* f035500: c7a00098 */ lwc1 $f0,0x98($sp)
@ -6957,7 +6957,7 @@ glabel var7f1a8d98
/* f0357cc: 8fa4014c */ lw $a0,0x14c($sp)
/* f0357d0: 158000d3 */ bnez $t4,.L0f035b20
/* f0357d4: 00000000 */ nop
/* f0357d8: 0fc2c7aa */ jal func0f0b1ea8
/* f0357d8: 0fc2c7aa */ jal handHasFunctionFlags
/* f0357dc: 24050400 */ addiu $a1,$zero,0x400
/* f0357e0: 50400004 */ beqzl $v0,.L0f0357f4
/* f0357e4: 8faf0130 */ lw $t7,0x130($sp)
@ -6993,7 +6993,7 @@ glabel var7f1a8d98
/* f035854: 3c050040 */ lui $a1,0x40
/* f035858: 5120000a */ beqzl $t1,.L0f035884
/* f03585c: 8fa4014c */ lw $a0,0x14c($sp)
/* f035860: 0fc2c7aa */ jal func0f0b1ea8
/* f035860: 0fc2c7aa */ jal handHasFunctionFlags
/* f035864: e7a0008c */ swc1 $f0,0x8c($sp)
/* f035868: 10400005 */ beqz $v0,.L0f035880
/* f03586c: c7a0008c */ lwc1 $f0,0x8c($sp)
@ -7198,7 +7198,7 @@ glabel var7f1a8d98
/* f035b3c: 24010005 */ addiu $at,$zero,0x5
/* f035b40: 104101ff */ beq $v0,$at,.L0f036340
/* f035b44: 8fa4014c */ lw $a0,0x14c($sp)
/* f035b48: 0fc2c7aa */ jal func0f0b1ea8
/* f035b48: 0fc2c7aa */ jal handHasFunctionFlags
/* f035b4c: 24050400 */ addiu $a1,$zero,0x400
/* f035b50: 50400027 */ beqzl $v0,.L0f035bf0
/* f035b54: c6040100 */ lwc1 $f4,0x100($s0)
@ -7274,7 +7274,7 @@ glabel var7f1a8d98
/* f035c54: 24010004 */ addiu $at,$zero,0x4
/* f035c58: 11010018 */ beq $t0,$at,.L0f035cbc
/* f035c5c: 8fa4014c */ lw $a0,0x14c($sp)
/* f035c60: 0fc2c7aa */ jal func0f0b1ea8
/* f035c60: 0fc2c7aa */ jal handHasFunctionFlags
/* f035c64: 3c050020 */ lui $a1,0x20
/* f035c68: 10400006 */ beqz $v0,.L0f035c84
/* f035c6c: 00000000 */ nop
@ -7624,7 +7624,7 @@ glabel var7f1a8d98
/* f036148: 00000000 */ nop
/* f03614c: 4503000b */ bc1tl .L0f03617c
/* f036150: 3c01bf80 */ lui $at,0xbf80
/* f036154: 0fc2c7aa */ jal func0f0b1ea8
/* f036154: 0fc2c7aa */ jal handHasFunctionFlags
/* f036158: 3c050001 */ lui $a1,0x1
/* f03615c: 10400012 */ beqz $v0,.L0f0361a8
/* f036160: 8fb80154 */ lw $t8,0x154($sp)

View File

@ -9498,7 +9498,7 @@ glabel var7f1ac72c
/* f09f34c: 100000a9 */ b .L0f09f5f4
/* f09f350: e7a8023c */ swc1 $f8,0x23c($sp)
.L0f09f354:
/* f09f354: 0fc2c7aa */ jal func0f0b1ea8
/* f09f354: 0fc2c7aa */ jal handHasFunctionFlags
/* f09f358: 3c050080 */ lui $a1,0x80
/* f09f35c: 10400087 */ beqz $v0,.L0f09f57c
/* f09f360: 3c017f1b */ lui $at,%hi(var7f1ac714)
@ -10110,7 +10110,7 @@ glabel var7f1ac740
/* f09fc00: 00000000 */ nop
/* f09fc04: 46803420 */ cvt.s.w $f16,$f6
/* f09fc08: 46008282 */ mul.s $f10,$f16,$f0
/* f09fc0c: 0fc2c7aa */ jal func0f0b1ea8
/* f09fc0c: 0fc2c7aa */ jal handHasFunctionFlags
/* f09fc10: e7aa025c */ swc1 $f10,0x25c($sp)
/* f09fc14: 1040007a */ beqz $v0,.L0f09fe00
/* f09fc18: 00002025 */ or $a0,$zero,$zero

View File

@ -1519,27 +1519,16 @@ glabel func0f0b1e68
/* f0b1ea4: 27bd0018 */ addiu $sp,$sp,0x18
);
GLOBAL_ASM(
glabel func0f0b1ea8
/* f0b1ea8: 27bdffe8 */ addiu $sp,$sp,-24
/* f0b1eac: afbf0014 */ sw $ra,0x14($sp)
/* f0b1eb0: 0fc2c41f */ jal handGetWeaponFunction
/* f0b1eb4: afa5001c */ sw $a1,0x1c($sp)
/* f0b1eb8: 10400006 */ beqz $v0,.L0f0b1ed4
/* f0b1ebc: 8fa4001c */ lw $a0,0x1c($sp)
/* f0b1ec0: 8c4e0010 */ lw $t6,0x10($v0)
/* f0b1ec4: 01c47824 */ and $t7,$t6,$a0
/* f0b1ec8: 008f1026 */ xor $v0,$a0,$t7
/* f0b1ecc: 10000002 */ b .L0f0b1ed8
/* f0b1ed0: 2c420001 */ sltiu $v0,$v0,0x1
.L0f0b1ed4:
/* f0b1ed4: 00001025 */ or $v0,$zero,$zero
.L0f0b1ed8:
/* f0b1ed8: 8fbf0014 */ lw $ra,0x14($sp)
/* f0b1edc: 27bd0018 */ addiu $sp,$sp,0x18
/* f0b1ee0: 03e00008 */ jr $ra
/* f0b1ee4: 00000000 */ nop
);
bool handHasFunctionFlags(struct hand *hand, u32 flags)
{
struct weaponfunc *func = handGetWeaponFunction(hand);
if (func) {
return (func->flags & flags) == flags;
}
return false;
}
s8 weaponGetMaxFireRatePerTick(u32 weaponnum, u32 funcindex)
{

View File

@ -376,7 +376,7 @@ glabel var7f1adddc
/* f0d7470: afaa0058 */ sw $t2,0x58($sp)
/* f0d7474: 24840638 */ addiu $a0,$a0,0x638
/* f0d7478: 0007cf02 */ srl $t9,$a3,0x1c
/* f0d747c: 0fc2c7aa */ jal func0f0b1ea8
/* f0d747c: 0fc2c7aa */ jal handHasFunctionFlags
/* f0d7480: a3b9006b */ sb $t9,0x6b($sp)
/* f0d7484: 93a7006b */ lbu $a3,0x6b($sp)
/* f0d7488: 10400002 */ beqz $v0,.L0f0d7494

View File

@ -1642,7 +1642,7 @@ Gfx *renderFrame(Gfx *gdl)
g_Vars.currentplayer->lookingatprop.prop = NULL;
}
if (func0f0b1ea8(g_Vars.currentplayer->hands, 0x80000)) {
if (handHasFunctionFlags(g_Vars.currentplayer->hands, FUNCFLAG_00080000)) {
func0f1691c0();
} else if (weaponHasFlag(getCurrentPlayerWeaponId(0), WEAPONFLAG_AIMTRACK)) {
s32 j;

View File

@ -17323,7 +17323,7 @@ glabel var7f1aa438
/* f0754f4: 24010035 */ addiu $at,$zero,0x35
/* f0754f8: 10e10006 */ beq $a3,$at,.L0f075514
/* f0754fc: 2624005c */ addiu $a0,$s1,0x5c
/* f075500: 0fc2c7aa */ jal func0f0b1ea8
/* f075500: 0fc2c7aa */ jal handHasFunctionFlags
/* f075504: 24050100 */ addiu $a1,$zero,0x100
/* f075508: 50400014 */ beqzl $v0,.L0f07555c
/* f07550c: 8fb801f8 */ lw $t8,0x1f8($sp)

View File

@ -747,6 +747,8 @@
#define FUNC_PRIMARY 0
#define FUNC_SECONDARY 1
#define FUNCFLAG_00080000 0x00080000
#define GAILIST_IDLE 0x0000
#define GAILIST_UNALERTED_0001 0x0001
#define GAILIST_UNALERTED_0002 0x0002

View File

@ -44,7 +44,7 @@ u32 func0f0b1ce8(void);
f32 func0f0b1d28(u8 *weaponnum);
u32 func0f0b1e28(void);
u32 func0f0b1e68(void);
bool func0f0b1ea8(struct hand *hand, u32 arg1);
bool handHasFunctionFlags(struct hand *hand, u32 flags);
s8 weaponGetMaxFireRatePerTick(u32 weaponnum, u32 funcindex);
u32 currentPlayerGetSight(void);
u32 func0f0b201c(void);