From 9d590687e99cfee4b20dce5224edd78b33d61fd5 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 9 Aug 2014 22:24:35 -0400 Subject: [PATCH] ACCESS: Implemented roomMenu --- engines/access/access.h | 2 +- engines/access/amazon/amazon_game.cpp | 2 +- engines/access/amazon/amazon_room.cpp | 15 ++++++++++++++- engines/access/amazon/amazon_room.h | 3 +++ engines/access/screen.cpp | 22 +++++++++++++++------- engines/access/screen.h | 4 ++++ 6 files changed, 38 insertions(+), 10 deletions(-) diff --git a/engines/access/access.h b/engines/access/access.h index 99bc201b07ef..e6a3f332c69e 100644 --- a/engines/access/access.h +++ b/engines/access/access.h @@ -113,7 +113,7 @@ class AccessEngine : public Engine { Scripts *_scripts; SoundManager *_sound; - byte *_destIn; + ASurface *_destIn; ASurface _buffer1; ASurface _buffer2; byte *_objectsTable[100]; diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp index 9c516168decd..d1ba0e0258f0 100644 --- a/engines/access/amazon/amazon_game.cpp +++ b/engines/access/amazon/amazon_game.cpp @@ -109,7 +109,7 @@ void AmazonEngine::doIntroduction() { void AmazonEngine::doTitle() { _screen->setDisplayScan(); - _destIn = (byte *)_buffer2.getPixels(); + _destIn = &_buffer2; _screen->forceFadeOut(); _events->hideCursor(); diff --git a/engines/access/amazon/amazon_room.cpp b/engines/access/amazon/amazon_room.cpp index df2a6b759d9f..565b1ccadafa 100644 --- a/engines/access/amazon/amazon_room.cpp +++ b/engines/access/amazon/amazon_room.cpp @@ -31,6 +31,10 @@ namespace Amazon { AmazonRoom::AmazonRoom(AccessEngine *vm): Room(vm) { _antOutFlag = false; + _icon = nullptr; +} + +AmazonRoom::~AmazonRoom() { } void AmazonRoom::loadRoom(int roomNumber) { @@ -118,7 +122,16 @@ void AmazonRoom::roomSet() { } void AmazonRoom::roomMenu() { - // TODO + _icon = _vm->_files->loadFile("ICONS.LZ"); + _vm->_screen->saveScreen(); + _vm->_screen->setDisplayScan(); + _vm->_destIn = _vm->_screen; + _vm->_screen->plotImage(_icon, 0, Common::Point(0, 177)); + _vm->_screen->plotImage(_icon, 1, Common::Point(143, 177)); + + _vm->_screen->restoreScan(); + delete[] _icon; + _icon = nullptr; } } // End of namespace Amazon diff --git a/engines/access/amazon/amazon_room.h b/engines/access/amazon/amazon_room.h index 006aef54f688..546ea9698af1 100644 --- a/engines/access/amazon/amazon_room.h +++ b/engines/access/amazon/amazon_room.h @@ -35,6 +35,7 @@ namespace Amazon { class AmazonRoom : public Room { private: bool _antOutFlag; + const byte *_icon; void roomSet(); @@ -47,6 +48,8 @@ class AmazonRoom : public Room { virtual void reloadRoom1(); public: AmazonRoom(AccessEngine *vm); + + virtual ~AmazonRoom(); }; } // End of namespace Amazon diff --git a/engines/access/screen.cpp b/engines/access/screen.cpp index 45379b6a51b7..6a241d0c2b05 100644 --- a/engines/access/screen.cpp +++ b/engines/access/screen.cpp @@ -200,31 +200,35 @@ bool Screen::clip(Common::Rect &r) { } void Screen::checkScroll() { - // TODO + warning("TODO"); } void Screen::copyBF1BF2() { - // TODO + warning("TODO"); } void Screen::copyBF2Vid() { - // TODO + warning("TODO"); } void Screen::plotList() { - // TODO + warning("TODO: plotList"); } void Screen::copyBlocks() { - // TODO + warning("TODO: copyBlocks"); } void Screen::copyRects() { - // TODO + warning("TODO: copyRects"); } void Screen::setBufferScan() { - // TODO + warning("TODO: setBufferScan"); +} + +void Screen::restoreScan() { + warning("TODO: restoreScan"); } void Screen::setScaleTable(int scale) { @@ -236,4 +240,8 @@ void Screen::setScaleTable(int scale) { } } +void Screen::saveScreen() { + warning("TODO: saveScreen"); +} + } // End of namespace Access diff --git a/engines/access/screen.h b/engines/access/screen.h index 69a28bdce137..a2eac29312f5 100644 --- a/engines/access/screen.h +++ b/engines/access/screen.h @@ -70,6 +70,8 @@ class Screen: public ASurface { void setDisplayScan(); + void restoreScan(); + void setPanel(int num); /** @@ -124,6 +126,8 @@ class Screen: public ASurface { void setBufferScan(); void setScaleTable(int scale); + + void saveScreen(); }; } // End of namespace Access