From 28d22959281141e9faf5fed5eadd1e9dc5597870 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 26 Aug 2020 23:49:23 +1000 Subject: [PATCH] Decompile func0f15b114 --- src/game/data/data_020df0.c | 2 +- src/game/game_157db0.c | 66 +++++++---------------------- src/gvars/gvars.c | 51 +--------------------- src/include/game/data/data_020df0.h | 2 +- src/include/game/game_11f000.h | 2 +- src/include/game/game_13c510.h | 6 +-- src/include/gvars/gvars.h | 2 +- 7 files changed, 24 insertions(+), 107 deletions(-) diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index d954001c8..c90cebe6d 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -7070,7 +7070,7 @@ u32 var8007fc04 = 0x00000000; u32 var8007fc08 = 0x00000000; u32 var8007fc0c = 0x00000000; u32 var8007fc10 = 0x00000000; -u32 var8007fc14 = 0x00000000; +s32 var8007fc14 = 0; u32 var8007fc18 = 0x01000100; u32 var8007fc1c = 0x00000000; s32 var8007fc20 = 0x00000001; diff --git a/src/game/game_157db0.c b/src/game/game_157db0.c index ebef05407..7daf33add 100644 --- a/src/game/game_157db0.c +++ b/src/game/game_157db0.c @@ -3629,56 +3629,22 @@ glabel func0f15a6f4 /* f15b110: 27bd0338 */ addiu $sp,$sp,0x338 ); -GLOBAL_ASM( -glabel func0f15b114 -/* f15b114: 27bdffd8 */ addiu $sp,$sp,-40 -/* f15b118: 3c0e800a */ lui $t6,%hi(g_Vars+0x314) -/* f15b11c: 8dcea2d4 */ lw $t6,%lo(g_Vars+0x314)($t6) -/* f15b120: afb2001c */ sw $s2,0x1c($sp) -/* f15b124: 00809025 */ or $s2,$a0,$zero -/* f15b128: afbf0024 */ sw $ra,0x24($sp) -/* f15b12c: afb30020 */ sw $s3,0x20($sp) -/* f15b130: afb10018 */ sw $s1,0x18($sp) -/* f15b134: 15c0001a */ bnez $t6,.L0f15b1a0 -/* f15b138: afb00014 */ sw $s0,0x14($sp) -/* f15b13c: 3c138008 */ lui $s3,%hi(var8007fc14) -/* f15b140: 2673fc14 */ addiu $s3,$s3,%lo(var8007fc14) -/* f15b144: 8e6f0000 */ lw $t7,0x0($s3) -/* f15b148: 19e00015 */ blez $t7,.L0f15b1a0 -/* f15b14c: 00000000 */ nop -/* f15b150: 0fc4f503 */ jal func0f13d40c -/* f15b154: 00000000 */ nop -/* f15b158: 8e780000 */ lw $t8,0x0($s3) -/* f15b15c: 00409025 */ or $s2,$v0,$zero -/* f15b160: 00008025 */ or $s0,$zero,$zero -/* f15b164: 1b00000b */ blez $t8,.L0f15b194 -/* f15b168: 3c11800a */ lui $s1,%hi(var800a4bf8) -/* f15b16c: 26314bf8 */ addiu $s1,$s1,%lo(var800a4bf8) -.L0f15b170: -/* f15b170: 02402025 */ or $a0,$s2,$zero -/* f15b174: 0fc4f55a */ jal func0f13d568 -/* f15b178: 86250000 */ lh $a1,0x0($s1) -/* f15b17c: 8e790000 */ lw $t9,0x0($s3) -/* f15b180: 26100001 */ addiu $s0,$s0,0x1 -/* f15b184: 26310002 */ addiu $s1,$s1,0x2 -/* f15b188: 0219082a */ slt $at,$s0,$t9 -/* f15b18c: 1420fff8 */ bnez $at,.L0f15b170 -/* f15b190: 00409025 */ or $s2,$v0,$zero -.L0f15b194: -/* f15b194: 0fc4f553 */ jal func0f13d54c -/* f15b198: 02402025 */ or $a0,$s2,$zero -/* f15b19c: 00409025 */ or $s2,$v0,$zero -.L0f15b1a0: -/* f15b1a0: 0fc49c57 */ jal func0f12715c -/* f15b1a4: 02402025 */ or $a0,$s2,$zero -/* f15b1a8: 8fbf0024 */ lw $ra,0x24($sp) -/* f15b1ac: 8fb00014 */ lw $s0,0x14($sp) -/* f15b1b0: 8fb10018 */ lw $s1,0x18($sp) -/* f15b1b4: 8fb2001c */ lw $s2,0x1c($sp) -/* f15b1b8: 8fb30020 */ lw $s3,0x20($sp) -/* f15b1bc: 03e00008 */ jr $ra -/* f15b1c0: 27bd0028 */ addiu $sp,$sp,0x28 -); +Gfx *func0f15b114(Gfx *gdl) +{ + s32 i; + + if (g_Vars.mplayerisrunning == false && var8007fc14 > 0) { + gdl = func0f13d40c(gdl); + + for (i = 0; i < var8007fc14; i++) { + gdl = func0f13d568(gdl, var800a4bf8[i]); + } + + gdl = func0f13d54c(gdl); + } + + return func0f12715c(gdl); +} GLOBAL_ASM( glabel func0f15b1c4 diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index e9c630980..11e80a317 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -16664,56 +16664,7 @@ u32 var800a4be8 = 0; u32 var800a4bec = 0; u32 var800a4bf0 = 0; u32 var800a4bf4 = 0; -u32 var800a4bf8 = 0; -u32 var800a4bfc = 0; -u32 var800a4c00 = 0; -u32 var800a4c04 = 0; -u32 var800a4c08 = 0; -u32 var800a4c0c = 0; -u32 var800a4c10 = 0; -u32 var800a4c14 = 0; -u32 var800a4c18 = 0; -u32 var800a4c1c = 0; -u32 var800a4c20 = 0; -u32 var800a4c24 = 0; -u32 var800a4c28 = 0; -u32 var800a4c2c = 0; -u32 var800a4c30 = 0; -u32 var800a4c34 = 0; -u32 var800a4c38 = 0; -u32 var800a4c3c = 0; -u32 var800a4c40 = 0; -u32 var800a4c44 = 0; -u32 var800a4c48 = 0; -u32 var800a4c4c = 0; -u32 var800a4c50 = 0; -u32 var800a4c54 = 0; -u32 var800a4c58 = 0; -u32 var800a4c5c = 0; -u32 var800a4c60 = 0; -u32 var800a4c64 = 0; -u32 var800a4c68 = 0; -u32 var800a4c6c = 0; -u32 var800a4c70 = 0; -u32 var800a4c74 = 0; -u32 var800a4c78 = 0; -u32 var800a4c7c = 0; -u32 var800a4c80 = 0; -u32 var800a4c84 = 0; -u32 var800a4c88 = 0; -u32 var800a4c8c = 0; -u32 var800a4c90 = 0; -u32 var800a4c94 = 0; -u32 var800a4c98 = 0; -u32 var800a4c9c = 0; -u32 var800a4ca0 = 0; -u32 var800a4ca4 = 0; -u32 var800a4ca8 = 0; -u32 var800a4cac = 0; -u32 var800a4cb0 = 0; -u32 var800a4cb4 = 0; -u32 var800a4cb8 = 0; -u32 var800a4cbc = 0; +s16 var800a4bf8[100] = {0}; u32 var800a4cc0 = 0; struct var800a4cc4 *var800a4cc4 = NULL; struct portal *g_Portals = NULL; diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 28acf5e2d..23e0fb93b 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -262,7 +262,7 @@ extern u32 var8007fbec; extern u32 g_StageIndex; extern u32 var8007fc0c; extern u32 var8007fc10; -extern u32 var8007fc14; +extern s32 var8007fc14; extern s32 var8007fc20; extern u32 var8007fc24; extern u32 var8007fc28; diff --git a/src/include/game/game_11f000.h b/src/include/game/game_11f000.h index 749950cca..1722273d5 100644 --- a/src/include/game/game_11f000.h +++ b/src/include/game/game_11f000.h @@ -22,7 +22,7 @@ u32 func0f125a6c(void); u32 func0f126384(void); u32 func0f126c3c(void); u32 func0f126de8(void); -u32 func0f12715c(void); +Gfx *func0f12715c(Gfx *gdl); u32 func0f127334(void); u32 func0f127490(void); u32 func0f1274d8(void); diff --git a/src/include/game/game_13c510.h b/src/include/game/game_13c510.h index a6aa266fe..63b797925 100644 --- a/src/include/game/game_13c510.h +++ b/src/include/game/game_13c510.h @@ -9,8 +9,8 @@ u32 func0f13c574(void); u32 func0f13c710(void); u32 func0f13c780(void); u32 func0f13d3c4(void); -u32 func0f13d40c(void); -u32 func0f13d54c(void); -u32 func0f13d568(void); +Gfx *func0f13d40c(Gfx *gdl); +Gfx *func0f13d54c(Gfx *gdl); +Gfx *func0f13d568(Gfx *gdl, u32 arg1); #endif diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 621680a80..abaddff97 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -724,7 +724,7 @@ extern u8 *g_MpRoomVisibility; extern s16 var800a4930[1]; extern u32 var800a4bec; extern u32 var800a4bf0; -extern u32 var800a4bf8; +extern s16 var800a4bf8[100]; extern u32 var800a4cc0; extern struct var800a4cc4 *var800a4cc4; extern struct portal *g_Portals;