From 1873da4c91189e45ca2b1023eae5e73acd40e38a Mon Sep 17 00:00:00 2001
From: Capostrophic <alexdobrohotov@yandex.ru>
Date: Sat, 6 Jun 2020 15:45:48 +0300
Subject: [PATCH] Don't save to or read automove state from saved games (#5452)

---
 CHANGELOG.md                         | 1 +
 apps/essimporter/importercontext.hpp | 1 -
 apps/openmw/mwworld/player.cpp       | 4 ----
 components/esm/player.cpp            | 8 +++-----
 components/esm/player.hpp            | 3 +--
 5 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c48660848..c381af951 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@
     Bug #5427: GetDistance unknown ID error is misleading
     Bug #5435: Enemies can't hurt the player when collision is off
     Bug #5441: Enemies can't push a player character when in critical strike stance
+    Bug #5452: Autowalk is being included in savegames
     Feature #5362: Show the soul gems' trapped soul in count dialog
     Feature #5445: Handle NiLines
 
diff --git a/apps/essimporter/importercontext.hpp b/apps/essimporter/importercontext.hpp
index 1a91b7cea..179e00f08 100644
--- a/apps/essimporter/importercontext.hpp
+++ b/apps/essimporter/importercontext.hpp
@@ -63,7 +63,6 @@ namespace ESSImport
             , mHour(0.f)
             , mNextActorId(0)
         {
-            mPlayer.mAutoMove = 0;
             ESM::CellId playerCellId;
             playerCellId.mPaged = true;
             playerCellId.mIndex.mX = playerCellId.mIndex.mY = 0;
diff --git a/apps/openmw/mwworld/player.cpp b/apps/openmw/mwworld/player.cpp
index 11444c8eb..2b157f18a 100644
--- a/apps/openmw/mwworld/player.cpp
+++ b/apps/openmw/mwworld/player.cpp
@@ -356,8 +356,6 @@ namespace MWWorld
         else
             player.mHasMark = false;
 
-        player.mAutoMove = mAutoMove ? 1 : 0;
-
         for (int i=0; i<ESM::Attribute::Length; ++i)
             mSaveAttributes[i].writeState(player.mSaveAttributes[i]);
         for (int i=0; i<ESM::Skill::Length; ++i)
@@ -452,8 +450,6 @@ namespace MWWorld
                 mMarkedCell = 0;
             }
 
-            mAutoMove = player.mAutoMove!=0;
-
             mForwardBackward = 0;
             mTeleported = false;
 
diff --git a/components/esm/player.cpp b/components/esm/player.cpp
index 571a10a8c..7d4791730 100644
--- a/components/esm/player.cpp
+++ b/components/esm/player.cpp
@@ -21,8 +21,9 @@ void ESM::Player::load (ESMReader &esm)
     else
         mHasMark = false;
 
-    mAutoMove = 0;
-    esm.getHNOT (mAutoMove, "AMOV");
+    // Automove, no longer used.
+    if (esm.isNextSub("AMOV"))
+        esm.skipHSub();
 
     mBirthsign = esm.getHNString ("SIGN");
 
@@ -66,9 +67,6 @@ void ESM::Player::save (ESMWriter &esm) const
         mMarkedCell.save (esm);
     }
 
-    if (mAutoMove)
-        esm.writeHNT ("AMOV", mAutoMove);
-
     esm.writeHNString ("SIGN", mBirthsign);
 
     esm.writeHNT ("CURD", mCurrentCrimeId);
diff --git a/components/esm/player.hpp b/components/esm/player.hpp
index 14201fff5..6163bb498 100644
--- a/components/esm/player.hpp
+++ b/components/esm/player.hpp
@@ -25,9 +25,8 @@ namespace ESM
         unsigned char mHasMark;
         ESM::Position mMarkedPosition;
         CellId mMarkedCell;
-        unsigned char mAutoMove;
         std::string mBirthsign;
-        
+
         int mCurrentCrimeId;
         int mPaidCrimeId;