From 87c7d3d4f6ac2a9897a7b8aa6ea9efc277f7441a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 1 Apr 2020 20:31:00 +1000 Subject: [PATCH] Decompile func0f0151f0 --- src/game/game_0151f0.c | 43 ++++++++-------------------------- src/gvars/gvars.c | 11 +-------- src/include/game/game_0151f0.h | 2 +- src/include/gvars/gvars.h | 2 +- 4 files changed, 13 insertions(+), 45 deletions(-) diff --git a/src/game/game_0151f0.c b/src/game/game_0151f0.c index 396837833..3b41c589c 100644 --- a/src/game/game_0151f0.c +++ b/src/game/game_0151f0.c @@ -10,36 +10,13 @@ #include "gvars/gvars.h" #include "types.h" -GLOBAL_ASM( -glabel func0f0151f0 -/* f0151f0: 3c04800a */ lui $a0,%hi(g_Objectives) -/* f0151f4: 3c08800a */ lui $t0,%hi(var8009d088) -/* f0151f8: 3c06800a */ lui $a2,%hi(var8009d088) -/* f0151fc: 24c6d088 */ addiu $a2,$a2,%lo(var8009d088) -/* f015200: 2508d088 */ addiu $t0,$t0,%lo(var8009d088) -/* f015204: 2484d060 */ addiu $a0,$a0,%lo(g_Objectives) -/* f015208: 00001825 */ or $v1,$zero,$zero -/* f01520c: 24070001 */ addiu $a3,$zero,0x1 -/* f015210: 24050002 */ addiu $a1,$zero,0x2 -.L0f015214: -/* f015214: 8c820000 */ lw $v0,0x0($a0) -/* f015218: 24840004 */ addiu $a0,$a0,0x4 -/* f01521c: 1040000a */ beqz $v0,.L0f015248 -/* f015220: 00000000 */ sll $zero,$zero,0x0 -/* f015224: 904e000e */ lbu $t6,0xe($v0) -/* f015228: 00c31021 */ addu $v0,$a2,$v1 -/* f01522c: 31cf0001 */ andi $t7,$t6,0x1 -/* f015230: 11e00005 */ beqz $t7,.L0f015248 -/* f015234: 00000000 */ sll $zero,$zero,0x0 -/* f015238: 8c580000 */ lw $t8,0x0($v0) -/* f01523c: 10b80002 */ beq $a1,$t8,.L0f015248 -/* f015240: 00000000 */ sll $zero,$zero,0x0 -/* f015244: ac470000 */ sw $a3,0x0($v0) -.L0f015248: -/* f015248: 1488fff2 */ bne $a0,$t0,.L0f015214 -/* f01524c: 24630004 */ addiu $v1,$v1,0x4 -/* f015250: 03e00008 */ jr $ra -/* f015254: 00000000 */ sll $zero,$zero,0x0 -/* f015258: 00000000 */ sll $zero,$zero,0x0 -/* f01525c: 00000000 */ sll $zero,$zero,0x0 -); +void func0f0151f0(void) +{ + s32 i; + + for (i = 0; i < ARRAYCOUNT(g_Objectives); i++) { + if (g_Objectives[i] && (g_Objectives[i]->unk0e & 1) && var8009d088[i] != 2) { + var8009d088[i] = 1; + } + } +} diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 1eea1ae5a..ea8c3eb82 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -15447,16 +15447,7 @@ u32 var8009d054 = 0; u32 var8009d058 = 0; u32 var8009d05c = 0; struct objective *g_Objectives[MAX_OBJECTIVES] = {0}; -u32 var8009d088 = 0; -u32 var8009d08c = 0; -u32 var8009d090 = 0; -u32 var8009d094 = 0; -u32 var8009d098 = 0; -u32 var8009d09c = 0; -u32 var8009d0a0 = 0; -u32 var8009d0a4 = 0; -u32 var8009d0a8 = 0; -u32 var8009d0ac = 0; +u32 var8009d088[MAX_OBJECTIVES] = {0}; u32 var8009d0b0 = 0; struct objectivething *var8009d0b4 = NULL; struct criteria_roomentered *g_RoomEnteredCriterias = NULL; diff --git a/src/include/game/game_0151f0.h b/src/include/game/game_0151f0.h index ba2127ea2..8d3ebe103 100644 --- a/src/include/game/game_0151f0.h +++ b/src/include/game/game_0151f0.h @@ -3,6 +3,6 @@ #include #include "types.h" -u32 func0f0151f0(void); +void func0f0151f0(void); #endif diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 18384cf4c..67d0b7e00 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -570,7 +570,7 @@ extern u32 var8009cf88; extern struct stagesetup g_StageSetup; extern u8 *g_GeCreditsData; extern struct objective *g_Objectives[MAX_OBJECTIVES]; -extern u32 var8009d088; +extern u32 var8009d088[MAX_OBJECTIVES]; extern u32 var8009d0b0; extern struct objectivething *var8009d0b4; extern struct criteria_roomentered *g_RoomEnteredCriterias;