mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-09 18:37:28 -04:00
Decompile aiIfDifficultyLessThan and aiIfDifficultyGreaterThan
This commit is contained in:
@@ -4973,84 +4973,34 @@ glabel ai0168
|
||||
/**
|
||||
* @cmd 0077
|
||||
*/
|
||||
GLOBAL_ASM(
|
||||
glabel ai0077
|
||||
/* f052fc4: 3c03800a */ lui $v1,0x800a
|
||||
/* f052fc8: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f052fcc: 8c6e0434 */ lw $t6,0x434($v1)
|
||||
/* f052fd0: 8c6f0438 */ lw $t7,0x438($v1)
|
||||
/* f052fd4: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f052fd8: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f052fdc: 01cf3821 */ addu $a3,$t6,$t7
|
||||
/* f052fe0: 0fc5b367 */ jal getDifficulty
|
||||
/* f052fe4: afa7001c */ sw $a3,0x1c($sp)
|
||||
/* f052fe8: 8fa7001c */ lw $a3,0x1c($sp)
|
||||
/* f052fec: 3c03800a */ lui $v1,0x800a
|
||||
/* f052ff0: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f052ff4: 90f80002 */ lbu $t8,0x2($a3)
|
||||
/* f052ff8: 0058082a */ slt $at,$v0,$t8
|
||||
/* f052ffc: 5020000a */ beqzl $at,.L0f053028
|
||||
/* f053000: 8c790438 */ lw $t9,0x438($v1)
|
||||
/* f053004: 8c640434 */ lw $a0,0x434($v1)
|
||||
/* f053008: 8c650438 */ lw $a1,0x438($v1)
|
||||
/* f05300c: 0fc13583 */ jal chraiGoToLabel
|
||||
/* f053010: 90e60003 */ lbu $a2,0x3($a3)
|
||||
/* f053014: 3c03800a */ lui $v1,0x800a
|
||||
/* f053018: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f05301c: 10000004 */ beqz $zero,.L0f053030
|
||||
/* f053020: ac620438 */ sw $v0,0x438($v1)
|
||||
/* f053024: 8c790438 */ lw $t9,0x438($v1)
|
||||
.L0f053028:
|
||||
/* f053028: 27280004 */ addiu $t0,$t9,0x4
|
||||
/* f05302c: ac680438 */ sw $t0,0x438($v1)
|
||||
.L0f053030:
|
||||
/* f053030: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f053034: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* f053038: 00001025 */ or $v0,$zero,$zero
|
||||
/* f05303c: 03e00008 */ jr $ra
|
||||
/* f053040: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
bool aiIfDifficultyLessThan(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
|
||||
if (getDifficulty() < cmd[2]) {
|
||||
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
|
||||
} else {
|
||||
g_Vars.aioffset += 4;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @cmd 0078
|
||||
*/
|
||||
GLOBAL_ASM(
|
||||
glabel ai0078
|
||||
/* f053044: 3c03800a */ lui $v1,0x800a
|
||||
/* f053048: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f05304c: 8c6e0434 */ lw $t6,0x434($v1)
|
||||
/* f053050: 8c6f0438 */ lw $t7,0x438($v1)
|
||||
/* f053054: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f053058: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f05305c: 01cf3821 */ addu $a3,$t6,$t7
|
||||
/* f053060: 0fc5b367 */ jal getDifficulty
|
||||
/* f053064: afa7001c */ sw $a3,0x1c($sp)
|
||||
/* f053068: 8fa7001c */ lw $a3,0x1c($sp)
|
||||
/* f05306c: 3c03800a */ lui $v1,0x800a
|
||||
/* f053070: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f053074: 90f80002 */ lbu $t8,0x2($a3)
|
||||
/* f053078: 0302082a */ slt $at,$t8,$v0
|
||||
/* f05307c: 5020000a */ beqzl $at,.L0f0530a8
|
||||
/* f053080: 8c790438 */ lw $t9,0x438($v1)
|
||||
/* f053084: 8c640434 */ lw $a0,0x434($v1)
|
||||
/* f053088: 8c650438 */ lw $a1,0x438($v1)
|
||||
/* f05308c: 0fc13583 */ jal chraiGoToLabel
|
||||
/* f053090: 90e60003 */ lbu $a2,0x3($a3)
|
||||
/* f053094: 3c03800a */ lui $v1,0x800a
|
||||
/* f053098: 24639fc0 */ addiu $v1,$v1,-24640
|
||||
/* f05309c: 10000004 */ beqz $zero,.L0f0530b0
|
||||
/* f0530a0: ac620438 */ sw $v0,0x438($v1)
|
||||
/* f0530a4: 8c790438 */ lw $t9,0x438($v1)
|
||||
.L0f0530a8:
|
||||
/* f0530a8: 27280004 */ addiu $t0,$t9,0x4
|
||||
/* f0530ac: ac680438 */ sw $t0,0x438($v1)
|
||||
.L0f0530b0:
|
||||
/* f0530b0: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0530b4: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* f0530b8: 00001025 */ or $v0,$zero,$zero
|
||||
/* f0530bc: 03e00008 */ jr $ra
|
||||
/* f0530c0: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
bool aiIfDifficultyGreaterThan(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
|
||||
if (getDifficulty() > cmd[2]) {
|
||||
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
|
||||
} else {
|
||||
g_Vars.aioffset += 4;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @cmd 0079
|
||||
|
||||
@@ -302738,7 +302738,7 @@ glabel func0f16cd90
|
||||
/* f16cd98: 8c424014 */ lw $v0,0x4014($v0)
|
||||
);
|
||||
|
||||
u32 getDifficulty(void)
|
||||
s32 getDifficulty(void)
|
||||
{
|
||||
return g_Difficulty;
|
||||
}
|
||||
|
||||
@@ -121,8 +121,8 @@
|
||||
/*0x0074*/ bool ai0074(void);
|
||||
/*0x0075*/ bool ai0075(void);
|
||||
/*0x0076*/ bool ai0076(void);
|
||||
/*0x0077*/ bool ai0077(void);
|
||||
/*0x0078*/ bool ai0078(void);
|
||||
/*0x0077*/ bool aiIfDifficultyLessThan(void);
|
||||
/*0x0078*/ bool aiIfDifficultyGreaterThan(void);
|
||||
/*0x0079*/ bool ai0079(void);
|
||||
/*0x007a*/ bool ai007a(void);
|
||||
/*0x007b*/ bool ai007b(void);
|
||||
|
||||
@@ -560,7 +560,7 @@ struct defaultobj *objFindByTagId(s32 tag_id);
|
||||
|
||||
char *textGet(u32 textid);
|
||||
|
||||
u32 getDifficulty(void);
|
||||
s32 getDifficulty(void);
|
||||
|
||||
bool audioPlayFromWorldPosition(u8 channel_id, u16 audio_id, u8 volumemaybe, struct position *pos);
|
||||
|
||||
|
||||
@@ -22,6 +22,6 @@ extern struct menu_dialog menudialog_mpchallengedetails;
|
||||
extern struct menu_dialog menudialog_mpscenario;
|
||||
extern struct menu_dialog menudialog_mpquickteam;
|
||||
|
||||
extern u32 g_Difficulty;
|
||||
extern s32 g_Difficulty;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14072,8 +14072,8 @@ bool (*command_pointers[])(void) = {
|
||||
/*0x0074*/ ai0074,
|
||||
/*0x0075*/ ai0075,
|
||||
/*0x0076*/ ai0076,
|
||||
/*0x0077*/ ai0077,
|
||||
/*0x0078*/ ai0078,
|
||||
/*0x0077*/ aiIfDifficultyLessThan,
|
||||
/*0x0078*/ aiIfDifficultyGreaterThan,
|
||||
/*0x0079*/ ai0079,
|
||||
/*0x007a*/ ai007a,
|
||||
/*0x007b*/ ai007b,
|
||||
|
||||
@@ -6082,7 +6082,7 @@ u32 var0002a034 = 0x00000000;
|
||||
u32 var0002a038 = 0x3f800000;
|
||||
u32 var0002a03c = 0x00000001;
|
||||
|
||||
u32 g_Difficulty = 0;
|
||||
s32 g_Difficulty = 0;
|
||||
|
||||
u32 var0002a044 = 0x00000000;
|
||||
u32 var0002a048 = 0x00008ca0;
|
||||
|
||||
Reference in New Issue
Block a user