diff options
Diffstat (limited to 'engines/tsage/ringworld_demo.cpp')
| -rw-r--r-- | engines/tsage/ringworld_demo.cpp | 129 | 
1 files changed, 129 insertions, 0 deletions
diff --git a/engines/tsage/ringworld_demo.cpp b/engines/tsage/ringworld_demo.cpp new file mode 100644 index 0000000000..3ad414fa20 --- /dev/null +++ b/engines/tsage/ringworld_demo.cpp @@ -0,0 +1,129 @@ +/* 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "tsage/ringworld_demo.h" +#include "tsage/scenes.h" +#include "tsage/tsage.h" +#include "tsage/staticres.h" + +namespace tSage { + +void RingworldDemoGame::start() { +	// Start the demo's single scene +	_globals->_sceneManager.changeScene(1); +	 +	_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(); +} + +void RingworldDemoGame::quitGame() { +	_globals->_events.setCursor(CURSOR_ARROW); +	MessageDialog *dlg = new MessageDialog(DEMO_EXIT_MSG, EXIT_BTN_STRING, DEMO_BTN_STRING); +	dlg->draw(); + +	GfxButton *selectedButton = dlg->execute(&dlg->_btn2); +	bool exitFlag  =  selectedButton != &dlg->_btn2; + +	delete dlg; +	_globals->_events.hideCursor(); + +	if (exitFlag) +		_vm->quitGame(); +} + +void RingworldDemoGame::pauseGame() { +	_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; +	_globals->_events.hideCursor(); + +	if (exitFlag) +		_vm->quitGame(); +} + +void RingworldDemoGame::processEvent(Event &event) { +	if (event.eventType == EVENT_KEYPRESS) { +		switch (event.kbd.keycode) { +		case Common::KEYCODE_F1: +			// F1 - Help +			MessageDialog::show(DEMO_HELP_MSG, OK_BTN_STRING); +			break; + +		case Common::KEYCODE_F2: { +			// F2 - Sound Options +			ConfigDialog *dlg = new ConfigDialog(); +			dlg->runModal(); +			delete dlg; +			_globals->_events.setCursorFromFlag(); +			break; +		} + +		case Common::KEYCODE_F3: +			// 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.startSound(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 tSage  | 
