Decompile func0f097e74

This commit is contained in:
Ryan Dwyer 2021-04-16 17:31:56 +10:00
parent d0a65f7e68
commit 2b69e366a0
3 changed files with 31 additions and 121 deletions

View File

@ -436,58 +436,30 @@ glabel func0f097df0
/* f097e70: 00601025 */ or $v0,$v1,$zero
);
GLOBAL_ASM(
glabel func0f097e74
/* f097e74: 27bdffe8 */ addiu $sp,$sp,-24
/* f097e78: afa40018 */ sw $a0,0x18($sp)
/* f097e7c: 87ae001a */ lh $t6,0x1a($sp)
/* f097e80: 24010035 */ addiu $at,$zero,0x35
/* f097e84: afbf0014 */ sw $ra,0x14($sp)
/* f097e88: afa5001c */ sw $a1,0x1c($sp)
/* f097e8c: 11c10004 */ beq $t6,$at,.L0f097ea0
/* f097e90: afa60020 */ sw $a2,0x20($sp)
/* f097e94: 24010036 */ addiu $at,$zero,0x36
/* f097e98: 15c10013 */ bne $t6,$at,.L0f097ee8
/* f097e9c: 00e02025 */ or $a0,$a3,$zero
.L0f097ea0:
/* f097ea0: 3c0f800a */ lui $t7,%hi(g_Vars+0x284)
/* f097ea4: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
/* f097ea8: 8de41594 */ lw $a0,0x1594($t7)
/* f097eac: 5080001b */ beqzl $a0,.L0f097f1c
/* f097eb0: 8fbf0014 */ lw $ra,0x14($sp)
/* f097eb4: 0c006a47 */ jal modelGetPart
/* f097eb8: 87a5001a */ lh $a1,0x1a($sp)
/* f097ebc: 50400017 */ beqzl $v0,.L0f097f1c
/* f097ec0: 8fbf0014 */ lw $ra,0x14($sp)
/* f097ec4: 8c430004 */ lw $v1,0x4($v0)
/* f097ec8: 8fb80020 */ lw $t8,0x20($sp)
/* f097ecc: 8fa9001c */ lw $t1,0x1c($sp)
/* f097ed0: 94790004 */ lhu $t9,0x4($v1)
/* f097ed4: 00194080 */ sll $t0,$t9,0x2
/* f097ed8: 03082021 */ addu $a0,$t8,$t0
/* f097edc: 248404b4 */ addiu $a0,$a0,0x4b4
/* f097ee0: 1000000d */ b .L0f097f18
/* f097ee4: ac890000 */ sw $t1,0x0($a0)
.L0f097ee8:
/* f097ee8: 0c006a47 */ jal modelGetPart
/* f097eec: 87a5001a */ lh $a1,0x1a($sp)
/* f097ef0: 5040000a */ beqzl $v0,.L0f097f1c
/* f097ef4: 8fbf0014 */ lw $ra,0x14($sp)
/* f097ef8: 8c430004 */ lw $v1,0x4($v0)
/* f097efc: 8faa0020 */ lw $t2,0x20($sp)
/* f097f00: 8fad001c */ lw $t5,0x1c($sp)
/* f097f04: 946b0004 */ lhu $t3,0x4($v1)
/* f097f08: 000b6080 */ sll $t4,$t3,0x2
/* f097f0c: 014c2021 */ addu $a0,$t2,$t4
/* f097f10: 24840434 */ addiu $a0,$a0,0x434
/* f097f14: ac8d0000 */ sw $t5,0x0($a0)
.L0f097f18:
/* f097f18: 8fbf0014 */ lw $ra,0x14($sp)
.L0f097f1c:
/* f097f1c: 27bd0018 */ addiu $sp,$sp,0x18
/* f097f20: 03e00008 */ jr $ra
/* f097f24: 00000000 */ nop
);
void func0f097e74(s16 partnum, s32 arg1, struct hand *hand, struct modelfiledata *arg3)
{
struct modelnode *node;
if (partnum == 0x35 || partnum == 0x36) {
if (g_Vars.currentplayer->gunctrl.unk1594) {
node = modelGetPart(g_Vars.currentplayer->gunctrl.unk1594, partnum);
if (node) {
union modelnode_data *data = node->data;
u32 *ptr = &hand->handsavedata[data->partid.index];
*ptr = arg1;
}
}
} else {
node = modelGetPart(arg3, partnum);
if (node) {
union modelnode_data *data = node->data;
u32 *ptr = &hand->unk0a6c[data->partid.index];
*ptr = arg1;
}
}
}
GLOBAL_ASM(
glabel func0f097f28
@ -567,7 +539,7 @@ glabel func0f097f28
/* f09802c: 27bd0030 */ addiu $sp,$sp,0x30
);
void func0f098030(struct hand *hand, u32 arg1)
void func0f098030(struct hand *hand, struct modelfiledata *arg1)
{
struct weapon *weapon = weaponFindById(hand->base.weaponnum);
s32 i;

View File

@ -8,9 +8,9 @@ void func0f097ba0(s32 handnum, s32 weaponnum);
s32 weaponGetUnequippedReloadIndex(s32 weaponnum);
void handsTickUnequippedReload(void);
u32 func0f097df0(void);
void func0f097e74(s16 partnum, s32 arg1, struct hand *hand, u32 arg3);
void func0f097f28(struct hand *hand, s32 arg1, struct inventory_typef *arg2);
void func0f098030(struct hand *hand, u32 arg1);
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);
f32 func0f09815c(struct hand *hand);
u32 func0f0981e8(void);
bool func0f098884(struct guncmd *cmd, struct shorthand *hand);

View File

@ -2221,70 +2221,8 @@ struct hand {
/*0x09b8*/ u32 unk09b8;
/*0x09bc*/ struct model unk09bc;
/*0x09e0*/ struct anim anim;
/*0x0a6c*/ u32 unk0a6c;
/*0x0a70*/ u32 unk0a70;
/*0x0a74*/ u32 unk0a74;
/*0x0a78*/ u32 unk0a78;
/*0x0a7c*/ u32 unk0a7c;
/*0x0a80*/ u32 unk0a80;
/*0x0a84*/ u32 unk0a84;
/*0x0a88*/ u32 unk0a88;
/*0x0a8c*/ u32 unk0a8c;
/*0x0a90*/ u32 unk0a90;
/*0x0a94*/ u32 unk0a94;
/*0x0a98*/ u32 unk0a98;
/*0x0a9c*/ u32 unk0a9c;
/*0x0aa0*/ u32 unk0aa0;
/*0x0aa4*/ u32 unk0aa4;
/*0x0aa8*/ u32 unk0aa8;
/*0x0aac*/ u32 unk0aac;
/*0x0ab0*/ u32 unk0ab0;
/*0x0ab4*/ u32 unk0ab4;
/*0x0ab8*/ u32 unk0ab8;
/*0x0abc*/ u32 unk0abc;
/*0x0ac0*/ u32 unk0ac0;
/*0x0ac4*/ u32 unk0ac4;
/*0x0ac8*/ u32 unk0ac8;
/*0x0acc*/ u32 unk0acc;
/*0x0ad0*/ u32 unk0ad0;
/*0x0ad4*/ u32 unk0ad4;
/*0x0ad8*/ u32 unk0ad8;
/*0x0adc*/ u32 unk0adc;
/*0x0ae0*/ u32 unk0ae0;
/*0x0ae4*/ u32 unk0ae4;
/*0x0ae8*/ u32 unk0ae8;
/*0x0aec*/ u32 unk0aec;
/*0x0af0*/ u32 unk0af0;
/*0x0af4*/ u32 unk0af4;
/*0x0af8*/ u32 unk0af8;
/*0x0afc*/ u32 unk0afc;
/*0x0b00*/ u32 unk0b00;
/*0x0b04*/ u32 unk0b04;
/*0x0b08*/ u32 unk0b08;
/*0x0b0c*/ u32 unk0b0c;
/*0x0b10*/ u32 unk0b10;
/*0x0b14*/ u32 unk0b14;
/*0x0b18*/ u32 unk0b18;
/*0x0b1c*/ u32 unk0b1c;
/*0x0b20*/ u32 unk0b20;
/*0x0b24*/ u32 unk0b24;
/*0x0b28*/ u32 unk0b28;
/*0x0b2c*/ u32 unk0b2c;
/*0x0b30*/ u32 unk0b30;
/*0x0b34*/ u32 unk0b34;
/*0x0b38*/ u32 unk0b38;
/*0x0b3c*/ u32 unk0b3c;
/*0x0b40*/ u32 unk0b40;
/*0x0b44*/ u32 unk0b44;
/*0x0b48*/ u32 unk0b48;
/*0x0b4c*/ u32 unk0b4c;
/*0x0b50*/ u32 unk0b50;
/*0x0b54*/ u32 unk0b54;
/*0x0b58*/ u32 unk0b58;
/*0x0b5c*/ u32 unk0b5c;
/*0x0b60*/ u32 unk0b60;
/*0x0b64*/ u32 unk0b64;
/*0x0b68*/ u32 unk0b68;
/*0x0a6c*/ u32 unk0a6c[32];
/*0x0aec*/ u32 handsavedata[32];
/*0x0b6c*/ u32 unk0b6c;
/*0x0b70*/ u32 unk0b70;
/*0x0b74*/ u32 unk0b74;
@ -2476,7 +2414,7 @@ struct gunctrl {
/*0x1588*/ s32 gunmemtype;
/*0x158c*/ void *unk158c;
/*0x1590*/ u32 unk1590;
/*0x1594*/ s32 unk1594;
/*0x1594*/ struct modelfiledata *unk1594;
/*0x1598*/ s32 unk1598;
/*0x159c*/ u16 unk159c;
/*0x15a0*/ s32 unk15a0;