diff --git a/src/event_object_movement.c b/src/event_object_movement.c index a5578eaad..936d1ace3 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -10467,6 +10467,14 @@ u8 MovementAction_FollowingPokemon_Grow_Step1(struct ObjectEvent *objectEvent, s } FreeSpriteOamMatrix(sprite); + + // Make sure water ripples at the feet of the follower if they are appearing on top of shallow water. + if (MetatileBehavior_IsShallowFlowingWater(MapGridGetMetatileBehaviorAt(objectEvent->currentCoords.x, objectEvent->currentCoords.y))) + { + objectEvent->inShallowFlowingWater = TRUE; + StartFieldEffectForObjectEvent(FLDEFF_FEET_IN_FLOWING_WATER, objectEvent); + } + sprite->data[2]++; } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 4c597c1cb..c33e4905a 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -820,7 +820,8 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) struct Sprite *linkedSprite; struct ObjectEvent *objectEvent; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater + || (gObjectEvents[objectEventId].invisible && objectEventId == gSaveBlock2Ptr->follower.objId && gSaveBlock2Ptr->follower.inProgress)) { FieldEffectStop(sprite, FLDEFF_FEET_IN_FLOWING_WATER); }