mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-10 18:56:53 -04:00
Decompile menuhandlerFrFailedContinue
This commit is contained in:
@@ -38161,7 +38161,7 @@ glabel func0f086f40
|
||||
/* f087034: 0fc6830c */ jal func0f1a0c30
|
||||
/* f087038: a3ab002b */ sb $t3,0x2b($sp)
|
||||
/* f08703c: 10400007 */ beqz $v0,.L0f08705c
|
||||
/* f087040: 3c048009 */ lui $a0,%hi(menudialog_frweapon)
|
||||
/* f087040: 3c048009 */ lui $a0,%hi(g_frWeaponMenuDialog)
|
||||
/* f087044: 3c048009 */ lui $a0,%hi(menudialog_frtraininginfo)
|
||||
/* f087048: 24848e6c */ addiu $a0,$a0,%lo(menudialog_frtraininginfo)
|
||||
/* f08704c: 0fc3e178 */ jal func0f0f85e0
|
||||
@@ -38169,7 +38169,7 @@ glabel func0f086f40
|
||||
/* f087054: 10000005 */ beqz $zero,.L0f08706c
|
||||
/* f087058: 93ac002b */ lbu $t4,0x2b($sp)
|
||||
.L0f08705c:
|
||||
/* f08705c: 24848d78 */ addiu $a0,$a0,%lo(menudialog_frweapon)
|
||||
/* f08705c: 24848d78 */ addiu $a0,$a0,%lo(g_frWeaponMenuDialog)
|
||||
/* f087060: 0fc3e178 */ jal func0f0f85e0
|
||||
/* f087064: 2405000d */ addiu $a1,$zero,0xd
|
||||
.L0f087068:
|
||||
|
||||
@@ -4769,7 +4769,7 @@ glabel func0f106b20
|
||||
/* f106cc0: 0fc6830c */ jal func0f1a0c30
|
||||
/* f106cc4: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f106cc8: 10400007 */ beqz $v0,.L0f106ce8
|
||||
/* f106ccc: 3c048009 */ lui $a0,%hi(menudialog_frweapon)
|
||||
/* f106ccc: 3c048009 */ lui $a0,%hi(g_frWeaponMenuDialog)
|
||||
/* f106cd0: 3c048009 */ lui $a0,%hi(menudialog_frtraininginfo)
|
||||
/* f106cd4: 24848e6c */ addiu $a0,$a0,%lo(menudialog_frtraininginfo)
|
||||
/* f106cd8: 0fc3e0cc */ jal func0f0f8330
|
||||
@@ -4777,7 +4777,7 @@ glabel func0f106b20
|
||||
/* f106ce0: 10000005 */ beqz $zero,.L0f106cf8
|
||||
/* f106ce4: 24050001 */ addiu $a1,$zero,0x1
|
||||
.L0f106ce8:
|
||||
/* f106ce8: 24848d78 */ addiu $a0,$a0,%lo(menudialog_frweapon)
|
||||
/* f106ce8: 24848d78 */ addiu $a0,$a0,%lo(g_frWeaponMenuDialog)
|
||||
/* f106cec: 0fc3e0cc */ jal func0f0f8330
|
||||
/* f106cf0: 2405000d */ addiu $a1,$zero,0xd
|
||||
/* f106cf4: 24050001 */ addiu $a1,$zero,0x1
|
||||
|
||||
+14
-33
@@ -3015,37 +3015,18 @@ glabel menuhandler001a44c0
|
||||
/* f1a5d58: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel menuhandler001a5d5c
|
||||
/* f1a5d5c: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f1a5d60: 24010006 */ addiu $at,$zero,0x6
|
||||
/* f1a5d64: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f1a5d68: afa5001c */ sw $a1,0x1c($sp)
|
||||
/* f1a5d6c: 1481000f */ bne $a0,$at,.L0f1a5dac
|
||||
/* f1a5d70: afa60020 */ sw $a2,0x20($sp)
|
||||
/* f1a5d74: 3c0e800a */ lui $t6,0x800a
|
||||
/* f1a5d78: 8dcea244 */ lw $t6,-0x5dbc($t6)
|
||||
/* f1a5d7c: 2401000a */ addiu $at,$zero,0xa
|
||||
/* f1a5d80: 3c048009 */ lui $a0,%hi(menudialog_frweapon)
|
||||
/* f1a5d84: 8dcf00bc */ lw $t7,0xbc($t6)
|
||||
/* f1a5d88: 85f80028 */ lh $t8,0x28($t7)
|
||||
/* f1a5d8c: 17010005 */ bne $t8,$at,.L0f1a5da4
|
||||
/* f1a5d90: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f1a5d94: 0fc3cdc1 */ jal func0f0f3704
|
||||
/* f1a5d98: 24848d78 */ addiu $a0,$a0,%lo(menudialog_frweapon)
|
||||
/* f1a5d9c: 10000004 */ beqz $zero,.L0f1a5db0
|
||||
/* f1a5da0: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f1a5da4:
|
||||
/* f1a5da4: 0fc3cdb7 */ jal menuPopDialog
|
||||
/* f1a5da8: 00000000 */ sll $zero,$zero,0x0
|
||||
.L0f1a5dac:
|
||||
/* f1a5dac: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f1a5db0:
|
||||
/* f1a5db0: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f1a5db4: 00001025 */ or $v0,$zero,$zero
|
||||
/* f1a5db8: 03e00008 */ jr $ra
|
||||
/* f1a5dbc: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
s32 menuhandlerFrFailedContinue(u32 operation, struct menu_item *item, s32 *value)
|
||||
{
|
||||
if (operation == MENUOP_SET) {
|
||||
if (g_Vars.currentplayer->prop->rooms[0] == 0xa) {
|
||||
func0f0f3704(&g_frWeaponMenuDialog);
|
||||
} else {
|
||||
menuPopDialog();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel menuhandler001a5dc0
|
||||
@@ -4714,9 +4695,9 @@ glabel menudialog001a737c
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f1a7554
|
||||
/* f1a7554: 3c028009 */ lui $v0,%hi(menudialog_frweapon)
|
||||
/* f1a7554: 3c028009 */ lui $v0,%hi(g_frWeaponMenuDialog)
|
||||
/* f1a7558: 03e00008 */ jr $ra
|
||||
/* f1a755c: 24428d78 */ addiu $v0,$v0,%lo(menudialog_frweapon)
|
||||
/* f1a755c: 24428d78 */ addiu $v0,$v0,%lo(g_frWeaponMenuDialog)
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
|
||||
@@ -49,7 +49,7 @@ s32 menuhandler001a3340(u32, u32, u32 *);
|
||||
s32 menuhandler001a3448(u32 operation, struct menu_item *item, s32 *value);
|
||||
s32 menuhandler001a348c(u32, u32, u32 *);
|
||||
s32 menuhandler001a44c0(u32, u32, u32 *);
|
||||
s32 menuhandler001a5d5c(u32, u32, u32 *);
|
||||
s32 menuhandlerFrFailedContinue(u32 operation, struct menu_item *item, s32 *value);
|
||||
s32 menuhandler001a5dc0(u32, u32, u32 *);
|
||||
s32 menuhandler001a63e4(u32, u32, u32 *);
|
||||
s32 menuhandler001a64d8(u32 operation, struct menu_item *item, s32 *value);
|
||||
|
||||
@@ -352,7 +352,7 @@ extern u32 var80088ca0;
|
||||
extern u32 var80088ca4;
|
||||
extern u32 var80088ca8;
|
||||
extern struct menu_dialog menudialog_frdifficulty;
|
||||
extern struct menu_dialog menudialog_frweapon;
|
||||
extern struct menu_dialog g_frWeaponMenuDialog;
|
||||
extern struct menu_dialog menudialog_frtraininginfo;
|
||||
extern struct menu_dialog menudialog_frtraininginfo2;
|
||||
extern struct menu_dialog menudialog_frtrainingstats;
|
||||
|
||||
+6
-1
@@ -3921,7 +3921,12 @@ struct menustackitem {
|
||||
};
|
||||
|
||||
struct savefile_solo {
|
||||
/*0x00*/ char name[12];
|
||||
/**
|
||||
* This is a little weird. The name entry is clearly 10 characters plus a
|
||||
* null byte, but there is other code that uses unk08 for other purposes.
|
||||
*/
|
||||
/*0x00*/ char name[8];
|
||||
/*0x08*/ u32 unk08;
|
||||
/*0x0c*/ u32 unk0c;
|
||||
/*0x10*/ u32 unk10;
|
||||
/*0x14*/ u32 flags;
|
||||
|
||||
@@ -13021,7 +13021,7 @@ struct menu_item menuitems_frweapon[] = {
|
||||
};
|
||||
|
||||
// 2ed98
|
||||
struct menu_dialog menudialog_frweapon = {
|
||||
struct menu_dialog g_frWeaponMenuDialog = {
|
||||
MENUDIALOGTYPE_DEFAULT,
|
||||
0x51be, // "Weapon"
|
||||
menuitems_frweapon,
|
||||
@@ -13093,7 +13093,7 @@ struct menu_item menuitems_frtrainingstats[] = {
|
||||
{ MENUITEMTYPE_LABEL, 0, 0x00000002, 0x000051c7, (u32)&func0f1a402c, NULL }, // "Accuracy:"
|
||||
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
|
||||
{ MENUITEMTYPE_MODEL, 0, 0x00200002, 0x000000d2, 0x00000050, menuhandler001a44c0 },
|
||||
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000020, 0x000054fc, 0x00000000, menuhandler001a5d5c }, // "Continue"
|
||||
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000020, 0x000054fc, 0x00000000, menuhandlerFrFailedContinue }, // "Continue"
|
||||
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
|
||||
};
|
||||
|
||||
@@ -13120,7 +13120,7 @@ struct menu_item menuitems_frtrainingstats2[] = {
|
||||
{ MENUITEMTYPE_LABEL, 0, 0x00000002, 0x000051c7, (u32)&func0f1a402c, NULL }, // "Accuracy:"
|
||||
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
|
||||
{ MENUITEMTYPE_MODEL, 0, 0x00200002, 0x000000d2, 0x00000050, menuhandler001a44c0 },
|
||||
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000020, 0x000054fc, 0x00000000, menuhandler001a5d5c }, // "Continue"
|
||||
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000020, 0x000054fc, 0x00000000, menuhandlerFrFailedContinue }, // "Continue"
|
||||
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user