diff --git a/src/game/game_0109d0.c b/src/game/game_0109d0.c index 975581b0d..0336226a7 100644 --- a/src/game/game_0109d0.c +++ b/src/game/game_0109d0.c @@ -34,11 +34,11 @@ glabel func0f0109d0 /* f010a0c: ac40fffc */ sw $zero,-0x4($v0) .L0f010a10: /* f010a10: 3c018007 */ lui $at,0x8007 -/* f010a14: 3c02800a */ lui $v0,%hi(var8009d060) +/* f010a14: 3c02800a */ lui $v0,%hi(g_Objectives) /* f010a18: 3c03800a */ lui $v1,%hi(var8009d088) /* f010a1c: ac20ae74 */ sw $zero,-0x518c($at) /* f010a20: 2463d088 */ addiu $v1,$v1,%lo(var8009d088) -/* f010a24: 2442d060 */ addiu $v0,$v0,%lo(var8009d060) +/* f010a24: 2442d060 */ addiu $v0,$v0,%lo(g_Objectives) .L0f010a28: /* f010a28: 24420004 */ addiu $v0,$v0,0x4 /* f010a2c: 1443fffe */ bne $v0,$v1,.L0f010a28 diff --git a/src/game/game_0150a0.c b/src/game/game_0150a0.c index e29eaa991..f81aae3c1 100644 --- a/src/game/game_0150a0.c +++ b/src/game/game_0150a0.c @@ -104,12 +104,12 @@ glabel func0f0150a0 GLOBAL_ASM( glabel func0f0151f0 -/* f0151f0: 3c04800a */ lui $a0,%hi(var8009d060) +/* 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(var8009d060) +/* 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 diff --git a/src/game/game_066310.c b/src/game/game_066310.c index afd1b479f..53597dd16 100644 --- a/src/game/game_066310.c +++ b/src/game/game_066310.c @@ -54637,31 +54637,14 @@ s32 objectiveGetCount(void) return var8006ae70 + 1; } -GLOBAL_ASM( -glabel func0f095604 -/* f095604: 27bdffe8 */ addiu $sp,$sp,-24 -/* f095608: 2881000a */ slti $at,$a0,0xa -/* f09560c: 1020000b */ beqz $at,.L0f09563c -/* f095610: afbf0014 */ sw $ra,0x14($sp) -/* f095614: 00047080 */ sll $t6,$a0,0x2 -/* f095618: 3c02800a */ lui $v0,0x800a -/* f09561c: 004e1021 */ addu $v0,$v0,$t6 -/* f095620: 8c42d060 */ lw $v0,-0x2fa0($v0) -/* f095624: 50400006 */ beqzl $v0,.L0f095640 -/* f095628: 00001025 */ or $v0,$zero,$zero -/* f09562c: 0fc5b9f1 */ jal textGet -/* f095630: 8c440008 */ lw $a0,0x8($v0) -/* f095634: 10000003 */ beqz $zero,.L0f095644 -/* f095638: 8fbf0014 */ lw $ra,0x14($sp) -.L0f09563c: -/* f09563c: 00001025 */ or $v0,$zero,$zero -.L0f095640: -/* f095640: 8fbf0014 */ lw $ra,0x14($sp) -.L0f095644: -/* f095644: 27bd0018 */ addiu $sp,$sp,0x18 -/* f095648: 03e00008 */ jr $ra -/* f09564c: 00000000 */ sll $zero,$zero,0x0 -); +char *objectiveGetText(s32 index) +{ + if (index < 10 && g_Objectives[index]) { + return textGet(g_Objectives[index]->text); + } + + return NULL; +} GLOBAL_ASM( glabel objectiveGetDifficultyBits diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 21ef71719..6c086a3c1 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -4265,8 +4265,8 @@ glabel menudialog001063e4 /* f106490: 00008025 */ or $s0,$zero,$zero /* f106494: 18400014 */ blez $v0,.L0f1064e8 /* f106498: 0010c880 */ sll $t9,$s0,0x2 -/* f10649c: 3c08800a */ lui $t0,%hi(var8009d060) -/* f1064a0: 2508d060 */ addiu $t0,$t0,%lo(var8009d060) +/* f10649c: 3c08800a */ lui $t0,%hi(g_Objectives) +/* f1064a0: 2508d060 */ addiu $t0,$t0,%lo(g_Objectives) /* f1064a4: 03289021 */ addu $s2,$t9,$t0 /* f1064a8: 8e420000 */ lw $v0,0x0($s2) .L0f1064ac: diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index d3dc5fec5..d99ccb085 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -16311,16 +16311,7 @@ u32 var8009d050 = 0; u32 var8009d054 = 0; u32 var8009d058 = 0; u32 var8009d05c = 0; -u32 var8009d060 = 0; -u32 var8009d064 = 0; -u32 var8009d068 = 0; -u32 var8009d06c = 0; -u32 var8009d070 = 0; -u32 var8009d074 = 0; -u32 var8009d078 = 0; -u32 var8009d07c = 0; -u32 var8009d080 = 0; -u32 var8009d084 = 0; +struct objective *g_Objectives[10] = {0}; u32 var8009d088 = 0; u32 var8009d08c = 0; u32 var8009d090 = 0; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 93c13c02f..7c80090af 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -580,7 +580,7 @@ extern u32 var8009cf10; extern u32 var8009cf88; extern struct stagesetup g_StageSetup; extern u32 var8009d050; -extern u32 var8009d060; +extern struct objective *g_Objectives[10]; extern u32 var8009d088; extern u32 var8009d0b0; extern u32 var8009d0b4; diff --git a/src/include/types.h b/src/include/types.h index 53ef88b31..5b2f917f1 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4669,4 +4669,10 @@ struct activemenuthing { /*0x34*/ u32 unk34; }; +struct objective { + u32 unk00; + u32 unk04; + u32 text; +}; + #endif