From 9cac53282dc28e5e52eeba47a5abf6479663454f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 26 Aug 2020 22:51:27 +1000 Subject: [PATCH] Decompile func0f0aeed8 --- src/game/game_0abe70.c | 73 +++++-------------------- src/gvars/gvars.c | 97 +--------------------------------- src/include/game/game_0abe70.h | 2 +- src/include/gvars/gvars.h | 2 +- src/include/types.h | 15 ++++++ 5 files changed, 30 insertions(+), 159 deletions(-) diff --git a/src/game/game_0abe70.c b/src/game/game_0abe70.c index 57765f101..49cae1324 100644 --- a/src/game/game_0abe70.c +++ b/src/game/game_0abe70.c @@ -3440,67 +3440,18 @@ glabel func0f0aeea8 /* f0aeed4: e44c002c */ swc1 $f12,0x2c($v0) ); -GLOBAL_ASM( -glabel func0f0aeed8 -/* f0aeed8: 27bdffa8 */ addiu $sp,$sp,-88 -/* f0aeedc: f7b60030 */ sdc1 $f22,0x30($sp) -/* f0aeee0: 3c014000 */ lui $at,0x4000 -/* f0aeee4: 4481b000 */ mtc1 $at,$f22 -/* f0aeee8: afb60050 */ sw $s6,0x50($sp) -/* f0aeeec: afb5004c */ sw $s5,0x4c($sp) -/* f0aeef0: afb40048 */ sw $s4,0x48($sp) -/* f0aeef4: afb30044 */ sw $s3,0x44($sp) -/* f0aeef8: afb00038 */ sw $s0,0x38($sp) -/* f0aeefc: f7b40028 */ sdc1 $f20,0x28($sp) -/* f0aef00: 3c013f80 */ lui $at,0x3f80 -/* f0aef04: afb20040 */ sw $s2,0x40($sp) -/* f0aef08: afb1003c */ sw $s1,0x3c($sp) -/* f0aef0c: 3c10800a */ lui $s0,%hi(var8009da60) -/* f0aef10: 3c13800b */ lui $s3,%hi(var800ab578) -/* f0aef14: 3c14afaf */ lui $s4,0xafaf -/* f0aef18: 3c15afaf */ lui $s5,0xafaf -/* f0aef1c: 3c16800a */ lui $s6,%hi(var8009dbe0) -/* f0aef20: 4481a000 */ mtc1 $at,$f20 -/* f0aef24: 00808825 */ or $s1,$a0,$zero -/* f0aef28: afbf0054 */ sw $ra,0x54($sp) -/* f0aef2c: 26d6dbe0 */ addiu $s6,$s6,%lo(var8009dbe0) -/* f0aef30: 36b5ff7f */ ori $s5,$s5,0xff7f -/* f0aef34: 3694ff00 */ ori $s4,$s4,0xff00 -/* f0aef38: 2673b578 */ addiu $s3,$s3,%lo(var800ab578) -/* f0aef3c: 2610da60 */ addiu $s0,$s0,%lo(var8009da60) -/* f0aef40: 2412ffff */ addiu $s2,$zero,-1 -/* f0aef44: 8e0e0000 */ lw $t6,0x0($s0) -.L0f0aef48: -/* f0aef48: 02202025 */ or $a0,$s1,$zero -/* f0aef4c: 26070014 */ addiu $a3,$s0,0x14 -/* f0aef50: 124e0009 */ beq $s2,$t6,.L0f0aef78 -/* f0aef54: 260f0020 */ addiu $t7,$s0,0x20 -/* f0aef58: 4406a000 */ mfc1 $a2,$f20 -/* f0aef5c: 8e650000 */ lw $a1,0x0($s3) -/* f0aef60: afb40010 */ sw $s4,0x10($sp) -/* f0aef64: e7b60014 */ swc1 $f22,0x14($sp) -/* f0aef68: afaf0018 */ sw $t7,0x18($sp) -/* f0aef6c: 0fc2b12e */ jal func0f0ac4b8 -/* f0aef70: afb5001c */ sw $s5,0x1c($sp) -/* f0aef74: 00408825 */ or $s1,$v0,$zero -.L0f0aef78: -/* f0aef78: 26100030 */ addiu $s0,$s0,0x30 -/* f0aef7c: 5616fff2 */ bnel $s0,$s6,.L0f0aef48 -/* f0aef80: 8e0e0000 */ lw $t6,0x0($s0) -/* f0aef84: 8fbf0054 */ lw $ra,0x54($sp) -/* f0aef88: 02201025 */ or $v0,$s1,$zero -/* f0aef8c: 8fb1003c */ lw $s1,0x3c($sp) -/* f0aef90: d7b40028 */ ldc1 $f20,0x28($sp) -/* f0aef94: d7b60030 */ ldc1 $f22,0x30($sp) -/* f0aef98: 8fb00038 */ lw $s0,0x38($sp) -/* f0aef9c: 8fb20040 */ lw $s2,0x40($sp) -/* f0aefa0: 8fb30044 */ lw $s3,0x44($sp) -/* f0aefa4: 8fb40048 */ lw $s4,0x48($sp) -/* f0aefa8: 8fb5004c */ lw $s5,0x4c($sp) -/* f0aefac: 8fb60050 */ lw $s6,0x50($sp) -/* f0aefb0: 03e00008 */ jr $ra -/* f0aefb4: 27bd0058 */ addiu $sp,$sp,0x58 -); +Gfx *func0f0aeed8(Gfx *gdl) +{ + s32 i; + + for (i = 0; i < ARRAYCOUNT(var8009da60); i++) { + if (var8009da60[i].unk00 != -1) { + gdl = func0f0ac4b8(gdl, var800ab578, 1, &var8009da60[i].unk14, 0xafafff00, 2, &var8009da60[i].unk20, 0xafafff7f); + } + } + + return gdl; +} GLOBAL_ASM( glabel func0f0aefb8 diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index a0ca46830..e9c630980 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -15464,102 +15464,7 @@ u32 var8009d148 = 0; u32 var8009d14c = 0; struct fireslot g_Fireslots[NUM_FIRESLOTS] = {0}; struct var8009d510 var8009d510[20] = {0}; -u32 var8009da60 = 0; -u32 var8009da64 = 0; -u32 var8009da68 = 0; -u32 var8009da6c = 0; -u32 var8009da70 = 0; -u32 var8009da74 = 0; -u32 var8009da78 = 0; -u32 var8009da7c = 0; -u32 var8009da80 = 0; -u32 var8009da84 = 0; -u32 var8009da88 = 0; -u32 var8009da8c = 0; -u32 var8009da90 = 0; -u32 var8009da94 = 0; -u32 var8009da98 = 0; -u32 var8009da9c = 0; -u32 var8009daa0 = 0; -u32 var8009daa4 = 0; -u32 var8009daa8 = 0; -u32 var8009daac = 0; -u32 var8009dab0 = 0; -u32 var8009dab4 = 0; -u32 var8009dab8 = 0; -u32 var8009dabc = 0; -u32 var8009dac0 = 0; -u32 var8009dac4 = 0; -u32 var8009dac8 = 0; -u32 var8009dacc = 0; -u32 var8009dad0 = 0; -u32 var8009dad4 = 0; -u32 var8009dad8 = 0; -u32 var8009dadc = 0; -u32 var8009dae0 = 0; -u32 var8009dae4 = 0; -u32 var8009dae8 = 0; -u32 var8009daec = 0; -u32 var8009daf0 = 0; -u32 var8009daf4 = 0; -u32 var8009daf8 = 0; -u32 var8009dafc = 0; -u32 var8009db00 = 0; -u32 var8009db04 = 0; -u32 var8009db08 = 0; -u32 var8009db0c = 0; -u32 var8009db10 = 0; -u32 var8009db14 = 0; -u32 var8009db18 = 0; -u32 var8009db1c = 0; -u32 var8009db20 = 0; -u32 var8009db24 = 0; -u32 var8009db28 = 0; -u32 var8009db2c = 0; -u32 var8009db30 = 0; -u32 var8009db34 = 0; -u32 var8009db38 = 0; -u32 var8009db3c = 0; -u32 var8009db40 = 0; -u32 var8009db44 = 0; -u32 var8009db48 = 0; -u32 var8009db4c = 0; -u32 var8009db50 = 0; -u32 var8009db54 = 0; -u32 var8009db58 = 0; -u32 var8009db5c = 0; -u32 var8009db60 = 0; -u32 var8009db64 = 0; -u32 var8009db68 = 0; -u32 var8009db6c = 0; -u32 var8009db70 = 0; -u32 var8009db74 = 0; -u32 var8009db78 = 0; -u32 var8009db7c = 0; -u32 var8009db80 = 0; -u32 var8009db84 = 0; -u32 var8009db88 = 0; -u32 var8009db8c = 0; -u32 var8009db90 = 0; -u32 var8009db94 = 0; -u32 var8009db98 = 0; -u32 var8009db9c = 0; -u32 var8009dba0 = 0; -u32 var8009dba4 = 0; -u32 var8009dba8 = 0; -u32 var8009dbac = 0; -u32 var8009dbb0 = 0; -u32 var8009dbb4 = 0; -u32 var8009dbb8 = 0; -u32 var8009dbbc = 0; -u32 var8009dbc0 = 0; -u32 var8009dbc4 = 0; -u32 var8009dbc8 = 0; -u32 var8009dbcc = 0; -u32 var8009dbd0 = 0; -u32 var8009dbd4 = 0; -u32 var8009dbd8 = 0; -u32 var8009dbdc = 0; +struct var8009da60 var8009da60[8] = {0}; u32 var8009dbe0 = 0; u32 var8009dbe4 = 0; u32 var8009dbe8 = 0; diff --git a/src/include/game/game_0abe70.h b/src/include/game/game_0abe70.h index 31b4e6cb3..7e88e71d3 100644 --- a/src/include/game/game_0abe70.h +++ b/src/include/game/game_0abe70.h @@ -5,7 +5,7 @@ u32 func0f0abe70(void); u32 func0f0ac138(void); -u32 func0f0ac4b8(void); +Gfx *func0f0ac4b8(Gfx *gdl, u32 arg1, f32 arg2, u32 *arg3, u32 colour1, f32 arg5, u32 *arg6, u32 colour2); u32 func0f0acb90(void); void bullettailTick(struct bullettail *bullettail); u32 func0f0adcc8(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 4db3b17e0..621680a80 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -587,7 +587,7 @@ extern u32 var8009d0f0; extern u32 var8009d144; extern struct fireslot g_Fireslots[NUM_FIRESLOTS]; extern struct var8009d510 var8009d510[20]; -extern u32 var8009da60; +extern struct var8009da60 var8009da60[8]; extern u32 var8009dbe0; extern u32 var8009dd00; extern u32 var8009dd04; diff --git a/src/include/types.h b/src/include/types.h index ae35aedb0..f610c4818 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6405,4 +6405,19 @@ struct mplockinfo { s8 lastloser; }; +struct var8009da60 { + s32 unk00; + u32 unk04; + u32 unk08; + u32 unk0c; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1c; + u32 unk20; + u32 unk24; + u32 unk28; + u32 unk2c; +}; + #endif