aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/xeen/map.cpp4
-rw-r--r--engines/xeen/map.h6
-rw-r--r--engines/xeen/saves.cpp1
3 files changed, 11 insertions, 0 deletions
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp
index 2200d145ef..d57d2585d7 100644
--- a/engines/xeen/map.cpp
+++ b/engines/xeen/map.cpp
@@ -1169,6 +1169,10 @@ void Map::saveMaze() {
saveMonsters();
}
+void Map::clearMaze() {
+ _mazeData[0]._mazeNumber = 0;
+}
+
void Map::cellFlagLookup(const Common::Point &pt) {
Common::Point pos = pt;
findMap();
diff --git a/engines/xeen/map.h b/engines/xeen/map.h
index 1f17954bac..a0bc77a7ec 100644
--- a/engines/xeen/map.h
+++ b/engines/xeen/map.h
@@ -484,6 +484,12 @@ public:
void saveMaze();
/**
+ * Clears the current maze. This is used during savegame loads so that
+ * the previous games maze data isn't saved as the new map is loaded
+ */
+ void clearMaze();
+
+ /**
* Gets the data for a map position at one of the relative indexes
* surrounding the current position
*/
diff --git a/engines/xeen/saves.cpp b/engines/xeen/saves.cpp
index dbd3d8bc80..27819fda0a 100644
--- a/engines/xeen/saves.cpp
+++ b/engines/xeen/saves.cpp
@@ -213,6 +213,7 @@ Common::Error SavesManager::loadGameState(int slot) {
files.load(*saveFile);
// Load the new map
+ map.clearMaze();
map._loadDarkSide = files._isDarkCc;
map.load(party._mazeId);