Decompile mpPrepareScenario
This commit is contained in:
parent
2f56dfd5f0
commit
282ec7dcd4
|
|
@ -360,7 +360,7 @@ void coreLoadStage(s32 stagenum)
|
|||
func0f011110();
|
||||
func0f0108d0();
|
||||
func0f00eb64(stagenum);
|
||||
func0f18620c();
|
||||
mpPrepareScenario();
|
||||
func0f00c240();
|
||||
func0f00c490();
|
||||
func0f00b510();
|
||||
|
|
|
|||
|
|
@ -908,185 +908,95 @@ f32 scenarioCallback2c(f32 arg0, struct coord *pos, s16 *rooms, struct prop *pro
|
|||
return func0f0b72a8(arg0, pos, rooms, prop);
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f18620c
|
||||
.late_rodata
|
||||
glabel var7f1b89bc
|
||||
.word func0f18620c+0xd8 # f1862e4
|
||||
glabel var7f1b89c0
|
||||
.word func0f18620c+0xc8 # f1862d4
|
||||
glabel var7f1b89c4
|
||||
.word func0f18620c+0xe0 # f1862ec
|
||||
glabel var7f1b89c8
|
||||
.word func0f18620c+0x48 # f186254
|
||||
glabel var7f1b89cc
|
||||
.word func0f18620c+0x54 # f186260
|
||||
glabel var7f1b89d0
|
||||
.word func0f18620c+0x114 # f186320
|
||||
glabel var7f1b89d4
|
||||
.word func0f18620c+0x194 # f1863a0
|
||||
glabel var7f1b89d8
|
||||
.word func0f18620c+0x19c # f1863a8
|
||||
glabel var7f1b89dc
|
||||
.word func0f18620c+0x1a4 # f1863b0
|
||||
glabel var7f1b89e0
|
||||
.word func0f18620c+0x1ac # f1863b8
|
||||
glabel var7f1b89e4
|
||||
.word func0f18620c+0x1b4 # f1863c0
|
||||
glabel var7f1b89e8
|
||||
.word func0f18620c+0x1bc # f1863c8
|
||||
glabel var7f1b89ec
|
||||
.word func0f18620c+0x1c4 # f1863d0
|
||||
glabel var7f1b89f0
|
||||
.word func0f18620c+0x1cc # f1863d8
|
||||
glabel var7f1b89f4
|
||||
.word func0f18620c+0x11c # f186328
|
||||
glabel var7f1b89f8
|
||||
.word func0f18620c+0x11c # f186328
|
||||
glabel var7f1b89fc
|
||||
.word func0f18620c+0x174 # f186380
|
||||
.text
|
||||
/* f18620c: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f186210: afb10018 */ sw $s1,0x18($sp)
|
||||
/* f186214: 3c11800b */ lui $s1,%hi(g_MpSetup)
|
||||
/* f186218: 2631cb88 */ addiu $s1,$s1,%lo(g_MpSetup)
|
||||
/* f18621c: 922e0010 */ lbu $t6,0x10($s1)
|
||||
/* f186220: afb00014 */ sw $s0,0x14($sp)
|
||||
/* f186224: 3c10800a */ lui $s0,%hi(g_StageSetup+0xc)
|
||||
/* f186228: 25cfffff */ addiu $t7,$t6,-1
|
||||
/* f18622c: 2de10005 */ sltiu $at,$t7,0x5
|
||||
/* f186230: afbf001c */ sw $ra,0x1c($sp)
|
||||
/* f186234: 1020002d */ beqz $at,.L0f1862ec
|
||||
/* f186238: 8e10d03c */ lw $s0,%lo(g_StageSetup+0xc)($s0)
|
||||
/* f18623c: 000f7880 */ sll $t7,$t7,0x2
|
||||
/* f186240: 3c017f1c */ lui $at,%hi(var7f1b89bc)
|
||||
/* f186244: 002f0821 */ addu $at,$at,$t7
|
||||
/* f186248: 8c2f89bc */ lw $t7,%lo(var7f1b89bc)($at)
|
||||
/* f18624c: 01e00008 */ jr $t7
|
||||
/* f186250: 00000000 */ nop
|
||||
/* f186254: 3c01800b */ lui $at,%hi(g_ScenarioData+0xc)
|
||||
/* f186258: 10000024 */ b .L0f1862ec
|
||||
/* f18625c: a420c11c */ sh $zero,%lo(g_ScenarioData+0xc)($at)
|
||||
/* f186260: 3c18800b */ lui $t8,%hi(g_ScenarioData)
|
||||
/* f186264: 2707c110 */ addiu $a3,$t8,%lo(g_ScenarioData)
|
||||
/* f186268: 3c08800b */ lui $t0,%hi(g_ScenarioData+0x40)
|
||||
/* f18626c: 2508c150 */ addiu $t0,$t0,%lo(g_ScenarioData+0x40)
|
||||
/* f186270: 00e03025 */ or $a2,$a3,$zero
|
||||
/* f186274: 2405ffff */ addiu $a1,$zero,-1
|
||||
/* f186278: 24040006 */ addiu $a0,$zero,0x6
|
||||
.L0f18627c:
|
||||
/* f18627c: a4c50018 */ sh $a1,0x18($a2)
|
||||
/* f186280: a4c0001a */ sh $zero,0x1a($a2)
|
||||
/* f186284: 00001025 */ or $v0,$zero,$zero
|
||||
/* f186288: 00e01825 */ or $v1,$a3,$zero
|
||||
.L0f18628c:
|
||||
/* f18628c: 24420001 */ addiu $v0,$v0,0x1
|
||||
/* f186290: 24630002 */ addiu $v1,$v1,0x2
|
||||
/* f186294: 1444fffd */ bne $v0,$a0,.L0f18628c
|
||||
/* f186298: a465001a */ sh $a1,0x1a($v1)
|
||||
/* f18629c: 24e70010 */ addiu $a3,$a3,0x10
|
||||
/* f1862a0: 00e8082b */ sltu $at,$a3,$t0
|
||||
/* f1862a4: 1420fff5 */ bnez $at,.L0f18627c
|
||||
/* f1862a8: 24c60010 */ addiu $a2,$a2,0x10
|
||||
/* f1862ac: 3c02800b */ lui $v0,%hi(g_ScenarioData)
|
||||
/* f1862b0: 3c03800b */ lui $v1,%hi(g_ScenarioData+0x8)
|
||||
/* f1862b4: 2463c118 */ addiu $v1,$v1,%lo(g_ScenarioData+0x8)
|
||||
/* f1862b8: 2442c110 */ addiu $v0,$v0,%lo(g_ScenarioData)
|
||||
.L0f1862bc:
|
||||
/* f1862bc: 24420002 */ addiu $v0,$v0,0x2
|
||||
/* f1862c0: a440fffe */ sh $zero,-0x2($v0)
|
||||
/* f1862c4: 1443fffd */ bne $v0,$v1,.L0f1862bc
|
||||
/* f1862c8: a4450006 */ sh $a1,0x6($v0)
|
||||
/* f1862cc: 10000007 */ b .L0f1862ec
|
||||
/* f1862d0: 00000000 */ nop
|
||||
/* f1862d4: 0fc60afd */ jal func0f182bf4
|
||||
/* f1862d8: 00000000 */ nop
|
||||
/* f1862dc: 10000003 */ b .L0f1862ec
|
||||
/* f1862e0: 00000000 */ nop
|
||||
/* f1862e4: 0fc6001e */ jal func0f180078
|
||||
/* f1862e8: 00000000 */ nop
|
||||
.L0f1862ec:
|
||||
/* f1862ec: 52000042 */ beqzl $s0,.L0f1863f8
|
||||
/* f1862f0: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
/* f1862f4: 8e020000 */ lw $v0,0x0($s0)
|
||||
/* f1862f8: 2401000c */ addiu $at,$zero,0xc
|
||||
/* f1862fc: 1041003d */ beq $v0,$at,.L0f1863f4
|
||||
/* f186300: 2c41000c */ sltiu $at,$v0,0xc
|
||||
.L0f186304:
|
||||
/* f186304: 10200036 */ beqz $at,.L0f1863e0
|
||||
/* f186308: 0002c880 */ sll $t9,$v0,0x2
|
||||
/* f18630c: 3c017f1c */ lui $at,%hi(var7f1b89d0)
|
||||
/* f186310: 00390821 */ addu $at,$at,$t9
|
||||
/* f186314: 8c3989d0 */ lw $t9,%lo(var7f1b89d0)($at)
|
||||
/* f186318: 03200008 */ jr $t9
|
||||
/* f18631c: 00000000 */ nop
|
||||
/* f186320: 10000030 */ b .L0f1863e4
|
||||
/* f186324: 2610000c */ addiu $s0,$s0,12
|
||||
/* f186328: 92220010 */ lbu $v0,0x10($s1)
|
||||
/* f18632c: 24010005 */ addiu $at,$zero,0x5
|
||||
/* f186330: 54410006 */ bnel $v0,$at,.L0f18634c
|
||||
/* f186334: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f186338: 0fc60600 */ jal func0f181800
|
||||
/* f18633c: 02002025 */ or $a0,$s0,$zero
|
||||
/* f186340: 10000028 */ b .L0f1863e4
|
||||
/* f186344: 2610000c */ addiu $s0,$s0,0xc
|
||||
/* f186348: 24010002 */ addiu $at,$zero,0x2
|
||||
.L0f18634c:
|
||||
/* f18634c: 54410006 */ bnel $v0,$at,.L0f186368
|
||||
/* f186350: 24010001 */ addiu $at,$zero,0x1
|
||||
/* f186354: 0fc60ae9 */ jal func0f182ba4
|
||||
/* f186358: 8604000a */ lh $a0,0xa($s0)
|
||||
/* f18635c: 10000021 */ b .L0f1863e4
|
||||
/* f186360: 2610000c */ addiu $s0,$s0,0xc
|
||||
/* f186364: 24010001 */ addiu $at,$zero,0x1
|
||||
.L0f186368:
|
||||
/* f186368: 14410003 */ bne $v0,$at,.L0f186378
|
||||
/* f18636c: 00000000 */ nop
|
||||
/* f186370: 0fc5ffe3 */ jal func0f17ff8c
|
||||
/* f186374: 8604000a */ lh $a0,0xa($s0)
|
||||
.L0f186378:
|
||||
/* f186378: 1000001a */ b .L0f1863e4
|
||||
/* f18637c: 2610000c */ addiu $s0,$s0,0xc
|
||||
/* f186380: 92290010 */ lbu $t1,0x10($s1)
|
||||
/* f186384: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f186388: 15210003 */ bne $t1,$at,.L0f186398
|
||||
/* f18638c: 00000000 */ nop
|
||||
/* f186390: 0fc60aab */ jal func0f182aac
|
||||
/* f186394: 02002025 */ or $a0,$s0,$zero
|
||||
.L0f186398:
|
||||
/* f186398: 10000012 */ b .L0f1863e4
|
||||
/* f18639c: 26100008 */ addiu $s0,$s0,0x8
|
||||
/* f1863a0: 10000010 */ b .L0f1863e4
|
||||
/* f1863a4: 26100010 */ addiu $s0,$s0,0x10
|
||||
/* f1863a8: 1000000e */ b .L0f1863e4
|
||||
/* f1863ac: 26100010 */ addiu $s0,$s0,0x10
|
||||
/* f1863b0: 1000000c */ b .L0f1863e4
|
||||
/* f1863b4: 26100020 */ addiu $s0,$s0,0x20
|
||||
/* f1863b8: 1000000a */ b .L0f1863e4
|
||||
/* f1863bc: 26100008 */ addiu $s0,$s0,0x8
|
||||
/* f1863c0: 10000008 */ b .L0f1863e4
|
||||
/* f1863c4: 26100008 */ addiu $s0,$s0,0x8
|
||||
/* f1863c8: 10000006 */ b .L0f1863e4
|
||||
/* f1863cc: 26100028 */ addiu $s0,$s0,0x28
|
||||
/* f1863d0: 10000004 */ b .L0f1863e4
|
||||
/* f1863d4: 2610000c */ addiu $s0,$s0,0xc
|
||||
/* f1863d8: 10000002 */ b .L0f1863e4
|
||||
/* f1863dc: 26100008 */ addiu $s0,$s0,0x8
|
||||
.L0f1863e0:
|
||||
/* f1863e0: 26100004 */ addiu $s0,$s0,0x4
|
||||
.L0f1863e4:
|
||||
/* f1863e4: 8e020000 */ lw $v0,0x0($s0)
|
||||
/* f1863e8: 2401000c */ addiu $at,$zero,0xc
|
||||
/* f1863ec: 5441ffc5 */ bnel $v0,$at,.L0f186304
|
||||
/* f1863f0: 2c41000c */ sltiu $at,$v0,0xc
|
||||
.L0f1863f4:
|
||||
/* f1863f4: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
.L0f1863f8:
|
||||
/* f1863f8: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* f1863fc: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* f186400: 03e00008 */ jr $ra
|
||||
/* f186404: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
);
|
||||
void mpPrepareScenario(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 *cmd = g_StageSetup.intro;
|
||||
|
||||
switch (g_MpSetup.scenario) {
|
||||
case MPSCENARIO_KINGOFTHEHILL:
|
||||
g_ScenarioData.koh.hillcount = 0;
|
||||
break;
|
||||
case MPSCENARIO_CAPTURETHECASE:
|
||||
for (i = 0; i < ARRAYCOUNT(g_ScenarioData.ctc.spawnpadsperteam); i++) {
|
||||
g_ScenarioData.ctc.spawnpadsperteam[i].teamindex = -1;
|
||||
g_ScenarioData.ctc.spawnpadsperteam[i].numspawnpads = 0;
|
||||
|
||||
for (j = 0; j < ARRAYCOUNT(g_ScenarioData.ctc.spawnpadsperteam[i].spawnpads); j++) {
|
||||
g_ScenarioData.ctc.spawnpadsperteam[i].spawnpads[j] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAYCOUNT(g_ScenarioData.ctc.unk00); i++) {
|
||||
g_ScenarioData.ctc.unk00[i] = 0;
|
||||
g_ScenarioData.ctc.teamindexes[i] = -1;
|
||||
}
|
||||
break;
|
||||
case MPSCENARIO_HACKERCENTRAL:
|
||||
func0f182bf4();
|
||||
break;
|
||||
case MPSCENARIO_HOLDTHEBRIEFCASE:
|
||||
func0f180078();
|
||||
break;
|
||||
case MPSCENARIO_POPACAP:
|
||||
break;
|
||||
}
|
||||
|
||||
if (cmd) {
|
||||
while (cmd[0] != INTROCMD_END) {
|
||||
switch (cmd[0]) {
|
||||
case INTROCMD_SPAWN:
|
||||
cmd += 3;
|
||||
break;
|
||||
case INTROCMD_CASE:
|
||||
case INTROCMD_CASERESPAWN:
|
||||
if (g_MpSetup.scenario == MPSCENARIO_CAPTURETHECASE) {
|
||||
func0f181800(cmd);
|
||||
} else if (g_MpSetup.scenario == MPSCENARIO_HACKERCENTRAL) {
|
||||
func0f182ba4(cmd[2]);
|
||||
} else if (g_MpSetup.scenario == MPSCENARIO_HOLDTHEBRIEFCASE) {
|
||||
func0f17ff8c(cmd[2]);
|
||||
}
|
||||
cmd += 3;
|
||||
break;
|
||||
case INTROCMD_HILL:
|
||||
if (g_MpSetup.scenario == MPSCENARIO_KINGOFTHEHILL) {
|
||||
func0f182aac(cmd);
|
||||
}
|
||||
cmd += 2;
|
||||
break;
|
||||
case INTROCMD_WEAPON:
|
||||
cmd += 4;
|
||||
break;
|
||||
case INTROCMD_AMMO:
|
||||
cmd += 4;
|
||||
break;
|
||||
case INTROCMD_3:
|
||||
cmd += 8;
|
||||
break;
|
||||
case INTROCMD_4:
|
||||
cmd += 2;
|
||||
break;
|
||||
case INTROCMD_OUTFIT:
|
||||
cmd += 2;
|
||||
break;
|
||||
case INTROCMD_6:
|
||||
cmd += 10;
|
||||
break;
|
||||
case INTROCMD_WATCHTIME:
|
||||
cmd += 3;
|
||||
break;
|
||||
case INTROCMD_CREDITOFFSET:
|
||||
cmd += 2;
|
||||
break;
|
||||
default:
|
||||
cmd++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 scenarioGetMaxTeams(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -72,21 +72,21 @@ s32 menuhandler0017f74c(u32 operation, struct menuitem *item, union handlerdata
|
|||
u32 func0f17fa28(void);
|
||||
void func0f17fcb0(s32 silent);
|
||||
s32 menuhandlerMpSlowMotion(u32 operation, struct menuitem *item, union handlerdata *data);
|
||||
u32 func0f17ff8c(void);
|
||||
void func0f17ff8c(s16 padnum);
|
||||
u32 func0f17ffe4(void);
|
||||
u32 func0f180078(void);
|
||||
void func0f180078(void);
|
||||
void func0f1800a8(void);
|
||||
u32 scenarioHtbCallback18(void);
|
||||
void scenarioCtcReset(void);
|
||||
bool scenarioCtcHighlight(struct prop *prop, u32 *colour);
|
||||
u32 func0f181800(void);
|
||||
void func0f181800(s32 *cmd);
|
||||
void scenarioCtcCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3);
|
||||
void scenarioKohCallback10(void);
|
||||
u32 scenarioKohCallback18(void);
|
||||
u32 func0f182aac(void);
|
||||
void func0f182aac(s32 *cmd);
|
||||
void scenarioKohCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3);
|
||||
u32 func0f182ba4(void);
|
||||
u32 func0f182bf4(void);
|
||||
void func0f182ba4(s16 padnum);
|
||||
void func0f182bf4(void);
|
||||
void func0f182c98(void);
|
||||
void scenarioHtmReset(void);
|
||||
void scenarioHtmCallback14(struct chrdata *chr);
|
||||
|
|
@ -107,7 +107,7 @@ void func0f185568(void);
|
|||
Gfx *func0f185774(Gfx *gdl);
|
||||
u32 func0f185c14(void);
|
||||
u32 func0f185e20(void);
|
||||
void func0f18620c(void);
|
||||
void mpPrepareScenario(void);
|
||||
u32 func0f186508(void);
|
||||
void func0f1866b8(s32 playernum, char *message);
|
||||
u32 func0f186780(void);
|
||||
|
|
|
|||
Loading…
Reference in New Issue