diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index d529b6850..5b7e05662 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -7776,7 +7776,7 @@ bool aiResetTimer(void) */ bool aiPauseTimer(void) { - g_Vars.chrdata->hidden &= 0xffffffbf; + g_Vars.chrdata->hidden &= ~CHRFLAG2_TIMER_RUNNING; g_Vars.aioffset += 2; return false; @@ -7785,20 +7785,13 @@ bool aiPauseTimer(void) /** * @cmd 00b9 */ -GLOBAL_ASM( -glabel ai00b9 -/* f054fe8: 3c04800a */ lui $a0,0x800a -/* f054fec: 24849fc0 */ addiu $a0,$a0,-24640 -/* f054ff0: 8c830424 */ lw $v1,0x424($a0) -/* f054ff4: 00001025 */ or $v0,$zero,$zero -/* f054ff8: 8c6e0014 */ lw $t6,0x14($v1) -/* f054ffc: 35cf0040 */ ori $t7,$t6,0x40 -/* f055000: ac6f0014 */ sw $t7,0x14($v1) -/* f055004: 8c980438 */ lw $t8,0x438($a0) -/* f055008: 27190002 */ addiu $t9,$t8,0x2 -/* f05500c: 03e00008 */ jr $ra -/* f055010: ac990438 */ sw $t9,0x438($a0) -); +bool aiResumeTimer(void) +{ + g_Vars.chrdata->hidden |= CHRFLAG2_TIMER_RUNNING; + g_Vars.aioffset += 2; + + return false; +} /** * @cmd 00ba diff --git a/src/include/constants.h b/src/include/constants.h index d192c348d..bbe1f771a 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -159,14 +159,14 @@ #define CHRFLAG1_40000000 0x40000000 // Globals #define CHRFLAG1_80000000 0x80000000 // Globals -// Character flags - bank 2 (chr struct offset 0x14) +// Character flags - bank 2 (chr struct offset 0x14 - "hidden") #define CHRFLAG2_00000001 0x00000001 // Not used in scripts - sunglasses? #define CHRFLAG2_00000002 0x00000002 // Not used in scripts #define CHRFLAG2_00000004 0x00000004 // Not used in scripts #define CHRFLAG2_00000008 0x00000008 // Not used in scripts #define CHRFLAG2_00000010 0x00000010 // Not used in scripts #define CHRFLAG2_00000020 0x00000020 // Not used in scripts -#define CHRFLAG2_00000040 0x00000040 // Not used in scripts +#define CHRFLAG2_TIMER_RUNNING 0x00000040 #define CHRFLAG2_00000080 0x00000080 // Not used in scripts #define CHRFLAG2_00000100 0x00000100 // Not used in scripts #define CHRFLAG2_00000200 0x00000200 // Not used in scripts diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 0830dbd9c..53a7770f9 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -187,7 +187,7 @@ /*0x00b6*/ bool aiRestartTimer(void); /*0x00b7*/ bool aiResetTimer(void); /*0x00b8*/ bool aiPauseTimer(void); -/*0x00b9*/ bool ai00b9(void); +/*0x00b9*/ bool aiResumeTimer(void); /*0x00ba*/ bool ai00ba(void); /*0x00bb*/ bool ai00bb(void); /*0x00bc*/ bool ai00bc(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 9dfe0bbe1..447e17ddc 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14134,7 +14134,7 @@ bool (*command_pointers[])(void) = { /*0x00b6*/ aiRestartTimer, /*0x00b7*/ aiResetTimer, /*0x00b8*/ aiPauseTimer, - /*0x00b9*/ ai00b9, + /*0x00b9*/ aiResumeTimer, /*0x00ba*/ ai00ba, /*0x00bb*/ ai00bb, /*0x00bc*/ ai00bc,