[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.324,1.325 akos.cpp,1.210,1.211 intern.h,2.398,2.399 script_v100he.cpp,2.93,2.94 script_v72he.cpp,2.219,2.220 script_v80he.cpp,2.78,2.79 script_v90he.cpp,2.188,2.189

kirben kirben at users.sourceforge.net
Thu Mar 17 02:56:46 CET 2005


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

Modified Files:
	actor.cpp akos.cpp intern.h script_v100he.cpp script_v72he.cpp 
	script_v80he.cpp script_v90he.cpp 
Log Message:

HE72+ games use slightly different code for subtitle color.


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.324
retrieving revision 1.325
diff -u -d -r1.324 -r1.325
--- actor.cpp	16 Mar 2005 03:01:12 -0000	1.324
+++ actor.cpp	17 Mar 2005 10:53:28 -0000	1.325
@@ -1278,7 +1278,7 @@
 			return;
 	}
 
-	if (getTalkingActor() > 0x7F) {
+	if (_heversion >= 72 || getTalkingActor() > 0x7F) {
 		_charsetColor = (byte)_string[0].color;
 	} else {
 		a = derefActor(getTalkingActor(), "actorTalk(2)");

Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/akos.cpp,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -d -r1.210 -r1.211
--- akos.cpp	15 Mar 2005 21:48:01 -0000	1.210
+++ akos.cpp	17 Mar 2005 10:53:28 -0000	1.211
@@ -1681,6 +1681,7 @@
 				a->_talkColor = a->_heTalkQueue[param_1].color;
 
 				_string[0].loadDefault();
+				_string[0].color = a->_talkColor;
 				actorTalk(a->_heTalkQueue[param_1].sentence);
 
 			} else if (param_1 != 0) {

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.398
retrieving revision 2.399
diff -u -d -r2.398 -r2.399
--- intern.h	17 Mar 2005 09:42:31 -0000	2.398
+++ intern.h	17 Mar 2005 10:53:28 -0000	2.399
@@ -779,6 +779,8 @@
 	void o72_actorOps();
 	void o72_verbOps();
 	void o72_arrayOps();
+	void o72_talkActor();
+	void o72_talkEgo();
 	void o72_dimArray();
 	void o72_dim2dimArray();
 	void o72_traceStatus();

Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.93
retrieving revision 2.94
diff -u -d -r2.93 -r2.94
--- script_v100he.cpp	17 Mar 2005 09:42:31 -0000	2.93
+++ script_v100he.cpp	17 Mar 2005 10:53:28 -0000	2.94
@@ -174,9 +174,9 @@
 		OPCODE(o100_roomOps),
 		OPCODE(o6_printActor),
 		OPCODE(o6_printEgo),
-		OPCODE(o6_talkActor),
+		OPCODE(o72_talkActor),
 		/* 6C */
-		OPCODE(o6_talkEgo),
+		OPCODE(o72_talkEgo),
 		OPCODE(o6_invalid),
 		OPCODE(o60_seekFilePos),
 		OPCODE(o6_setBoxFlags),

Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.219
retrieving revision 2.220
diff -u -d -r2.219 -r2.220
--- script_v72he.cpp	11 Mar 2005 01:10:00 -0000	2.219
+++ script_v72he.cpp	17 Mar 2005 10:53:29 -0000	2.220
@@ -276,8 +276,8 @@
 		/* B8 */
 		OPCODE(o6_printActor),
 		OPCODE(o6_printEgo),
-		OPCODE(o6_talkActor),
-		OPCODE(o6_talkEgo),
+		OPCODE(o72_talkActor),
+		OPCODE(o72_talkEgo),
 		/* BC */
 		OPCODE(o72_dimArray),
 		OPCODE(o6_stopObjectCode),
@@ -1457,6 +1457,24 @@
 	}
 }
 
+void ScummEngine_v72he::o72_talkActor() {
+	Actor *a;
+
+	_actorToPrintStrFor = pop();
+	a = derefActorSafe(_actorToPrintStrFor, "o72_talkActor");
+
+	_string[0].loadDefault();
+	_string[0].color = a->_talkColor;
+	actorTalk(_scriptPointer);
+
+	_scriptPointer += resStrLen(_scriptPointer) + 1;
+}
+
+void ScummEngine_v72he::o72_talkEgo() {
+	push(VAR(VAR_EGO));
+	o6_talkActor();
+}
+
 void ScummEngine_v72he::o72_dimArray() {
 	int data;
 	int type = fetchScriptByte();
@@ -2039,6 +2057,7 @@
 }
 
 void ScummEngine_v72he::decodeParseString(int m, int n) {
+	Actor *a;
 	int i, colors, size;
 	int args[31];
 	byte name[1024];
@@ -2106,8 +2125,11 @@
 		break;
 	case 0xFE:
 		_string[m].loadDefault();
-		if (n)
+		if (n) {
 			_actorToPrintStrFor = pop();
+			a = derefActorSafe(_actorToPrintStrFor, "decodeParseString");
+			_string[0].color = a->_talkColor;
+		}
 		break;
 	case 0xFF:
 		_string[m].saveDefault();

Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.78
retrieving revision 2.79
diff -u -d -r2.78 -r2.79
--- script_v80he.cpp	12 Mar 2005 04:05:25 -0000	2.78
+++ script_v80he.cpp	17 Mar 2005 10:53:29 -0000	2.79
@@ -273,8 +273,8 @@
 		/* B8 */
 		OPCODE(o6_printActor),
 		OPCODE(o6_printEgo),
-		OPCODE(o6_talkActor),
-		OPCODE(o6_talkEgo),
+		OPCODE(o72_talkActor),
+		OPCODE(o72_talkEgo),
 		/* BC */
 		OPCODE(o72_dimArray),
 		OPCODE(o6_stopObjectCode),

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.188
retrieving revision 2.189
diff -u -d -r2.188 -r2.189
--- script_v90he.cpp	17 Mar 2005 09:42:31 -0000	2.188
+++ script_v90he.cpp	17 Mar 2005 10:53:29 -0000	2.189
@@ -273,8 +273,8 @@
 		/* B8 */
 		OPCODE(o6_printActor),
 		OPCODE(o6_printEgo),
-		OPCODE(o6_talkActor),
-		OPCODE(o6_talkEgo),
+		OPCODE(o72_talkActor),
+		OPCODE(o72_talkEgo),
 		/* BC */
 		OPCODE(o72_dimArray),
 		OPCODE(o6_stopObjectCode),





More information about the Scummvm-git-logs mailing list