aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/access/amazon/amazon_room.cpp11
-rw-r--r--engines/access/amazon/amazon_room.h2
-rw-r--r--engines/access/room.h3
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;