[Scummvm-cvs-logs] SF.net SVN: scummvm: [31868] scummvm/trunk/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun May 4 17:56:29 CEST 2008


Revision: 31868
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31868&view=rev
Author:   lordhoto
Date:     2008-05-04 08:56:28 -0700 (Sun, 04 May 2008)

Log Message:
-----------
- Shared checkInput code between kyra2 and kyra3
- Debugger related cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/debugger.cpp
    scummvm/trunk/engines/kyra/debugger.h
    scummvm/trunk/engines/kyra/kyra_hof.cpp
    scummvm/trunk/engines/kyra/kyra_hof.h
    scummvm/trunk/engines/kyra/kyra_mr.cpp
    scummvm/trunk/engines/kyra/kyra_mr.h
    scummvm/trunk/engines/kyra/kyra_v2.cpp
    scummvm/trunk/engines/kyra/kyra_v2.h

Modified: scummvm/trunk/engines/kyra/debugger.cpp
===================================================================
--- scummvm/trunk/engines/kyra/debugger.cpp	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/debugger.cpp	2008-05-04 15:56:28 UTC (rev 31868)
@@ -28,8 +28,8 @@
 #include "common/system.h"
 #include "kyra/debugger.h"
 #include "kyra/kyra_v1.h"
+#include "kyra/kyra_v2.h"
 #include "kyra/kyra_hof.h"
-#include "kyra/kyra_mr.h"
 #include "kyra/screen.h"
 #include "kyra/timer.h"
 #include "kyra/resource.h"
@@ -283,7 +283,7 @@
 
 #pragma mark -
 
-Debugger_v2::Debugger_v2(KyraEngine_HoF *vm) : Debugger(vm), _vm(vm) {
+Debugger_v2::Debugger_v2(KyraEngine_v2 *vm) : Debugger(vm), _vm(vm) {
 	DCmd_Register("character_info",		WRAP_METHOD(Debugger_v2, cmd_characterInfo));
 	DCmd_Register("enter",				WRAP_METHOD(Debugger_v2, cmd_enterScene));
 	DCmd_Register("rooms",				WRAP_METHOD(Debugger_v2, cmd_listScenes));	// for consistency with kyra_v1
@@ -291,7 +291,6 @@
 	DCmd_Register("scene_info",			WRAP_METHOD(Debugger_v2, cmd_sceneInfo));
 	DCmd_Register("scene_to_facing",	WRAP_METHOD(Debugger_v2, cmd_sceneToFacing));
 	DCmd_Register("give",				WRAP_METHOD(Debugger_v2, cmd_giveItem));
-	DCmd_Register("pass_codes",			WRAP_METHOD(Debugger_v2, cmd_passcodes));
 }
 
 bool Debugger_v2::cmd_enterScene(int argc, const char **argv) {
@@ -322,8 +321,8 @@
 		_vm->_mainCharacter.facing = direction;
 
 		_vm->enterNewScene(scene, _vm->_mainCharacter.facing, 0, 0, 1);
-		while (!_vm->_screen->isMouseVisible())
-			_vm->_screen->showMouse();
+		while (!_vm->screen_v2()->isMouseVisible())
+			_vm->screen_v2()->showMouse();
 
 		_detach_now = true;
 		return false;
@@ -436,7 +435,13 @@
 	return true;
 }
 
-bool Debugger_v2::cmd_passcodes(int argc, const char **argv) {
+#pragma mark -
+
+Debugger_HoF::Debugger_HoF(KyraEngine_HoF *vm) : Debugger_v2(vm), _vm(vm) {
+	DCmd_Register("pass_codes",			WRAP_METHOD(Debugger_HoF, cmd_passcodes));
+}
+
+bool Debugger_HoF::cmd_passcodes(int argc, const char **argv) {
 	if (argc == 2) {
 		int val = atoi(argv[1]);
 
@@ -453,108 +458,5 @@
 	return true;
 }
 
-Debugger_v3::Debugger_v3(KyraEngine_MR *vm) : Debugger(vm), _vm(vm) {
-	DCmd_Register("give",				WRAP_METHOD(Debugger_v3, cmd_giveItem));
-	DCmd_Register("enter",				WRAP_METHOD(Debugger_v3, cmd_enterScene));
-	DCmd_Register("rooms",				WRAP_METHOD(Debugger_v3, cmd_listScenes));	// for consistency with kyra_v1
-	DCmd_Register("scenes",				WRAP_METHOD(Debugger_v3, cmd_listScenes));
-	DCmd_Register("scene_info",			WRAP_METHOD(Debugger_v3, cmd_sceneInfo));
-}
-
-bool Debugger_v3::cmd_giveItem(int argc, const char **argv) {
-	if (argc == 2) {
-		int item = atoi(argv[1]);
-
-		// Kyrandia 3 has only 73 items (-1 to 71), otherwise it will crash
-		if (item < -1 || item > 71) {
-			DebugPrintf("itemid must be any value between (including) -1 and 71\n");
-			return true;
-		}
-
-		_vm->setHandItem(item);
-	} else {
-		DebugPrintf("Syntax: give <itemid>\n");
-	}
-
-	return true;
-}
-
-bool Debugger_v3::cmd_enterScene(int argc, const char **argv) {
-	uint direction = 0;
-	if (argc > 1) {
-		int scene = atoi(argv[1]);
-
-		// game will crash if entering a non-existent scene
-		if (scene >= _vm->_sceneListSize) {
-			DebugPrintf("scene number must be any value between (including) 0 and %d\n", _vm->_sceneListSize-1);
-			return true;
-		}
-
-		if (argc > 2) {
-			direction = atoi(argv[2]);
-		} else {
-			if (_vm->_sceneList[scene].exit1 != 0xFFFF)
-				direction = 4;
-			else if (_vm->_sceneList[scene].exit2 != 0xFFFF)
-				direction = 6;
-			else if (_vm->_sceneList[scene].exit3 != 0xFFFF)
-				direction = 0;
-			else if (_vm->_sceneList[scene].exit4 != 0xFFFF)
-				direction = 2;
-		}
-
-		_vm->_system->hideOverlay();
-		_vm->_mainCharacter.facing = direction;
-
-		_vm->enterNewScene(scene, _vm->_mainCharacter.facing, 0, 0, 1);
-		while (!_vm->_screen->isMouseVisible())
-			_vm->_screen->showMouse();
-
-		_detach_now = true;
-		return false;
-	}
-
-	DebugPrintf("Syntax: %d <scenenum> <direction>\n", argv[0]);
-	return true;
-}
-
-bool Debugger_v3::cmd_listScenes(int argc, const char **argv) {
-	int shown = 1;
-	for (int i = 0; i < _vm->_sceneListSize; ++i) {
-		if (_vm->_sceneList[i].filename1[0]) {
-			DebugPrintf("%-2i: %-10s", i, _vm->_sceneList[i].filename1);
-			if (!(shown % 5))
-				DebugPrintf("\n");
-			++shown;
-		}
-	}
-	DebugPrintf("\n");
-	DebugPrintf("Current scene: %i\n", _vm->_mainCharacter.sceneId);
-	return true;
-}
-
-bool Debugger_v3::cmd_sceneInfo(int argc, const char **argv) {
-	DebugPrintf("Current scene: %d '%s'\n", _vm->_mainCharacter.sceneId, _vm->_sceneList[_vm->_mainCharacter.sceneId].filename1);
-	DebugPrintf("\n");
-	DebugPrintf("Exit information:\n");
-	DebugPrintf("Exit1: leads to %d, position %dx%d\n", int16(_vm->_sceneExit1), _vm->_sceneEnterX1, _vm->_sceneEnterY1);
-	DebugPrintf("Exit2: leads to %d, position %dx%d\n", int16(_vm->_sceneExit2), _vm->_sceneEnterX2, _vm->_sceneEnterY2);
-	DebugPrintf("Exit3: leads to %d, position %dx%d\n", int16(_vm->_sceneExit3), _vm->_sceneEnterX3, _vm->_sceneEnterY3);
-	DebugPrintf("Exit4: leads to %d, position %dx%d\n", int16(_vm->_sceneExit4), _vm->_sceneEnterX4, _vm->_sceneEnterY4);
-	DebugPrintf("Special exit information:\n");
-	if (!_vm->_specialExitCount) {
-		DebugPrintf("No special exits.\n");
-	} else {
-		DebugPrintf("This scene has %d special exits.\n", _vm->_specialExitCount);
-		for (int i = 0; i < _vm->_specialExitCount; ++i) {
-			DebugPrintf("SpecialExit%d: facing %d, position (x1/y1/x2/y2): %d/%d/%d/%d\n", i,
-					_vm->_specialExitTable[20+i], _vm->_specialExitTable[0+i], _vm->_specialExitTable[5+i],
-					_vm->_specialExitTable[10+i], _vm->_specialExitTable[15+i]);
-		}
-	}
-
-	return true;
-}
-
 } // End of namespace Kyra
 

Modified: scummvm/trunk/engines/kyra/debugger.h
===================================================================
--- scummvm/trunk/engines/kyra/debugger.h	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/debugger.h	2008-05-04 15:56:28 UTC (rev 31868)
@@ -32,8 +32,8 @@
 
 class KyraEngine;
 class KyraEngine_v1;
+class KyraEngine_v2;
 class KyraEngine_HoF;
-class KyraEngine_MR;
 
 class Debugger : public ::GUI::Debugger {
 public:
@@ -73,11 +73,11 @@
 
 class Debugger_v2 : public Debugger {
 public:
-	Debugger_v2(KyraEngine_HoF *vm);
+	Debugger_v2(KyraEngine_v2 *vm);
 	virtual ~Debugger_v2() {}
 
 protected:
-	KyraEngine_HoF *_vm;
+	KyraEngine_v2 *_vm;
 
 	bool cmd_enterScene(int argc, const char **argv);
 	bool cmd_listScenes(int argc, const char **argv);
@@ -85,25 +85,18 @@
 	bool cmd_characterInfo(int argc, const char **argv);
 	bool cmd_sceneToFacing(int argc, const char **argv);
 	bool cmd_giveItem(int argc, const char **argv);
-	bool cmd_passcodes(int argc, const char **argv);
 };
 
-class Debugger_v3 : public Debugger {
+class Debugger_HoF : public Debugger_v2 {
 public:
-	Debugger_v3(KyraEngine_MR *vm);
-	virtual ~Debugger_v3() {}
+	Debugger_HoF(KyraEngine_HoF *vm);
 
 protected:
-	KyraEngine_MR *_vm;
-	
-	bool cmd_giveItem(int argc, const char **argv);	
-	bool cmd_enterScene(int argc, const char **argv);
-	bool cmd_listScenes(int argc, const char **argv);
-	bool cmd_sceneInfo(int argc, const char **argv);
-	bool cmd_sceneToFacing(int argc, const char **argv);
+	KyraEngine_HoF *_vm;
+
+	bool cmd_passcodes(int argc, const char **argv);
 };
 
-
 } // End of namespace Kyra
 
 #endif

Modified: scummvm/trunk/engines/kyra/kyra_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_hof.cpp	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/kyra_hof.cpp	2008-05-04 15:56:28 UTC (rev 31868)
@@ -54,7 +54,6 @@
 
 KyraEngine_HoF::KyraEngine_HoF(OSystem *system, const GameFlags &flags) : KyraEngine_v2(system, flags, _hofEngineDesc), _updateFunctor(this, &KyraEngine_HoF::update) {
 	_mouseSHPBuf = 0;
-	_debugger = 0;
 	_screen = 0;
 	_text = 0;
 
@@ -154,7 +153,6 @@
 	delete _gui;
 	delete _tim;
 	_text = 0;
-	delete _debugger;
 	delete _invWsa.wsa;
 
 	if (_sequenceSoundList) {
@@ -185,7 +183,7 @@
 	KyraEngine::init();
 	initStaticResource();
 
-	_debugger = new Debugger_v2(this);
+	_debugger = new Debugger_HoF(this);
 	assert(_debugger);
 	_text = new TextDisplayer_HoF(this, _screen);
 	assert(_text);
@@ -744,68 +742,6 @@
 	}
 }
 
-int KyraEngine_HoF::checkInput(Button *buttonList, bool mainLoop) {
-	updateInput();
-
-	int keys = 0;
-
-	while (_eventList.size()) {
-		Common::Event event = *_eventList.begin();
-		bool breakLoop = false;
-
-		switch (event.type) {
-		case Common::EVENT_KEYDOWN:
-			if (event.kbd.keycode >= '1' && event.kbd.keycode <= '9' &&
-					(event.kbd.flags == Common::KBD_CTRL || event.kbd.flags == Common::KBD_ALT) && mainLoop) {
-				const char *saveLoadSlot = getSavegameFilename(9 - (event.kbd.keycode - '0') + 990);
-
-				if (event.kbd.flags == Common::KBD_CTRL) {
-					loadGame(saveLoadSlot);
-					_eventList.clear();
-					breakLoop = true;
-				} else {
-					char savegameName[14];
-					sprintf(savegameName, "Quicksave %d", event.kbd.keycode - '0');
-					saveGame(saveLoadSlot, savegameName);
-				}
-			} else if (event.kbd.flags == Common::KBD_CTRL) {
-				if (event.kbd.keycode == 'd')
-					_debugger->attach();
-			}
-			break;
-
-		case Common::EVENT_MOUSEMOVE: {
-			Common::Point pos = getMousePos();
-			_mouseX = pos.x;
-			_mouseY = pos.y;
-			_screen->updateScreen();
-			} break;
-
-		case Common::EVENT_LBUTTONDOWN:
-		case Common::EVENT_LBUTTONUP: {
-			Common::Point pos = getMousePos();
-			_mouseX = pos.x;
-			_mouseY = pos.y;
-			keys = event.type == Common::EVENT_LBUTTONDOWN ? 199 : (200 | 0x800);
-			breakLoop = true;
-			} break;
-
-		default:
-			break;
-		}
-
-		if (_debugger->isAttached())
-			_debugger->onFrame();
-
-		if (breakLoop)
-			break;
-
-		_eventList.erase(_eventList.begin());
-	}
-
-	return _gui->processButtonList(buttonList, keys | 0x8000);
-}
-
 void KyraEngine_HoF::delay(uint32 amount, bool updateGame, bool isMainLoop) {
 	uint32 start = _system->getMillis();
 	do {

Modified: scummvm/trunk/engines/kyra/kyra_hof.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_hof.h	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/kyra_hof.h	2008-05-04 15:56:28 UTC (rev 31868)
@@ -100,7 +100,6 @@
 class WSAMovieV2;
 class KyraEngine_HoF;
 class TextDisplayer_HoF;
-class Debugger_v2;
 
 struct TIM;
 
@@ -192,7 +191,7 @@
 };
 
 class KyraEngine_HoF : public KyraEngine_v2 {
-friend class Debugger_v2;
+friend class Debugger_HoF;
 friend class TextDisplayer_HoF;
 friend class GUI_HoF;
 public:
@@ -201,6 +200,7 @@
 
 	Screen *screen() { return _screen; }
 	Screen_v2 *screen_v2() const { return _screen; }
+	GUI_v2 *gui_v2() const { return _gui; }
 	virtual TextDisplayer *text() { return _text; }
 	int language() const { return _lang; }
 protected:
@@ -289,7 +289,6 @@
 
 	Screen_HoF *_screen;
 	TextDisplayer_HoF *_text;
-	Debugger_v2 *_debugger;
 	TIMInterpreter *_tim;
 
 	uint8 *_mouseSHPBuf;
@@ -332,7 +331,6 @@
 
 	int _mouseState;
 
-	int checkInput(Button *buttonList, bool mainLoop = false);
 	void handleInput(int x, int y);
 	bool handleInputUnkSub(int x, int y);
 

Modified: scummvm/trunk/engines/kyra/kyra_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_mr.cpp	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/kyra_mr.cpp	2008-05-04 15:56:28 UTC (rev 31868)
@@ -130,7 +130,6 @@
 	_invWsaFrame = -1;
 	_score = 0;
 	memset(_scoreFlagTable, 0, sizeof(_scoreFlagTable));
-	_debugger = 0;
 	_mainButtonData = 0;
 	_mainButtonList = 0;
 	_mainButtonListInitialized = false;
@@ -182,7 +181,6 @@
 	delete _dlgBuffer;
 	delete [] _stringBuffer;
 	delete _invWsa;
-	delete _debugger;
 	delete [] _mainButtonData;
 	delete _gui;
 }
@@ -194,7 +192,7 @@
 
 	KyraEngine::init();
 	
-	_debugger = new Debugger_v3(this);
+	_debugger = new Debugger_v2(this);
 	assert(_debugger);
 
 	_soundDigital = new SoundDigital(this, _mixer);
@@ -1250,69 +1248,6 @@
 
 #pragma mark -
 
-int KyraEngine_MR::checkInput(Button *buttonList, bool mainLoop) {
-	debugC(9, kDebugLevelMain, "KyraEngine_MR::checkInput(%p, %d)", (const void*)buttonList, mainLoop);
-	updateInput();
-
-	int keys = 0;
-
-	while (_eventList.size()) {
-		Common::Event event = *_eventList.begin();
-		bool breakLoop = false;
-
-		switch (event.type) {
-		case Common::EVENT_KEYDOWN:
-			if (event.kbd.keycode >= '1' && event.kbd.keycode <= '9' &&
-					(event.kbd.flags == Common::KBD_CTRL || event.kbd.flags == Common::KBD_ALT) && mainLoop) {
-				const char *saveLoadSlot = getSavegameFilename(9 - (event.kbd.keycode - '0') + 990);
-
-				if (event.kbd.flags == Common::KBD_CTRL) {
-					loadGame(saveLoadSlot);
-					_eventList.clear();
-					breakLoop = true;
-				} else {
-					char savegameName[14];
-					sprintf(savegameName, "Quicksave %d", event.kbd.keycode - '0');
-					saveGame(saveLoadSlot, savegameName);
-				}
-			} else if (event.kbd.flags == Common::KBD_CTRL) {
-				if (event.kbd.keycode == 'd')
-					_debugger->attach();
-			}
-			break;
-
-		case Common::EVENT_MOUSEMOVE: {
-			Common::Point pos = getMousePos();
-			_mouseX = pos.x;
-			_mouseY = pos.y;
-			_screen->updateScreen();
-			} break;
-
-		case Common::EVENT_LBUTTONDOWN:
-		case Common::EVENT_LBUTTONUP: {
-			Common::Point pos = getMousePos();
-			_mouseX = pos.x;
-			_mouseY = pos.y;
-			keys = event.type == Common::EVENT_LBUTTONDOWN ? 199 : (200 | 0x800);
-			breakLoop = true;
-			} break;
-
-		default:
-			break;
-		}
-
-		if (_debugger->isAttached())
-			_debugger->onFrame();
-
-		if (breakLoop)
-			break;
-
-		_eventList.erase(_eventList.begin());
-	}
-
-	return _gui->processButtonList(buttonList, keys | 0x8000);
-}
-
 void KyraEngine_MR::makeCharFacingMouse() {
 	debugC(9, kDebugLevelAnimator, "KyraEngine_MR::makeCharFacingMouse()");
 	if (_mainCharacter.x1 > _mouseX)

Modified: scummvm/trunk/engines/kyra/kyra_mr.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_mr.h	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/kyra_mr.h	2008-05-04 15:56:28 UTC (rev 31868)
@@ -29,6 +29,7 @@
 #include "kyra/kyra_v2.h"
 #include "kyra/screen_mr.h"
 #include "kyra/script.h"
+#include "kyra/gui_mr.h"
 
 #include "common/hashmap.h"
 #include "common/list.h"
@@ -40,12 +41,9 @@
 class MainMenu;
 class WSAMovieV2;
 class TextDisplayer_MR;
-class Debugger_v3;
-class GUI_MR;
 struct Button;
 
 class KyraEngine_MR : public KyraEngine_v2 {
-friend class Debugger_v3;
 friend class TextDisplayer_MR;
 friend class GUI_MR;
 public:
@@ -54,6 +52,7 @@
 
 	Screen *screen() { return _screen; }
 	Screen_v2 *screen_v2() const { return _screen; }
+	GUI_v2 *gui_v2() const { return _gui; }
 	SoundDigital *soundDigital() { return _soundDigital; }
 	int language() const { return _lang; }
 
@@ -87,9 +86,6 @@
 
 	void delay(uint32 millis, bool update = false, bool isMainLoop = false);
 
-	// - Input
-	int checkInput(Button *buttonList, bool mainLoop = false);
-
 	// sound specific
 private:
 	void playMenuAudioFile();
@@ -567,7 +563,6 @@
 
 	// misc
 	TextDisplayer_MR *_text;
-	Debugger_v3 *_debugger;	
 	bool _wsaPlayingVQA;
 
 	// resource specific

Modified: scummvm/trunk/engines/kyra/kyra_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.cpp	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/kyra_v2.cpp	2008-05-04 15:56:28 UTC (rev 31868)
@@ -25,6 +25,7 @@
 
 #include "kyra/kyra_v2.h"
 #include "kyra/screen_v2.h"
+#include "kyra/debugger.h"
 
 namespace Kyra {
 
@@ -62,6 +63,8 @@
 	_chatObject = -1;
 
 	memset(_hiddenItems, -1, sizeof(_hiddenItems));
+
+	_debugger = 0;
 }
 
 KyraEngine_v2::~KyraEngine_v2() {
@@ -81,8 +84,72 @@
 		delete *i;
 	_opcodesAnimation.clear();
 
+	delete _debugger;
 }
 
+int KyraEngine_v2::checkInput(Button *buttonList, bool mainLoop) {
+	debugC(9, kDebugLevelMain, "KyraEngine_v2::checkInput(%p, %d)", (const void*)buttonList, mainLoop);
+	updateInput();
+
+	int keys = 0;
+
+	while (_eventList.size()) {
+		Common::Event event = *_eventList.begin();
+		bool breakLoop = false;
+
+		switch (event.type) {
+		case Common::EVENT_KEYDOWN:
+			if (event.kbd.keycode >= '1' && event.kbd.keycode <= '9' &&
+					(event.kbd.flags == Common::KBD_CTRL || event.kbd.flags == Common::KBD_ALT) && mainLoop) {
+				const char *saveLoadSlot = getSavegameFilename(9 - (event.kbd.keycode - '0') + 990);
+
+				if (event.kbd.flags == Common::KBD_CTRL) {
+					loadGame(saveLoadSlot);
+					_eventList.clear();
+					breakLoop = true;
+				} else {
+					char savegameName[14];
+					sprintf(savegameName, "Quicksave %d", event.kbd.keycode - '0');
+					saveGame(saveLoadSlot, savegameName);
+				}
+			} else if (event.kbd.flags == Common::KBD_CTRL) {
+				if (event.kbd.keycode == 'd')
+					_debugger->attach();
+			}
+			break;
+
+		case Common::EVENT_MOUSEMOVE: {
+			Common::Point pos = getMousePos();
+			_mouseX = pos.x;
+			_mouseY = pos.y;
+			screen()->updateScreen();
+			} break;
+
+		case Common::EVENT_LBUTTONDOWN:
+		case Common::EVENT_LBUTTONUP: {
+			Common::Point pos = getMousePos();
+			_mouseX = pos.x;
+			_mouseY = pos.y;
+			keys = event.type == Common::EVENT_LBUTTONDOWN ? 199 : (200 | 0x800);
+			breakLoop = true;
+			} break;
+
+		default:
+			break;
+		}
+
+		if (_debugger->isAttached())
+			_debugger->onFrame();
+
+		if (breakLoop)
+			break;
+
+		_eventList.erase(_eventList.begin());
+	}
+
+	return gui_v2()->processButtonList(buttonList, keys | 0x8000);
+}
+
 void KyraEngine_v2::updateInput() {
 	Common::Event event;
 

Modified: scummvm/trunk/engines/kyra/kyra_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.h	2008-05-04 15:37:41 UTC (rev 31867)
+++ scummvm/trunk/engines/kyra/kyra_v2.h	2008-05-04 15:56:28 UTC (rev 31868)
@@ -36,6 +36,7 @@
 namespace Kyra {
 
 class Screen_v2;
+class Debugger_v2;
 
 class KyraEngine_v2 : public KyraEngine {
 friend class Debugger_v2;
@@ -57,10 +58,12 @@
 	~KyraEngine_v2();
 
 	virtual Screen_v2 *screen_v2() const = 0;
+	virtual GUI *gui_v2() const = 0;
 
 	const EngineDesc &engineDesc() const { return _desc; }
 protected:
 	EngineDesc _desc;
+	Debugger_v2 *_debugger;
 
 	// run
 	bool _runFlag;
@@ -74,10 +77,10 @@
 	MainMenu *_menu;
 
 	// Input
-	virtual int checkInput(Button *buttonList, bool mainLoop = false) = 0;
 	virtual int inputSceneChange(int x, int y, int unk1, int unk2) = 0;
 
 	void updateInput();
+	int checkInput(Button *buttonList, bool mainLoop = false);
 	void removeInputTop();
 
 	int _mouseX, _mouseY;
@@ -403,6 +406,10 @@
 	int o2_setTimerCountdown(EMCState *script);
 	int o2_setVocHigh(EMCState *script);
 	int o2_getVocHigh(EMCState *script);
+
+	// save/load specific
+	virtual void saveGame(const char *fileName, const char *saveName) = 0;
+	virtual void loadGame(const char *fileName) = 0;
 };
 
 } // end of namespace Kyra


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list