diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/macventure/dialog.cpp | 36 | ||||
-rw-r--r-- | engines/macventure/gui.cpp | 23 | ||||
-rw-r--r-- | engines/macventure/gui.h | 7 | ||||
-rw-r--r-- | engines/macventure/macventure.cpp | 3 | ||||
-rw-r--r-- | engines/macventure/prebuilt_dialogs.cpp | 12 | ||||
-rw-r--r-- | engines/macventure/prebuilt_dialogs.h | 6 |
6 files changed, 63 insertions, 24 deletions
diff --git a/engines/macventure/dialog.cpp b/engines/macventure/dialog.cpp index fe01d8fd8a..7cbf0cb610 100644 --- a/engines/macventure/dialog.cpp +++ b/engines/macventure/dialog.cpp @@ -45,18 +45,30 @@ Dialog::~Dialog() { } void Dialog::handleDialogAction(DialogElement *trigger, DialogAction action) { - switch(action) { - case kDACloseDialog: - _gui->closeDialog(); - break; - case kDASubmit: - _gui->setTextInput(_userInput); - _gui->closeDialog(); - break; - case kDASaveAs: - _gui->saveInto(0); - _gui->closeDialog(); - break; + switch(action) { + case kDACloseDialog: + _gui->closeDialog(); + break; + case kDASubmit: + _gui->setTextInput(_userInput); + _gui->closeDialog(); + break; + case kDASaveAs: + _gui->saveGame(); + _gui->closeDialog(); + break; + case kDALoadGame: + _gui->loadGame(); + _gui->closeDialog(); + break; + case kDANewGame: + _gui->newGame(); + _gui->closeDialog(); + break; + case kDAQuit: + _gui->quitGame(); + _gui->closeDialog(); + break; } } diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp index deb4a09a77..6c8122d156 100644 --- a/engines/macventure/gui.cpp +++ b/engines/macventure/gui.cpp @@ -867,13 +867,20 @@ void Gui::getTextFromUser() { showPrebuiltDialog(kSpeakDialog); } -void Gui::loadGame(int slot) { - _engine->loadGameState(slot); +void Gui::loadGame() { + _engine->scummVMSaveLoadDialog(false); } -void Gui::saveInto(int slot) { - _engine->saveGameState(slot, "desc"); - _engine->preparedToRun(); +void Gui::saveGame() { + _engine->scummVMSaveLoadDialog(true); +} + +void Gui::newGame() { + warning("New Game not implemented!"); +} + +void Gui::quitGame() { + _engine->requestQuit(); } void Gui::createInnerSurface(Graphics::ManagedSurface *innerSurface, Graphics::ManagedSurface *outerSurface, const BorderBounds &borders) { @@ -1098,13 +1105,13 @@ void Gui::handleMenuAction(MenuAction action) { warning("Unimplemented MacVenture Menu Action: New"); break; case MacVenture::kMenuActionOpen: - _engine->scummVMSaveLoadDialog(false); + loadGame(); break; case MacVenture::kMenuActionSave: - _engine->scummVMSaveLoadDialog(true); + saveGame(); break; case MacVenture::kMenuActionSaveAs: - _engine->scummVMSaveLoadDialog(true); + saveGame(); break; case MacVenture::kMenuActionQuit: debug("MacVenture Menu Action: Quit"); diff --git a/engines/macventure/gui.h b/engines/macventure/gui.h index 7d1a08aa5b..185171f6b9 100644 --- a/engines/macventure/gui.h +++ b/engines/macventure/gui.h @@ -157,9 +157,10 @@ public: void setTextInput(Common::String str); void closeDialog(); - // TODO: Currently unused, we are using ScummVM dialogs instead. - void loadGame(int slot); - void saveInto(int slot); + void loadGame(); + void saveGame(); + void newGame(); + void quitGame(); void createInnerSurface(Graphics::ManagedSurface *innerSurface, Graphics::ManagedSurface *outerSurface, const BorderBounds &borders); diff --git a/engines/macventure/macventure.cpp b/engines/macventure/macventure.cpp index beee71aae5..a1b2387a87 100644 --- a/engines/macventure/macventure.cpp +++ b/engines/macventure/macventure.cpp @@ -293,10 +293,13 @@ void MacVentureEngine::gameChanged() { } void MacVentureEngine::winGame() { + _gui->showPrebuiltDialog(kWinGameDialog); _gameState = kGameStateWinnig; } void MacVentureEngine::loseGame() { + _gui->showPrebuiltDialog(kWinGameDialog); + _paused = true; _gameState = kGameStateLosing; } diff --git a/engines/macventure/prebuilt_dialogs.cpp b/engines/macventure/prebuilt_dialogs.cpp index 13d2d446bf..945808bfcc 100644 --- a/engines/macventure/prebuilt_dialogs.cpp +++ b/engines/macventure/prebuilt_dialogs.cpp @@ -47,6 +47,18 @@ PrebuiltDialog prebuiltDialogs[kPrebuiltDialogCount] = { {kDETextInput, "", kDANone, Common::Point(10, 25), 350, 40}, {kDEEnd, "", kDANone, Common::Point(0, 0), 0, 0} } +}, + + { /* kWinGameDialog */ + Common::Rect(20, 100, 400, 200), + { + {kDEPlainText, "You Won!", kDANone, Common::Point(10, 10), 400, 20}, + {kDEPlainText, "What do you want to do?", kDANone, Common::Point(10, 30), 400, 20}, + {kDEButton, "New Game", kDANewGame, Common::Point(40, 30), 50, 20}, + {kDEButton, "Load", kDALoadGame, Common::Point(100, 30), 50, 20}, + {kDEButton, "Quit", kDAQuit, Common::Point(160, 30), 50, 20}, + {kDEEnd, "", kDANone, Common::Point(0, 0), 0, 0} + } } }; diff --git a/engines/macventure/prebuilt_dialogs.h b/engines/macventure/prebuilt_dialogs.h index 58e8f0b823..5deda1b7e9 100644 --- a/engines/macventure/prebuilt_dialogs.h +++ b/engines/macventure/prebuilt_dialogs.h @@ -31,12 +31,16 @@ enum DialogAction { kDANone, kDACloseDialog, kDASubmit, - kDASaveAs + kDASaveAs, + kDALoadGame, + kDAQuit, + kDANewGame }; enum PrebuiltDialogs { kSaveAsDialog = 0, //TODO: Currently unused, we are using ScummVM dialogs instead. kSpeakDialog = 1, + kWinGameDialog = 2, kPrebuiltDialogCount }; |