Decompile aiIfTrainingPcHolographed and ciGetTrainingData

This commit is contained in:
Ryan Dwyer 2020-01-14 19:37:04 +10:00
parent a1098a9452
commit 39bffa2d91
15 changed files with 58 additions and 90 deletions

View File

@ -13438,57 +13438,19 @@ glabel ai01bc
/**
* @cmd 01bd
*/
GLOBAL_ASM(
glabel ai01bd
/* f05eb3c: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05eb40: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f05eb44: 8c6e0434 */ lw $t6,0x434($v1)
/* f05eb48: 8c6f0438 */ lw $t7,0x438($v1)
/* f05eb4c: 27bdffe0 */ addiu $sp,$sp,-32
/* f05eb50: afbf0014 */ sw $ra,0x14($sp)
/* f05eb54: 01cfc021 */ addu $t8,$t6,$t7
/* f05eb58: 0fc68606 */ jal func0f1a1818
/* f05eb5c: afb8001c */ sw $t8,0x1c($sp)
/* f05eb60: 8c590000 */ lw $t9,0x0($v0)
/* f05eb64: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05eb68: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f05eb6c: 00194900 */ sll $t1,$t9,0x4
/* f05eb70: 05210009 */ bgez $t1,.L0f05eb98
/* f05eb74: 8faa001c */ lw $t2,0x1c($sp)
/* f05eb78: 8c640434 */ lw $a0,0x434($v1)
/* f05eb7c: 8c650438 */ lw $a1,0x438($v1)
/* f05eb80: 0fc13583 */ jal chraiGoToLabel
/* f05eb84: 91460002 */ lbu $a2,0x2($t2)
/* f05eb88: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05eb8c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f05eb90: 10000004 */ beqz $zero,.L0f05eba4
/* f05eb94: ac620438 */ sw $v0,0x438($v1)
.L0f05eb98:
/* f05eb98: 8c6b0438 */ lw $t3,0x438($v1)
/* f05eb9c: 256c0003 */ addiu $t4,$t3,0x3
/* f05eba0: ac6c0438 */ sw $t4,0x438($v1)
.L0f05eba4:
/* f05eba4: 8fbf0014 */ lw $ra,0x14($sp)
/* f05eba8: 27bd0020 */ addiu $sp,$sp,0x20
/* f05ebac: 00001025 */ or $v0,$zero,$zero
/* f05ebb0: 03e00008 */ jr $ra
/* f05ebb4: 00000000 */ sll $zero,$zero,0x0
);
bool aiIfTrainingPcHolographed(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct trainingdata *data = ciGetTrainingData();
// Mismatch due to different temporary registers
//bool ai01bd(void)
//{
// u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
// s32 *value = func0f1a1818();
//
// if (*value * 16 < 0) {
// g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]);
// } else {
// g_Vars.aioffset += 3;
// }
//
// return false;
//}
if (data->holographedpc) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]);
} else {
g_Vars.aioffset += 3;
}
return false;
}
/**
* @cmd 01be

View File

@ -8818,7 +8818,7 @@ glabel func0f01bf28
/* f01cf90: 1461001e */ bne $v1,$at,.L0f01d00c
/* f01cf94: 00000000 */ sll $zero,$zero,0x0
.L0f01cf98:
/* f01cf98: 0fc68606 */ jal func0f1a1818
/* f01cf98: 0fc68606 */ jal ciGetTrainingData
/* f01cf9c: 00000000 */ sll $zero,$zero,0x0
/* f01cfa0: 8e6304b4 */ lw $v1,0x4b4($s3)
/* f01cfa4: 24010026 */ addiu $at,$zero,0x26

View File

@ -38110,7 +38110,7 @@ glabel func0f086f40
/* f086f78: 24010010 */ addiu $at,$zero,0x10
/* f086f7c: 54410015 */ bnel $v0,$at,.L0f086fd4
/* f086f80: 24010045 */ addiu $at,$zero,0x45
/* f086f84: 0fc68606 */ jal func0f1a1818
/* f086f84: 0fc68606 */ jal ciGetTrainingData
/* f086f88: 00000000 */ sll $zero,$zero,0x0
/* f086f8c: 240f0001 */ addiu $t7,$zero,0x1
/* f086f90: a3af002b */ sb $t7,0x2b($sp)
@ -48689,7 +48689,7 @@ glabel func0f09018c
/* f090260: 00402825 */ or $a1,$v0,$zero
/* f090264: 1501001b */ bne $t0,$at,.L0f0902d4
/* f090268: 00002025 */ or $a0,$zero,$zero
/* f09026c: 0fc68606 */ jal func0f1a1818
/* f09026c: 0fc68606 */ jal ciGetTrainingData
/* f090270: afa20028 */ sw $v0,0x28($sp)
/* f090274: 0fc687f8 */ jal func0f1a1fe0
/* f090278: afa20020 */ sw $v0,0x20($sp)
@ -55659,7 +55659,7 @@ glabel func0f096088
/* f0962fc: 8e4a04b4 */ lw $t2,0x4b4($s2)
/* f096300: 566a0007 */ bnel $s3,$t2,.L0f096320
/* f096304: 8e31000c */ lw $s1,0xc($s1)
/* f096308: 0fc68606 */ jal func0f1a1818
/* f096308: 0fc68606 */ jal ciGetTrainingData
/* f09630c: 00000000 */ sll $zero,$zero,0x0
/* f096310: 904c0000 */ lbu $t4,0x0($v0)
/* f096314: 358d0008 */ ori $t5,$t4,0x8

View File

@ -9698,7 +9698,7 @@ glabel func0f09f100
/* f09f74c: 24010026 */ addiu $at,$zero,0x26
/* f09f750: 5561000a */ bnel $t3,$at,.L0f09f77c
/* f09f754: 8c8d0040 */ lw $t5,0x40($a0)
/* f09f758: 0fc68606 */ jal func0f1a1818
/* f09f758: 0fc68606 */ jal ciGetTrainingData
/* f09f75c: afa4018c */ sw $a0,0x18c($sp)
/* f09f760: 8c4c0000 */ lw $t4,0x0($v0)
/* f09f764: 8fa4018c */ lw $a0,0x18c($sp)

View File

@ -9739,7 +9739,7 @@ glabel func0f0bad6c
.L0f0bae04:
/* f0bae04: 5080003e */ beqzl $a0,.L0f0baf00
/* f0bae08: 8fbf0014 */ lw $ra,0x14($sp)
/* f0bae0c: 0fc68606 */ jal func0f1a1818
/* f0bae0c: 0fc68606 */ jal ciGetTrainingData
/* f0bae10: 00000000 */ sll $zero,$zero,0x0
/* f0bae14: 24040001 */ addiu $a0,$zero,0x1
/* f0bae18: 0fc5b350 */ jal func0f16cd40

View File

@ -4674,7 +4674,7 @@ glabel func0f106b20
/* f106b80: afa0001c */ sw $zero,0x1c($sp)
/* f106b84: 1040005c */ beqz $v0,.L0f106cf8
/* f106b88: 8fa5001c */ lw $a1,0x1c($sp)
/* f106b8c: 0fc68606 */ jal func0f1a1818
/* f106b8c: 0fc68606 */ jal ciGetTrainingData
/* f106b90: afa5001c */ sw $a1,0x1c($sp)
/* f106b94: 3c09800a */ lui $t1,0x800a
/* f106b98: 8d29a244 */ lw $t1,-0x5dbc($t1)

View File

@ -7105,7 +7105,7 @@ glabel func0f16b96c
/* f16ca60: 24010026 */ addiu $at,$zero,0x26
/* f16ca64: 5441001f */ bnel $v0,$at,.L0f16cae4
/* f16ca68: 8fbf0044 */ lw $ra,0x44($sp)
/* f16ca6c: 0fc68606 */ jal func0f1a1818
/* f16ca6c: 0fc68606 */ jal ciGetTrainingData
/* f16ca70: 00000000 */ sll $zero,$zero,0x0
/* f16ca74: 8e990284 */ lw $t9,0x284($s4)
/* f16ca78: 8f2d00bc */ lw $t5,0xbc($t9)

View File

@ -6048,12 +6048,10 @@ glabel func0f1a17e4
/* f1a1814: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel func0f1a1818
/* f1a1818: 3c02800b */ lui $v0,%hi(var800ad1a0)
/* f1a181c: 03e00008 */ jr $ra
/* f1a1820: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
);
struct trainingdata *ciGetTrainingData(void)
{
return &g_TrainingData;
}
GLOBAL_ASM(
glabel func0f1a1824
@ -6122,8 +6120,8 @@ glabel func0f1a1824
GLOBAL_ASM(
glabel func0f1a190c
/* f1a190c: 3c02800b */ lui $v0,%hi(var800ad1a0)
/* f1a1910: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
/* f1a190c: 3c02800b */ lui $v0,%hi(g_TrainingData)
/* f1a1910: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData)
/* f1a1914: 8c430000 */ lw $v1,0x0($v0)
/* f1a1918: 27bdffe8 */ addiu $sp,$sp,-24
/* f1a191c: afbf0014 */ sw $ra,0x14($sp)
@ -6134,17 +6132,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(var800ad1a0)
/* f1a193c: 3c02800b */ lui $v0,%hi(g_TrainingData)
/* f1a1940: 10000008 */ beqz $zero,.L0f1a1964
/* f1a1944: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
/* f1a1944: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData)
.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(var800ad1a0)
/* f1a1960: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
/* f1a195c: 3c02800b */ lui $v0,%hi(g_TrainingData)
/* f1a1960: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData)
.L0f1a1964:
/* f1a1964: 90480000 */ lbu $t0,0x0($v0)
/* f1a1968: 8fbf0014 */ lw $ra,0x14($sp)
@ -6168,8 +6166,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(var800ad1a0)
/* f1a19b0: 2463d1a0 */ addiu $v1,$v1,%lo(var800ad1a0)
/* f1a19ac: 3c03800b */ lui $v1,%hi(g_TrainingData)
/* f1a19b0: 2463d1a0 */ addiu $v1,$v1,%lo(g_TrainingData)
/* f1a19b4: 8c620000 */ lw $v0,0x0($v1)
/* f1a19b8: 3c04800a */ lui $a0,%hi(g_Vars)
/* f1a19bc: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars)
@ -6194,8 +6192,8 @@ glabel func0f1a1998
/* f1a1a04: 00002025 */ or $a0,$zero,$zero
/* f1a1a08: 0fc686fb */ jal func0f1a1bec
/* f1a1a0c: 00000000 */ sll $zero,$zero,0x0
/* f1a1a10: 3c03800b */ lui $v1,%hi(var800ad1a0)
/* f1a1a14: 2463d1a0 */ addiu $v1,$v1,%lo(var800ad1a0)
/* f1a1a10: 3c03800b */ lui $v1,%hi(g_TrainingData)
/* f1a1a14: 2463d1a0 */ addiu $v1,$v1,%lo(g_TrainingData)
/* f1a1a18: 906c0000 */ lbu $t4,0x0($v1)
/* f1a1a1c: 240e0001 */ addiu $t6,$zero,0x1
/* f1a1a20: a06e0001 */ sb $t6,0x1($v1)
@ -6211,8 +6209,8 @@ glabel func0f1a1998
/* f1a1a44: 8fbf0014 */ lw $ra,0x14($sp)
/* f1a1a48: 0fc686fb */ jal func0f1a1bec
/* f1a1a4c: 00000000 */ sll $zero,$zero,0x0
/* f1a1a50: 3c03800b */ lui $v1,%hi(var800ad1a0)
/* f1a1a54: 2463d1a0 */ addiu $v1,$v1,%lo(var800ad1a0)
/* f1a1a50: 3c03800b */ lui $v1,%hi(g_TrainingData)
/* f1a1a54: 2463d1a0 */ addiu $v1,$v1,%lo(g_TrainingData)
/* f1a1a58: 90690000 */ lbu $t1,0x0($v1)
/* f1a1a5c: 240b0001 */ addiu $t3,$zero,0x1
/* f1a1a60: a06b0001 */ sb $t3,0x1($v1)
@ -6253,8 +6251,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(var800ad1a0)
/* f1a1adc: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
/* f1a1ad8: 3c02800b */ lui $v0,%hi(g_TrainingData)
/* f1a1adc: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData)
/* f1a1ae0: 90580000 */ lbu $t8,0x0($v0)
/* f1a1ae4: 240f0001 */ addiu $t7,$zero,0x1
/* f1a1ae8: a06f0000 */ sb $t7,0x0($v1)
@ -6289,8 +6287,8 @@ glabel func0f1a1ac0
GLOBAL_ASM(
glabel func0f1a1b54
/* f1a1b54: 3c02800b */ lui $v0,%hi(var800ad1a0)
/* f1a1b58: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
/* f1a1b54: 3c02800b */ lui $v0,%hi(g_TrainingData)
/* f1a1b58: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData)
/* f1a1b5c: 904f0000 */ lbu $t7,0x0($v0)
/* f1a1b60: 27bdffe8 */ addiu $sp,$sp,-24
/* f1a1b64: afbf0014 */ sw $ra,0x14($sp)
@ -6331,8 +6329,8 @@ glabel func0f1a1b54
GLOBAL_ASM(
glabel func0f1a1bec
/* f1a1bec: 3c02800b */ lui $v0,%hi(var800ad1a0)
/* f1a1bf0: 2442d1a0 */ addiu $v0,$v0,%lo(var800ad1a0)
/* f1a1bec: 3c02800b */ lui $v0,%hi(g_TrainingData)
/* f1a1bf0: 2442d1a0 */ addiu $v0,$v0,%lo(g_TrainingData)
/* f1a1bf4: 904e0000 */ lbu $t6,0x0($v0)
/* f1a1bf8: 27bdffe8 */ addiu $sp,$sp,-24
/* f1a1bfc: afbf0014 */ sw $ra,0x14($sp)

View File

@ -3723,7 +3723,7 @@ GLOBAL_ASM(
glabel func0f1a67b0
/* f1a67b0: 27bdffe8 */ addiu $sp,$sp,-24
/* f1a67b4: afbf0014 */ sw $ra,0x14($sp)
/* f1a67b8: 0fc68606 */ jal func0f1a1818
/* f1a67b8: 0fc68606 */ jal ciGetTrainingData
/* f1a67bc: afa40018 */ sw $a0,0x18($sp)
/* f1a67c0: 8c4e0000 */ lw $t6,0x0($v0)
/* f1a67c4: 000e7fc2 */ srl $t7,$t6,0x1f
@ -3747,7 +3747,7 @@ GLOBAL_ASM(
glabel func0f1a67f8
/* f1a67f8: 27bdffe8 */ addiu $sp,$sp,-24
/* f1a67fc: afbf0014 */ sw $ra,0x14($sp)
/* f1a6800: 0fc68606 */ jal func0f1a1818
/* f1a6800: 0fc68606 */ jal ciGetTrainingData
/* f1a6804: afa40018 */ sw $a0,0x18($sp)
/* f1a6808: 8c4e0000 */ lw $t6,0x0($v0)
/* f1a680c: 000e7fc2 */ srl $t7,$t6,0x1f
@ -3771,7 +3771,7 @@ GLOBAL_ASM(
glabel func0f1a6840
/* f1a6840: 27bdffd0 */ addiu $sp,$sp,-48
/* f1a6844: afbf001c */ sw $ra,0x1c($sp)
/* f1a6848: 0fc68606 */ jal func0f1a1818
/* f1a6848: 0fc68606 */ jal ciGetTrainingData
/* f1a684c: afa40030 */ sw $a0,0x30($sp)
/* f1a6850: 8c4e0004 */ lw $t6,0x4($v0)
/* f1a6854: 3c014270 */ lui $at,0x4270

View File

@ -30994,7 +30994,7 @@ u32 var800ad190 = 0;
u32 var800ad194 = 0;
u32 var800ad198 = 0;
u32 var800ad19c = 0;
u32 var800ad1a0 = 0;
struct trainingdata g_TrainingData = {0};
u32 var800ad1a4 = 0;
u32 var800ad1a8 = 0;
u32 var800ad1ac = 0;

View File

@ -408,7 +408,7 @@
/*0x01ba*/ bool ai01ba(void);
/*0x01bb*/ bool aiNoOp01bb(void);
/*0x01bc*/ bool ai01bc(void);
/*0x01bd*/ bool ai01bd(void);
/*0x01bd*/ bool aiIfTrainingPcHolographed(void);
/*0x01be*/ bool aiIfChrWeaponEquipped(void);
/*0x01bf*/ bool aiChrBeginOrEndTeleport(void);
/*0x01c0*/ bool aiIfChrTeleportFullWhite(void);

View File

@ -74,7 +74,7 @@ u32 func0f1a16a4(void);
u32 func0f1a1714(void);
u32 func0f1a176c(void);
u32 func0f1a17e4(void);
s32 *func0f1a1818(void);
struct trainingdata *ciGetTrainingData(void);
u32 func0f1a1824(void);
u32 func0f1a190c(void);
u32 func0f1a1998(void);

View File

@ -853,7 +853,7 @@ extern u8 var800acca0[40];
extern u8 g_MpChallengesCompleted[];
extern u32 var800acd20;
extern u32 var800ad158;
extern u32 var800ad1a0;
extern struct trainingdata g_TrainingData;
extern u32 var800ad1b0;
extern u32 var800ad1c0;

View File

@ -4584,4 +4584,12 @@ struct portal {
u8 flags;
};
struct trainingdata {
u32 unk00_00 : 1;
u32 unk00_01 : 1;
u32 unk00_02 : 1;
u32 unk00_03 : 1;
u32 holographedpc : 1;
};
#endif

View File

@ -14580,7 +14580,7 @@ bool (*g_CommandPointers[])(void) = {
/*0x01ba*/ ai01ba,
/*0x01bb*/ aiNoOp01bb,
/*0x01bc*/ ai01bc,
/*0x01bd*/ ai01bd,
/*0x01bd*/ aiIfTrainingPcHolographed,
/*0x01be*/ aiIfChrWeaponEquipped,
/*0x01bf*/ aiChrBeginOrEndTeleport,
/*0x01c0*/ aiIfChrTeleportFullWhite,