Attempt to decompile menuhandlerAcceptMission

This commit is contained in:
Ryan Dwyer 2020-01-01 12:32:53 +10:00
parent 852a13a667
commit 9b63a5263c
16 changed files with 142 additions and 69 deletions

View File

@ -2174,7 +2174,7 @@ glabel func0f0170bc
/* f017170: 240e005c */ addiu $t6,$zero,0x5c
/* f017174: 3c018006 */ lui $at,0x8006
/* f017178: ac2e24e4 */ sw $t6,0x24e4($at)
/* f01717c: 0fc068d5 */ jal func0f01a354
/* f01717c: 0fc068d5 */ jal setNumPlayers
/* f017180: 24040001 */ addiu $a0,$zero,0x1
/* f017184: 3c048006 */ lui $a0,0x8006
/* f017188: 0c003a57 */ jal func0000e95c
@ -2185,7 +2185,7 @@ glabel func0f0170bc
/* f01719c: ac600294 */ sw $zero,0x294($v1)
/* f0171a0: ac620298 */ sw $v0,0x298($v1)
/* f0171a4: ac62029c */ sw $v0,0x29c($v1)
/* f0171a8: 0fc5b36a */ jal func0f16cda8
/* f0171a8: 0fc5b36a */ jal setDifficulty
/* f0171ac: 00002025 */ or $a0,$zero,$zero
/* f0171b0: 0c0027b1 */ jal func00009ec4
/* f0171b4: 24040001 */ addiu $a0,$zero,0x1
@ -5607,7 +5607,7 @@ glabel func0f01a348
);
GLOBAL_ASM(
glabel func0f01a354
glabel setNumPlayers
/* f01a354: 3c018006 */ lui $at,0x8006
/* f01a358: 03e00008 */ jr $ra
/* f01a35c: ac242924 */ sw $a0,0x2924($at)
@ -5642,7 +5642,7 @@ glabel func0f01a3b8
/* f01a3c0: 240e0026 */ addiu $t6,$zero,0x26
/* f01a3c4: 3c018006 */ lui $at,0x8006
/* f01a3c8: ac2e24e4 */ sw $t6,0x24e4($at)
/* f01a3cc: 0fc068d5 */ jal func0f01a354
/* f01a3cc: 0fc068d5 */ jal setNumPlayers
/* f01a3d0: 24040001 */ addiu $a0,$zero,0x1
/* f01a3d4: 3c038006 */ lui $v1,%hi(var800624a4)
/* f01a3d8: 246324a4 */ addiu $v1,$v1,%lo(var800624a4)
@ -5686,7 +5686,7 @@ glabel func0f01a3b8
/* f01a468: ac400294 */ sw $zero,0x294($v0)
/* f01a46c: ac430298 */ sw $v1,0x298($v0)
/* f01a470: ac43029c */ sw $v1,0x29c($v0)
/* f01a474: 0fc5b36a */ jal func0f16cda8
/* f01a474: 0fc5b36a */ jal setDifficulty
/* f01a478: 00002025 */ or $a0,$zero,$zero
/* f01a47c: 0c0027b1 */ jal func00009ec4
/* f01a480: 24040001 */ addiu $a0,$zero,0x1
@ -8691,7 +8691,7 @@ glabel func0f01bf28
/* f01cdbc: 31a400ff */ andi $a0,$t5,0xff
/* f01cdc0: 8e440000 */ lw $a0,0x0($s2)
/* f01cdc4: 0004ce42 */ srl $t9,$a0,0x19
/* f01cdc8: 0fc5b36a */ jal func0f16cda8
/* f01cdc8: 0fc5b36a */ jal setDifficulty
/* f01cdcc: 03202025 */ or $a0,$t9,$zero
/* f01cdd0: 0fc069f9 */ jal func0f01a7e4
/* f01cdd4: 24040005 */ addiu $a0,$zero,0x5
@ -9059,7 +9059,7 @@ glabel func0f01bf28
/* f01d2f0: 00000000 */ sll $zero,$zero,0x0
/* f01d2f4: 0fc06c55 */ jal func0f01b154
/* f01d2f8: 24040026 */ addiu $a0,$zero,0x26
/* f01d2fc: 0fc068d5 */ jal func0f01a354
/* f01d2fc: 0fc068d5 */ jal setNumPlayers
/* f01d300: 02c02025 */ or $a0,$s6,$zero
/* f01d304: 0fc069f9 */ jal func0f01a7e4
/* f01d308: 24040005 */ addiu $a0,$zero,0x5
@ -9070,7 +9070,7 @@ glabel func0f01bf28
.L0f01d31c:
/* f01d31c: 0fc06c55 */ jal func0f01b154
/* f01d320: 2404005d */ addiu $a0,$zero,0x5d
/* f01d324: 0fc068d5 */ jal func0f01a354
/* f01d324: 0fc068d5 */ jal setNumPlayers
/* f01d328: 02c02025 */ or $a0,$s6,$zero
/* f01d32c: 0fc069f9 */ jal func0f01a7e4
/* f01d330: 24040005 */ addiu $a0,$zero,0x5
@ -9089,7 +9089,7 @@ glabel func0f01bf28
/* f01d360: ae60031c */ sw $zero,0x31c($s3)
/* f01d364: 0fc06c55 */ jal func0f01b154
/* f01d368: 24040026 */ addiu $a0,$zero,0x26
/* f01d36c: 0fc068d5 */ jal func0f01a354
/* f01d36c: 0fc068d5 */ jal setNumPlayers
/* f01d370: 02c02025 */ or $a0,$s6,$zero
/* f01d374: 0fc069f9 */ jal func0f01a7e4
/* f01d378: 24040005 */ addiu $a0,$zero,0x5

View File

@ -1,6 +1,8 @@
#include <ultra64.h>
#include "constants.h"
#include "gvars/gvars.h"
#include "library/library_09660.h"
#include "library/library_0d520.h"
#include "library/library_0e9d0.h"
#include "setup/setup_000000.h"
#include "setup/setup_0160b0.h"
@ -1072,7 +1074,7 @@ glabel menudialog00103368
/* f1033c8: 8059000a */ lb $t9,0xa($v0)
/* f1033cc: 53200005 */ beqzl $t9,.L0f1033e4
/* f1033d0: a040000a */ sb $zero,0xa($v0)
/* f1033d4: 0fc40cfe */ jal menuhandler001033f8
/* f1033d4: 0fc40cfe */ jal menuhandlerAcceptMission
/* f1033d8: afa2001c */ sw $v0,0x1c($sp)
/* f1033dc: 8fa2001c */ lw $v0,0x1c($sp)
/* f1033e0: a040000a */ sb $zero,0xa($v0)
@ -1086,12 +1088,12 @@ glabel menudialog00103368
);
GLOBAL_ASM(
glabel menuhandler001033f8
glabel menuhandlerAcceptMission
/* f1033f8: 27bdffe8 */ addiu $sp,$sp,-24
/* f1033fc: 24010006 */ addiu $at,$zero,0x6
/* f103400: afbf0014 */ sw $ra,0x14($sp)
/* f103404: afa5001c */ sw $a1,0x1c($sp)
/* f103408: 1481004c */ bne $a0,$at,.L0f10353c
/* f103408: 1481004c */ bne $a0,$at,.END
/* f10340c: afa60020 */ sw $a2,0x20($sp)
/* f103410: 0fc06fa8 */ jal func0f01bea0
/* f103414: 00000000 */ sll $zero,$zero,0x0
@ -1101,10 +1103,10 @@ glabel menuhandler001033f8
/* f103424: 9084dfe9 */ lbu $a0,-0x2017($a0)
/* f103428: 8c4e04b4 */ lw $t6,0x4b4($v0)
/* f10342c: 24030001 */ addiu $v1,$zero,0x1
/* f103430: 15c40002 */ bne $t6,$a0,.L0f10343c
/* f103430: 15c40002 */ bne $t6,$a0,.START
/* f103434: 00000000 */ sll $zero,$zero,0x0
/* f103438: ac43046c */ sw $v1,0x46c($v0)
.L0f10343c:
.START:
/* f10343c: 0fc06c55 */ jal func0f01b154
/* f103440: 00000000 */ sll $zero,$zero,0x0
/* f103444: 3c06800a */ lui $a2,%hi(var8009dfe8)
@ -1112,61 +1114,65 @@ glabel menuhandler001033f8
/* f10344c: 80d80003 */ lb $t8,0x3($a2)
/* f103450: 3c02800a */ lui $v0,%hi(g_Vars)
/* f103454: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f103458: 07010014 */ bgez $t8,.L0f1034ac
/* f103458: 07010014 */ bgez $t8,.NOTCOOP
/* f10345c: 24030001 */ addiu $v1,$zero,0x1
.COOP:
/* f103460: 8c590474 */ lw $t9,0x474($v0)
/* f103464: 2405ffff */ addiu $a1,$zero,-1
/* f103468: 24040001 */ addiu $a0,$zero,0x1
/* f10346c: 5720000a */ bnezl $t9,.L0f103498
/* f10346c: 5720000a */ bnezl $t9,.COOPBUDDIES
/* f103470: ac400294 */ sw $zero,0x294($v0)
.COOPNOBUDDIES:
/* f103474: 2405ffff */ addiu $a1,$zero,-1
/* f103478: ac400294 */ sw $zero,0x294($v0)
/* f10347c: ac430298 */ sw $v1,0x298($v0)
/* f103480: ac45029c */ sw $a1,0x29c($v0)
/* f103484: 0fc068d5 */ jal func0f01a354
/* f103484: 0fc068d5 */ jal setNumPlayers
/* f103488: 24040002 */ addiu $a0,$zero,0x2
/* f10348c: 1000001f */ beqz $zero,.L0f10350c
/* f10348c: 1000001f */ beqz $zero,.DONE
/* f103490: 00000000 */ sll $zero,$zero,0x0
/* f103494: ac400294 */ sw $zero,0x294($v0)
.L0f103498:
.COOPBUDDIES:
/* f103498: ac450298 */ sw $a1,0x298($v0)
/* f10349c: 0fc068d5 */ jal func0f01a354
/* f10349c: 0fc068d5 */ jal setNumPlayers
/* f1034a0: ac45029c */ sw $a1,0x29c($v0)
/* f1034a4: 10000019 */ beqz $zero,.L0f10350c
/* f1034a4: 10000019 */ beqz $zero,.DONE
/* f1034a8: 00000000 */ sll $zero,$zero,0x0
.L0f1034ac:
.NOTCOOP:
/* f1034ac: 8cc80000 */ lw $t0,0x0($a2)
/* f1034b0: 2405ffff */ addiu $a1,$zero,-1
/* f1034b4: 24040001 */ addiu $a0,$zero,0x1
/* f1034b8: 00085640 */ sll $t2,$t0,0x19
/* f1034bc: 05430010 */ bgezl $t2,.L0f103500
/* f1034bc: 05430010 */ bgezl $t2,.SOLO
/* f1034c0: ac400294 */ sw $zero,0x294($v0)
.ANTI:
/* f1034c4: 8c4b0450 */ lw $t3,0x450($v0)
/* f1034c8: 2405ffff */ addiu $a1,$zero,-1
/* f1034cc: 24040002 */ addiu $a0,$zero,0x2
/* f1034d0: 546b0005 */ bnel $v1,$t3,.L0f1034e8
/* f1034d0: 546b0005 */ bnel $v1,$t3,.ANTIP0
/* f1034d4: ac430294 */ sw $v1,0x294($v0)
.ANTIP1:
/* f1034d8: ac400294 */ sw $zero,0x294($v0)
/* f1034dc: 10000003 */ beqz $zero,.L0f1034ec
/* f1034dc: 10000003 */ beqz $zero,.ANTIEND
/* f1034e0: ac43029c */ sw $v1,0x29c($v0)
/* f1034e4: ac430294 */ sw $v1,0x294($v0)
.L0f1034e8:
.ANTIP0:
/* f1034e8: ac40029c */ sw $zero,0x29c($v0)
.L0f1034ec:
/* f1034ec: 0fc068d5 */ jal func0f01a354
.ANTIEND:
/* f1034ec: 0fc068d5 */ jal setNumPlayers
/* f1034f0: ac450298 */ sw $a1,0x298($v0)
/* f1034f4: 10000005 */ beqz $zero,.L0f10350c
/* f1034f4: 10000005 */ beqz $zero,.DONE
/* f1034f8: 00000000 */ sll $zero,$zero,0x0
/* f1034fc: ac400294 */ sw $zero,0x294($v0)
.L0f103500:
.SOLO:
/* f103500: ac450298 */ sw $a1,0x298($v0)
/* f103504: 0fc068d5 */ jal func0f01a354
/* f103504: 0fc068d5 */ jal setNumPlayers
/* f103508: ac45029c */ sw $a1,0x29c($v0)
.L0f10350c:
.DONE:
/* f10350c: 3c04800a */ lui $a0,0x800a
/* f103510: 8c84dfe8 */ lw $a0,-0x2018($a0)
/* f103514: 00046642 */ srl $t4,$a0,0x19
/* f103518: 0fc5b36a */ jal func0f16cda8
/* f103518: 0fc5b36a */ jal setDifficulty
/* f10351c: 01802025 */ or $a0,$t4,$zero
/* f103520: 0fc069f9 */ jal func0f01a7e4
/* f103524: 24040005 */ addiu $a0,$zero,0x5
@ -1175,7 +1181,7 @@ glabel menuhandler001033f8
/* f103530: 9084dfe9 */ lbu $a0,-0x2017($a0)
/* f103534: 0c0027b1 */ jal func00009ec4
/* f103538: 24040001 */ addiu $a0,$zero,0x1
.L0f10353c:
.END:
/* f10353c: 8fbf0014 */ lw $ra,0x14($sp)
/* f103540: 27bd0018 */ addiu $sp,$sp,0x18
/* f103544: 00001025 */ or $v0,$zero,$zero
@ -1183,6 +1189,60 @@ glabel menuhandler001033f8
/* f10354c: 00000000 */ sll $zero,$zero,0x0
);
// Mismatching branch/branch-likelys
//s32 menuhandlerAcceptMission(u32 operation, struct menu_item *item, s32 *value)
//{
// if (operation == MENUOP_SET) {
// func0f01bea0();
//
// if (g_Vars.stagenum == var8009dfe8.stagenum) {
// g_Vars.isreplayingmission = true;
// }
//
// func0f01b154(var8009dfe8.stagenum);
//
// if (var8009dfe8.iscoop) {
// if (g_Vars.numaibuddies == 0) {
// // Coop with human buddy
// g_Vars.bondplayernum = 0;
// g_Vars.coopplayernum = 1;
// g_Vars.antiplayernum = -1;
// setNumPlayers(2);
// } else {
// // Coop with AI buddies
// g_Vars.bondplayernum = 0;
// g_Vars.coopplayernum = -1;
// g_Vars.antiplayernum = -1;
// setNumPlayers(1);
// }
// } else if (var8009dfe8.isanti) {
// if (g_Vars.pendingantiplayernum == 1) {
// g_Vars.bondplayernum = 0;
// g_Vars.antiplayernum = 1;
// } else {
// g_Vars.bondplayernum = 1;
// g_Vars.antiplayernum = 0;
// }
//
// g_Vars.coopplayernum = -1;
// setNumPlayers(2);
// } else {
// // Solo
// g_Vars.bondplayernum = 0;
// g_Vars.coopplayernum = -1;
// g_Vars.antiplayernum = -1;
// setNumPlayers(1);
// }
//
// setDifficulty(var8009dfe8.difficulty);
// func0f01a7e4(5);
// func0000e95c(var8009dfe8.stagenum);
// func00009ec4(1);
// }
//
// return 0;
//}
GLOBAL_ASM(
glabel func0f103550
/* f103550: 3c0e8007 */ lui $t6,0x8007
@ -1437,7 +1497,7 @@ glabel menuhandler0010383c
/* f1038a8: a2090000 */ sb $t1,0x0($s0)
/* f1038ac: 8e040000 */ lw $a0,0x0($s0)
/* f1038b0: 00045642 */ srl $t2,$a0,0x19
/* f1038b4: 0fc5b36a */ jal func0f16cda8
/* f1038b4: 0fc5b36a */ jal setDifficulty
/* f1038b8: 01402025 */ or $a0,$t2,$zero
/* f1038bc: 0fc3cdb7 */ jal func0f0f36dc
/* f1038c0: 00000000 */ sll $zero,$zero,0x0
@ -1804,7 +1864,7 @@ glabel menuhandlerSoloDifficulty
/* f103d9c: a0580000 */ sb $t8,0x0($v0)
/* f103da0: 8c440000 */ lw $a0,0x0($v0)
/* f103da4: 0004ce42 */ srl $t9,$a0,0x19
/* f103da8: 0fc5b36a */ jal func0f16cda8
/* f103da8: 0fc5b36a */ jal setDifficulty
/* f103dac: 03202025 */ or $a0,$t9,$zero
/* f103db0: 0fc3cdb7 */ jal func0f0f36dc
/* f103db4: 00000000 */ sll $zero,$zero,0x0
@ -2420,7 +2480,7 @@ glabel menuhandler00104538
/* f10458c: a04c0000 */ sb $t4,0x0($v0)
/* f104590: 8c440000 */ lw $a0,0x0($v0)
/* f104594: 00046e42 */ srl $t5,$a0,0x19
/* f104598: 0fc5b36a */ jal func0f16cda8
/* f104598: 0fc5b36a */ jal setDifficulty
/* f10459c: 01a02025 */ or $a0,$t5,$zero
/* f1045a0: 0fc3cdb7 */ jal func0f0f36dc
/* f1045a4: 00000000 */ sll $zero,$zero,0x0
@ -2465,7 +2525,7 @@ glabel menuhandler001045f0
/* f104628: a04c0000 */ sb $t4,0x0($v0)
/* f10462c: 8c440000 */ lw $a0,0x0($v0)
/* f104630: 00046e42 */ srl $t5,$a0,0x19
/* f104634: 0fc5b36a */ jal func0f16cda8
/* f104634: 0fc5b36a */ jal setDifficulty
/* f104638: 01a02025 */ or $a0,$t5,$zero
/* f10463c: 0fc3cdb7 */ jal func0f0f36dc
/* f104640: 00000000 */ sll $zero,$zero,0x0

View File

@ -181,7 +181,7 @@ glabel menudialog0010cd0c
/* f10ce3c: 24040006 */ addiu $a0,$zero,0x6
/* f10ce40: 8ce50008 */ lw $a1,0x8($a3)
/* f10ce44: afa70044 */ sw $a3,0x44($sp)
/* f10ce48: 0fc40cfe */ jal menuhandler001033f8
/* f10ce48: 0fc40cfe */ jal menuhandlerAcceptMission
/* f10ce4c: 24a50014 */ addiu $a1,$a1,0x14
/* f10ce50: 8fa70044 */ lw $a3,0x44($sp)
.L0f10ce54:
@ -321,7 +321,7 @@ glabel menuhandlerReplyPreviousMission
/* f10d024: 8d081e6c */ lw $t0,0x1e6c($t0)
/* f10d028: a0480001 */ sb $t0,0x1($v0)
.L0f10d02c:
/* f10d02c: 0fc40cfe */ jal menuhandler001033f8
/* f10d02c: 0fc40cfe */ jal menuhandlerAcceptMission
/* f10d030: 00002825 */ or $a1,$zero,$zero
/* f10d034: 8fbf0014 */ lw $ra,0x14($sp)
/* f10d038: 27bd0018 */ addiu $sp,$sp,0x18
@ -956,7 +956,7 @@ glabel menuhandlerReplyLastLevel
/* f10d8ac: 000f7880 */ sll $t7,$t7,0x2
/* f10d8b0: 030fc021 */ addu $t8,$t8,$t7
/* f10d8b4: 8f181e6c */ lw $t8,0x1e6c($t8)
/* f10d8b8: 0fc40cfe */ jal menuhandler001033f8
/* f10d8b8: 0fc40cfe */ jal menuhandlerAcceptMission
/* f10d8bc: a0580001 */ sb $t8,0x1($v0)
/* f10d8c0: 10000003 */ beqz $zero,.L0f10d8d0
/* f10d8c4: 8fbf0014 */ lw $ra,0x14($sp)
@ -1118,14 +1118,14 @@ glabel func0f10d910
/* f10dae4: ac600294 */ sw $zero,0x294($v1)
/* f10dae8: ac6f0298 */ sw $t7,0x298($v1)
/* f10daec: ac62029c */ sw $v0,0x29c($v1)
/* f10daf0: 0fc068d5 */ jal func0f01a354
/* f10daf0: 0fc068d5 */ jal setNumPlayers
/* f10daf4: 24040002 */ addiu $a0,$zero,0x2
/* f10daf8: 1000000c */ beqz $zero,.L0f10db2c
/* f10dafc: 00000000 */ sll $zero,$zero,0x0
.L0f10db00:
/* f10db00: ac600294 */ sw $zero,0x294($v1)
/* f10db04: ac620298 */ sw $v0,0x298($v1)
/* f10db08: 0fc068d5 */ jal func0f01a354
/* f10db08: 0fc068d5 */ jal setNumPlayers
/* f10db0c: ac62029c */ sw $v0,0x29c($v1)
/* f10db10: 10000006 */ beqz $zero,.L0f10db2c
/* f10db14: 00000000 */ sll $zero,$zero,0x0
@ -1133,13 +1133,13 @@ glabel func0f10d910
/* f10db18: ac600294 */ sw $zero,0x294($v1)
/* f10db1c: ac620298 */ sw $v0,0x298($v1)
/* f10db20: ac62029c */ sw $v0,0x29c($v1)
/* f10db24: 0fc068d5 */ jal func0f01a354
/* f10db24: 0fc068d5 */ jal setNumPlayers
/* f10db28: 24040001 */ addiu $a0,$zero,0x1
.L0f10db2c:
/* f10db2c: 3c04800a */ lui $a0,0x800a
/* f10db30: 8c84dfe8 */ lw $a0,-0x2018($a0)
/* f10db34: 0004c642 */ srl $t8,$a0,0x19
/* f10db38: 0fc5b36a */ jal func0f16cda8
/* f10db38: 0fc5b36a */ jal setDifficulty
/* f10db3c: 03002025 */ or $a0,$t8,$zero
/* f10db40: 0fc069f9 */ jal func0f01a7e4
/* f10db44: 24040005 */ addiu $a0,$zero,0x5
@ -1161,7 +1161,7 @@ glabel func0f10d910
/* f10db80: 3c04800a */ lui $a0,0x800a
/* f10db84: 8c84dfe8 */ lw $a0,-0x2018($a0)
/* f10db88: 00044642 */ srl $t0,$a0,0x19
/* f10db8c: 0fc5b36a */ jal func0f16cda8
/* f10db8c: 0fc5b36a */ jal setDifficulty
/* f10db90: 01002025 */ or $a0,$t0,$zero
/* f10db94: 0fc069f9 */ jal func0f01a7e4
/* f10db98: 24040005 */ addiu $a0,$zero,0x5

View File

@ -20392,7 +20392,7 @@ glabel func0f13b064
/* f13b464: 240d0026 */ addiu $t5,$zero,0x26
/* f13b468: 3c018006 */ lui $at,0x8006
/* f13b46c: ac2d24e4 */ sw $t5,0x24e4($at)
/* f13b470: 0fc068d5 */ jal func0f01a354
/* f13b470: 0fc068d5 */ jal setNumPlayers
/* f13b474: 24040001 */ addiu $a0,$zero,0x1
/* f13b478: 3c048006 */ lui $a0,0x8006
/* f13b47c: 0c003a57 */ jal func0000e95c
@ -20404,7 +20404,7 @@ glabel func0f13b064
/* f13b494: ac22a258 */ sw $v0,-0x5da8($at)
/* f13b498: 3c01800a */ lui $at,0x800a
/* f13b49c: ac22a25c */ sw $v0,-0x5da4($at)
/* f13b4a0: 0fc5b36a */ jal func0f16cda8
/* f13b4a0: 0fc5b36a */ jal setDifficulty
/* f13b4a4: 00002025 */ or $a0,$zero,$zero
/* f13b4a8: 0c0027b1 */ jal func00009ec4
/* f13b4ac: 24040001 */ addiu $a0,$zero,0x1

View File

@ -5220,14 +5220,14 @@ glabel func0f169374
/* f16af94: ae770298 */ sw $s7,0x298($s3)
/* f16af98: ae77029c */ sw $s7,0x29c($s3)
/* f16af9c: a20a0003 */ sb $t2,0x3($s0)
/* f16afa0: 0fc068d5 */ jal func0f01a354
/* f16afa0: 0fc068d5 */ jal setNumPlayers
/* f16afa4: a26f04d2 */ sb $t7,0x4d2($s3)
/* f16afa8: 0fc069f9 */ jal func0f01a7e4
/* f16afac: 24040005 */ addiu $a0,$zero,0x5
/* f16afb0: 920e0000 */ lbu $t6,0x0($s0)
/* f16afb4: 00002025 */ or $a0,$zero,$zero
/* f16afb8: 31d8ff01 */ andi $t8,$t6,0xff01
/* f16afbc: 0fc5b36a */ jal func0f16cda8
/* f16afbc: 0fc5b36a */ jal setDifficulty
/* f16afc0: a2180000 */ sb $t8,0x0($s0)
/* f16afc4: 826d04d4 */ lb $t5,0x4d4($s3)
/* f16afc8: 01b40019 */ multu $t5,$s4
@ -7305,7 +7305,7 @@ s32 getDifficulty(void)
}
GLOBAL_ASM(
glabel func0f16cda8
glabel setDifficulty
/* f16cda8: 04800003 */ bltz $a0,.L0f16cdb8
/* f16cdac: 28810004 */ slti $at,$a0,0x4
/* f16cdb0: 14200002 */ bnez $at,.L0f16cdbc

View File

@ -354,7 +354,7 @@ glabel func0f187864
/* f18790c: afa40024 */ sw $a0,0x24($sp)
/* f187910: 0c003a57 */ jal func0000e95c
/* f187914: 8fa40024 */ lw $a0,0x24($sp)
/* f187918: 0fc068d5 */ jal func0f01a354
/* f187918: 0fc068d5 */ jal setNumPlayers
/* f18791c: 02002025 */ or $a0,$s0,$zero
/* f187920: 0fc069f9 */ jal func0f01a7e4
/* f187924: 24040005 */ addiu $a0,$zero,0x5

View File

@ -17020,7 +17020,8 @@ u32 var8009dfd8 = 0;
u32 var8009dfdc = 0;
u32 var8009dfe0 = 0;
u32 var8009dfe4 = 0;
u8 var8009dfe8[] = {0, 0, 0, 0, 0, 0, 0, 0};
struct var8009dfe8 var8009dfe8 = {0};
u32 var8009dfec = 0;
u32 var8009dff0 = 0;
u32 var8009dff4 = 0;
u32 var8009dff8 = 0;

View File

@ -37,13 +37,13 @@ u32 func0f019ba0(void);
u32 func0f019d0c(void);
u32 func0f019d38(void);
u32 func0f01a348(void);
u32 func0f01a354(void);
void setNumPlayers(s32 numplayers);
u32 func0f01a3b8(void);
u32 func0f01a494(void);
void func0f01a4a0(void);
u32 func0f01a4a8(void);
u32 func0f01a510(void);
u32 func0f01a7e4(void);
void func0f01a7e4(s32 arg0);
u32 func0f01a810(void);
u32 func0f01ab94(void);
u32 func0f01aba8(void);
@ -59,9 +59,9 @@ u32 func0f01b0ac(void);
u32 func0f01b0e0(void);
u32 func0f01b114(void);
u32 func0f01b148(void);
u32 func0f01b154(void);
void func0f01b154(s32 arg0);
u32 func0f01b160(void);
u32 func0f01bea0(void);
void func0f01bea0(void);
u32 func0f01bee0(void);
u32 func0f01bf28(void);
u32 func0f01d770(void);

View File

@ -35,7 +35,7 @@ s32 menudialog001063e4(u32, u32, u32 *);
s32 menudialog001069c0(u32, u32, u32 *);
s32 menuhandler001024dc(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandler001024fc(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandler001033f8(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandlerAcceptMission(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandler0010383c(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandler00104038(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandler00104538(u32 operation, struct menu_item *item, bool *enable);

View File

@ -62,7 +62,7 @@ void stageLoad(void);
u32 func0f16cce4(void);
u32 func0f16cd40(void);
u32 getVar80084014(void);
u32 func0f16cda8(void);
void setDifficulty(s32 arg0);
void setVar80084028(u32 arg0);
void setVar8008402c(u32 arg0);
void setVar80084030(u32 arg0);

View File

@ -147,16 +147,16 @@ struct g_vars {
/*000444*/ u32 unk000444;
/*000448*/ u32 unk000448;
/*00044c*/ u32 unk00044c;
/*000450*/ u32 unk000450;
/*000450*/ u32 pendingantiplayernum;
/*000454*/ u32 unk000454;
/*000458*/ u32 unk000458;
/*00045c*/ u32 unk00045c;
/*000460*/ u32 unk000460;
/*000464*/ u32 unk000464;
/*000468*/ u32 unk000468;
/*00046c*/ u32 unk00046c;
/*00046c*/ bool isreplayingmission;
/*000470*/ u32 unk000470;
/*000474*/ u32 unk000474;
/*000474*/ u32 numaibuddies;
/*000478*/ u32 unk000478;
/*00047c*/ u32 unk00047c;
/*000480*/ u32 unk000480;
@ -628,7 +628,7 @@ extern u32 var8009dfbc;
extern u32 var8009dfc0;
extern u32 var8009dfc8;
extern u32 var8009dfd4;
extern u8 var8009dfe8[];
extern struct var8009dfe8 var8009dfe8;
extern u32 var8009e000;
extern struct menustackitem g_MenuStack[];
extern u32 var8009f6b0;

View File

@ -16,7 +16,7 @@ u32 func00009ab0(void);
u32 func00009b50(void);
u32 func00009bf8(void);
u32 func00009c3c(void);
u32 func00009ec4(void);
void func00009ec4(s32 arg0);
u32 func00009ed4(void);
u32 func0000a044(void);
u32 func0000aa50(void);

View File

@ -9,7 +9,7 @@ u32 func0000db30(void);
u32 func0000db3c(void);
u32 func0000e324(void);
u32 func0000e684(void);
u32 func0000e95c(void);
void func0000e95c(s32 stagenum);
u32 func0000e990(void);
u32 func0000e9c0(void);
s32 getCurrentStageId(void);

View File

@ -3980,4 +3980,16 @@ struct options {
/*0x9c*/ u32 unk9c;
};
struct var8009dfe8 {
u8 difficulty : 7;
u8 bits0_07 : 1;
u8 stagenum : 8;
u8 bits2_00 : 8;
u8 iscoop : 1;
u8 isanti : 1;
};
#endif

View File

@ -668,7 +668,7 @@ glabel func0000db3c
/* dc58: 0c004c04 */ jal func00013010
/* dc5c: 24a53adc */ addiu $a1,$a1,%lo(var70053adc)
/* dc60: 90440000 */ lbu $a0,0x0($v0)
/* dc64: 0fc5b36a */ jal func0f16cda8
/* dc64: 0fc5b36a */ jal setDifficulty
/* dc68: 2484ffd0 */ addiu $a0,$a0,-48
.L0000dc6c:
/* dc6c: 3c028006 */ lui $v0,%hi(g_StageNum)

View File

@ -1601,7 +1601,7 @@ struct menu_dialog menudialog_briefing = {
// 17a60
struct menu_item menuitems_objectives[] = {
{ MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x00005712, 0x00000000, menuhandler001033f8 }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x00005712, 0x00000000, menuhandlerAcceptMission }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x00005713, 0x00000000, NULL }, // "Decline"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
@ -3903,7 +3903,7 @@ struct menu_dialog menudialog_mpgamesetup = {
// 1b570
struct menu_item menuitems_1b570[] = {
{ MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x0000572a, 0x00000000, menuhandler001033f8 }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x0000572a, 0x00000000, menuhandlerAcceptMission }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x0000572b, 0x00000000, menuhandler0010ccd0 }, // "Decline"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
@ -3921,7 +3921,7 @@ struct menu_dialog menudialog_1b5c0 = {
// 1b5d8
struct menu_item menuitems_promptnextmission[] = {
{ MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x0000572a, 0x00000000, menuhandler001033f8 }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x0000572a, 0x00000000, menuhandlerAcceptMission }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x0000572b, 0x00000000, menuhandler0010ccd0 }, // "Decline"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x000059d6, 0x00000000, menuhandlerReplyPreviousMission }, // "Replay Previous Mission"