[Scummvm-cvs-logs] CVS: scummvm/sky compact.cpp,1.34,1.35 compact.h,1.15,1.16 control.cpp,1.88,1.89 logic.cpp,1.151,1.152

Robert Göffringmann lavosspawn at users.sourceforge.net
Sun Feb 20 10:34:36 CET 2005


Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27224/sky

Modified Files:
	compact.cpp compact.h control.cpp logic.cpp 
Log Message:
fix missing speech animations. I introduced that bug when I moved the compacts out of the scummvm executable.

Index: compact.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/compact.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- compact.cpp	28 Jan 2005 10:40:59 -0000	1.34
+++ compact.cpp	20 Feb 2005 18:33:36 -0000	1.35
@@ -288,10 +288,9 @@
 
 uint16 *SkyCompact::getGrafixPtr(Compact *cpt) {
 	uint16 *gfxBase = (uint16*)fetchCpt(cpt->grafixProgId);
-	if ((gfxBase == NULL) && cpt->grafixProgPos) {
-		debug(1, "SkyCompact::getGrafixPtr: got offset for null ptr");
+	if (gfxBase == NULL)
 		return NULL;
-	}
+	
 	return gfxBase + cpt->grafixProgPos;
 }
 

Index: compact.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/compact.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- compact.h	1 Jan 2005 16:09:20 -0000	1.15
+++ compact.h	20 Feb 2005 18:33:36 -0000	1.16
@@ -33,7 +33,8 @@
 	CPT_FOSTER = 3,
 	CPT_MENU_BAR = 0x2E,
 	CPT_REICH_DOOR_20 = 0x30AB,
-	CPT_MOVE_LIST = 0xBD //0x8000
+	CPT_MOVE_LIST = 0xBD,
+	CPT_TALK_TABLE_LIST = 0xBC
 };
 
 enum CptTypeIds {
@@ -47,8 +48,6 @@
 	MAINLIST
 };
 
-#define TALKTABLE_LIST_ID 0x7000
-
 namespace Sky {
 
 class SkyCompact {

Index: control.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/control.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -d -r1.88 -r1.89
--- control.cpp	10 Jan 2005 22:18:37 -0000	1.88
+++ control.cpp	20 Feb 2005 18:33:36 -0000	1.89
@@ -1219,7 +1219,7 @@
 		else if (graphType == OG_COMPACT)
 			destCpt->grafixProgId = target;
 		else if (graphType == OG_TALKTABLE)
-			destCpt->grafixProgId = TALKTABLE_LIST_ID | target;
+			destCpt->grafixProgId = ((uint16*)_skyCompact->fetchCpt(CPT_TALK_TABLE_LIST))[target];
 		else if (graphType == OG_COMPACTELEM)
 			destCpt->grafixProgId = *(uint16*)_skyCompact->getCompactElem(destCpt, target);
 		else 

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/logic.cpp,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -d -r1.151 -r1.152
--- logic.cpp	1 Jan 2005 16:09:21 -0000	1.151
+++ logic.cpp	20 Feb 2005 18:33:36 -0000	1.152
@@ -2474,14 +2474,13 @@
 
 void Logic::stdSpeak(Compact *target, uint32 textNum, uint32 animNum, uint32 base) {
 
-	uint16 *animPtr;
-
 	animNum += target->megaSet / NEXT_MEGA_SET;
 	animNum &= 0xFF;
 	
-	target->grafixProgId = TALKTABLE_LIST_ID + animNum;
+	uint16 *talkTable = (uint16*)_skyCompact->fetchCpt(CPT_TALK_TABLE_LIST);
+	target->grafixProgId = talkTable[animNum];
 	target->grafixProgPos = 0;
-	animPtr = _skyCompact->getGrafixPtr(target);
+	uint16 *animPtr = _skyCompact->getGrafixPtr(target);
 	
 	if (animPtr) {
 		target->offset = *animPtr++;





More information about the Scummvm-git-logs mailing list