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

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Mon Jun 1 03:24:17 CEST 2009


Revision: 41092
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41092&view=rev
Author:   athrxx
Date:     2009-06-01 01:24:17 +0000 (Mon, 01 Jun 2009)

Log Message:
-----------
LOL: some more opcodes and some minor bug fixes

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/lol.h
    scummvm/trunk/engines/kyra/script_lol.cpp
    scummvm/trunk/engines/kyra/script_v1.cpp
    scummvm/trunk/engines/kyra/sound_lol.cpp

Modified: scummvm/trunk/engines/kyra/lol.h
===================================================================
--- scummvm/trunk/engines/kyra/lol.h	2009-06-01 00:42:53 UTC (rev 41091)
+++ scummvm/trunk/engines/kyra/lol.h	2009-06-01 01:24:17 UTC (rev 41092)
@@ -773,6 +773,7 @@
 	int olol_paletteFlash(EMCState *script);
 	int olol_disableControls(EMCState *script);
 	int olol_enableControls(EMCState *script);
+	int olol_shakeScene(EMCState *script);
 	int olol_gasExplosion(EMCState *script);
 	int olol_calcNewBlockPosition(EMCState *script);
 	int olol_fadeScene(EMCState *script);

Modified: scummvm/trunk/engines/kyra/script_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_lol.cpp	2009-06-01 00:42:53 UTC (rev 41091)
+++ scummvm/trunk/engines/kyra/script_lol.cpp	2009-06-01 01:24:17 UTC (rev 41092)
@@ -2067,6 +2067,12 @@
 	return gui_enableControls();
 }
 
+int LoLEngine::olol_shakeScene(EMCState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_shakeScene(%p)  (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
+	shakeScene(stackPos(0), stackPos(1), stackPos(2), 1);
+	return 1;
+}
+
 int LoLEngine::olol_gasExplosion(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_gasExplosion(%p) (%d)", (const void *)script, stackPos(0));
 	processGasExplosion(stackPos(0));
@@ -2738,7 +2744,7 @@
 
 	// 0xB4
 	Opcode(olol_enableControls);
-	OpcodeUnImpl();
+	Opcode(olol_shakeScene);
 	Opcode(olol_gasExplosion);
 	Opcode(olol_calcNewBlockPosition);
 

Modified: scummvm/trunk/engines/kyra/script_v1.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v1.cpp	2009-06-01 00:42:53 UTC (rev 41091)
+++ scummvm/trunk/engines/kyra/script_v1.cpp	2009-06-01 01:24:17 UTC (rev 41092)
@@ -45,8 +45,11 @@
 
 int KyraEngine_v1::o1_getRand(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v1::o1_getRand(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
-	assert(stackPos(0) < stackPos(1));
-	return _rnd.getRandomNumberRng(stackPos(0), stackPos(1));
+	int min = stackPos(0);
+	int max = stackPos(1);
+	if (max < min)
+		SWAP(min, max);
+	return _rnd.getRandomNumberRng(min, max);
 }
 
 int KyraEngine_v1::o1_hideMouse(EMCState *script) {

Modified: scummvm/trunk/engines/kyra/sound_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_lol.cpp	2009-06-01 00:42:53 UTC (rev 41091)
+++ scummvm/trunk/engines/kyra/sound_lol.cpp	2009-06-01 01:24:17 UTC (rev 41092)
@@ -79,7 +79,7 @@
 			snprintf(file2, sizeof(file2), "%s%c%c.%s", pattern1, '_', symbol, pattern2);
 			if (_sound->isVoicePresent(file1))
 				newSpeechList.push_back(_sound->getVoiceStream(file1));
-			if (_sound->isVoicePresent(file2))
+			else if (_sound->isVoicePresent(file2))
 				newSpeechList.push_back(_sound->getVoiceStream(file2));
 			else
 				break;


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