From 749732584ba6296355b1f87ba12db3f1b67e1ee4 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 25 Dec 2019 13:00:18 +1000 Subject: [PATCH] Decompile chrSetMaxDamage, chrGetMaxDamage, func0f028490 and chrSetField66To0 --- src/game/chr/chr.c | 41 ++++++++++++++++-------------------- src/game/chr/chraicommands.c | 2 +- src/game/game_0b28d0.c | 12 +++++------ src/include/game/chr/chr.h | 8 +++---- src/include/types.h | 3 +-- 5 files changed, 30 insertions(+), 36 deletions(-) diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 1f8f6a621..5330f0a78 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -3480,18 +3480,15 @@ glabel func0f020538 /* f020594: 00601025 */ or $v0,$v1,$zero ); -GLOBAL_ASM( -glabel func0f020598 -/* f020598: 44856000 */ mtc1 $a1,$f12 -/* f02059c: 03e00008 */ jr $ra -/* f0205a0: e48c0104 */ swc1 $f12,0x104($a0) -); +void chrSetMaxDamage(struct chrdata *chr, f32 maxdamage) +{ + chr->maxdamage = maxdamage; +} -GLOBAL_ASM( -glabel func0f0205a4 -/* f0205a4: 03e00008 */ jr $ra -/* f0205a8: c4800104 */ lwc1 $f0,0x104($a0) -); +f32 chrGetMaxDamage(struct chrdata *chr) +{ + return chr->maxdamage; +} GLOBAL_ASM( glabel func0f0205ac @@ -12418,11 +12415,10 @@ glabel func0f027e1c /* f02848c: 27bd00f8 */ addiu $sp,$sp,0xf8 ); -GLOBAL_ASM( -glabel func0f028490 -/* f028490: 03e00008 */ jr $ra -/* f028494: e7ac0000 */ swc1 $f12,0x0($sp) -); +void func0f028490(f32 arg1) +{ + // empty +} GLOBAL_ASM( glabel func0f028498 @@ -28852,11 +28848,10 @@ glabel func0f037124 /* f037218: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f03721c -/* f03721c: 03e00008 */ jr $ra -/* f037220: a4800066 */ sh $zero,0x66($a0) -); +void chrSetField66To0(struct chrdata *chr) +{ + chr->unk066 = 0; +} GLOBAL_ASM( glabel func0f037224 @@ -28934,7 +28929,7 @@ glabel func0f0372e8 /* f037318: c7a60030 */ lwc1 $f6,0x30($sp) /* f03731c: e4860070 */ swc1 $f6,0x70($a0) /* f037320: c7a80034 */ lwc1 $f8,0x34($sp) -/* f037324: 0fc0dc87 */ jal func0f03721c +/* f037324: 0fc0dc87 */ jal chrSetField66To0 /* f037328: e4880074 */ swc1 $f8,0x74($a0) /* f03732c: 8fbf0014 */ lw $ra,0x14($sp) /* f037330: 27bd0038 */ addiu $sp,$sp,0x38 @@ -44812,7 +44807,7 @@ glabel func0f045a70 /* f045b38: 11400010 */ beqz $t2,.L0f045b7c /* f045b3c: 00000000 */ sll $zero,$zero,0x0 .L0f045b40: -/* f045b40: 0fc0dc87 */ jal func0f03721c +/* f045b40: 0fc0dc87 */ jal chrSetField66To0 /* f045b44: 00000000 */ sll $zero,$zero,0x0 /* f045b48: 8fab0030 */ lw $t3,0x30($sp) /* f045b4c: 8e050004 */ lw $a1,0x4($s0) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index a3527bc54..8c5020a00 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -4616,7 +4616,7 @@ glabel ai0096 /* f053a84: 50410005 */ beql $v0,$at,.L0f053a9c /* f053a88: 8e0d0438 */ lw $t5,0x438($s0) /* f053a8c: 44050000 */ mfc1 $a1,$f0 -/* f053a90: 0fc08166 */ jal func0f020598 +/* f053a90: 0fc08166 */ jal chrSetMaxDamage /* f053a94: 00000000 */ sll $zero,$zero,0x0 .L0f053a98: /* f053a98: 8e0d0438 */ lw $t5,0x438($s0) diff --git a/src/game/game_0b28d0.c b/src/game/game_0b28d0.c index b444ca092..cef33060c 100644 --- a/src/game/game_0b28d0.c +++ b/src/game/game_0b28d0.c @@ -6383,7 +6383,7 @@ glabel func0f0b7c60 /* f0b7e28: 8c790284 */ lw $t9,0x284($v1) /* f0b7e2c: 0fc2a660 */ jal func0f0a9980 /* f0b7e30: a722024e */ sh $v0,0x24e($t9) -/* f0b7e34: 0fc08169 */ jal func0f0205a4 +/* f0b7e34: 0fc08169 */ jal chrGetMaxDamage /* f0b7e38: 02002025 */ or $a0,$s0,$zero /* f0b7e3c: c6060100 */ lwc1 $f6,0x100($s0) /* f0b7e40: 3c013f80 */ lui $at,0x3f80 @@ -14168,7 +14168,7 @@ glabel func0f0bd904 /* f0bee40: 02002025 */ or $a0,$s0,$zero /* f0bee44: 02002025 */ or $a0,$s0,$zero .L0f0bee48: -/* f0bee48: 0fc08166 */ jal func0f020598 +/* f0bee48: 0fc08166 */ jal chrSetMaxDamage /* f0bee4c: 3c054080 */ lui $a1,0x4080 /* f0bee50: 8e180018 */ lw $t8,0x18($s0) /* f0bee54: 920d02e1 */ lbu $t5,0x2e1($s0) @@ -14282,7 +14282,7 @@ glabel func0f0bd904 /* f0beff0: ae090018 */ sw $t1,0x18($s0) /* f0beff4: ae0b0014 */ sw $t3,0x14($s0) /* f0beff8: a21802e1 */ sb $t8,0x2e1($s0) -/* f0beffc: 0fc08166 */ jal func0f020598 +/* f0beffc: 0fc08166 */ jal chrSetMaxDamage /* f0bf000: 02002025 */ or $a0,$s0,$zero .L0f0bf004: /* f0bf004: 0fc41b99 */ jal func0f106e64 @@ -14366,7 +14366,7 @@ glabel func0f0bd904 /* f0bf130: 3c054120 */ lui $a1,0x4120 /* f0bf134: 02002025 */ or $a0,$s0,$zero .L0f0bf138: -/* f0bf138: 0fc08166 */ jal func0f020598 +/* f0bf138: 0fc08166 */ jal chrSetMaxDamage /* f0bf13c: 3c054120 */ lui $a1,0x4120 /* f0bf140: 8e0b0018 */ lw $t3,0x18($s0) /* f0bf144: 921802e1 */ lbu $t8,0x2e1($s0) @@ -14467,7 +14467,7 @@ glabel func0f0bd904 /* f0bf2b0: 02002025 */ or $a0,$s0,$zero /* f0bf2b4: 02002025 */ or $a0,$s0,$zero .L0f0bf2b8: -/* f0bf2b8: 0fc08166 */ jal func0f020598 +/* f0bf2b8: 0fc08166 */ jal chrSetMaxDamage /* f0bf2bc: 3c054120 */ lui $a1,0x4120 /* f0bf2c0: 8e0c0018 */ lw $t4,0x18($s0) /* f0bf2c4: 920902e1 */ lbu $t1,0x2e1($s0) @@ -14572,7 +14572,7 @@ glabel func0f0bd904 /* f0bf440: 02002025 */ or $a0,$s0,$zero /* f0bf444: 02002025 */ or $a0,$s0,$zero .L0f0bf448: -/* f0bf448: 0fc08166 */ jal func0f020598 +/* f0bf448: 0fc08166 */ jal chrSetMaxDamage /* f0bf44c: 3c054120 */ lui $a1,0x4120 /* f0bf450: 8e0e0018 */ lw $t6,0x18($s0) /* f0bf454: 920a02e1 */ lbu $t2,0x2e1($s0) diff --git a/src/include/game/chr/chr.h b/src/include/game/chr/chr.h index b6af6d53c..97104dee7 100644 --- a/src/include/game/chr/chr.h +++ b/src/include/game/chr/chr.h @@ -44,8 +44,8 @@ u32 func0f01e7bc(void); u32 func0f01e7f4(void); u32 func0f01f264(struct chrdata *chr, struct coord *coord, s16 *room, f32 arg3, s32 arg4); u32 func0f020538(void); -u32 func0f020598(void); -u32 func0f0205a4(void); +void chrSetMaxDamage(struct chrdata *chr, f32 maxdamage); +f32 chrGetMaxDamage(struct chrdata *chr); u32 func0f0205ac(void); u32 func0f0205ec(void); u32 func0f020668(void); @@ -87,7 +87,7 @@ u32 func0f0270f4(void); u32 func0f0278a4(void); u32 func0f027994(void); u32 func0f027e1c(void); -u32 func0f028490(void); +void func0f028490(f32 arg1); u32 func0f028498(void); u32 func0f028590(void); struct attachment *chrGetEquippedWeaponAttachment(struct chrdata *chr, s32 hand); @@ -204,7 +204,7 @@ u32 func0f036fc0(void); u32 func0f037088(void); u32 func0f0370a8(void); u32 func0f037124(void); -u32 func0f03721c(void); +void chrSetField66To0(struct chrdata *chr); u32 func0f037224(void); u32 func0f0372e8(void); u32 func0f03733c(void); diff --git a/src/include/types.h b/src/include/types.h index c9db81cba..fcd9eed39 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -298,8 +298,7 @@ struct chrdata { /*0x060*/ u32 unk060; /*0x064*/ u8 unk064; /*0x066*/ u8 unk065; - /*0x066*/ u8 unk066; - /*0x067*/ u8 unk067; + /*0x066*/ s16 unk066; /*0x068*/ u32 unk068; /*0x06c*/ u32 unk06c; /*0x070*/ u32 unk070;