From b65bf0918ab5c9bac9ca1f438f3e419898b22526 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 19 Mar 2020 20:25:36 +1000 Subject: [PATCH] Decompile frMenuTextTimeLimitLabel --- src/game/data/data_020df0.c | 4 ++-- src/game/game_1a3340.c | 44 ++++++++++------------------------ src/include/game/game_1a3340.h | 2 +- src/include/types.h | 2 +- 4 files changed, 16 insertions(+), 36 deletions(-) diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index bebeb875a..d8656d3e1 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -12877,7 +12877,7 @@ struct menu_item menuitems_frtraininginfo[] = { { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(443), (u32)&frMenuTextDifficultyName, NULL }, // "Difficulty" { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextGoalScoreLabel, (u32)&frMenuTextGoalScoreValue, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextMinAccuracyOrTargetsLabel, (u32)&frMenuTextMinAccuracyOrTargetsValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&func0f1a42b8, (u32)&func0f1a431c, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextTimeLimitLabel, (u32)&func0f1a431c, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&func0f1a43b8, (u32)&func0f1a441c, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SCROLLABLE, 6, 0x00004000, 0x0000010e, 0x0000005f, NULL }, @@ -12902,7 +12902,7 @@ struct menu_item menuitems_frtraininginfo2[] = { { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(443), (u32)&frMenuTextDifficultyName, NULL }, // "Difficulty:" { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextGoalScoreLabel, (u32)&frMenuTextGoalScoreValue, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextMinAccuracyOrTargetsLabel, (u32)&frMenuTextMinAccuracyOrTargetsValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&func0f1a42b8, (u32)&func0f1a431c, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextTimeLimitLabel, (u32)&func0f1a431c, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&func0f1a43b8, (u32)&func0f1a441c, NULL }, { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SCROLLABLE, 6, 0x00004000, 0x0000010e, 0x0000005f, NULL }, diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index 9b16070e5..cc36069b2 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -1094,37 +1094,18 @@ char *frMenuTextMinAccuracyOrTargetsValue(struct menu_item *item) return g_StringPointer2; } -GLOBAL_ASM( -glabel func0f1a42b8 -/* f1a42b8: 27bdffe8 */ addiu $sp,$sp,-24 -/* f1a42bc: afbf0014 */ sw $ra,0x14($sp) -/* f1a42c0: 0fc675f3 */ jal getFiringRangeData -/* f1a42c4: afa40018 */ sw $a0,0x18($sp) -/* f1a42c8: 904e0005 */ lbu $t6,0x5($v0) -/* f1a42cc: 240100ff */ addiu $at,$zero,0xff -/* f1a42d0: 11c1000b */ beq $t6,$at,.L0f1a4300 -/* f1a42d4: 00000000 */ sll $zero,$zero,0x0 -/* f1a42d8: 0fc5b9f1 */ jal langGet -/* f1a42dc: 240451d8 */ addiu $a0,$zero,0x51d8 -/* f1a42e0: 3c048007 */ lui $a0,%hi(g_StringPointer) -/* f1a42e4: 3c057f1c */ lui $a1,%hi(var7f1b9834) -/* f1a42e8: 24a59834 */ addiu $a1,$a1,%lo(var7f1b9834) -/* f1a42ec: 8c841440 */ lw $a0,%lo(g_StringPointer)($a0) -/* f1a42f0: 0c004dad */ jal sprintf -/* f1a42f4: 00403025 */ or $a2,$v0,$zero -/* f1a42f8: 10000003 */ beqz $zero,.L0f1a4308 -/* f1a42fc: 3c028007 */ lui $v0,%hi(g_StringPointer) -.L0f1a4300: -/* f1a4300: 10000002 */ beqz $zero,.L0f1a430c -/* f1a4304: 00001025 */ or $v0,$zero,$zero -.L0f1a4308: -/* f1a4308: 8c421440 */ lw $v0,%lo(g_StringPointer)($v0) -.L0f1a430c: -/* f1a430c: 8fbf0014 */ lw $ra,0x14($sp) -/* f1a4310: 27bd0018 */ addiu $sp,$sp,0x18 -/* f1a4314: 03e00008 */ jr $ra -/* f1a4318: 00000000 */ sll $zero,$zero,0x0 -); +char *frMenuTextTimeLimitLabel(struct menu_item *item) +{ + struct frdata *frdata = getFiringRangeData(); + + if (frdata->timelimit != 255) { + sprintf(g_StringPointer, "%s", langGet(L_MPMENU(472))); // "Time Limit:" + } else { + return NULL; + } + + return g_StringPointer; +} GLOBAL_ASM( glabel func0f1a431c @@ -4794,7 +4775,6 @@ void *func0f1a7878(u16 fileid, s32 arg1, s32 arg2) return func0f1a7794(fileid, arg1, arg2, 0); } -const char var7f1b9834[] = "%s"; const char var7f1b9838[] = "%dm %ds\n"; const char var7f1b9844[] = "%ds\n"; const char var7f1b984c[] = "%s"; diff --git a/src/include/game/game_1a3340.h b/src/include/game/game_1a3340.h index 044bee267..9eed0cceb 100644 --- a/src/include/game/game_1a3340.h +++ b/src/include/game/game_1a3340.h @@ -14,7 +14,7 @@ char *frMenuTextGoalScoreLabel(struct menu_item *item); char *frMenuTextGoalScoreValue(struct menu_item *item); char *frMenuTextMinAccuracyOrTargetsLabel(struct menu_item *item); char *frMenuTextMinAccuracyOrTargetsValue(struct menu_item *item); -u32 func0f1a42b8(void); +char *frMenuTextTimeLimitLabel(struct menu_item *item); u32 func0f1a431c(void); u32 func0f1a43b8(void); u32 func0f1a441c(void); diff --git a/src/include/types.h b/src/include/types.h index 4a7ac957a..1ded80f18 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5331,7 +5331,7 @@ struct frdata { /*0x000*/ u16 unk000; /*0x002*/ u16 goalscore; /*0x004*/ u8 goaltargets; - /*0x005*/ u8 unk005; + /*0x005*/ u8 timelimit; /*0x006*/ u8 unk006; /*0x007*/ u8 unk007; /*0x008*/ u8 goalaccuracy;