From e82e3b4198cca732ee7299bc98385683ca840f71 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 26 Jul 2024 23:46:33 +0200 Subject: [PATCH] Allow flags in trigger scripts (#4900) --- src/field_control_avatar.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 5e709a9fb0..a1deda6b29 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -932,6 +932,16 @@ static s8 GetWarpEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 e return WARP_ID_NONE; } +static bool32 ShouldTriggerScriptRun(const struct CoordEvent *coordEvent) +{ + u16 *varPtr = GetVarPointer(coordEvent->trigger); + // Treat non Vars as flags + if (varPtr == NULL) + return (FlagGet(coordEvent->trigger) == coordEvent->index); + else + return (*varPtr == coordEvent->index); +} + static const u8 *TryRunCoordEventScript(const struct CoordEvent *coordEvent) { if (coordEvent != NULL) @@ -946,7 +956,7 @@ static const u8 *TryRunCoordEventScript(const struct CoordEvent *coordEvent) RunScriptImmediately(coordEvent->script); return NULL; } - if (VarGet(coordEvent->trigger) == (u8)coordEvent->index) + if (ShouldTriggerScriptRun(coordEvent)) return coordEvent->script; } return NULL;