[Scummvm-cvs-logs] SF.net SVN: scummvm:[43286] scummvm/branches/branch-1-0-0/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Tue Aug 11 20:23:12 CEST 2009


Revision: 43286
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43286&view=rev
Author:   lordhoto
Date:     2009-08-11 18:23:12 +0000 (Tue, 11 Aug 2009)

Log Message:
-----------
Backport of revisions 43283 to 43285 from trunk. This fixes bug #2835715 "KYRA: GFX glitch in Amiga version at the bridge" and another game load glitch, when Brandon was in the Will-O-Wisp form.

Modified Paths:
--------------
    scummvm/branches/branch-1-0-0/engines/kyra/saveload_lok.cpp
    scummvm/branches/branch-1-0-0/engines/kyra/script_lok.cpp
    scummvm/branches/branch-1-0-0/engines/kyra/sequences_lok.cpp

Modified: scummvm/branches/branch-1-0-0/engines/kyra/saveload_lok.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/kyra/saveload_lok.cpp	2009-08-11 18:17:53 UTC (rev 43285)
+++ scummvm/branches/branch-1-0-0/engines/kyra/saveload_lok.cpp	2009-08-11 18:23:12 UTC (rev 43286)
@@ -182,10 +182,27 @@
 	}
 
 	setHandItem(_itemInHand);
-	_animator->setBrandonAnimSeqSize(3, 48);
+
+	// Will-O-Wisp uses a different shape size than Brandon's usual
+	// shape, thus we need to setup the correct size depending on
+	// his state over here. This fixes graphics glitches when loading
+	// saves, where Brandon is transformed into the Will-O-Wisp.
+	if (_brandonStatusBit & 2)
+		_animator->setBrandonAnimSeqSize(5, 48);
+	else
+		_animator->setBrandonAnimSeqSize(3, 48);
+
 	redrawInventory(0);
-	_brandonPosX = brandonX;
-	_brandonPosY = brandonY;
+	
+	_brandonPosX = _brandonPosY = -1;
+	
+	// Unlike the original we did restore Brandon's position in the scene screen on load.
+	// This appereantly caused graphics gliches in some scenes. For example bug #2835715
+	// ("KYRA: GFX glitch in Amiga version at the bridge") is caused by this feature.
+	// Thus we disable that for now.
+	//_brandonPosX = brandonX;
+	//_brandonPosY = brandonY;
+
 	enterNewScene(_currentCharacter->sceneId, _currentCharacter->facing, 0, 0, 1);
 
 	_animator->animRefreshNPC(0);

Modified: scummvm/branches/branch-1-0-0/engines/kyra/script_lok.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/kyra/script_lok.cpp	2009-08-11 18:17:53 UTC (rev 43285)
+++ scummvm/branches/branch-1-0-0/engines/kyra/script_lok.cpp	2009-08-11 18:23:12 UTC (rev 43286)
@@ -1335,7 +1335,7 @@
 
 		updateInput();
 
-		int input = checkInput(_buttonList, false) & 0xFF;
+		int input = checkInput(0, false) & 0xFF;
 		removeInputTop();
 		if (input == 200)
 			break;

Modified: scummvm/branches/branch-1-0-0/engines/kyra/sequences_lok.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/kyra/sequences_lok.cpp	2009-08-11 18:17:53 UTC (rev 43285)
+++ scummvm/branches/branch-1-0-0/engines/kyra/sequences_lok.cpp	2009-08-11 18:23:12 UTC (rev 43286)
@@ -673,7 +673,7 @@
 		_animator->animRefreshNPC(0);
 		delayWithTicks(8);
 	}
-	_animator->setBrandonAnimSeqSize(4, 48);
+	_animator->setBrandonAnimSeqSize(3, 48);
 	_currentCharacter->currentAnimFrame = 7;
 	_animator->animRefreshNPC(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