[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