Decompile mpHtmAddPad

This commit is contained in:
Ryan Dwyer 2021-01-03 17:34:49 +10:00
parent e6a99fe702
commit c2dfd4071d
4 changed files with 42 additions and 32 deletions

View File

@ -954,7 +954,7 @@ void mpPrepareScenario(void)
if (g_MpSetup.scenario == MPSCENARIO_CAPTURETHECASE) {
func0f181800(cmd);
} else if (g_MpSetup.scenario == MPSCENARIO_HACKERCENTRAL) {
func0f182ba4(cmd[2]);
mpHtmAddPad(cmd[2]);
} else if (g_MpSetup.scenario == MPSCENARIO_HOLDTHEBRIEFCASE) {
mpHtbAddPad(cmd[2]);
}

View File

@ -2605,36 +2605,46 @@ s32 scenarioHtmCallback08(void)
return 2;
}
GLOBAL_ASM(
glabel func0f182ba4
/* f182ba4: 3c02800b */ lui $v0,%hi(g_ScenarioData)
/* f182ba8: 2442c110 */ addiu $v0,$v0,%lo(g_ScenarioData)
/* f182bac: 84580000 */ lh $t8,0x0($v0)
/* f182bb0: 00047400 */ sll $t6,$a0,0x10
/* f182bb4: 000e7c03 */ sra $t7,$t6,0x10
/* f182bb8: 2b01003c */ slti $at,$t8,0x3c
/* f182bbc: 1020000b */ beqz $at,.L0f182bec
/* f182bc0: afa40000 */ sw $a0,0x0($sp)
/* f182bc4: 3c19800b */ lui $t9,%hi(g_ScenarioData)
/* f182bc8: 8739c110 */ lh $t9,%lo(g_ScenarioData)($t9)
/* f182bcc: 3c0a800b */ lui $t2,%hi(g_ScenarioData)
/* f182bd0: 3c01800b */ lui $at,%hi(g_ScenarioData)
/* f182bd4: 00194040 */ sll $t0,$t9,0x1
/* f182bd8: 00484821 */ addu $t1,$v0,$t0
/* f182bdc: a52f0004 */ sh $t7,0x4($t1)
/* f182be0: 854ac110 */ lh $t2,%lo(g_ScenarioData)($t2)
/* f182be4: 254b0001 */ addiu $t3,$t2,0x1
/* f182be8: a42bc110 */ sh $t3,%lo(g_ScenarioData)($at)
.L0f182bec:
/* f182bec: 03e00008 */ jr $ra
/* f182bf0: 00000000 */ nop
);
//GLOBAL_ASM(
//glabel mpHtmAddPad
///* f182ba4: 3c02800b */ lui $v0,%hi(g_ScenarioData)
///* f182ba8: 2442c110 */ addiu $v0,$v0,%lo(g_ScenarioData)
///* f182bac: 84580000 */ lh $t8,0x0($v0)
///* f182bb0: 00047400 */ sll $t6,$a0,0x10
///* f182bb4: 000e7c03 */ sra $t7,$t6,0x10
///* f182bb8: 2b01003c */ slti $at,$t8,0x3c
///* f182bbc: 1020000b */ beqz $at,.L0f182bec
///* f182bc0: afa40000 */ sw $a0,0x0($sp)
///* f182bc4: 3c19800b */ lui $t9,%hi(g_ScenarioData)
///* f182bc8: 8739c110 */ lh $t9,%lo(g_ScenarioData)($t9)
///* f182bcc: 3c0a800b */ lui $t2,%hi(g_ScenarioData)
///* f182bd0: 3c01800b */ lui $at,%hi(g_ScenarioData)
///* f182bd4: 00194040 */ sll $t0,$t9,0x1
///* f182bd8: 00484821 */ addu $t1,$v0,$t0
///* f182bdc: a52f0004 */ sh $t7,0x4($t1)
///* f182be0: 854ac110 */ lh $t2,%lo(g_ScenarioData)($t2)
///* f182be4: 254b0001 */ addiu $t3,$t2,0x1
///* f182be8: a42bc110 */ sh $t3,%lo(g_ScenarioData)($at)
//.L0f182bec:
///* f182bec: 03e00008 */ jr $ra
///* f182bf0: 00000000 */ nop
//);
void mpHtmAddPad(s16 padnum)
{
struct scenariodata_htm *data = &g_ScenarioData.htm;
if (data->nextindex < 60) {
data->padnums[data->nextindex] = padnum;
data->nextindex++;
}
}
void func0f182bf4(void)
{
s32 i;
g_ScenarioData.htm.unk000 = 0;
g_ScenarioData.htm.nextindex = 0;
g_ScenarioData.htm.unk002 = 0;
g_ScenarioData.htm.unk138 = 0;
g_ScenarioData.htm.unk0d0 = -1;
@ -2647,8 +2657,8 @@ void func0f182bf4(void)
g_ScenarioData.htm.unk108[i] = 0;
}
for (i = 0; i < ARRAYCOUNT(g_ScenarioData.htm.unk004); i++) {
g_ScenarioData.htm.unk004[i] = -1;
for (i = 0; i < ARRAYCOUNT(g_ScenarioData.htm.padnums); i++) {
g_ScenarioData.htm.padnums[i] = -1;
}
for (i = 0; i < 1; i++) {
@ -2843,7 +2853,7 @@ glabel var7f1b8954
.L0f182f14:
/* f182f14: 56af0004 */ bnel $s5,$t7,.L0f182f28
/* f182f18: 8e310020 */ lw $s1,0x20($s1)
/* f182f1c: 0fc60ae9 */ jal func0f182ba4
/* f182f1c: 0fc60ae9 */ jal mpHtmAddPad
/* f182f20: 84440006 */ lh $a0,0x6($v0)
/* f182f24: 8e310020 */ lw $s1,0x20($s1)
.L0f182f28:

View File

@ -85,7 +85,7 @@ void scenarioKohCallback10(void);
u32 scenarioKohCallback18(void);
void func0f182aac(s32 *cmd);
void scenarioKohCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3);
void func0f182ba4(s16 padnum);
void mpHtmAddPad(s16 padnum);
void func0f182bf4(void);
void func0f182c98(void);
void scenarioHtmReset(void);

View File

@ -4568,9 +4568,9 @@ struct htmthing {
};
struct scenariodata_htm {
/*0x800ac110*/ u16 unk000;
/*0x800ac110*/ s16 nextindex;
/*0x800ac112*/ u16 unk002;
/*0x800ac114*/ s16 unk004[60];
/*0x800ac114*/ s16 padnums[60];
/*0x800ac18c*/ struct htmthing unk07c[7]; // only the first element is used?
/*0x800ac1e0*/ s16 unk0d0;
/*0x800ac1e2*/ s16 unk0d2;