[Scummvm-cvs-logs] SF.net SVN: scummvm: [31196] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Wed Mar 19 18:13:31 CET 2008
Revision: 31196
http://scummvm.svn.sourceforge.net/scummvm/?rev=31196&view=rev
Author: lordhoto
Date: 2008-03-19 10:13:31 -0700 (Wed, 19 Mar 2008)
Log Message:
-----------
- fixed numerous graphics glitches
-> fixed bug in o2_stopSceneAnimation
-> fixed bug in KyraEngine_v2::freeSceneAnims
Modified Paths:
--------------
scummvm/trunk/engines/kyra/animator_v2.cpp
scummvm/trunk/engines/kyra/scene_v2.cpp
scummvm/trunk/engines/kyra/script_v2.cpp
Modified: scummvm/trunk/engines/kyra/animator_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/animator_v2.cpp 2008-03-19 11:07:27 UTC (rev 31195)
+++ scummvm/trunk/engines/kyra/animator_v2.cpp 2008-03-19 17:13:31 UTC (rev 31196)
@@ -65,10 +65,10 @@
KyraEngine_v2::AnimObj *KyraEngine_v2::addToAnimListSorted(AnimObj *list, AnimObj *add) {
debugC(9, kDebugLevelAnimator, "KyraEngine_v2::addToAnimListSorted(%p, %p)", (const void*)list, (const void*)add);
- if (!list) {
- add->nextObject = 0;
+ add->nextObject = 0;
+
+ if (!list)
return add;
- }
if (add->yPos1 <= list->yPos1) {
add->nextObject = list;
Modified: scummvm/trunk/engines/kyra/scene_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/scene_v2.cpp 2008-03-19 11:07:27 UTC (rev 31195)
+++ scummvm/trunk/engines/kyra/scene_v2.cpp 2008-03-19 17:13:31 UTC (rev 31196)
@@ -742,6 +742,8 @@
void KyraEngine_v2::freeSceneAnims() {
debugC(9, kDebugLevelMain, "KyraEngine_v2::freeSceneAnims()");
+ for (int i = 0; i < ARRAYSIZE(_sceneAnims); ++i)
+ _sceneAnims[i].flags = 0;
Common::for_each(_sceneAnimMovie, _sceneAnimMovie+ARRAYSIZE(_sceneAnimMovie), Common::mem_fun(&WSAMovieV2::close));
}
Modified: scummvm/trunk/engines/kyra/script_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v2.cpp 2008-03-19 11:07:27 UTC (rev 31195)
+++ scummvm/trunk/engines/kyra/script_v2.cpp 2008-03-19 17:13:31 UTC (rev 31196)
@@ -1468,11 +1468,6 @@
obj->height = anim.height;
obj->width2 = obj->height2 = anim.specialSize;
- // be sure we don't have an the object allready in the anim list
- // else we get look ups in some places, the original doesn't do this
- // though
- _animList = deleteAnimListEntry(_animList, obj);
-
_animList = addToAnimListSorted(_animList, obj);
obj->needRefresh = 1;
obj->unk8 = 1;
@@ -1481,8 +1476,8 @@
int KyraEngine_v2::o2_stopSceneAnimation(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_stopSceneAnimation(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
- const int index = 1+stackPos(0);
- AnimObj &obj = _animObjects[index];
+ const int index = stackPos(0);
+ AnimObj &obj = _animObjects[1+index];
restorePage3();
obj.shapeIndex3 = 0xFFFF;
obj.animNum = 0xFFFF;
@@ -1491,7 +1486,7 @@
if (stackPos(1))
refreshAnimObjectsIfNeed();
obj.enabled = false;
- _animList = deleteAnimListEntry(_animList, &_animObjects[index]);
+ _animList = deleteAnimListEntry(_animList, &_animObjects[1+index]);
if (_sceneAnimMovie[index]->opened())
_sceneAnimMovie[index]->close();
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