Decompile menudialog001063e4

This commit is contained in:
Ryan Dwyer
2020-03-21 19:46:56 +10:00
parent ba5dad4a18
commit 422ec3ab38
8 changed files with 82 additions and 120 deletions
+12 -12
View File
@@ -3619,20 +3619,20 @@ glabel var7f1a8224
/* f00f260: afa3023c */ sw $v1,0x23c($sp)
.L0f00f264:
/* f00f264: 3c01800a */ lui $at,%hi(g_Vars+0x2b8)
/* f00f268: 3c03800a */ lui $v1,%hi(var8009dfd4)
/* f00f26c: 3c02800a */ lui $v0,%hi(var8009dfc8)
/* f00f268: 3c03800a */ lui $v1,0x800a
/* f00f26c: 3c02800a */ lui $v0,0x800a
/* f00f270: afa00238 */ sw $zero,0x238($sp)
/* f00f274: afa00234 */ sw $zero,0x234($sp)
/* f00f278: ac20a278 */ sw $zero,%lo(g_Vars+0x2b8)($at)
/* f00f27c: 2442dfc8 */ addiu $v0,$v0,%lo(var8009dfc8)
/* f00f280: 2463dfd4 */ addiu $v1,$v1,%lo(var8009dfd4)
/* f00f27c: 2442dfc8 */ addiu $v0,$v0,-8248
/* f00f280: 2463dfd4 */ addiu $v1,$v1,-8236
.L0f00f284:
/* f00f284: 24420002 */ addiu $v0,$v0,0x2
/* f00f288: a4400000 */ sh $zero,0x0($v0)
/* f00f28c: 1443fffd */ bne $v0,$v1,.L0f00f284
/* f00f290: a440000c */ sh $zero,0xc($v0)
/* f00f294: 3c01800a */ lui $at,%hi(var8009dfc8)
/* f00f298: a438dfc8 */ sh $t8,%lo(var8009dfc8)($at)
/* f00f294: 3c01800a */ lui $at,0x800a
/* f00f298: a438dfc8 */ sh $t8,-8248($at)
/* f00f29c: 28a1005a */ slti $at,$a1,0x5a
/* f00f2a0: 10200576 */ beqz $at,.L0f01087c
/* f00f2a4: 3c19800a */ lui $t9,%hi(g_StageSetup+0x1c)
@@ -4630,9 +4630,9 @@ glabel var7f1a8224
/* f010148: 16180051 */ bne $s0,$t8,.L0f010290
/* f01014c: 00000000 */ sll $zero,$zero,0x0
/* f010150: 8e4b0008 */ lw $t3,0x8($s2)
/* f010154: 3c01800a */ lui $at,%hi(var8009dfc8)
/* f010154: 3c01800a */ lui $at,0x800a
/* f010158: 1000004d */ beqz $zero,.L0f010290
/* f01015c: a42bdfc8 */ sh $t3,%lo(var8009dfc8)($at)
/* f01015c: a42bdfc8 */ sh $t3,-8248($at)
/* f010160: 8e4d0004 */ lw $t5,0x4($s2)
/* f010164: 3c0142c8 */ lui $at,0x42c8
/* f010168: 44810000 */ mtc1 $at,$f0
@@ -4668,16 +4668,16 @@ glabel var7f1a8224
/* f0101e0: 1020002b */ beqz $at,.L0f010290
/* f0101e4: 00025840 */ sll $t3,$v0,0x1
/* f0101e8: 8e580008 */ lw $t8,0x8($s2)
/* f0101ec: 3c01800a */ lui $at,%hi(var8009dfc8+0x2)
/* f0101ec: 3c01800a */ lui $at,0x800a
/* f0101f0: 002b0821 */ addu $at,$at,$t3
/* f0101f4: a438dfca */ sh $t8,%lo(var8009dfc8+0x2)($at)
/* f0101f4: a438dfca */ sh $t8,-8246($at)
/* f0101f8: 8e4c0004 */ lw $t4,0x4($s2)
/* f0101fc: 824d000f */ lb $t5,0xf($s2)
/* f010200: 3c01800a */ lui $at,%hi(var8009dfd4+0x2)
/* f010200: 3c01800a */ lui $at,0x800a
/* f010204: 000c7040 */ sll $t6,$t4,0x1
/* f010208: 002e0821 */ addu $at,$at,$t6
/* f01020c: 10000020 */ beqz $zero,.L0f010290
/* f010210: a42ddfd6 */ sh $t5,%lo(var8009dfd4+0x2)($at)
/* f010210: a42ddfd6 */ sh $t5,-8234($at)
/* f010214: 0fc042b5 */ jal func0f010ad4
/* f010218: 02402025 */ or $a0,$s2,$zero
/* f01021c: 1000001c */ beqz $zero,.L0f010290
+6 -6
View File
@@ -8245,11 +8245,11 @@ glabel func0f0e98ac
/* f0e98e8: 0c0036cc */ jal func0000db30
/* f0e98ec: afa200bc */ sw $v0,0xbc($sp)
/* f0e98f0: 8faf0138 */ lw $t7,0x138($sp)
/* f0e98f4: 3c04800a */ lui $a0,%hi(var8009dfc8+0x2)
/* f0e98f4: 3c04800a */ lui $a0,0x800a
/* f0e98f8: 000fc040 */ sll $t8,$t7,0x1
/* f0e98fc: 00982021 */ addu $a0,$a0,$t8
/* f0e9900: 0fc5b9f1 */ jal langGet
/* f0e9904: 9484dfca */ lhu $a0,%lo(var8009dfc8+0x2)($a0)
/* f0e9904: 9484dfca */ lhu $a0,-8246($a0)
/* f0e9908: 87b90146 */ lh $t9,0x146($sp)
/* f0e990c: 8fa30134 */ lw $v1,0x134($sp)
/* f0e9910: afa20120 */ sw $v0,0x120($sp)
@@ -8891,11 +8891,11 @@ glabel func0f0ea290
/* f0ea2b4: afb10034 */ sw $s1,0x34($sp)
/* f0ea2b8: afb00030 */ sw $s0,0x30($sp)
/* f0ea2bc: 84b10002 */ lh $s1,0x2($a1)
/* f0ea2c0: 3c14800a */ lui $s4,%hi(var8009dfc8)
/* f0ea2c0: 3c14800a */ lui $s4,0x800a
/* f0ea2c4: 00a09025 */ or $s2,$a1,$zero
/* f0ea2c8: 0080b025 */ or $s6,$a0,$zero
/* f0ea2cc: 24150001 */ addiu $s5,$zero,0x1
/* f0ea2d0: 2694dfc8 */ addiu $s4,$s4,%lo(var8009dfc8)
/* f0ea2d0: 2694dfc8 */ addiu $s4,$s4,-8248
/* f0ea2d4: 00009825 */ or $s3,$zero,$zero
/* f0ea2d8: 24170002 */ addiu $s7,$zero,0x2
/* f0ea2dc: 241e0001 */ addiu $s8,$zero,0x1
@@ -11907,9 +11907,9 @@ glabel var7f1b1e8c
/* f0ecdfc: 10000005 */ beqz $zero,.L0f0ece14
/* f0ece00: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0ece04:
/* f0ece04: 3c04800a */ lui $a0,%hi(var8009dfc8)
/* f0ece04: 3c04800a */ lui $a0,0x800a
/* f0ece08: 0fc5b9f1 */ jal langGet
/* f0ece0c: 9484dfc8 */ lhu $a0,%lo(var8009dfc8)($a0)
/* f0ece0c: 9484dfc8 */ lhu $a0,-8248($a0)
/* f0ece10: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0ece14:
/* f0ece14: 27bd0018 */ addiu $sp,$sp,0x18
+4 -4
View File
@@ -1760,10 +1760,10 @@ glabel var7f1b28c0
/* f0f1be8: 1000005a */ beqz $zero,.L0f0f1d54
/* f0f1bec: a6590000 */ sh $t9,0x0($s2)
/* f0f1bf0: 240c00f0 */ addiu $t4,$zero,0xf0
/* f0f1bf4: 3c03800a */ lui $v1,%hi(var8009dfc8)
/* f0f1bf4: 3c03800a */ lui $v1,0x800a
/* f0f1bf8: 00002025 */ or $a0,$zero,$zero
/* f0f1bfc: a62c0000 */ sh $t4,0x0($s1)
/* f0f1c00: 2463dfc8 */ addiu $v1,$v1,%lo(var8009dfc8)
/* f0f1c00: 2463dfc8 */ addiu $v1,$v1,-8248
/* f0f1c04: 946d0002 */ lhu $t5,0x2($v1)
.L0f0f1c08:
/* f0f1c08: 11a0000d */ beqz $t5,.L0f0f1c40
@@ -1781,8 +1781,8 @@ glabel var7f1b28c0
/* f0f1c38: 00000000 */ sll $zero,$zero,0x0
/* f0f1c3c: 24840001 */ addiu $a0,$a0,0x1
.L0f0f1c40:
/* f0f1c40: 3c09800a */ lui $t1,%hi(var8009dfd4)
/* f0f1c44: 2529dfd4 */ addiu $t1,$t1,%lo(var8009dfd4)
/* f0f1c40: 3c09800a */ lui $t1,0x800a
/* f0f1c44: 2529dfd4 */ addiu $t1,$t1,-8236
/* f0f1c48: 24630002 */ addiu $v1,$v1,0x2
/* f0f1c4c: 5469ffee */ bnel $v1,$t1,.L0f0f1c08
/* f0f1c50: 946d0002 */ lhu $t5,0x2($v1)
+43 -87
View File
@@ -1232,8 +1232,8 @@ glabel menudialog00103608
/* f103660: 01f81021 */ addu $v0,$t7,$t8
/* f103664: ac400850 */ sw $zero,0x850($v0)
/* f103668: 3c04800a */ lui $a0,%hi(g_MissionConfig+0x1)
/* f10366c: 3c07800a */ lui $a3,%hi(var8009dfc8)
/* f103670: 24e7dfc8 */ addiu $a3,$a3,%lo(var8009dfc8)
/* f10366c: 3c07800a */ lui $a3,0x800a
/* f103670: 24e7dfc8 */ addiu $a3,$a3,-8248
/* f103674: 9084dfe9 */ lbu $a0,%lo(g_MissionConfig+0x1)($a0)
/* f103678: 8c450844 */ lw $a1,0x844($v0)
/* f10367c: 0fc03a60 */ jal func0f00e980
@@ -4221,91 +4221,47 @@ glabel menudialog001063d4
/* f1063e0: 00001025 */ or $v0,$zero,$zero
);
GLOBAL_ASM(
glabel menudialog001063e4
/* f1063e4: 27bdffd8 */ addiu $sp,$sp,-40
/* f1063e8: 24010064 */ addiu $at,$zero,0x64
/* f1063ec: afbf0024 */ sw $ra,0x24($sp)
/* f1063f0: afb30020 */ sw $s3,0x20($sp)
/* f1063f4: afb2001c */ sw $s2,0x1c($sp)
/* f1063f8: afb10018 */ sw $s1,0x18($sp)
/* f1063fc: afb00014 */ sw $s0,0x14($sp)
/* f106400: afa5002c */ sw $a1,0x2c($sp)
/* f106404: 14810038 */ bne $a0,$at,.L0f1064e8
/* f106408: afa60030 */ sw $a2,0x30($sp)
/* f10640c: 3c10800a */ lui $s0,%hi(var8009d0b4)
/* f106410: 8e10d0b4 */ lw $s0,%lo(var8009d0b4)($s0)
/* f106414: 0fc5b367 */ jal getDifficulty
/* f106418: 24110001 */ addiu $s1,$zero,0x1
/* f10641c: 14400002 */ bnez $v0,.L0f106428
/* f106420: 00000000 */ sll $zero,$zero,0x0
/* f106424: 24110003 */ addiu $s1,$zero,0x3
.L0f106428:
/* f106428: 0fc5b367 */ jal getDifficulty
/* f10642c: 00000000 */ sll $zero,$zero,0x0
/* f106430: 24010001 */ addiu $at,$zero,0x1
/* f106434: 14410002 */ bne $v0,$at,.L0f106440
/* f106438: 3c13800a */ lui $s3,%hi(var8009dfc8)
/* f10643c: 24110002 */ addiu $s1,$zero,0x2
.L0f106440:
/* f106440: 2673dfc8 */ addiu $s3,$s3,%lo(var8009dfc8)
/* f106444: 240e582a */ addiu $t6,$zero,0x582a
/* f106448: 12000010 */ beqz $s0,.L0f10648c
/* f10644c: a66e0000 */ sh $t6,0x0($s3)
/* f106450: 24030001 */ addiu $v1,$zero,0x1
/* f106454: 8e020004 */ lw $v0,0x4($s0)
.L0f106458:
/* f106458: 14620004 */ bne $v1,$v0,.L0f10646c
/* f10645c: 00000000 */ sll $zero,$zero,0x0
/* f106460: 8e0f0008 */ lw $t7,0x8($s0)
/* f106464: a66f0000 */ sh $t7,0x0($s3)
/* f106468: 8e020004 */ lw $v0,0x4($s0)
.L0f10646c:
/* f10646c: 56220005 */ bnel $s1,$v0,.L0f106484
/* f106470: 8e10000c */ lw $s0,0xc($s0)
/* f106474: 8e180008 */ lw $t8,0x8($s0)
/* f106478: 10000004 */ beqz $zero,.L0f10648c
/* f10647c: a6780000 */ sh $t8,0x0($s3)
/* f106480: 8e10000c */ lw $s0,0xc($s0)
.L0f106484:
/* f106484: 5600fff4 */ bnezl $s0,.L0f106458
/* f106488: 8e020004 */ lw $v0,0x4($s0)
.L0f10648c:
/* f10648c: 0fc2557d */ jal objectiveGetCount
/* f106490: 00008025 */ or $s0,$zero,$zero
/* f106494: 18400014 */ blez $v0,.L0f1064e8
/* f106498: 0010c880 */ sll $t9,$s0,0x2
/* f10649c: 3c08800a */ lui $t0,%hi(g_Objectives)
/* f1064a0: 2508d060 */ addiu $t0,$t0,%lo(g_Objectives)
/* f1064a4: 03289021 */ addu $s2,$t9,$t0
/* f1064a8: 8e420000 */ lw $v0,0x0($s2)
.L0f1064ac:
/* f1064ac: 00104840 */ sll $t1,$s0,0x1
/* f1064b0: 02698821 */ addu $s1,$s3,$t1
/* f1064b4: 50400007 */ beqzl $v0,.L0f1064d4
/* f1064b8: 26100001 */ addiu $s0,$s0,0x1
/* f1064bc: 8c4a0008 */ lw $t2,0x8($v0)
/* f1064c0: 02002025 */ or $a0,$s0,$zero
/* f1064c4: 0fc25594 */ jal objectiveGetDifficultyBits
/* f1064c8: a62a0002 */ sh $t2,0x2($s1)
/* f1064cc: a622000e */ sh $v0,0xe($s1)
/* f1064d0: 26100001 */ addiu $s0,$s0,0x1
.L0f1064d4:
/* f1064d4: 0fc2557d */ jal objectiveGetCount
/* f1064d8: 26520004 */ addiu $s2,$s2,0x4
/* f1064dc: 0202082a */ slt $at,$s0,$v0
/* f1064e0: 5420fff2 */ bnezl $at,.L0f1064ac
/* f1064e4: 8e420000 */ lw $v0,0x0($s2)
.L0f1064e8:
/* f1064e8: 8fbf0024 */ lw $ra,0x24($sp)
/* f1064ec: 8fb00014 */ lw $s0,0x14($sp)
/* f1064f0: 8fb10018 */ lw $s1,0x18($sp)
/* f1064f4: 8fb2001c */ lw $s2,0x1c($sp)
/* f1064f8: 8fb30020 */ lw $s3,0x20($sp)
/* f1064fc: 27bd0028 */ addiu $sp,$sp,0x28
/* f106500: 03e00008 */ jr $ra
/* f106504: 00001025 */ or $v0,$zero,$zero
);
s32 menudialog001063e4(u32 operation, s32 arg1, s32 arg2)
{
if (operation == MENUOP_100) {
struct objectivething *thing = var8009d0b4;
struct objective *objective;
s32 iVar3 = 1;
s32 i;
if (getDifficulty() == DIFF_A) {
iVar3 = 3;
}
if (getDifficulty() == DIFF_SA) {
iVar3 = 2;
}
g_Briefing.objectivenames[0] = L_MISC(42); // "No briefing for this mission"
while (thing) {
if (thing->unk04 == 1) {
g_Briefing.objectivenames[0] = thing->name;
}
if (thing->unk04 == iVar3) {
g_Briefing.objectivenames[0] = thing->name;
break;
}
thing = thing->next;
}
for (i = 0; i < objectiveGetCount(); i++) {
if (g_Objectives[i]) {
g_Briefing.objectivenames[i + 1] = g_Objectives[i]->text;
g_Briefing.objectivedifficulties[i + 1] = objectiveGetDifficultyBits(i);
}
}
}
return 0;
}
char *soloMenuTitlePauseStatus(struct menu_dialog *dialog)
{
+2 -7
View File
@@ -15458,7 +15458,7 @@ u32 var8009d0a4 = 0;
u32 var8009d0a8 = 0;
u32 var8009d0ac = 0;
u32 var8009d0b0 = 0;
u32 var8009d0b4 = 0;
struct objectivething *var8009d0b4 = NULL;
struct criteria_roomentered *g_RoomEnteredCriterias = NULL;
struct criteria_multiroomentered *g_MultiroomEnteredCriterias = NULL;
struct criteria_holograph *g_HolographCriterias = NULL;
@@ -16116,12 +16116,7 @@ char g_CheatMarqueeString[252] = {0};
u32 var8009dfbc = 0;
u32 var8009dfc0 = 0;
u32 var8009dfc4 = 0;
u32 var8009dfc8 = 0;
u32 var8009dfcc = 0;
u32 var8009dfd0 = 0;
u32 var8009dfd4 = 0;
u32 var8009dfd8 = 0;
u32 var8009dfdc = 0;
struct briefing g_Briefing = {0};
u32 var8009dfe0 = 0;
u32 var8009dfe4 = 0;
struct missionconfig g_MissionConfig = {0};
+1 -1
View File
@@ -29,7 +29,7 @@ bool menudialogCoopAntiOptions(u32 operation, struct menu_dialog *dialog, struct
s32 menudialog0010559c(u32, u32, u32 *);
s32 menudialog00105c54(u32, u32, u32 *);
s32 menudialog001063d4(u32, u32, u32 *);
s32 menudialog001063e4(u32, u32, u32 *);
s32 menudialog001063e4(u32 operation, s32 arg1, s32 arg2);
s32 menuhandler001024dc(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandler001024fc(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerAcceptMission(u32 operation, struct menu_item *item, s32 *value);
+2 -3
View File
@@ -571,7 +571,7 @@ extern u8 *g_GeCreditsData;
extern struct objective *g_Objectives[MAX_OBJECTIVES];
extern u32 var8009d088;
extern u32 var8009d0b0;
extern u32 var8009d0b4;
extern struct objectivething *var8009d0b4;
extern struct criteria_roomentered *g_RoomEnteredCriterias;
extern struct criteria_multiroomentered *g_MultiroomEnteredCriterias;
extern struct criteria_holograph *g_HolographCriterias;
@@ -632,8 +632,7 @@ extern u32 var8009deb0;
extern char g_CheatMarqueeString[];
extern u32 var8009dfbc;
extern u32 var8009dfc0;
extern u32 var8009dfc8;
extern u32 var8009dfd4;
extern struct briefing g_Briefing;
extern struct missionconfig g_MissionConfig;
extern struct menustackitem g_MenuStack[4];
extern u32 g_MenuCount;
+12
View File
@@ -4893,6 +4893,11 @@ struct objective {
/*0x0f*/ s8 difficulties;
};
struct briefing {
u16 objectivenames[6];
u16 objectivedifficulties[6];
};
struct criteria_roomentered {
u32 unk00;
u32 pad;
@@ -4915,6 +4920,13 @@ struct criteria_holograph {
struct criteria_holograph *next;
};
struct objectivething {
u32 unk00;
u32 unk04;
u32 name;
struct objectivething *next;
};
struct mppreset {
u16 name;
u32 unk04;