[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