From 57c5f99964e85702a88c3f5d7636deb74b47c658 Mon Sep 17 00:00:00 2001 From: Douglas Liu Date: Tue, 15 May 2018 11:32:01 +0800 Subject: [PATCH] STARK: Game opens with main menu look --- engines/stark/services/userinterface.cpp | 3 + engines/stark/stark.cpp | 2 +- engines/stark/ui/menu/locationscreen.cpp | 2 +- engines/stark/ui/menu/mainmenu.cpp | 88 +++++++++++++++++++++++- engines/stark/ui/menu/mainmenu.h | 3 - 5 files changed, 92 insertions(+), 6 deletions(-) diff --git a/engines/stark/services/userinterface.cpp b/engines/stark/services/userinterface.cpp index fd8a3deaa7..adaab6f01c 100644 --- a/engines/stark/services/userinterface.cpp +++ b/engines/stark/services/userinterface.cpp @@ -75,6 +75,8 @@ void UserInterface::init() { _fmvScreen = new FMVScreen(_gfx, _cursor); _currentScreen = _mainMenuScreen; + + _currentScreen->open(); } void UserInterface::update() { @@ -251,6 +253,7 @@ const Graphics::Surface *UserInterface::getGameWindowThumbnail() const { } void UserInterface::onScreenChanged() { + _mainMenuScreen->onScreenChanged(); _gameScreen->onScreenChanged(); _diaryIndexScreen->onScreenChanged(); } diff --git a/engines/stark/stark.cpp b/engines/stark/stark.cpp index 0d8c4692d7..35ff43a86c 100644 --- a/engines/stark/stark.cpp +++ b/engines/stark/stark.cpp @@ -146,7 +146,7 @@ Common::Error StarkEngine::run() { // Initialize the UI _userInterface->init(); - /* + /* Comment for testting the main menu if (ConfMan.hasKey("save_slot")) { // Load game from specified slot, if any diff --git a/engines/stark/ui/menu/locationscreen.cpp b/engines/stark/ui/menu/locationscreen.cpp index 2eab8bf281..e6edfcf3ab 100644 --- a/engines/stark/ui/menu/locationscreen.cpp +++ b/engines/stark/ui/menu/locationscreen.cpp @@ -123,7 +123,7 @@ void StaticLocationScreen::onRender() { } void StaticLocationScreen::onScreenChanged() { - // Right now only focus on reseting the text texture + // Right now only focus on resetting the text texture for (uint i = 0; i < _widgets.size(); i++) { _widgets[i]->resetTextTexture(); } diff --git a/engines/stark/ui/menu/mainmenu.cpp b/engines/stark/ui/menu/mainmenu.cpp index 71c8c5425e..8147130016 100644 --- a/engines/stark/ui/menu/mainmenu.cpp +++ b/engines/stark/ui/menu/mainmenu.cpp @@ -12,7 +12,93 @@ MainMenuScreen::~MainMenuScreen() { void MainMenuScreen::open() { StaticLocationScreen::open(); - //TODO: push back widgets + //TODO: Implement each handler + _widgets.push_back(new StaticLocationWidget( + "BGImage", + nullptr, + nullptr)); + + _widgets.push_back(new StaticLocationWidget( + "NewGame", + nullptr, + nullptr)); + _widgets.back()->setupSounds(0, 1); + + _widgets.push_back(new StaticLocationWidget( + "Continue", + nullptr, + nullptr)); + _widgets.back()->setupSounds(0, 1); + + _widgets.push_back(new StaticLocationWidget( + "Options", + nullptr, + nullptr)); + _widgets.back()->setupSounds(0, 1); + + _widgets.push_back(new StaticLocationWidget( + "Box", + nullptr, + nullptr)); + _widgets.back()->setupSounds(0, 1); + + _widgets.push_back(new StaticLocationWidget( + "Quit", + nullptr, + nullptr)); + _widgets.back()->setupSounds(0, 1); + + _widgets.push_back(new StaticLocationWidget( + "OptionHelp", + nullptr, + nullptr)); + _widgets.back()->setVisible(false); + + _widgets.push_back(new StaticLocationWidget( + "BeginHelp", + nullptr, + nullptr)); + _widgets.back()->setVisible(false); + + _widgets.push_back(new StaticLocationWidget( + "ContinueHelp", + nullptr, + nullptr)); + _widgets.back()->setVisible(false); + + _widgets.push_back(new StaticLocationWidget( + "BoxHelp", + nullptr, + nullptr)); + _widgets.back()->setVisible(false); + + _widgets.push_back(new StaticLocationWidget( + "QuitHelp", + nullptr, + nullptr)); + _widgets.back()->setVisible(false); + + _widgets.push_back(new StaticLocationWidget( + "Credits", + nullptr, + nullptr)); + _widgets.back()->setupSounds(0, 1); + + _widgets.push_back(new StaticLocationWidget( + "CreditHelp", + nullptr, + nullptr)); + _widgets.back()->setVisible(false); + + _widgets.push_back(new StaticLocationWidget( + "VERSION INFO", + nullptr, + nullptr)); + + _widgets.push_back(new StaticLocationWidget( + "VERSION INFO REALLY", + nullptr, + nullptr)); } } \ No newline at end of file diff --git a/engines/stark/ui/menu/mainmenu.h b/engines/stark/ui/menu/mainmenu.h index e6b7029aba..df45347f1a 100644 --- a/engines/stark/ui/menu/mainmenu.h +++ b/engines/stark/ui/menu/mainmenu.h @@ -15,9 +15,6 @@ class MainMenuScreen : public StaticLocationScreen { // StaticLocationScreen API void open() override; - - // Called when the screen resolution changes - void onScreenChanged(); }; }