[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