diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index bcbe8bdbd..3096709e7 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -136,34 +136,27 @@ glabel func0f16d0a8 /* f16d120: 00000000 */ nop ); +s32 func0f16d124(s32 arg0) +{ + s32 i; + + for (i = 0; i < ARRAYCOUNT(var800aaa38); i++) { + if (var800aaa38[i].unk00 == arg0) { + if (var800aaa38[i].unk08) { + return 2; + } + + if (var800aaa38[i].unk04) { + return 1; + } + } + } + + return 0; +} + GLOBAL_ASM( -glabel func0f16d124 -/* f16d124: 3c03800b */ lui $v1,%hi(var800aaa38) -/* f16d128: 3c02800b */ lui $v0,%hi(var800aaa68) -/* f16d12c: 2442aa68 */ addiu $v0,$v0,%lo(var800aaa68) -/* f16d130: 2463aa38 */ addiu $v1,$v1,%lo(var800aaa38) -/* f16d134: 8c6e0000 */ lw $t6,0x0($v1) -.L0f16d138: -/* f16d138: 548e000c */ bnel $a0,$t6,.L0f16d16c -/* f16d13c: 24630010 */ addiu $v1,$v1,0x10 -/* f16d140: 8c6f0008 */ lw $t7,0x8($v1) -/* f16d144: 51e00004 */ beqzl $t7,.L0f16d158 -/* f16d148: 8c780004 */ lw $t8,0x4($v1) -/* f16d14c: 03e00008 */ jr $ra -/* f16d150: 24020002 */ addiu $v0,$zero,0x2 -/* f16d154: 8c780004 */ lw $t8,0x4($v1) -.L0f16d158: -/* f16d158: 53000004 */ beqzl $t8,.L0f16d16c -/* f16d15c: 24630010 */ addiu $v1,$v1,0x10 -/* f16d160: 03e00008 */ jr $ra -/* f16d164: 24020001 */ addiu $v0,$zero,0x1 -/* f16d168: 24630010 */ addiu $v1,$v1,0x10 -.L0f16d16c: -/* f16d16c: 5462fff2 */ bnel $v1,$v0,.L0f16d138 -/* f16d170: 8c6e0000 */ lw $t6,0x0($v1) -/* f16d174: 00001025 */ or $v0,$zero,$zero -/* f16d178: 03e00008 */ jr $ra -/* f16d17c: 00000000 */ nop +glabel func0f16d180 /* f16d180: 3c02800b */ lui $v0,%hi(var800aaa38) /* f16d184: 2442aa38 */ addiu $v0,$v0,%lo(var800aaa38) /* f16d188: 00001825 */ or $v1,$zero,$zero diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 1200eb5b2..5b2c66f70 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -18332,18 +18332,7 @@ u32 var800aa5cc = 0; s32 var800aa5d0 = 0; u32 var800aa5d4 = 0; struct var800aa5d8 var800aa5d8[40] = {0}; -u32 var800aaa38 = 0; -u32 var800aaa3c = 0; -u32 var800aaa40 = 0; -u32 var800aaa44 = 0; -u32 var800aaa48 = 0; -u32 var800aaa4c = 0; -u32 var800aaa50 = 0; -u32 var800aaa54 = 0; -u32 var800aaa58 = 0; -u32 var800aaa5c = 0; -u32 var800aaa60 = 0; -u32 var800aaa64 = 0; +struct var800aaa38 var800aaa38[3] = {0}; u32 var800aaa68[4] = {0}; u32 var800aaa78[4] = {0}; u32 var800aaa88[4] = {0}; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 2e19f3134..36031488e 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -764,7 +764,7 @@ extern s32 g_BoostAndSlayerActiveTypes[3]; extern u32 var800aa5cc; extern s32 var800aa5d0; // stage number extern struct var800aa5d8 var800aa5d8[40]; -extern u32 var800aaa38; +extern struct var800aaa38 var800aaa38[3]; extern u32 var800aaa68[4]; extern u32 var800aaa78[4]; extern u32 var800aaa88[4]; diff --git a/src/include/types.h b/src/include/types.h index 949c4a9f5..48134319e 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6250,4 +6250,11 @@ struct var800a4ce8 { s16 unk02; }; +struct var800aaa38 { + u32 unk00; + u32 unk04; + u32 unk08; + u32 unk0c; +}; + #endif