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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Wed Jan 31 18:48:30 CET 2007


Revision: 25312
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25312&view=rev
Author:   lordhoto
Date:     2007-01-31 09:48:26 -0800 (Wed, 31 Jan 2007)

Log Message:
-----------
Fix for bug #1479856 ("KYRA1: gfx glitch when dying on bridge").

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/animator.cpp
    scummvm/trunk/engines/kyra/text.cpp

Modified: scummvm/trunk/engines/kyra/animator.cpp
===================================================================
--- scummvm/trunk/engines/kyra/animator.cpp	2007-01-31 16:23:34 UTC (rev 25311)
+++ scummvm/trunk/engines/kyra/animator.cpp	2007-01-31 17:48:26 UTC (rev 25312)
@@ -257,7 +257,7 @@
 			}
 			
 			// talking head functionallity
-			if (_vm->_talkingCharNum != -1) {
+			if (_vm->_talkingCharNum != -1 && (_vm->_currentCharacter->currentAnimFrame != 88 || curObject->index != 0)) {
 				const int16 baseAnimFrameTable1[] = { 0x11, 0x35, 0x59, 0x00, 0x00, 0x00 };
 				const int16 baseAnimFrameTable2[] = { 0x15, 0x39, 0x5D, 0x00, 0x00, 0x00 };
 				const int8 xOffsetTable1[] = { 2, 4, 0, 5, 2, 0, 0, 0 };

Modified: scummvm/trunk/engines/kyra/text.cpp
===================================================================
--- scummvm/trunk/engines/kyra/text.cpp	2007-01-31 16:23:34 UTC (rev 25311)
+++ scummvm/trunk/engines/kyra/text.cpp	2007-01-31 17:48:26 UTC (rev 25312)
@@ -153,7 +153,8 @@
 
 	if (convoInitialized != 0) {
 		_talkingCharNum = -1;
-		_currentCharacter->currentAnimFrame = 7;
+		if (_currentCharacter->currentAnimFrame != 88)
+			_currentCharacter->currentAnimFrame = 7;
 		_animator->animRefreshNPC(0);
 		_animator->updateAllObjectShapes();
 	}
@@ -167,7 +168,9 @@
 		_animator->animRefreshNPC(charNum);
 	}
 
-	_currentCharacter->currentAnimFrame = 7;
+	if (_currentCharacter->currentAnimFrame != 88)
+		_currentCharacter->currentAnimFrame = 7;
+
 	_animator->animRefreshNPC(0);
 	_animator->updateAllObjectShapes();
 }
@@ -178,10 +181,11 @@
 	if (charNum < 5 && charNum > 0) 
 		_currentChatPartnerBackupFrame = _characterList[charNum].currentAnimFrame;
 
-	if (_scaleMode != 0)
-		_currentCharacter->currentAnimFrame = 7;
-	else
+	if (_currentCharacter->currentAnimFrame != 88) {
 		_currentCharacter->currentAnimFrame = 16;
+		if (_scaleMode != 0)
+			_currentCharacter->currentAnimFrame = 7;
+	}
 
 	_animator->animRefreshNPC(0);
 	_animator->updateAllObjectShapes();
@@ -210,13 +214,17 @@
 }
 
 int KyraEngine::initCharacterChat(int8 charNum) {
+	int returnValue = 0;
+
 	if (_talkingCharNum == -1) {
+		returnValue = 1;
 		_talkingCharNum = 0;
-
-		if (_scaleMode != 0)
-			_currentCharacter->currentAnimFrame = 7;
-		else
+		
+		if (_currentCharacter->currentAnimFrame != 88) {
 			_currentCharacter->currentAnimFrame = 16;
+			if (_scaleMode != 0)
+				_currentCharacter->currentAnimFrame = 7;
+		}
 
 		_animator->animRefreshNPC(0);
 		_animator->updateAllObjectShapes();
@@ -236,7 +244,7 @@
 	_animator->preserveAnyChangedBackgrounds();
 	_charSayUnk3 = charNum;
 
-	return 1;
+	return returnValue;
 }
 
 void KyraEngine::characterSays(const char *chatStr, int8 charNum, int8 chatDuration) {


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