From 435ddcfb6b1b8763c321ae61dd8da1702e4e301c Mon Sep 17 00:00:00 2001
From: Alexei Kotov <alexdobrohotov@yandex.ru>
Date: Fri, 29 Jul 2022 18:50:57 +0300
Subject: [PATCH] Snap down any actor teleported with Position/PositionCell
 (bug #6154)

---
 CHANGELOG.md                                      | 1 +
 apps/openmw/mwscript/transformationextensions.cpp | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb781cad35..906bb91343 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -65,6 +65,7 @@
     Bug #6133: Cannot reliably sneak or steal in the sight of the NPCs siding with player
     Bug #6142: Groundcover plugins change cells flags
     Bug #6143: Capturing a screenshot renders the engine temporarily unresponsive
+    Bug #6154: Levitating player character is floating rather than on the floor when teleported back from Magas Volar
     Bug #6165: Paralyzed player character can pickup items when the inventory is open
     Bug #6168: Weather particles flicker for a frame at start of storms
     Bug #6172: Some creatures can't open doors
diff --git a/apps/openmw/mwscript/transformationextensions.cpp b/apps/openmw/mwscript/transformationextensions.cpp
index ef99e21880..e615886dd5 100644
--- a/apps/openmw/mwscript/transformationextensions.cpp
+++ b/apps/openmw/mwscript/transformationextensions.cpp
@@ -430,7 +430,7 @@ namespace MWScript
                         rot.z() = osg::DegreesToRadians(zRot);
                         MWBase::Environment::get().getWorld()->rotateObject(ptr,rot);
 
-                        ptr.getClass().adjustPosition(ptr, false);
+                        ptr.getClass().adjustPosition(ptr, true);
                     }
                 }
         };
@@ -484,7 +484,7 @@ namespace MWScript
                         zRot = zRot/60.0f;
                     rot.z() = osg::DegreesToRadians(zRot);
                     MWBase::Environment::get().getWorld()->rotateObject(ptr,rot);
-                    ptr.getClass().adjustPosition(ptr, false);
+                    ptr.getClass().adjustPosition(ptr, true);
                 }
         };