From 6ef4e92e76bbde184394b0f30cbc5f59da043130 Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Wed, 16 Mar 2022 18:44:12 -0400 Subject: [PATCH] Fixed bug where followers could be talked to while invisible. Was caused by quick `applymovements` not giving enough time to move the follower on top of the player. --- src/event_object_movement.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index f96adeef46..6235c1577c 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -4705,6 +4705,12 @@ bool8 MovementType_FollowPlayer_Shadow(struct ObjectEvent *objectEvent, struct S objectEvent->triggerGroundEffectsOnMove = FALSE; // Stop endless reflection spawning return FALSE; } + // Move follower to player, in case we end up in the shadowing state for only 1 frame + // This way the player cannot talk to the invisible follower before it appears + if (objectEvent->invisible) { + MoveObjectEventToMapCoords(objectEvent, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y); + objectEvent->triggerGroundEffectsOnMove = FALSE; // Stop endless reflection spawning + } sprite->data[1] = 1; // Enter active state; if the player moves the follower will appear return TRUE; }