mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-19 05:22:21 -04:00
Decompile menuhandlerHeadRoll, optionsGetHeadRoll and optionsSetHeadRoll
This commit is contained in:
@@ -5497,7 +5497,7 @@ glabel func0f0cc3b8
|
||||
/* f0cc4f0: 0c0058ba */ jal func000162e8
|
||||
/* f0cc4f4: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f0cc4f8: 8e0c0288 */ lw $t4,0x288($s0)
|
||||
/* f0cc4fc: 0fc54a49 */ jal func0f152924
|
||||
/* f0cc4fc: 0fc54a49 */ jal optionsGetHeadRoll
|
||||
/* f0cc500: 8d840070 */ lw $a0,0x70($t4)
|
||||
/* f0cc504: 5040001b */ beqzl $v0,.L0f0cc574
|
||||
/* f0cc508: 8e0d0284 */ lw $t5,0x284($s0)
|
||||
|
||||
+20
-43
@@ -784,49 +784,26 @@ glabel menuhandlerLookAhead
|
||||
/* f102ac8: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel menuhandlerHeadRoll
|
||||
/* f102acc: 3c02800a */ lui $v0,%hi(g_Vars)
|
||||
/* f102ad0: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
|
||||
/* f102ad4: 8c4e0298 */ lw $t6,0x298($v0)
|
||||
/* f102ad8: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f102adc: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f102ae0: 05c10004 */ bgez $t6,.L0f102af4
|
||||
/* f102ae4: 00803825 */ or $a3,$a0,$zero
|
||||
/* f102ae8: 8c4f029c */ lw $t7,0x29c($v0)
|
||||
/* f102aec: 05e20005 */ bltzl $t7,.L0f102b04
|
||||
/* f102af0: 8ca4000c */ lw $a0,0xc($a1)
|
||||
.L0f102af4:
|
||||
/* f102af4: 8c580288 */ lw $t8,0x288($v0)
|
||||
/* f102af8: 10000002 */ beqz $zero,.L0f102b04
|
||||
/* f102afc: 8f040070 */ lw $a0,0x70($t8)
|
||||
/* f102b00: 8ca4000c */ lw $a0,0xc($a1)
|
||||
.L0f102b04:
|
||||
/* f102b04: 24010006 */ addiu $at,$zero,0x6
|
||||
/* f102b08: 10e10007 */ beq $a3,$at,.L0f102b28
|
||||
/* f102b0c: 24010008 */ addiu $at,$zero,0x8
|
||||
/* f102b10: 54e1000d */ bnel $a3,$at,.L0f102b48
|
||||
/* f102b14: 00001025 */ or $v0,$zero,$zero
|
||||
/* f102b18: 0fc54a49 */ jal func0f152924
|
||||
/* f102b1c: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f102b20: 1000000a */ beqz $zero,.L0f102b4c
|
||||
/* f102b24: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f102b28:
|
||||
/* f102b28: 0fc54b4a */ jal func0f152d28
|
||||
/* f102b2c: 8cc50000 */ lw $a1,0x0($a2)
|
||||
/* f102b30: 3c02800a */ lui $v0,%hi(g_Vars)
|
||||
/* f102b34: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
|
||||
/* f102b38: 8c590458 */ lw $t9,0x458($v0)
|
||||
/* f102b3c: 37280001 */ ori $t0,$t9,0x1
|
||||
/* f102b40: ac480458 */ sw $t0,0x458($v0)
|
||||
/* f102b44: 00001025 */ or $v0,$zero,$zero
|
||||
.L0f102b48:
|
||||
/* f102b48: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f102b4c:
|
||||
/* f102b4c: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f102b50: 03e00008 */ jr $ra
|
||||
/* f102b54: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
s32 menuhandlerHeadRoll(u32 operation, struct menu_item *item, bool *enable)
|
||||
{
|
||||
u32 optionsindex;
|
||||
|
||||
if (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) {
|
||||
optionsindex = g_Vars.unk000288->optionsindex;
|
||||
} else {
|
||||
optionsindex = item->right;
|
||||
}
|
||||
|
||||
switch (operation) {
|
||||
case MENUOP_GET:
|
||||
return optionsGetHeadRoll(optionsindex);
|
||||
case MENUOP_SET:
|
||||
optionsSetHeadRoll(optionsindex, *enable);
|
||||
g_Vars.unk000458 |= 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel menuhandlerInGameSubtitles
|
||||
|
||||
@@ -2819,7 +2819,7 @@ glabel func0f10f204
|
||||
/* f10f2f8: 0fc47961 */ jal func0f11e584
|
||||
/* f10f2fc: 02002825 */ or $a1,$s0,$zero
|
||||
/* f10f300: 8fa40024 */ lw $a0,0x24($sp)
|
||||
/* f10f304: 0fc54b4a */ jal func0f152d28
|
||||
/* f10f304: 0fc54b4a */ jal optionsSetHeadRoll
|
||||
/* f10f308: 00402825 */ or $a1,$v0,$zero
|
||||
/* f10f30c: 2404000a */ addiu $a0,$zero,0xa
|
||||
/* f10f310: 0fc47961 */ jal func0f11e584
|
||||
@@ -2891,7 +2891,7 @@ glabel func0f10f204
|
||||
/* f10f418: 0fc47961 */ jal func0f11e584
|
||||
/* f10f41c: 02002825 */ or $a1,$s0,$zero
|
||||
/* f10f420: 8fa40020 */ lw $a0,0x20($sp)
|
||||
/* f10f424: 0fc54b4a */ jal func0f152d28
|
||||
/* f10f424: 0fc54b4a */ jal optionsSetHeadRoll
|
||||
/* f10f428: 00402825 */ or $a1,$v0,$zero
|
||||
/* f10f42c: 24040013 */ addiu $a0,$zero,0x13
|
||||
/* f10f430: 0fc47961 */ jal func0f11e584
|
||||
@@ -3697,7 +3697,7 @@ glabel func0f10feac
|
||||
/* f10ffb4: 02002825 */ or $a1,$s0,$zero
|
||||
/* f10ffb8: 0fc4794c */ jal func0f11e530
|
||||
/* f10ffbc: 00403025 */ or $a2,$v0,$zero
|
||||
/* f10ffc0: 0fc54a49 */ jal func0f152924
|
||||
/* f10ffc0: 0fc54a49 */ jal optionsGetHeadRoll
|
||||
/* f10ffc4: 02602025 */ or $a0,$s3,$zero
|
||||
/* f10ffc8: 24040009 */ addiu $a0,$zero,0x9
|
||||
/* f10ffcc: 02002825 */ or $a1,$s0,$zero
|
||||
@@ -3769,7 +3769,7 @@ glabel func0f10feac
|
||||
/* f1100d4: 02002825 */ or $a1,$s0,$zero
|
||||
/* f1100d8: 0fc4794c */ jal func0f11e530
|
||||
/* f1100dc: 00403025 */ or $a2,$v0,$zero
|
||||
/* f1100e0: 0fc54a49 */ jal func0f152924
|
||||
/* f1100e0: 0fc54a49 */ jal optionsGetHeadRoll
|
||||
/* f1100e4: 02202025 */ or $a0,$s1,$zero
|
||||
/* f1100e8: 24040012 */ addiu $a0,$zero,0x12
|
||||
/* f1100ec: 02002825 */ or $a1,$s0,$zero
|
||||
|
||||
+12
-38
@@ -160,18 +160,10 @@ glabel func0f152918
|
||||
/* f152920: 9042fa94 */ lbu $v0,-0x56c($v0)
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f152924
|
||||
/* f152924: 00047080 */ sll $t6,$a0,0x2
|
||||
/* f152928: 01c47021 */ addu $t6,$t6,$a0
|
||||
/* f15292c: 000e7140 */ sll $t6,$t6,0x5
|
||||
/* f152930: 3c02800b */ lui $v0,0x800b
|
||||
/* f152934: 004e1021 */ addu $v0,$v0,$t6
|
||||
/* f152938: 9442c800 */ lhu $v0,-0x3800($v0)
|
||||
/* f15293c: 304f0080 */ andi $t7,$v0,0x80
|
||||
/* f152940: 03e00008 */ jr $ra
|
||||
/* f152944: 000f102b */ sltu $v0,$zero,$t7
|
||||
);
|
||||
s32 optionsGetHeadRoll(s32 optionsindex)
|
||||
{
|
||||
return (g_Options[optionsindex].unk48 & OPTION_HEADROLL) != 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f152948
|
||||
@@ -376,32 +368,14 @@ glabel func0f152d1c
|
||||
/* f152d24: a024fa94 */ sb $a0,-0x56c($at)
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f152d28
|
||||
/* f152d28: 10a0000b */ beqz $a1,.L0f152d58
|
||||
/* f152d2c: 00044080 */ sll $t0,$a0,0x2
|
||||
/* f152d30: 00047080 */ sll $t6,$a0,0x2
|
||||
/* f152d34: 01c47021 */ addu $t6,$t6,$a0
|
||||
/* f152d38: 3c0f800b */ lui $t7,%hi(g_Options)
|
||||
/* f152d3c: 25efc7b8 */ addiu $t7,$t7,%lo(g_Options)
|
||||
/* f152d40: 000e7140 */ sll $t6,$t6,0x5
|
||||
/* f152d44: 01cf1021 */ addu $v0,$t6,$t7
|
||||
/* f152d48: 94580048 */ lhu $t8,0x48($v0)
|
||||
/* f152d4c: 37190080 */ ori $t9,$t8,0x80
|
||||
/* f152d50: 03e00008 */ jr $ra
|
||||
/* f152d54: a4590048 */ sh $t9,0x48($v0)
|
||||
.L0f152d58:
|
||||
/* f152d58: 01044021 */ addu $t0,$t0,$a0
|
||||
/* f152d5c: 3c09800b */ lui $t1,%hi(g_Options)
|
||||
/* f152d60: 2529c7b8 */ addiu $t1,$t1,%lo(g_Options)
|
||||
/* f152d64: 00084140 */ sll $t0,$t0,0x5
|
||||
/* f152d68: 01091021 */ addu $v0,$t0,$t1
|
||||
/* f152d6c: 944a0048 */ lhu $t2,0x48($v0)
|
||||
/* f152d70: 314bff7f */ andi $t3,$t2,0xff7f
|
||||
/* f152d74: a44b0048 */ sh $t3,0x48($v0)
|
||||
/* f152d78: 03e00008 */ jr $ra
|
||||
/* f152d7c: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
void optionsSetHeadRoll(s32 optionsindex, bool enable)
|
||||
{
|
||||
if (enable) {
|
||||
g_Options[optionsindex].unk48 |= OPTION_HEADROLL;
|
||||
} else {
|
||||
g_Options[optionsindex].unk48 &= ~OPTION_HEADROLL;
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f152d80
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
|
||||
#define OPTION_AMMOONSCREEN 0x0020
|
||||
#define OPTION_SHOWGUNFUNCTION 0x0040
|
||||
#define OPTION_HEADROLL 0x0080
|
||||
#define OPTION_ALWAYSSHOWTARGET 0x0200
|
||||
#define OPTION_SHOWZOOMRANGE 0x0400
|
||||
#define OPTION_PAINTBALL 0x0800
|
||||
|
||||
@@ -20,7 +20,7 @@ s32 optionsGetPaintball(s32 optionsindex);
|
||||
s32 optionsGetShowMissionTime(s32 optionsindex);
|
||||
u32 func0f15290c(void);
|
||||
u32 func0f152918(void);
|
||||
u32 func0f152924(void);
|
||||
s32 optionsGetHeadRoll(s32 optionsindex);
|
||||
u32 func0f152948(void);
|
||||
u32 func0f1529a0(void);
|
||||
u32 func0f1529f8(void);
|
||||
@@ -34,7 +34,7 @@ void optionsSetPaintball(s32 optionsindex, bool enable);
|
||||
void optionsSetShowMissionTime(s32 optionsindex, bool enable);
|
||||
u32 func0f152d10(void);
|
||||
u32 func0f152d1c(void);
|
||||
u32 func0f152d28(void);
|
||||
void optionsSetHeadRoll(s32 optionsindex, bool enable);
|
||||
u32 func0f152d80(void);
|
||||
u32 func0f152f04(void);
|
||||
u32 func0f152f10(void);
|
||||
|
||||
Reference in New Issue
Block a user