/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include "tsage/ringworld/ringworld_demo.h" #include "tsage/dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" namespace TsAGE { namespace Ringworld { void RingworldDemoGame::start() { // Start the demo's single scene g_globals->_sceneManager.changeScene(1); g_globals->_events.setCursor(CURSOR_NONE); } Scene *RingworldDemoGame::createScene(int sceneNumber) { // The demo only has a single scene, so ignore the scene number and always return it return new RingworldDemoScene(); } bool RingworldDemoGame::canLoadGameStateCurrently() { return false; } bool RingworldDemoGame::canSaveGameStateCurrently() { return false; } void RingworldDemoGame::quitGame() { if (MessageDialog::show(DEMO_EXIT_MSG, EXIT_BTN_STRING, DEMO_BTN_STRING) == 0) g_vm->quitGame(); } void RingworldDemoGame::pauseGame() { g_globals->_events.setCursor(CURSOR_ARROW); MessageDialog *dlg = new MessageDialog(DEMO_PAUSED_MSG, EXIT_BTN_STRING, DEMO_RESUME_BTN_STRING); dlg->draw(); GfxButton *selectedButton = dlg->execute(&dlg->_btn2); bool exitFlag = selectedButton != &dlg->_btn2; delete dlg; g_globals->_events.hideCursor(); if (exitFlag) g_vm->quitGame(); } void RingworldDemoGame::processEvent(Event &event) { if (event.eventType == EVENT_CUSTOM_ACTIONSTART) { switch (event.customType) { case kActionHelp: // F1 - Help MessageDialog::show(DEMO_HELP_MSG, OK_BTN_STRING); break; case kActionSoundOptions: { // F2 - Sound Options SoundDialog::execute(); break; } case kActionQuitGame: // F3 - Quit quitGame(); event.handled = false; break; default: break; } } else if (event.eventType == EVENT_BUTTON_DOWN) { pauseGame(); event.handled = true; } } /*-------------------------------------------------------------------------- * Ringworld Demo scene * *--------------------------------------------------------------------------*/ void RingworldDemoScene::postInit(SceneObjectList *OwnerList) { signal(); } void RingworldDemoScene::signal() { _soundHandler.play(4); _actor1.postInit(); _actor2.postInit(); _actor3.postInit(); _actor4.postInit(); _actor5.postInit(); _actor6.postInit(); setAction(&_sequenceManager, this, 22, &_actor1, &_actor2, &_actor3, &_actor4, &_actor5, &_actor6, NULL); } void RingworldDemoScene::process(Event &event) { } } // End of namespace Ringworld } // End of namespace TsAGE