aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/spells.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/spells.cpp')
-rw-r--r--engines/xeen/spells.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/xeen/spells.cpp b/engines/xeen/spells.cpp
index 763da71733..7ebe9ad019 100644
--- a/engines/xeen/spells.cpp
+++ b/engines/xeen/spells.cpp
@@ -1250,9 +1250,14 @@ void Spells::townPortal() {
sound.playFX(51);
map._loadCcNum = map._sideTownPortal;
_vm->_files->_ccNum = map._sideTownPortal > 0;
- map.load(Res.TOWN_MAP_NUMBERS[map._sideTownPortal][townNumber - 1]);
- if (!_vm->_files->_ccNum) {
+ int arrIndex = _vm->getGameID() == GType_Swords ? 2 : map._sideTownPortal;
+ map.load(Res.TOWN_MAP_NUMBERS[arrIndex][townNumber - 1]);
+
+ if (_vm->getGameID() == GType_Swords) {
+ party._mazePosition = Common::Point(8, 3);
+ party._mazeDirection = DIR_NORTH;
+ } else if (!_vm->_files->_ccNum) {
party.moveToRunLocation();
} else {
switch (townNumber) {