Decompile cheatGetByCompletedStageIndex

This commit is contained in:
Ryan Dwyer 2019-12-26 12:43:57 +10:00
parent 68b975bba7
commit f79b18b538
5 changed files with 19 additions and 31 deletions

View File

@ -1322,30 +1322,18 @@ glabel func0f107eb8
/* f107f14: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel func0f107f18
/* f107f18: 3c028007 */ lui $v0,%hi(g_CheatSpecs)
/* f107f1c: 24423a90 */ addiu $v0,$v0,%lo(g_CheatSpecs)
/* f107f20: 00001825 */ or $v1,$zero,$zero
/* f107f24: 2405002a */ addiu $a1,$zero,0x2a
.L0f107f28:
/* f107f28: 904e0004 */ lbu $t6,0x4($v0)
/* f107f2c: 548e0008 */ bnel $a0,$t6,.L0f107f50
/* f107f30: 24630001 */ addiu $v1,$v1,0x1
/* f107f34: 904f0006 */ lbu $t7,0x6($v0)
/* f107f38: 31f80004 */ andi $t8,$t7,0x4
/* f107f3c: 53000004 */ beqzl $t8,.L0f107f50
/* f107f40: 24630001 */ addiu $v1,$v1,0x1
/* f107f44: 03e00008 */ jr $ra
/* f107f48: 00601025 */ or $v0,$v1,$zero
/* f107f4c: 24630001 */ addiu $v1,$v1,0x1
.L0f107f50:
/* f107f50: 1465fff5 */ bne $v1,$a1,.L0f107f28
/* f107f54: 24420008 */ addiu $v0,$v0,0x8
/* f107f58: 2402ffff */ addiu $v0,$zero,-1
/* f107f5c: 03e00008 */ jr $ra
/* f107f60: 00000000 */ sll $zero,$zero,0x0
);
s32 cheatGetByCompletedStageIndex(s32 stage_index)
{
s32 cheat_id;
for (cheat_id = 0; cheat_id < 0x2a; cheat_id++) {
if (g_CheatSpecs[cheat_id].stage_index == stage_index && (g_CheatSpecs[cheat_id].method & CHEATMETHOD_COMPLETE)) {
return cheat_id;
}
}
return -1;
}
s32 cheatGetTime(s32 cheat_id)
{

View File

@ -1977,7 +1977,7 @@ glabel func0f10e620
/* f10e6c4: 00022e42 */ srl $a1,$v0,0x19
/* f10e6c8: 3c04800a */ lui $a0,0x800a
/* f10e6cc: 9084dfea */ lbu $a0,-0x2016($a0)
/* f10e6d0: 0fc41fc6 */ jal func0f107f18
/* f10e6d0: 0fc41fc6 */ jal cheatGetByCompletedStageIndex
/* f10e6d4: afa20034 */ sw $v0,0x34($sp)
/* f10e6d8: 8fa30034 */ lw $v1,0x34($sp)
/* f10e6dc: 3c188007 */ lui $t8,0x8007

View File

@ -139,6 +139,11 @@
#define CHEAT_AR53 40
#define CHEAT_RCP45 41
#define CHEATMETHOD_TIMED 0
#define CHEATMETHOD_TRANSFERPAK 2
#define CHEATMETHOD_COMPLETE 4
#define CHEATMETHOD_FIRINGRANGE 8
#define CHR_P1P2_OPPOSITE 0xf1
#define CHR_P1P2 0xf2
#define CHR_ANY 0xf3 // Only supported by if_chr_activated_object command

View File

@ -12,7 +12,7 @@ u32 func0f107510(void);
u32 func0f10793c(void);
u32 func0f107a78(void);
u32 func0f107eb8(void);
u32 func0f107f18(void);
s32 cheatGetByCompletedStageIndex(s32 stage_index);
s32 cheatGetTime(s32 cheat_id);
char *cheatGetName(s32 cheat_id);
s32 menudialog00107990(u32, u32, u32 *);

View File

@ -2603,11 +2603,6 @@ struct cutscenegroup {
u16 namefileid;
};
#define CHEATMETHOD_TIMED 0
#define CHEATMETHOD_TRANSFERPAK 2
#define CHEATMETHOD_COMPLETE 4
#define CHEATMETHOD_FIRINGRANGE 8
struct cheatspec {
u16 nametextid;
u16 time;