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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Fri Jul 23 01:16:34 CEST 2010


Revision: 51179
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51179&view=rev
Author:   lordhoto
Date:     2010-07-22 23:16:33 +0000 (Thu, 22 Jul 2010)

Log Message:
-----------
KYRA: Implement missing dialog code.

This finally enables animations for all of Darm's talk sequences.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/kyra_lok.cpp
    scummvm/trunk/engines/kyra/kyra_lok.h
    scummvm/trunk/engines/kyra/text_lok.cpp

Modified: scummvm/trunk/engines/kyra/kyra_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_lok.cpp	2010-07-22 22:13:28 UTC (rev 51178)
+++ scummvm/trunk/engines/kyra/kyra_lok.cpp	2010-07-22 23:16:33 UTC (rev 51179)
@@ -234,6 +234,7 @@
 
 	_talkingCharNum = -1;
 	_charSayUnk3 = -1;
+	_disabledTalkAnimObject = _enabledTalkAnimObject = 0;
 	memset(_currSentenceColor, 0, 3);
 	_startSentencePalIndex = -1;
 	_fadeText = false;

Modified: scummvm/trunk/engines/kyra/kyra_lok.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_lok.h	2010-07-22 22:13:28 UTC (rev 51178)
+++ scummvm/trunk/engines/kyra/kyra_lok.h	2010-07-22 23:16:33 UTC (rev 51179)
@@ -473,6 +473,8 @@
 	int8 _charSayUnk2;
 	int8 _charSayUnk3;
 	int8 _currHeadShape;
+	int8 _disabledTalkAnimObject;
+	int8 _enabledTalkAnimObject;
 	uint8 _currSentenceColor[3];
 	int8 _startSentencePalIndex;
 	bool _fadeText;

Modified: scummvm/trunk/engines/kyra/text_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/text_lok.cpp	2010-07-22 22:13:28 UTC (rev 51178)
+++ scummvm/trunk/engines/kyra/text_lok.cpp	2010-07-22 23:16:33 UTC (rev 51179)
@@ -137,8 +137,11 @@
 	_charSayUnk3 = -1;
 
 	if (charNum > 4 && charNum < 11) {
-		//TODO: weird _game_inventory stuff here
-		//warning("STUB: endCharacterChat() for high charnums");
+		_animator->sprites()[_disabledTalkAnimObject].active = 1;
+		_sprites->_anims[_disabledTalkAnimObject].play = true;
+
+		_animator->sprites()[_enabledTalkAnimObject].active = 0;
+		_sprites->_anims[_enabledTalkAnimObject].play = false;
 	}
 
 	if (convoInitialized != 0) {
@@ -225,8 +228,19 @@
 	_animator->restoreAllObjectBackgrounds();
 
 	if (charNum > 4 && charNum < 11) {
-		// TODO: Fill in weird _game_inventory stuff here
-		//warning("STUB: initCharacterChat() for high charnums");
+		const uint8 animDisableTable[] = { 3, 1, 1, 5, 0, 6 };
+		const uint8 animEnableTable[] = { 4, 2, 5, 6, 1, 7 };
+
+		_disabledTalkAnimObject = animDisableTable[charNum - 5];
+		_enabledTalkAnimObject = animEnableTable[charNum - 5];
+
+		_animator->sprites()[_disabledTalkAnimObject].active = 0;
+		_sprites->_anims[_disabledTalkAnimObject].play = false;
+
+		_animator->sprites()[_enabledTalkAnimObject].active = 1;
+		_sprites->_anims[_enabledTalkAnimObject].play = true;
+
+		_charSayUnk2 = _enabledTalkAnimObject;
 	}
 
 	_animator->flagAllObjectsForRefresh();


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