diff --git a/game_scripts/scripts/entities/li.lua b/game_scripts/scripts/entities/li.lua index c217f64..7a0d336 100644 --- a/game_scripts/scripts/entities/li.lua +++ b/game_scripts/scripts/entities/li.lua @@ -631,6 +631,13 @@ function shiftWorlds(me, old, new) entity_setPosition(me, x+1, y+1) ]]-- end + + -- resuming the hug after spirit return is not easily possible, + -- as the game has additional code that repositions Li then. + -- so we just end the hug; this allows moving in spirit form. -- FG + if entity_isState(me, STATE_HUG) then + endHug(me) + end end function song(me, song) diff --git a/game_scripts/scripts/entities/seahorsecommon.lua b/game_scripts/scripts/entities/seahorsecommon.lua index 78e080a..ad6d896 100644 --- a/game_scripts/scripts/entities/seahorsecommon.lua +++ b/game_scripts/scripts/entities/seahorsecommon.lua @@ -571,8 +571,17 @@ function shiftWorlds(me, old, new) entity_setRiding(v.n, 0) cam_toEntity(v.n) elseif new == WT_NORMAL then - entity_setRiding(v.n, me) - cam_toEntity(me) + if entity_isEntityInRange(me, v.n, 64) then + entity_setRiding(v.n, me) + cam_toEntity(me) + else + overrideZoom(0) + v.riding = false + entity_stopAllAnimations(v.n) + entity_idle(v.n) + entity_setRiding(v.n, 0) + entity_setMaxSpeedLerp(me, 1, 1) + end end end end