From 8398ec70e424c4e99b1e78e60322a1f342bbe285 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 29 Nov 2020 17:05:17 +1000 Subject: [PATCH] Decompile setupResetObjectives --- src/game/game_0109d0.c | 68 ++++++++++++---------------------- src/game/game_167ae0.c | 2 +- src/include/game/game_0109d0.h | 2 +- 3 files changed, 26 insertions(+), 46 deletions(-) diff --git a/src/game/game_0109d0.c b/src/game/game_0109d0.c index e4b528f69..6f184ec90 100644 --- a/src/game/game_0109d0.c +++ b/src/game/game_0109d0.c @@ -12,50 +12,30 @@ #include "lib/main.h" #include "types.h" -GLOBAL_ASM( -glabel func0f0109d0 -/* f0109d0: 27bdffe8 */ addiu $sp,$sp,-24 -/* f0109d4: afbf0014 */ sw $ra,0x14($sp) -/* f0109d8: 0c003a61 */ jal mainGetStageNum -/* f0109dc: 00000000 */ nop -/* f0109e0: 2841005a */ slti $at,$v0,0x5a -/* f0109e4: 1020000a */ beqz $at,.L0f010a10 -/* f0109e8: 240effff */ addiu $t6,$zero,-1 -/* f0109ec: 3c018007 */ lui $at,%hi(g_ObjectiveLastIndex) -/* f0109f0: 3c02800a */ lui $v0,%hi(g_ObjectiveStatuses) -/* f0109f4: 3c03800a */ lui $v1,%hi(g_TagsLinkedList) -/* f0109f8: ac2eae70 */ sw $t6,%lo(g_ObjectiveLastIndex)($at) -/* f0109fc: 2463d0b0 */ addiu $v1,$v1,%lo(g_TagsLinkedList) -/* f010a00: 2442d088 */ addiu $v0,$v0,%lo(g_ObjectiveStatuses) -.L0f010a04: -/* f010a04: 24420004 */ addiu $v0,$v0,0x4 -/* f010a08: 1443fffe */ bne $v0,$v1,.L0f010a04 -/* f010a0c: ac40fffc */ sw $zero,-0x4($v0) -.L0f010a10: -/* f010a10: 3c018007 */ lui $at,%hi(g_ObjectiveChecksDisabled) -/* f010a14: 3c02800a */ lui $v0,%hi(g_Objectives) -/* f010a18: 3c03800a */ lui $v1,%hi(g_ObjectiveStatuses) -/* f010a1c: ac20ae74 */ sw $zero,%lo(g_ObjectiveChecksDisabled)($at) -/* f010a20: 2463d088 */ addiu $v1,$v1,%lo(g_ObjectiveStatuses) -/* f010a24: 2442d060 */ addiu $v0,$v0,%lo(g_Objectives) -.L0f010a28: -/* f010a28: 24420004 */ addiu $v0,$v0,0x4 -/* f010a2c: 1443fffe */ bne $v0,$v1,.L0f010a28 -/* f010a30: ac40fffc */ sw $zero,-0x4($v0) -/* f010a34: 3c01800a */ lui $at,%hi(g_TagsLinkedList) -/* f010a38: ac20d0b0 */ sw $zero,%lo(g_TagsLinkedList)($at) -/* f010a3c: 3c01800a */ lui $at,%hi(g_BriefingObjs) -/* f010a40: ac20d0b4 */ sw $zero,%lo(g_BriefingObjs)($at) -/* f010a44: 3c01800a */ lui $at,%hi(g_RoomEnteredCriterias) -/* f010a48: ac20d0b8 */ sw $zero,%lo(g_RoomEnteredCriterias)($at) -/* f010a4c: 8fbf0014 */ lw $ra,0x14($sp) -/* f010a50: 3c01800a */ lui $at,%hi(g_MultiroomEnteredCriterias) -/* f010a54: ac20d0bc */ sw $zero,%lo(g_MultiroomEnteredCriterias)($at) -/* f010a58: 3c01800a */ lui $at,%hi(g_HolographCriterias) -/* f010a5c: ac20d0c0 */ sw $zero,%lo(g_HolographCriterias)($at) -/* f010a60: 03e00008 */ jr $ra -/* f010a64: 27bd0018 */ addiu $sp,$sp,0x18 -); +void setupResetObjectives(void) +{ + s32 i; + + if (mainGetStageNum() < STAGE_TITLE) { + g_ObjectiveLastIndex = -1; + + for (i = 0; i < ARRAYCOUNT(g_ObjectiveStatuses); i++) { + g_ObjectiveStatuses[i] = 0; + } + } + + g_ObjectiveChecksDisabled = false; + + for (i = 0; i < ARRAYCOUNT(g_Objectives); i++) { + g_Objectives[i] = NULL; + } + + g_TagsLinkedList = NULL; + g_BriefingObjs = NULL; + g_RoomEnteredCriterias = NULL; + g_MultiroomEnteredCriterias = NULL; + g_HolographCriterias = NULL; +} void tagInsert(struct tag *tag) { diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index ae7869e87..ad1bdf35f 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -346,7 +346,7 @@ void func0f167e7c(s32 stagenum) func0f18836c(); func0002373c(); - func0f0109d0(); + setupResetObjectives(); func0f013ba0(); func0f011110(); func0f0108d0(); diff --git a/src/include/game/game_0109d0.h b/src/include/game/game_0109d0.h index 9ea534c12..63a96743e 100644 --- a/src/include/game/game_0109d0.h +++ b/src/include/game/game_0109d0.h @@ -3,7 +3,7 @@ #include #include "types.h" -void func0f0109d0(void); +void setupResetObjectives(void); void tagInsert(struct tag *tag); void briefingInsert(struct briefingobj *obj); void objectiveInsert(struct objective *objective);