[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.269,2.270 script.cpp,1.197,1.198 script_v72he.cpp,2.124,2.125 script_v90he.cpp,2.55,2.56
Travis Howell
kirben at users.sourceforge.net
Thu Sep 23 02:13:00 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12439/scumm
Modified Files:
intern.h script.cpp script_v72he.cpp script_v90he.cpp
Log Message:
nukeArrays seems fine now.
Fix dog regression
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.269
retrieving revision 2.270
diff -u -d -r2.269 -r2.270
--- intern.h 23 Sep 2004 05:02:15 -0000 2.269
+++ intern.h 23 Sep 2004 09:11:51 -0000 2.270
@@ -834,6 +834,7 @@
virtual const char *getOpcodeDesc(byte i);
/* HE version 90 script opcodes */
+ void o90_dup();
void o90_getLT();
void o90_getGT();
void o90_startLocalScript();
Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.197
retrieving revision 1.198
diff -u -d -r1.197 -r1.198
--- script.cpp 23 Sep 2004 05:02:15 -0000 1.197
+++ script.cpp 23 Sep 2004 09:11:51 -0000 1.198
@@ -354,10 +354,6 @@
if (_heversion < 60 || script == 0)
return;
- //FIXME Nukes wrong arrays
- if (_gameId == GID_FBEAR)
- return;
-
for (i = 1; i < _numArray; i++) {
if (_arraySlot[i] == script) {
nukeResource(rtString, i);
@@ -705,9 +701,9 @@
ss->cutsceneOverride = 0;
}
}
+ nukeArrays(ss->number);
ss->number = 0;
ss->status = ssDead;
- nukeArrays(_currentScript);
_currentScript = 0xFF;
}
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.124
retrieving revision 2.125
diff -u -d -r2.124 -r2.125
--- script_v72he.cpp 22 Sep 2004 12:13:15 -0000 2.124
+++ script_v72he.cpp 23 Sep 2004 09:11:52 -0000 2.125
@@ -2109,6 +2109,7 @@
void ScummEngine_v72he::o72_unknownF1() {
byte *addr, *addr2;
+ int i = 0;
int id = pop();
int id2 = pop();
@@ -2122,16 +2123,17 @@
error("o72_stringLen: Reference to zeroed array pointer (%d)", id);
while (*addr == *addr2) {
- if (addr == 0) {
+ if (*addr == 0) {
push(0);
return;
}
addr++;
addr2++;
+ i++;
}
- push (1);
- debug(1,"o70_unknownF1 stub (%d, %d)", id, id2);
+ push (i);
+ debug(1,"o70_unknownF1 stub (%d, %d, %d)", id, id2, i);
}
void ScummEngine_v72he::o72_checkGlobQueue() {
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.55
retrieving revision 2.56
diff -u -d -r2.55 -r2.56
--- script_v90he.cpp 22 Sep 2004 09:48:40 -0000 2.55
+++ script_v90he.cpp 23 Sep 2004 09:11:52 -0000 2.56
@@ -57,7 +57,7 @@
/* 08 */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o90_dup),
OPCODE(o6_wordArrayIndexedRead),
/* 0C */
OPCODE(o6_dup),
@@ -378,6 +378,17 @@
return _opcodesV90he[i].desc;
}
+void ScummEngine_v90he::o90_dup() {
+ int a, num;
+
+ num = fetchScriptWord();
+ for (int i = 0; i < num; i++) {
+ a = pop();
+ push(a);
+ push(a);
+ }
+}
+
void ScummEngine_v90he::o90_getLT() {
int a = pop();
int b = pop();
More information about the Scummvm-git-logs
mailing list