aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2019-10-28 19:23:59 -0700
committerPaul Gilbert2019-10-28 19:23:59 -0700
commitf2726730156b0f2efadabf9d48b4795818440907 (patch)
treede0bc228b309ba09b2fcbe907aa59c072ed19b32 /engines
parentefb51d8fb55633b46f654d8684551ded3443b383 (diff)
downloadscummvm-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')
-rw-r--r--engines/xeen/locations.cpp45
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) {