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

vinterstum at users.sourceforge.net vinterstum at users.sourceforge.net
Tue Mar 7 06:18:02 CET 2006


Revision: 21125
Author:   vinterstum
Date:     2006-03-07 06:16:52 -0800 (Tue, 07 Mar 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21125&view=rev

Log Message:
-----------
Added the proper death dialog, changed the sequence skipping code a bit to avoid
possible frame losses, and removed a (now) redundant call to showOverlay() in the
debugger.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/debugger.cpp
    scummvm/trunk/engines/kyra/gui.cpp
    scummvm/trunk/engines/kyra/kyra.cpp
    scummvm/trunk/engines/kyra/kyra.h
    scummvm/trunk/engines/kyra/script_v1.cpp
    scummvm/trunk/engines/kyra/staticres.cpp
Modified: scummvm/trunk/engines/kyra/debugger.cpp
===================================================================
--- scummvm/trunk/engines/kyra/debugger.cpp	2006-03-07 13:52:53 UTC (rev 21124)
+++ scummvm/trunk/engines/kyra/debugger.cpp	2006-03-07 14:16:52 UTC (rev 21125)
@@ -79,13 +79,10 @@
 				direction = 2;
 		}
 
-		// Dirty way of hiding the debug console while the room entry scripts are running,
-		// otherwise the graphics didn't update.
 		_vm->_system->hideOverlay();
 		_vm->_currentCharacter->facing = direction;
 		
 		_vm->enterNewScene(room, _vm->_currentCharacter->facing, 0, 0, 1);
-		_vm->_system->showOverlay();
 		_vm->_screen->_mouseLockCount = 0;
 
 		_detach_now = true;

Modified: scummvm/trunk/engines/kyra/gui.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui.cpp	2006-03-07 13:52:53 UTC (rev 21124)
+++ scummvm/trunk/engines/kyra/gui.cpp	2006-03-07 14:16:52 UTC (rev 21125)
@@ -414,22 +414,24 @@
 	_screen->savePageToDisk("SEENPAGE.TMP", 0);
 	gui_fadePalette();
 
-	calcCoords(_menu[0]);
-	calcCoords(_menu[1]);
-	calcCoords(_menu[2]);
-	calcCoords(_menu[3]);
+	for ( int i = 0; i < 5; i++)
+		calcCoords(_menu[i]);
 
 	_menuRestoreScreen = true;
 
+	_toplevelMenu = 0;
 	if (_menuDirectlyToLoad)
 		gui_loadGameMenu(0);
 	else {
-		initMenu(_menu[0]);
+		if (!caller)
+			_toplevelMenu = 4;
+
+		initMenu(_menu[_toplevelMenu]);
 		processAllMenuButtons();
 	}
 
 	while (_displayMenu) {
-		gui_processHighlights(_menu[0]);
+		gui_processHighlights(_menu[_toplevelMenu]);
 		processButtonList(_menuButtonList);
 		gui_getInput();
 	}
@@ -723,7 +725,7 @@
 	_screen->savePageToDisk("SEENPAGE.TMP", 0);
 
 	if (_cancelSubMenu) {
-		initMenu(_menu[0]);
+		initMenu(_menu[_toplevelMenu]);
 		processAllMenuButtons();
 	} else {
 		gui_restorePalette();
@@ -854,7 +856,7 @@
 	if (gui_quitConfirm("Are you sure you want to quit playing?"))
 		quitGame();
 	else {
-		initMenu(_menu[0]);
+		initMenu(_menu[_toplevelMenu]);
 		processAllMenuButtons();
 	}
 

Modified: scummvm/trunk/engines/kyra/kyra.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra.cpp	2006-03-07 13:52:53 UTC (rev 21124)
+++ scummvm/trunk/engines/kyra/kyra.cpp	2006-03-07 14:16:52 UTC (rev 21125)
@@ -668,10 +668,13 @@
 		}
 		
 		if (_deathHandler != 0xFF) {
-			// this is only used until the original gui is implemented
-			GUI::MessageDialog dialog("Brandon is dead! Game over!", "Quit");
-			dialog.runModal();
-			break;
+			_deathHandler = 0xFF;
+			snd_playWanderScoreViaMap(0, 1);
+			// This causes a failed assert in playWanderScoreViaMap.
+			//snd_playSoundEffect(49);
+			// Playing the track directly instead.
+			_sound->playTrack(29);
+			buttonMenuCallback(0);
 		}
 		
 		if (_brandonStatusBit & 2) {
@@ -699,6 +702,8 @@
 }
 
 void KyraEngine::quitGame() {
+	debugC(9, kDebugLevelMain, "KyraEngine::quitGame()");
+
 	res_unloadResources(RES_ALL);
 
 	for (int i = 0; i < ARRAYSIZE(_movieObjects); ++i) {
@@ -823,13 +828,15 @@
 
 void KyraEngine::delayWithTicks(int ticks) {
 	uint32 nextTime = _system->getMillis() + ticks * _tickLength;
-	while (_system->getMillis() < nextTime && !_skipFlag) {
+	while (_system->getMillis() < nextTime) {
 		_sprites->updateSceneAnims();
 		_animator->updateAllObjectShapes();
 		if (_currentCharacter->sceneId == 210) {
 			updateKyragemFading();
 			seq_playEnd();
 		}
+		if (_skipFlag)
+			break;
 	}
 }
 

Modified: scummvm/trunk/engines/kyra/kyra.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra.h	2006-03-07 13:52:53 UTC (rev 21124)
+++ scummvm/trunk/engines/kyra/kyra.h	2006-03-07 14:16:52 UTC (rev 21125)
@@ -817,6 +817,7 @@
 	bool _menuRestoreScreen;
 	bool _displaySubMenu;
 	bool _cancelSubMenu;
+	uint8 _toplevelMenu;
 	int _savegameOffset;
 	int _gameToLoad;
 	char _savegameName[31];

Modified: scummvm/trunk/engines/kyra/script_v1.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v1.cpp	2006-03-07 13:52:53 UTC (rev 21124)
+++ scummvm/trunk/engines/kyra/script_v1.cpp	2006-03-07 14:16:52 UTC (rev 21125)
@@ -484,9 +484,12 @@
 	_movieObjects[wsaIndex]->displayFrame(frame);
 	_animator->_updateScreen = true;
 	uint32 continueTime = waitTime * _tickLength + _system->getMillis();
-	while (_system->getMillis() < continueTime && !_skipFlag) {
+	while (_system->getMillis() < continueTime) {
 		_sprites->updateSceneAnims();
 		_animator->updateAllObjectShapes();
+		if (_skipFlag)
+			break;
+
 		if (continueTime - _system->getMillis() >= 10)
 			delay(10);
 	}
@@ -719,6 +722,9 @@
 	while (_system->getMillis() < continueTime) {
 		_sprites->updateSceneAnims();
 		_animator->updateAllObjectShapes();
+		if (_skipFlag)
+			break;
+
 		if (continueTime - _system->getMillis() >= 10)
 			delay(10);
 	}
@@ -752,9 +758,12 @@
 				_movieObjects[wsaIndex]->displayFrame(frame);
 				_animator->_updateScreen = true;
 				uint32 continueTime = waitTime * _tickLength + _system->getMillis();
-				while (_system->getMillis() < continueTime && !_skipFlag) {
+				while (_system->getMillis() < continueTime) {
 					_sprites->updateSceneAnims();
 					_animator->updateAllObjectShapes();
+					if (_skipFlag)
+						break;
+
 					if (continueTime - _system->getMillis() >= 10)
 						delay(10);
 				}
@@ -766,16 +775,19 @@
 				_movieObjects[wsaIndex]->displayFrame(frame);
 				_animator->_updateScreen = true;
 				uint32 continueTime = waitTime * _tickLength + _system->getMillis();
-				while (_system->getMillis() < continueTime && !_skipFlag) {
+				while (_system->getMillis() < continueTime) {
 					_sprites->updateSceneAnims();
 					_animator->updateAllObjectShapes();
+					if (_skipFlag)
+						break;
+
 					if (continueTime - _system->getMillis() >= 10)
 						delay(10);
 				}
 				--frame;
 			}
 		}
-		if (!_skipFlag)
+		if (_skipFlag)
 			break;
 		else
 			++curTime;

Modified: scummvm/trunk/engines/kyra/staticres.cpp
===================================================================
--- scummvm/trunk/engines/kyra/staticres.cpp	2006-03-07 13:52:53 UTC (rev 21124)
+++ scummvm/trunk/engines/kyra/staticres.cpp	2006-03-07 14:16:52 UTC (rev 21125)
@@ -946,11 +946,17 @@
 		{
 			{1, 0, 0, "Save", 24, 0, 44, 72, 15, 252, 253, -1, 255,
 				248, 249, 250, &KyraEngine::gui_savegameConfirm, -1, 0, 0, 0, 0, 0},
-		//	{1, 0, 0, "Cancel", 110, 0, 44, 72, 15, 252, 253, -1, 255,
-		//		248, 249, 250, /*&menu_cancelconfirmsave*/ 0, -1, 0, 0, 0, 0, 0},
 			{1, 0, 0, "Cancel", 192, 0, 44, 72, 15, 252, 253, -1, 255,
 				248, 249, 250, &KyraEngine::gui_cancelSubMenu, -1, 0, 0, 0, 0, 0}
 		}
+	},
+	{ -1, -1, 208, 76, 248, 249, 250, "Rest in peace, Brandon.", 251, -1, 8, 0, 2, -1, -1, -1, -1, 
+		{
+			{1, 0, 0, "Load a game", -1, -1, 30, 148, 15, 252, 253, 24, 0,
+				248, 249, 250, &KyraEngine::gui_loadGameMenu, -1, 0, 0, 0, 0, 0},
+			{1, 0, 0, "Quit playing", -1, -1, 47, 148, 15, 252, 253, 24, 0,
+				248, 249, 250, &KyraEngine::gui_quitPlaying, -1, 0, 0, 0, 0, 0}
+		}
 	}
 };
 


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