diff options
author | Paul Gilbert | 2019-10-28 19:23:59 -0700 |
---|---|---|
committer | Paul Gilbert | 2019-10-28 19:23:59 -0700 |
commit | f2726730156b0f2efadabf9d48b4795818440907 (patch) | |
tree | de0bc228b309ba09b2fcbe907aa59c072ed19b32 /engines/xeen/locations.cpp | |
parent | efb51d8fb55633b46f654d8684551ded3443b383 (diff) | |
download | scummvm-rg350-f2726730156b0f2efadabf9d48b4795818440907.tar.gz scummvm-rg350-f2726730156b0f2efadabf9d48b4795818440907.tar.bz2 scummvm-rg350-f2726730156b0f2efadabf9d48b4795818440907.zip |
XEEN: Fix Swords tavern sign in exit locations
Diffstat (limited to 'engines/xeen/locations.cpp')
-rw-r--r-- | engines/xeen/locations.cpp | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/engines/xeen/locations.cpp b/engines/xeen/locations.cpp index 7cbfc2bab3..7ebdce3f19 100644 --- a/engines/xeen/locations.cpp +++ b/engines/xeen/locations.cpp @@ -696,17 +696,40 @@ Character *TavernLocation::doOptions(Character *c) { case Common::KEYCODE_s: { // Sign In // Set location and position for afterwards - idx = _ccNum ? (party._mazeId - 29) >> 1 : party._mazeId - 28; - assert(idx >= 0); - party._mazePosition.x = Res.TAVERN_EXIT_LIST[_ccNum][_locationActionId][idx][0]; - party._mazePosition.y = Res.TAVERN_EXIT_LIST[_ccNum][_locationActionId][idx][1]; - - if (!_ccNum || party._mazeId == 29) - party._mazeDirection = DIR_WEST; - else if (party._mazeId == 31) - party._mazeDirection = DIR_EAST; - else - party._mazeDirection = DIR_SOUTH; + if (g_vm->getGameID() == GType_Swords) { + switch (party._mazeId) { + case 49: + party._mazePosition = Common::Point(9, 2); + party._mazeDirection = DIR_WEST; + break; + case 53: + party._mazePosition = Common::Point(13, 1); + party._mazeDirection = DIR_EAST; + break; + case 92: + party._mazePosition = Common::Point(10, 1); + party._mazeDirection = DIR_EAST; + break; + case 63: + party._mazePosition = Common::Point(13, 1); + party._mazeDirection = DIR_SOUTH; + break; + default: + break; + } + } else { + idx = _ccNum ? (party._mazeId - 29) >> 1 : party._mazeId - 28; + assert(idx >= 0); + party._mazePosition.x = Res.TAVERN_EXIT_LIST[_ccNum][_locationActionId][idx][0]; + party._mazePosition.y = Res.TAVERN_EXIT_LIST[_ccNum][_locationActionId][idx][1]; + + if (!_ccNum || party._mazeId == 29) + party._mazeDirection = DIR_WEST; + else if (party._mazeId == 31) + party._mazeDirection = DIR_EAST; + else + party._mazeDirection = DIR_SOUTH; + } party._priorMazeId = party._mazeId; for (idx = 0; idx < (int)party._activeParty.size(); ++idx) { |