From 2ea2613858a83f751e0dfc69ce167574c86c5edd Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 20 Mar 2020 17:33:02 +1000 Subject: [PATCH] Decompile dtMenuTextTimeTakenValue --- src/game/chr/chraicommands.c | 2 +- src/game/data/data_020df0.c | 4 +- src/game/game_01bea0.c | 2 +- src/game/game_095320.c | 2 +- src/game/game_096360.c | 2 +- src/game/game_097ba0.c | 2 +- src/game/game_0b63b0.c | 2 +- src/game/game_102240.c | 2 +- src/game/game_167ae0.c | 4 +- src/game/game_19c990.c | 88 ++++++++++++++++---------------- src/game/game_1a3340.c | 93 +++++++++------------------------- src/game/propobj.c | 4 +- src/gvars/gvars.c | 10 +--- src/include/game/game_19c990.h | 2 +- src/include/game/game_1a3340.h | 2 +- src/include/gvars/gvars.h | 4 +- src/include/types.h | 3 ++ 17 files changed, 91 insertions(+), 137 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 0ab12bd4d..9b59f22e4 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -10601,7 +10601,7 @@ glabel ai01bc bool aiIfTrainingPcHolographed(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - struct trainingdata *data = ciGetTrainingData(); + struct trainingdata *data = getDeviceTrainingData(); if (data->holographedpc) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]); diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index bfc094d2c..582abc4e9 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -13108,7 +13108,7 @@ struct menu_dialog menudialog_2f49c = { struct menu_item menuitems_trainingstats_failed[] = { { MENUITEMTYPE_LABEL, 0, 0x00000032, L_MPMENU(426), 0x00000000, NULL }, // "Failed!" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(424), (u32)&func0f1a6840, NULL }, // "Time Taken:" + { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(424), (u32)&dtMenuTextTimeTakenValue, NULL }, // "Time Taken:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SCROLLABLE, 11, 0x00000000, 0x00000082, 0x00000064, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, @@ -13128,7 +13128,7 @@ struct menu_dialog menudialog_trainingstats_failed = { struct menu_item menuitems_trainingstats_completed[] = { { MENUITEMTYPE_LABEL, 0, 0x00000032, L_MPMENU(425), 0x00000000, NULL }, // "Completed!" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(424), (u32)&func0f1a6840, NULL }, // "Time Taken:" + { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(424), (u32)&dtMenuTextTimeTakenValue, NULL }, // "Time Taken:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SCROLLABLE, 12, 0x00000000, 0x00000082, 0x00000064, NULL }, { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 26973081f..348a62f9f 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -1287,7 +1287,7 @@ glabel var7f1a863c /* f01cf90: 1461001e */ bne $v1,$at,.L0f01d00c /* f01cf94: 00000000 */ sll $zero,$zero,0x0 .L0f01cf98: -/* f01cf98: 0fc68606 */ jal ciGetTrainingData +/* f01cf98: 0fc68606 */ jal getDeviceTrainingData /* f01cf9c: 00000000 */ sll $zero,$zero,0x0 /* f01cfa0: 8e6304b4 */ lw $v1,0x4b4($s3) /* f01cfa4: 24010026 */ addiu $at,$zero,0x26 diff --git a/src/game/game_095320.c b/src/game/game_095320.c index 689586320..fc4879d3c 100644 --- a/src/game/game_095320.c +++ b/src/game/game_095320.c @@ -1129,7 +1129,7 @@ glabel objectiveCheckHolograph /* f0962fc: 8e4a04b4 */ lw $t2,0x4b4($s2) /* f096300: 566a0007 */ bnel $s3,$t2,.L0f096320 /* f096304: 8e31000c */ lw $s1,0xc($s1) -/* f096308: 0fc68606 */ jal ciGetTrainingData +/* f096308: 0fc68606 */ jal getDeviceTrainingData /* f09630c: 00000000 */ sll $zero,$zero,0x0 /* f096310: 904c0000 */ lbu $t4,0x0($v0) /* f096314: 358d0008 */ ori $t5,$t4,0x8 diff --git a/src/game/game_096360.c b/src/game/game_096360.c index cb7a776e7..d8b3a96e1 100644 --- a/src/game/game_096360.c +++ b/src/game/game_096360.c @@ -68,7 +68,7 @@ const u32 var7f1ab82c[] = {0x3e8e38e4}; // criteria->status = OBJECTIVE_COMPLETE; // // if (g_Vars.stagenum == STAGE_CITRAINING) { -// struct trainingdata *data = ciGetTrainingData(); +// struct trainingdata *data = getDeviceTrainingData(); // data->holographedpc = true; // } // } diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 49e2ba442..c6e63f5e8 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -9698,7 +9698,7 @@ glabel var7f1ac72c /* f09f74c: 24010026 */ addiu $at,$zero,0x26 /* f09f750: 5561000a */ bnel $t3,$at,.L0f09f77c /* f09f754: 8c8d0040 */ lw $t5,0x40($a0) -/* f09f758: 0fc68606 */ jal ciGetTrainingData +/* f09f758: 0fc68606 */ jal getDeviceTrainingData /* f09f75c: afa4018c */ sw $a0,0x18c($sp) /* f09f760: 8c4c0000 */ lw $t4,0x0($v0) /* f09f764: 8fa4018c */ lw $a0,0x18c($sp) diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 90e10b0ef..19013b5a8 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -5108,7 +5108,7 @@ glabel var7f1ad630 .L0f0bae04: /* f0bae04: 5080003e */ beqzl $a0,.L0f0baf00 /* f0bae08: 8fbf0014 */ lw $ra,0x14($sp) -/* f0bae0c: 0fc68606 */ jal ciGetTrainingData +/* f0bae0c: 0fc68606 */ jal getDeviceTrainingData /* f0bae10: 00000000 */ sll $zero,$zero,0x0 /* f0bae14: 24040001 */ addiu $a0,$zero,0x1 /* f0bae18: 0fc5b350 */ jal setVar80084014 diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 74e2b92f0..224ffbb8e 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -4767,7 +4767,7 @@ glabel func0f106b20 /* f106b80: afa0001c */ sw $zero,0x1c($sp) /* f106b84: 1040005c */ beqz $v0,.L0f106cf8 /* f106b88: 8fa5001c */ lw $a1,0x1c($sp) -/* f106b8c: 0fc68606 */ jal ciGetTrainingData +/* f106b8c: 0fc68606 */ jal getDeviceTrainingData /* f106b90: afa5001c */ sw $a1,0x1c($sp) /* f106b94: 3c09800a */ lui $t1,%hi(g_Vars+0x284) /* f106b98: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1) diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 768110bf0..365a9efe5 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -5441,7 +5441,7 @@ glabel func0f16b96c /* f16ca60: 24010026 */ addiu $at,$zero,0x26 /* f16ca64: 5441001f */ bnel $v0,$at,.L0f16cae4 /* f16ca68: 8fbf0044 */ lw $ra,0x44($sp) -/* f16ca6c: 0fc68606 */ jal ciGetTrainingData +/* f16ca6c: 0fc68606 */ jal getDeviceTrainingData /* f16ca70: 00000000 */ sll $zero,$zero,0x0 /* f16ca74: 8e990284 */ lw $t9,0x284($s4) /* f16ca78: 8f2d00bc */ lw $t5,0xbc($t9) @@ -5832,7 +5832,7 @@ glabel func0f16b96c // func0f063dcc(); // // if (getCurrentStageId() == STAGE_CITRAINING) { -// struct trainingdata *trainingdata = ciGetTrainingData(); +// struct trainingdata *trainingdata = getDeviceTrainingData(); // s16 room = g_Vars.currentplayer->prop->rooms[0]; // // if ((room < 0x16 || room > 0x19) diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 4234a318f..df70b762b 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -5841,9 +5841,9 @@ glabel func0f1a17e4 /* f1a1814: 00000000 */ sll $zero,$zero,0x0 ); -struct trainingdata *ciGetTrainingData(void) +struct trainingdata *getDeviceTrainingData(void) { - return &g_TrainingData; + return &g_DeviceTrainingData; } GLOBAL_ASM( @@ -5852,16 +5852,16 @@ glabel func0f1a1824 /* f1a1828: afbf0014 */ sw $ra,0x14($sp) /* f1a182c: 0fc2a4ab */ jal func0f0a92ac /* f1a1830: 24040001 */ addiu $a0,$zero,0x1 -/* f1a1834: 3c04800b */ lui $a0,%hi(var800ad1a8) -/* f1a1838: 8c84d1a8 */ lw $a0,%lo(var800ad1a8)($a0) +/* f1a1834: 3c04800b */ lui $a0,0x800b +/* f1a1838: 8c84d1a8 */ lw $a0,-11864($a0) /* f1a183c: 10800003 */ beqz $a0,.L0f1a184c /* f1a1840: 00000000 */ sll $zero,$zero,0x0 /* f1a1844: 0fc1acd3 */ jal setupParseObjectWithArg2False /* f1a1848: 24050001 */ addiu $a1,$zero,0x1 .L0f1a184c: -/* f1a184c: 3c01800b */ lui $at,%hi(var800ad1a8) +/* f1a184c: 3c01800b */ lui $at,0x800b /* f1a1850: 3c048009 */ lui $a0,%hi(var80088ad8) -/* f1a1854: ac20d1a8 */ sw $zero,%lo(var800ad1a8)($at) +/* f1a1854: ac20d1a8 */ sw $zero,-11864($at) /* f1a1858: 0fc6875a */ jal func0f1a1d68 /* f1a185c: 90848ad8 */ lbu $a0,%lo(var80088ad8)($a0) /* f1a1860: 0fc68778 */ jal func0f1a1de0 @@ -5913,8 +5913,8 @@ glabel func0f1a1824 GLOBAL_ASM( glabel func0f1a190c -/* f1a190c: 3c02800b */ lui $v0,%hi(g_TrainingData) -/* f1a1910: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData) +/* f1a190c: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) +/* f1a1910: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) /* f1a1914: 8c430000 */ lw $v1,0x0($v0) /* f1a1918: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a191c: afbf0014 */ sw $ra,0x14($sp) @@ -5925,17 +5925,17 @@ glabel func0f1a190c /* f1a1930: 2484959c */ addiu $a0,$a0,%lo(menudialog_trainingstats_completed) /* f1a1934: 0fc3e178 */ jal func0f0f85e0 /* f1a1938: 2405000d */ addiu $a1,$zero,0xd -/* f1a193c: 3c02800b */ lui $v0,%hi(g_TrainingData) +/* f1a193c: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) /* f1a1940: 10000008 */ beqz $zero,.L0f1a1964 -/* f1a1944: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData) +/* f1a1944: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) .L0f1a1948: /* f1a1948: 07210006 */ bgez $t9,.L0f1a1964 /* f1a194c: 3c048009 */ lui $a0,%hi(menudialog_trainingstats_failed) /* f1a1950: 2484950c */ addiu $a0,$a0,%lo(menudialog_trainingstats_failed) /* f1a1954: 0fc3e178 */ jal func0f0f85e0 /* f1a1958: 2405000d */ addiu $a1,$zero,0xd -/* f1a195c: 3c02800b */ lui $v0,%hi(g_TrainingData) -/* f1a1960: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData) +/* f1a195c: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) +/* f1a1960: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) .L0f1a1964: /* f1a1964: 90480000 */ lbu $t0,0x0($v0) /* f1a1968: 8fbf0014 */ lw $ra,0x14($sp) @@ -5959,8 +5959,8 @@ glabel func0f1a1998 /* f1a19a0: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a19a4: afbf0014 */ sw $ra,0x14($sp) /* f1a19a8: 11c00041 */ beqz $t6,.L0f1a1ab0 -/* f1a19ac: 3c03800b */ lui $v1,%hi(g_TrainingData) -/* f1a19b0: 2463d1a0 */ addiu $v1,$v1,%lo(g_TrainingData) +/* f1a19ac: 3c03800b */ lui $v1,%hi(g_DeviceTrainingData) +/* f1a19b0: 2463d1a0 */ addiu $v1,$v1,%lo(g_DeviceTrainingData) /* f1a19b4: 8c620000 */ lw $v0,0x0($v1) /* f1a19b8: 3c04800a */ lui $a0,%hi(g_Vars) /* f1a19bc: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars) @@ -5985,8 +5985,8 @@ glabel func0f1a1998 /* f1a1a04: 00002025 */ or $a0,$zero,$zero /* f1a1a08: 0fc686fb */ jal func0f1a1bec /* f1a1a0c: 00000000 */ sll $zero,$zero,0x0 -/* f1a1a10: 3c03800b */ lui $v1,%hi(g_TrainingData) -/* f1a1a14: 2463d1a0 */ addiu $v1,$v1,%lo(g_TrainingData) +/* f1a1a10: 3c03800b */ lui $v1,%hi(g_DeviceTrainingData) +/* f1a1a14: 2463d1a0 */ addiu $v1,$v1,%lo(g_DeviceTrainingData) /* f1a1a18: 906c0000 */ lbu $t4,0x0($v1) /* f1a1a1c: 240e0001 */ addiu $t6,$zero,0x1 /* f1a1a20: a06e0001 */ sb $t6,0x1($v1) @@ -6002,8 +6002,8 @@ glabel func0f1a1998 /* f1a1a44: 8fbf0014 */ lw $ra,0x14($sp) /* f1a1a48: 0fc686fb */ jal func0f1a1bec /* f1a1a4c: 00000000 */ sll $zero,$zero,0x0 -/* f1a1a50: 3c03800b */ lui $v1,%hi(g_TrainingData) -/* f1a1a54: 2463d1a0 */ addiu $v1,$v1,%lo(g_TrainingData) +/* f1a1a50: 3c03800b */ lui $v1,%hi(g_DeviceTrainingData) +/* f1a1a54: 2463d1a0 */ addiu $v1,$v1,%lo(g_DeviceTrainingData) /* f1a1a58: 90690000 */ lbu $t1,0x0($v1) /* f1a1a5c: 240b0001 */ addiu $t3,$zero,0x1 /* f1a1a60: a06b0001 */ sb $t3,0x1($v1) @@ -6044,8 +6044,8 @@ glabel func0f1a1ac0 /* f1a1acc: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a1ad0: afbf0014 */ sw $ra,0x14($sp) /* f1a1ad4: 15c0001b */ bnez $t6,.L0f1a1b44 -/* f1a1ad8: 3c02800b */ lui $v0,%hi(g_TrainingData) -/* f1a1adc: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData) +/* f1a1ad8: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) +/* f1a1adc: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) /* f1a1ae0: 90580000 */ lbu $t8,0x0($v0) /* f1a1ae4: 240f0001 */ addiu $t7,$zero,0x1 /* f1a1ae8: a06f0000 */ sb $t7,0x0($v1) @@ -6080,8 +6080,8 @@ glabel func0f1a1ac0 GLOBAL_ASM( glabel func0f1a1b54 -/* f1a1b54: 3c02800b */ lui $v0,%hi(g_TrainingData) -/* f1a1b58: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData) +/* f1a1b54: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) +/* f1a1b58: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) /* f1a1b5c: 904f0000 */ lbu $t7,0x0($v0) /* f1a1b60: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a1b64: afbf0014 */ sw $ra,0x14($sp) @@ -6122,8 +6122,8 @@ glabel func0f1a1b54 GLOBAL_ASM( glabel func0f1a1bec -/* f1a1bec: 3c02800b */ lui $v0,%hi(g_TrainingData) -/* f1a1bf0: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData) +/* f1a1bec: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) +/* f1a1bf0: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) /* f1a1bf4: 904e0000 */ lbu $t6,0x0($v0) /* f1a1bf8: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a1bfc: afbf0014 */ sw $ra,0x14($sp) @@ -6425,15 +6425,15 @@ glabel func0f1a1f70 GLOBAL_ASM( glabel func0f1a1fe0 -/* f1a1fe0: 3c02800b */ lui $v0,%hi(var800ad1b0) +/* f1a1fe0: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) /* f1a1fe4: 03e00008 */ jr $ra -/* f1a1fe8: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a1fe8: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) ); GLOBAL_ASM( glabel func0f1a1fec -/* f1a1fec: 3c02800b */ lui $v0,%hi(var800ad1b0) -/* f1a1ff0: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a1fec: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) +/* f1a1ff0: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) /* f1a1ff4: 8c430000 */ lw $v1,0x0($v0) /* f1a1ff8: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a1ffc: afbf0014 */ sw $ra,0x14($sp) @@ -6444,17 +6444,17 @@ glabel func0f1a1fec /* f1a2010: 2484978c */ addiu $a0,$a0,%lo(menudialog_trainingstats_completed2) /* f1a2014: 0fc3e178 */ jal func0f0f85e0 /* f1a2018: 2405000d */ addiu $a1,$zero,0xd -/* f1a201c: 3c02800b */ lui $v0,%hi(var800ad1b0) +/* f1a201c: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) /* f1a2020: 10000008 */ beqz $zero,.L0f1a2044 -/* f1a2024: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a2024: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) .L0f1a2028: /* f1a2028: 07210006 */ bgez $t9,.L0f1a2044 /* f1a202c: 3c048009 */ lui $a0,%hi(menudialog_trainingstats_failed2) /* f1a2030: 248496fc */ addiu $a0,$a0,%lo(menudialog_trainingstats_failed2) /* f1a2034: 0fc3e178 */ jal func0f0f85e0 /* f1a2038: 2405000d */ addiu $a1,$zero,0xd -/* f1a203c: 3c02800b */ lui $v0,%hi(var800ad1b0) -/* f1a2040: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a203c: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) +/* f1a2040: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) .L0f1a2044: /* f1a2044: 90480000 */ lbu $t0,0x0($v0) /* f1a2048: 8fbf0014 */ lw $ra,0x14($sp) @@ -6476,8 +6476,8 @@ glabel func0f1a2070 /* f1a2078: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a207c: afbf0014 */ sw $ra,0x14($sp) /* f1a2080: 11c00041 */ beqz $t6,.L0f1a2188 -/* f1a2084: 3c03800b */ lui $v1,%hi(var800ad1b0) -/* f1a2088: 2463d1b0 */ addiu $v1,$v1,%lo(var800ad1b0) +/* f1a2084: 3c03800b */ lui $v1,%hi(g_HoloTrainingData) +/* f1a2088: 2463d1b0 */ addiu $v1,$v1,%lo(g_HoloTrainingData) /* f1a208c: 8c620000 */ lw $v0,0x0($v1) /* f1a2090: 3c04800a */ lui $a0,%hi(g_Vars) /* f1a2094: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars) @@ -6502,8 +6502,8 @@ glabel func0f1a2070 /* f1a20dc: 00002025 */ or $a0,$zero,$zero /* f1a20e0: 0fc688b5 */ jal func0f1a22d4 /* f1a20e4: 00000000 */ sll $zero,$zero,0x0 -/* f1a20e8: 3c03800b */ lui $v1,%hi(var800ad1b0) -/* f1a20ec: 2463d1b0 */ addiu $v1,$v1,%lo(var800ad1b0) +/* f1a20e8: 3c03800b */ lui $v1,%hi(g_HoloTrainingData) +/* f1a20ec: 2463d1b0 */ addiu $v1,$v1,%lo(g_HoloTrainingData) /* f1a20f0: 906c0000 */ lbu $t4,0x0($v1) /* f1a20f4: 240e0001 */ addiu $t6,$zero,0x1 /* f1a20f8: a06e0001 */ sb $t6,0x1($v1) @@ -6519,8 +6519,8 @@ glabel func0f1a2070 /* f1a211c: 8fbf0014 */ lw $ra,0x14($sp) /* f1a2120: 0fc688b5 */ jal func0f1a22d4 /* f1a2124: 00000000 */ sll $zero,$zero,0x0 -/* f1a2128: 3c03800b */ lui $v1,%hi(var800ad1b0) -/* f1a212c: 2463d1b0 */ addiu $v1,$v1,%lo(var800ad1b0) +/* f1a2128: 3c03800b */ lui $v1,%hi(g_HoloTrainingData) +/* f1a212c: 2463d1b0 */ addiu $v1,$v1,%lo(g_HoloTrainingData) /* f1a2130: 90690000 */ lbu $t1,0x0($v1) /* f1a2134: 240b0001 */ addiu $t3,$zero,0x1 /* f1a2138: a06b0001 */ sb $t3,0x1($v1) @@ -6561,8 +6561,8 @@ glabel func0f1a2198 /* f1a21a4: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a21a8: afbf0014 */ sw $ra,0x14($sp) /* f1a21ac: 15c00018 */ bnez $t6,.L0f1a2210 -/* f1a21b0: 3c02800b */ lui $v0,%hi(var800ad1b0) -/* f1a21b4: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a21b0: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) +/* f1a21b4: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) /* f1a21b8: 90580000 */ lbu $t8,0x0($v0) /* f1a21bc: 240f0001 */ addiu $t7,$zero,0x1 /* f1a21c0: a06f0000 */ sb $t7,0x0($v1) @@ -6594,8 +6594,8 @@ glabel func0f1a2198 GLOBAL_ASM( glabel func0f1a2220 -/* f1a2220: 3c02800b */ lui $v0,%hi(var800ad1b0) -/* f1a2224: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a2220: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) +/* f1a2224: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) /* f1a2228: 90580000 */ lbu $t8,0x0($v0) /* f1a222c: 3c0e800a */ lui $t6,%hi(g_StageSetup) /* f1a2230: 8dced030 */ lw $t6,%lo(g_StageSetup)($t6) @@ -6654,10 +6654,10 @@ glabel func0f1a22d4 /* f1a22f4: 25ce8bbc */ addiu $t6,$t6,%lo(var80088bbc) /* f1a22f8: 8dc10000 */ lw $at,0x0($t6) /* f1a22fc: 27b20044 */ addiu $s2,$sp,0x44 -/* f1a2300: 3c02800b */ lui $v0,%hi(var800ad1b0) +/* f1a2300: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) /* f1a2304: ae410000 */ sw $at,0x0($s2) /* f1a2308: 8dd90004 */ lw $t9,0x4($t6) -/* f1a230c: 2442d1b0 */ addiu $v0,$v0,%lo(var800ad1b0) +/* f1a230c: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) /* f1a2310: 90480000 */ lbu $t0,0x0($v0) /* f1a2314: ae590004 */ sw $t9,0x4($s2) /* f1a2318: 95c10008 */ lhu $at,0x8($t6) diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index a6ec4b5ee..3cc831172 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -3377,7 +3377,7 @@ GLOBAL_ASM( glabel func0f1a67b0 /* f1a67b0: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a67b4: afbf0014 */ sw $ra,0x14($sp) -/* f1a67b8: 0fc68606 */ jal ciGetTrainingData +/* f1a67b8: 0fc68606 */ jal getDeviceTrainingData /* f1a67bc: afa40018 */ sw $a0,0x18($sp) /* f1a67c0: 8c4e0000 */ lw $t6,0x0($v0) /* f1a67c4: 000e7fc2 */ srl $t7,$t6,0x1f @@ -3401,7 +3401,7 @@ GLOBAL_ASM( glabel func0f1a67f8 /* f1a67f8: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a67fc: afbf0014 */ sw $ra,0x14($sp) -/* f1a6800: 0fc68606 */ jal ciGetTrainingData +/* f1a6800: 0fc68606 */ jal getDeviceTrainingData /* f1a6804: afa40018 */ sw $a0,0x18($sp) /* f1a6808: 8c4e0000 */ lw $t6,0x0($v0) /* f1a680c: 000e7fc2 */ srl $t7,$t6,0x1f @@ -3421,67 +3421,29 @@ glabel func0f1a67f8 /* f1a683c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f1a6840 -/* f1a6840: 27bdffd0 */ addiu $sp,$sp,-48 -/* f1a6844: afbf001c */ sw $ra,0x1c($sp) -/* f1a6848: 0fc68606 */ jal ciGetTrainingData -/* f1a684c: afa40030 */ sw $a0,0x30($sp) -/* f1a6850: 8c4e0004 */ lw $t6,0x4($v0) -/* f1a6854: 3c014270 */ lui $at,0x4270 -/* f1a6858: 44810000 */ mtc1 $at,$f0 -/* f1a685c: 448e2000 */ mtc1 $t6,$f4 -/* f1a6860: 3c057f1c */ lui $a1,%hi(var7f1b98bc) -/* f1a6864: 3c067f1c */ lui $a2,%hi(var7f1b98c8) -/* f1a6868: 468021a0 */ cvt.s.w $f6,$f4 -/* f1a686c: 3c077f1c */ lui $a3,%hi(var7f1b98cc) -/* f1a6870: 24e798cc */ addiu $a3,$a3,%lo(var7f1b98cc) -/* f1a6874: 24c698c8 */ addiu $a2,$a2,%lo(var7f1b98c8) -/* f1a6878: 24a598bc */ addiu $a1,$a1,%lo(var7f1b98bc) -/* f1a687c: 3c048007 */ lui $a0,%hi(g_StringPointer) -/* f1a6880: 46003303 */ div.s $f12,$f6,$f0 -/* f1a6884: 460c003e */ c.le.s $f0,$f12 -/* f1a6888: 00000000 */ sll $zero,$zero,0x0 -/* f1a688c: 45020019 */ bc1fl .L0f1a68f4 -/* f1a6890: 460062a1 */ cvt.d.s $f10,$f12 -/* f1a6894: 460c003e */ c.le.s $f0,$f12 -/* f1a6898: 00003025 */ or $a2,$zero,$zero -/* f1a689c: 45000007 */ bc1f .L0f1a68bc -/* f1a68a0: 00000000 */ sll $zero,$zero,0x0 -/* f1a68a4: 46006301 */ sub.s $f12,$f12,$f0 -.L0f1a68a8: -/* f1a68a8: 24c60001 */ addiu $a2,$a2,0x1 -/* f1a68ac: 460c003e */ c.le.s $f0,$f12 -/* f1a68b0: 00000000 */ sll $zero,$zero,0x0 -/* f1a68b4: 4503fffc */ bc1tl .L0f1a68a8 -/* f1a68b8: 46006301 */ sub.s $f12,$f12,$f0 -.L0f1a68bc: -/* f1a68bc: 0fc25e5c */ jal func0f097970 -/* f1a68c0: afa60024 */ sw $a2,0x24($sp) -/* f1a68c4: 4600020d */ trunc.w.s $f8,$f0 -/* f1a68c8: 3c048007 */ lui $a0,%hi(g_StringPointer) -/* f1a68cc: 3c057f1c */ lui $a1,%hi(var7f1b98b0) -/* f1a68d0: 24a598b0 */ addiu $a1,$a1,%lo(var7f1b98b0) -/* f1a68d4: 44074000 */ mfc1 $a3,$f8 -/* f1a68d8: 8c841440 */ lw $a0,%lo(g_StringPointer)($a0) -/* f1a68dc: 0c004dad */ jal sprintf -/* f1a68e0: 8fa60024 */ lw $a2,0x24($sp) -/* f1a68e4: 3c028007 */ lui $v0,%hi(g_StringPointer) -/* f1a68e8: 10000007 */ beqz $zero,.L0f1a6908 -/* f1a68ec: 8c421440 */ lw $v0,%lo(g_StringPointer)($v0) -/* f1a68f0: 460062a1 */ cvt.d.s $f10,$f12 -.L0f1a68f4: -/* f1a68f4: 8c841440 */ lw $a0,%lo(g_StringPointer)($a0) -/* f1a68f8: 0c004dad */ jal sprintf -/* f1a68fc: f7aa0010 */ sdc1 $f10,0x10($sp) -/* f1a6900: 3c028007 */ lui $v0,%hi(g_StringPointer) -/* f1a6904: 8c421440 */ lw $v0,%lo(g_StringPointer)($v0) -.L0f1a6908: -/* f1a6908: 8fbf001c */ lw $ra,0x1c($sp) -/* f1a690c: 27bd0030 */ addiu $sp,$sp,0x30 -/* f1a6910: 03e00008 */ jr $ra -/* f1a6914: 00000000 */ sll $zero,$zero,0x0 -); +const char var7f1b98ac[] = "%s\n"; + +char *dtMenuTextTimeTakenValue(struct menu_item *item) +{ + struct trainingdata *data = getDeviceTrainingData(); + f32 secs = data->timetaken / 60.0f; + + if (secs >= 60.0f) { + s32 mins = 0; + + while (secs >= 60.0f) { + secs -= 60.0f; + mins++; + } + + sprintf(g_StringPointer, "%dm %2ds\n", mins, (s32)func0f097970(secs)); + return g_StringPointer; + } else { + sprintf(g_StringPointer, "%s%s%2.2fs\n", "", "", secs); + } + + return g_StringPointer; +} bool menudialogDeviceTrainingResults(u32 operation, struct menu_dialog *dialog, struct menustackitem *stackitem) { @@ -4549,11 +4511,6 @@ void *func0f1a7878(u16 fileid, s32 arg1, s32 arg2) return func0f1a7794(fileid, arg1, arg2, 0); } -const char var7f1b98ac[] = "%s\n"; -const char var7f1b98b0[] = "%dm %2ds\n"; -const char var7f1b98bc[] = "%s%s%2.2fs\n"; -const char var7f1b98c8[] = ""; -const char var7f1b98cc[] = ""; const char var7f1b98d0[] = "%dm %2ds\n"; const char var7f1b98dc[] = "%s%s%2.2fs\n"; const char var7f1b98e8[] = ""; diff --git a/src/game/propobj.c b/src/game/propobj.c index 7798b6457..1b694a18c 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -37942,7 +37942,7 @@ glabel func0f086f40 /* f086f78: 24010010 */ addiu $at,$zero,0x10 /* f086f7c: 54410015 */ bnel $v0,$at,.L0f086fd4 /* f086f80: 24010045 */ addiu $at,$zero,0x45 -/* f086f84: 0fc68606 */ jal ciGetTrainingData +/* f086f84: 0fc68606 */ jal getDeviceTrainingData /* f086f88: 00000000 */ sll $zero,$zero,0x0 /* f086f8c: 240f0001 */ addiu $t7,$zero,0x1 /* f086f90: a3af002b */ sb $t7,0x2b($sp) @@ -48692,7 +48692,7 @@ bool func0f09018c(struct prop *doorprop) u8 intraining = false; if (g_Vars.stagenum == STAGE_CITRAINING) { - struct trainingdata *a = ciGetTrainingData(); + struct trainingdata *a = getDeviceTrainingData(); struct trainingdata *b = func0f1a1fe0(); intraining = (a && a->unk00_00) || (b && b->unk00_00) || diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 3be318f16..eac73aa4e 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -26154,13 +26154,7 @@ u32 var800acd14 = 0; u32 var800acd18 = 0; u32 var800acd1c = 0; struct frdata g_FiringRangeData = {0}; -struct trainingdata g_TrainingData = {0}; -u32 var800ad1a4 = 0; -u32 var800ad1a8 = 0; -u32 var800ad1ac = 0; -u32 var800ad1b0 = 0; -u32 var800ad1b4 = 0; -u32 var800ad1b8 = 0; -u32 var800ad1bc = 0; +struct trainingdata g_DeviceTrainingData = {0}; +struct trainingdata g_HoloTrainingData = {0}; u32 var800ad1c0 = 0; diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index ed979b290..fc8ad4ae3 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -74,7 +74,7 @@ u32 func0f1a16a4(void); u32 func0f1a1714(void); u32 func0f1a176c(void); u32 func0f1a17e4(void); -struct trainingdata *ciGetTrainingData(void); +struct trainingdata *getDeviceTrainingData(void); u32 func0f1a1824(void); u32 func0f1a190c(void); void func0f1a1998(void); diff --git a/src/include/game/game_1a3340.h b/src/include/game/game_1a3340.h index 6edefa4ec..5ebbd9b2f 100644 --- a/src/include/game/game_1a3340.h +++ b/src/include/game/game_1a3340.h @@ -25,7 +25,7 @@ u32 func0f1a6388(void); u32 func0f1a64a0(void); u32 func0f1a67b0(void); u32 func0f1a67f8(void); -u32 func0f1a6840(void); +char *dtMenuTextTimeTakenValue(struct menu_item *item); u32 func0f1a6a04(void); u32 func0f1a6aec(void); u32 func0f1a6b34(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index b75aa0dce..53a400508 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -824,8 +824,8 @@ extern struct chrdata *g_MpSimulantChrs[MAX_SIMULANTS]; extern u8 var800acca0[40]; extern u8 g_MpChallengesCompleted[]; extern struct frdata g_FiringRangeData; -extern struct trainingdata g_TrainingData; -extern u32 var800ad1b0; +extern struct trainingdata g_DeviceTrainingData; +extern struct trainingdata g_HoloTrainingData; extern u32 var800ad1c0; #endif diff --git a/src/include/types.h b/src/include/types.h index ed338f7fa..6c15ece96 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4868,6 +4868,9 @@ struct trainingdata { u32 unk00_02 : 1; u32 unk00_03 : 1; u32 holographedpc : 1; + s32 timetaken; + u32 unk08; + u32 unk0c; }; struct activemenuthing {