aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus
diff options
context:
space:
mode:
authorMatthew Hoops2011-09-27 20:41:45 -0400
committerMatthew Hoops2011-09-27 20:41:45 -0400
commit20f18e447faba964178d7a8dc48f8ed4bd434506 (patch)
tree339c3fb9168cc3771cd2e3f8deef0bbf1954b9cd /engines/pegasus
parentd0914e6dc35d4b1c3b2c2eb486a3289785762eb9 (diff)
downloadscummvm-rg350-20f18e447faba964178d7a8dc48f8ed4bd434506.tar.gz
scummvm-rg350-20f18e447faba964178d7a8dc48f8ed4bd434506.tar.bz2
scummvm-rg350-20f18e447faba964178d7a8dc48f8ed4bd434506.zip
PEGASUS: Add the remaining gameshell remnants
Diffstat (limited to 'engines/pegasus')
-rw-r--r--engines/pegasus/pegasus.cpp17
-rw-r--r--engines/pegasus/pegasus.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index d9f296d3e2..fe140cd05b 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -75,6 +75,9 @@ PegasusEngine::~PegasusEngine() {
delete _cursor;
delete _continuePoint;
delete _gameMenu;
+ delete _neighborhood;
+
+ // NOTE: This must be deleted last!
delete _gfx;
}
@@ -1108,4 +1111,18 @@ tInventoryResult PegasusEngine::addItemToInventory(InventoryItem *item) {
return result;
}
+void PegasusEngine::useNeighborhood(Neighborhood *neighborhood) {
+ delete _neighborhood;
+ _neighborhood = neighborhood;
+
+ if (_neighborhood) {
+ InputHandler::setInputHandler(_neighborhood);
+ _neighborhood->init();
+ _neighborhood->moveNavTo(kNavAreaLeft, kNavAreaTop);
+ g_interface->setDate(_neighborhood->getDateResID());
+ } else {
+ InputHandler::setInputHandler(this);
+ }
+}
+
} // End of namespace Pegasus
diff --git a/engines/pegasus/pegasus.h b/engines/pegasus/pegasus.h
index 4856da6258..d72b9d16c4 100644
--- a/engines/pegasus/pegasus.h
+++ b/engines/pegasus/pegasus.h
@@ -219,6 +219,7 @@ private:
// Neighborhood
Neighborhood *_neighborhood;
+ void useNeighborhood(Neighborhood *neighborhood);
// Sound
uint16 _ambientLevel;