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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun Apr 27 02:50:13 CEST 2008


Revision: 31749
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31749&view=rev
Author:   lordhoto
Date:     2008-04-26 17:50:13 -0700 (Sat, 26 Apr 2008)

Log Message:
-----------
- Implemented opcodes
  -> 57: o3_makeSecondChanceSave
  -> 98: o3_setDeathHandler
- Made game automatically reload second chance save on death for now

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/kyra_v3.cpp
    scummvm/trunk/engines/kyra/kyra_v3.h
    scummvm/trunk/engines/kyra/script_v3.cpp

Modified: scummvm/trunk/engines/kyra/kyra_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.cpp	2008-04-27 00:42:17 UTC (rev 31748)
+++ scummvm/trunk/engines/kyra/kyra_v3.cpp	2008-04-27 00:50:13 UTC (rev 31749)
@@ -999,7 +999,10 @@
 
 	_runFlag = true;
 	while (_runFlag && !_quitFlag) {
-		//XXX deathHandler
+		if (_deathHandler >= 0) {
+			// TODO: add menu etc.
+			loadGame(getSavegameFilename(999));
+		}
 		
 		if (_system->getMillis() >= _nextIdleAnim)
 			showIdleAnim();

Modified: scummvm/trunk/engines/kyra/kyra_v3.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-27 00:42:17 UTC (rev 31748)
+++ scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-27 00:50:13 UTC (rev 31749)
@@ -735,6 +735,7 @@
 	int o3_setMalcolmsMood(ScriptState *script);
 	int o3_delay(ScriptState *script);
 	int o3_updateScore(ScriptState *script);
+	int o3_makeSecondChanceSave(ScriptState *script);
 	int o3_setSceneFilename(ScriptState *script);
 	int o3_removeItemsFromScene(ScriptState *script);
 	int o3_disguiseMalcolm(ScriptState *script);
@@ -758,6 +759,7 @@
 	int o3_blockOutRegion(ScriptState *script);
 	int o3_showSceneStringsMessage(ScriptState *script);
 	int o3_getRand(ScriptState *script);
+	int o3_setDeathHandler(ScriptState *script);
 	int o3_waitForConfirmationClick(ScriptState *script);
 	int o3_defineRoomEntrance(ScriptState *script);
 	int o3_runTemporaryScript(ScriptState *script);

Modified: scummvm/trunk/engines/kyra/script_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-27 00:42:17 UTC (rev 31748)
+++ scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-27 00:50:13 UTC (rev 31749)
@@ -442,6 +442,12 @@
 	return updateScore(stackPos(0), stackPos(1)) ? 1 : 0;
 }
 
+int KyraEngine_v3::o3_makeSecondChanceSave(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_makeSecondChanceSave(%p) ()", (const void *)script);
+	saveGame(getSavegameFilename(999), "SECOND CHANCE SAVE GAME");
+	return 0;
+}
+
 int KyraEngine_v3::o3_setSceneFilename(ScriptState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setSceneFilename(%p) (%d, '%s')", (const void *)script, stackPos(0), stackPosString(1));
 	strcpy(_sceneList[stackPos(0)].filename1, stackPosString(1));
@@ -919,6 +925,12 @@
 	return _rnd.getRandomNumberRng(stackPos(0), stackPos(1));
 }
 
+int KyraEngine_v3::o3_setDeathHandler(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setDeathHandler(%p) (%d)", (const void *)script, stackPos(0));
+	_deathHandler = stackPos(0);
+	return 0;
+}
+
 int KyraEngine_v3::o3_waitForConfirmationClick(ScriptState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o2_waitForConfirmationClick(%p) (%d)", (const void *)script, stackPos(0));
 	resetSkipFlag();
@@ -1417,7 +1429,7 @@
 	Opcode(o3_delay);
 	// 0x38
 	Opcode(o3_updateScore);
-	OpcodeUnImpl();
+	Opcode(o3_makeSecondChanceSave);
 	Opcode(o3_setSceneFilename);
 	OpcodeUnImpl();
 	// 0x3c
@@ -1468,8 +1480,8 @@
 	// 0x60
 	Opcode(o3_getRand);
 	Opcode(o3_dummy);
+	Opcode(o3_setDeathHandler);
 	OpcodeUnImpl();
-	OpcodeUnImpl();
 	// 0x64
 	OpcodeUnImpl();
 	OpcodeUnImpl();


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