[Scummvm-cvs-logs] SF.net SVN: scummvm: [31139] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Mar 16 14:31:19 CET 2008
Revision: 31139
http://scummvm.svn.sourceforge.net/scummvm/?rev=31139&view=rev
Author: lordhoto
Date: 2008-03-16 06:31:18 -0700 (Sun, 16 Mar 2008)
Log Message:
-----------
- Impelemented opcode 155: o2_stopSceneAnimation
- fixed crash while switching chapters
Modified Paths:
--------------
scummvm/trunk/engines/kyra/kyra_v2.cpp
scummvm/trunk/engines/kyra/kyra_v2.h
scummvm/trunk/engines/kyra/script.cpp
scummvm/trunk/engines/kyra/script_v2.cpp
Modified: scummvm/trunk/engines/kyra/kyra_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.cpp 2008-03-16 12:51:59 UTC (rev 31138)
+++ scummvm/trunk/engines/kyra/kyra_v2.cpp 2008-03-16 13:31:18 UTC (rev 31139)
@@ -799,10 +799,8 @@
update();
}
-
if (amount > 0 )
_system->delayMillis(amount > 10 ? 10 : amount);
-
} while (!_skipFlag && _system->getMillis() < start + amount && !_quitFlag);
}
@@ -2275,7 +2273,7 @@
Opcode(o2_customChat),
Opcode(o2_customChatFinish),
OpcodeUnImpl(),
- OpcodeUnImpl(),
+ Opcode(o2_stopSceneAnimation),
// 0x9c
OpcodeUnImpl(),
OpcodeUnImpl(),
Modified: scummvm/trunk/engines/kyra/kyra_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.h 2008-03-16 12:51:59 UTC (rev 31138)
+++ scummvm/trunk/engines/kyra/kyra_v2.h 2008-03-16 13:31:18 UTC (rev 31139)
@@ -1031,6 +1031,7 @@
int o2_mushroomEffect(ScriptState *script);
int o2_customChat(ScriptState *script);
int o2_customChatFinish(ScriptState *script);
+ int o2_stopSceneAnimation(ScriptState *script);
int o2_processPaletteIndex(ScriptState *script);
int o2_getBoolFromStack(ScriptState *script);
int o2_setVocHigh(ScriptState *script);
Modified: scummvm/trunk/engines/kyra/script.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script.cpp 2008-03-16 12:51:59 UTC (rev 31138)
+++ scummvm/trunk/engines/kyra/script.cpp 2008-03-16 13:31:18 UTC (rev 31139)
@@ -72,6 +72,8 @@
return false;
}
+ memset(scriptData, 0, sizeof(ScriptData));
+
uint32 formBlockSize = file.getFORMBlockSize();
if (formBlockSize == (uint32)-1) {
error("No FORM chunk found in file: '%s'", filename);
Modified: scummvm/trunk/engines/kyra/script_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v2.cpp 2008-03-16 12:51:59 UTC (rev 31138)
+++ scummvm/trunk/engines/kyra/script_v2.cpp 2008-03-16 13:31:18 UTC (rev 31139)
@@ -1100,6 +1100,26 @@
return 0;
}
+int KyraEngine_v2::o2_stopSceneAnimation(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_stopSceneAnimation(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
+ const int index = 1+stackPos(0);
+ AnimObj &obj = _animObjects[index];
+ restorePage3();
+ obj.shapeIndex3 = 0xFFFF;
+ obj.animNum = 0xFFFF;
+ obj.needRefresh = 1;
+ obj.unk8 = 1;
+ if (stackPos(1))
+ refreshAnimObjectsIfNeed();
+ obj.enabled = false;
+ _animList = deleteAnimListEntry(_animList, &_animObjects[index]);
+
+ if (_sceneAnimMovie[index]->opened())
+ _sceneAnimMovie[index]->close();
+
+ return 0;
+}
+
int KyraEngine_v2::o2_processPaletteIndex(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "o2_processPaletteIndex(%p) (%d, %d, %d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5));
uint8 *palette = _screen->getPalette(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