[Scummvm-cvs-logs] CVS: scummvm/scumm string.cpp,1.117,1.118

Max Horn fingolfin at users.sourceforge.net
Sat May 24 16:40:02 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv20819

Modified Files:
	string.cpp 
Log Message:
simplified addIntToStack a bit *cough*; added experimental code for the message opcode 7 in V2 codes (see also patch #742851)

Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/string.cpp,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -d -r1.117 -r1.118
--- string.cpp	24 May 2003 22:13:00 -0000	1.117
+++ string.cpp	24 May 2003 23:39:40 -0000	1.118
@@ -583,6 +583,14 @@
 				if (_features & GF_AFTER_V8) {
 					addStringToStack(READ_LE_UINT32(ptr + num));
 					num += 4;
+				} else if (_features & GF_AFTER_V2) {
+					int var = READ_LE_UINT16(ptr + num);
+					num += 2;
+					char c;
+					while ((c = _scummVars[var])) {
+						if (c != '@')
+							*_msgPtrToAdd++ = c;
+					}
 				} else {
 					addStringToStack(READ_LE_UINT16(ptr + num));
 					num += 2;
@@ -625,27 +633,10 @@
 }
 
 void Scumm::addIntToStack(int var) {
-	int num, max;
-	byte flag;
+	int num;
 
 	num = readVar(var);
-	if (num < 0) {
-		*_msgPtrToAdd++ = '-';
-		num = -num;
-	}
-
-	flag = 0;
-	max = 10000;
-	do {
-		if (num >= max || flag) {
-			*_msgPtrToAdd++ = num / max + '0';
-			num -= (num / max) * max;
-			flag = 1;
-		}
-		max /= 10;
-		if (max == 1)
-			flag = 1;
-	} while (max);
+	_msgPtrToAdd += sprintf((char *)_msgPtrToAdd, "%d", num);
 }
 
 void Scumm::addVerbToStack(int var)





More information about the Scummvm-git-logs mailing list