[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.180,2.181 script_v6he.cpp,2.89,2.90 script_v7he.cpp,2.39,2.40
Travis Howell
kirben at users.sourceforge.net
Mon Aug 23 02:20:00 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11413/scumm
Modified Files:
intern.h script_v6he.cpp script_v7he.cpp
Log Message:
More HE 7.2 changes
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.180
retrieving revision 2.181
diff -u -d -r2.180 -r2.181
--- intern.h 23 Aug 2004 08:41:22 -0000 2.180
+++ intern.h 23 Aug 2004 09:18:54 -0000 2.181
@@ -636,6 +636,7 @@
void o7_pickupObject();
void o7_arrayOps();
void o7_dimArray();
+ void o7_jumpToScript();
void o7_startScript();
void o7_startSound();
void o7_cursorCommand();
Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.89
retrieving revision 2.90
diff -u -d -r2.89 -r2.90
--- script_v6he.cpp 23 Aug 2004 05:23:58 -0000 2.89
+++ script_v6he.cpp 23 Aug 2004 09:18:55 -0000 2.90
@@ -1265,6 +1265,7 @@
_string[m].no_talk_anim = true;
break;
case 75: // SO_TEXTSTRING
+ case 194: // HE 7.2
switch (m) {
case 0:
actorTalk(_scriptPointer);
Index: script_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v7he.cpp,v
retrieving revision 2.39
retrieving revision 2.40
diff -u -d -r2.39 -r2.40
--- script_v7he.cpp 23 Aug 2004 08:49:04 -0000 2.39
+++ script_v7he.cpp 23 Aug 2004 09:18:55 -0000 2.40
@@ -318,7 +318,7 @@
OPCODE(o6_invalid),
/* D4 */
OPCODE(o6_shuffle),
- OPCODE(o6_jumpToScript),
+ OPCODE(o7_jumpToScript),
OPCODE(o6_band),
OPCODE(o6_bor),
/* D8 */
@@ -496,15 +496,20 @@
int retval;
// we pretend that we don't have .ini file
- len = resStrLen(_scriptPointer);
- _scriptPointer += len + 1;
- type = pop();
+ if (_heversion <= 71) {
+ len = resStrLen(_scriptPointer);
+ _scriptPointer += len + 1;
+ }
+
+ type = fetchScriptByte();
switch (type) {
case 1: // number
+ case 6: // HE 7.2
push(0);
break;
case 2: // string
+ case 7: // HE 7.2
defineArray(0, kStringArray, 0, 0);
retval = readVar(0);
writeArray(0, 0, 0, 0);
@@ -751,6 +756,21 @@
}
}
+void ScummEngine_v7he::o7_jumpToScript() {
+ if (_heversion <= 71) {
+ ScummEngine_v6::o6_jumpToScript();
+ return;
+ }
+ int args[16];
+ int script, flags;
+
+ getStackList(args, ARRAYSIZE(args));
+ script = pop();
+ flags = fetchScriptByte();
+ stopObjectCode();
+ runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args);
+}
+
void ScummEngine_v7he::o7_startScript() {
if (_heversion <= 71) {
ScummEngine_v6::o6_startScript();
More information about the Scummvm-git-logs
mailing list