diff options
-rw-r--r-- | engines/access/amazon/amazon_room.cpp | 11 | ||||
-rw-r--r-- | engines/access/amazon/amazon_room.h | 2 | ||||
-rw-r--r-- | engines/access/room.h | 3 |
3 files changed, 15 insertions, 1 deletions
diff --git a/engines/access/amazon/amazon_room.cpp b/engines/access/amazon/amazon_room.cpp index 098220ee0c..96d34e70bb 100644 --- a/engines/access/amazon/amazon_room.cpp +++ b/engines/access/amazon/amazon_room.cpp @@ -125,6 +125,17 @@ void AmazonRoom::reloadRoom1() { _vm->_newRects.clear(); } +void AmazonRoom::setupRoom() { + Room::setupRoom(); + + // WORKAROUND: The original engine doesn't handle vertical scrolling rooms + Screen &screen = *_vm->_screen; + if (screen._vWindowHeight == (_playFieldHeight - 1)) { + screen._scrollRow = 1; + screen._scrollY = 0; + } +} + void AmazonRoom::roomSet() { _vm->_numAnimTimers = 0; _vm->_scripts->_sequence = 1000; diff --git a/engines/access/amazon/amazon_room.h b/engines/access/amazon/amazon_room.h index 122eed991e..ccace1ea45 100644 --- a/engines/access/amazon/amazon_room.h +++ b/engines/access/amazon/amazon_room.h @@ -48,6 +48,8 @@ protected: virtual void reloadRoom1(); + virtual void setupRoom(); + virtual void roomMenu(); virtual void mainAreaClick(); diff --git a/engines/access/room.h b/engines/access/room.h index fdeccc87c8..810082edb4 100644 --- a/engines/access/room.h +++ b/engines/access/room.h @@ -80,7 +80,6 @@ private: bool checkCode(int v1, int v2); protected: void loadRoomData(const byte *roomData); - void setupRoom(); /** * Free the playfield data @@ -115,6 +114,8 @@ protected: virtual void reloadRoom1() = 0; + virtual void setupRoom(); + virtual void doCommands(); virtual void roomMenu() = 0; |