mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-31 07:56:03 -04:00
Decompile menudialog001063e4
This commit is contained in:
+12
-12
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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};
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user