[Scummvm-cvs-logs] CVS: scummvm/scumm script_v100he.cpp,NONE,2.1 intern.h,2.296,2.297 module.mk,1.42,1.43 script_v72he.cpp,2.159,2.160 script_v7he.cpp,2.101,2.102 script_v80he.cpp,2.52,2.53 scumm.cpp,1.249,1.250
Travis Howell
kirben at users.sourceforge.net
Sat Oct 9 07:41:07 CEST 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/saga isomap.cpp,1.13,1.14 render.cpp,1.35,1.36 scene.cpp,1.42,1.43 script.cpp,1.23,1.24 script.h,1.18,1.19 sdata.cpp,1.14,1.15 sthread.cpp,1.28,1.29 xref.txt,1.7,1.8
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm scumm.cpp,1.250,1.251
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11919/scumm
Modified Files:
intern.h module.mk script_v72he.cpp script_v7he.cpp
script_v80he.cpp scumm.cpp
Added Files:
script_v100he.cpp
Log Message:
Inital support for later HE games with altered opcode table.
--- NEW FILE: script_v100he.cpp ---
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2004 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v 2.1 2004/10/09 14:33:31 kirben Exp $
[...1444 lines suppressed...]
unkMessage2(_scriptPointer);
break;
}
_scriptPointer += resStrLen(_scriptPointer) + 1;
break;
case 91:
_string[m].loadDefault();
if (n)
_actorToPrintStrFor = pop();
break;
case 92:
_string[m].saveDefault();
break;
default:
error("decodeParseString: default case %d", b);
}
}
} // End of namespace Scumm
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.296
retrieving revision 2.297
diff -u -d -r2.296 -r2.297
--- intern.h 8 Oct 2004 22:58:49 -0000 2.296
+++ intern.h 9 Oct 2004 14:33:30 -0000 2.297
@@ -901,6 +901,46 @@
void o90_getActorAnimProgress();
};
+class ScummEngine_v100he : public ScummEngine_v90he {
+protected:
+ typedef void (ScummEngine_v100he::*OpcodeProcV100he)();
+ struct OpcodeEntryV100he {
+ OpcodeProcV100he proc;
+ const char *desc;
+ };
+
+ const OpcodeEntryV100he *_opcodesV100he;
+
+public:
+ ScummEngine_v100he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v90he(detector, syst, gs, md5sum) {}
+
+protected:
+ virtual void setupOpcodes();
+ virtual void executeOpcode(byte i);
+ virtual const char *getOpcodeDesc(byte i);
+
+ virtual void decodeParseString(int a, int b);
+
+ /* HE version 100 script opcodes */
+ void o100_actorOps();
+ void o100_arrayOps();
+ void o100_dim2dimArray();
+ void o100_dimArray();
+ void o100_drawObject();
+ void o100_unknown28();
+ void o100_resourceRoutines();
+ void o100_wizImageOps();
+ void o100_dim2dim2Array();
+ void o100_paletteOps();
+ void o100_roomOps();
+ void o100_startSound();
+ void o100_unknown26();
+ void o100_quitPauseRestart();
+ void o100_cursorCommand();
+ void o100_wait();
+ void o100_unknown25();
+};
+
class ScummEngine_v7 : public ScummEngine_v6 {
public:
ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v6(detector, syst, gs, md5sum) {}
Index: module.mk
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/module.mk,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- module.mk 20 Sep 2004 22:04:05 -0000 1.42
+++ module.mk 9 Oct 2004 14:33:30 -0000 1.43
@@ -43,6 +43,7 @@
scumm/script_v72he.o \
scumm/script_v80he.o \
scumm/script_v90he.o \
+ scumm/script_v100he.o \
scumm/script_v8.o \
scumm/scumm.o \
scumm/sound.o \
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.159
retrieving revision 2.160
diff -u -d -r2.159 -r2.160
--- script_v72he.cpp 8 Oct 2004 22:58:49 -0000 2.159
+++ script_v72he.cpp 9 Oct 2004 14:33:31 -0000 2.160
@@ -793,7 +793,7 @@
int timer = pop();
int cmd = fetchScriptByte();
- if (cmd == 10) {
+ if (cmd == 10 || cmd == 50) {
checkRange(3, 1, timer, "o72_getTimer: Timer %d out of range(%d)");
int diff = _system->getMillis() - _timers[timer];
push(diff);
@@ -806,7 +806,7 @@
int timer = pop();
int cmd = fetchScriptByte();
- if (cmd == 158) {
+ if (cmd == 158 || cmd == 61) {
checkRange(3, 1, timer, "o72_setTimer: Timer %d out of range(%d)");
_timers[timer] = _system->getMillis();
} else {
@@ -850,16 +850,19 @@
int state = 0, y = -1, x = -1;
switch (subOp) {
+ case 6:
case 62:
state = pop();
y = pop();
x = pop();
break;
+ case 7:
case 63:
state = pop();
if (state == 0)
state = 1;
break;
+ case 40:
case 65:
state = 1;
y = pop();
@@ -2337,12 +2340,14 @@
type = fetchScriptByte();
switch (type) {
+ case 43: // HE 100
case 6: // number
if (!strcmp((char *)option, "NoPrinting"))
push(1);
else
push(0);
break;
+ case 77: // HE 100
case 7: // string
writeVar(0, 0);
defineArray(0, kStringArray, 0, 0, 0, 0);
@@ -2363,11 +2368,13 @@
type = fetchScriptByte();
switch (type) {
+ case 43: // HE 100
case 6: // number
value = pop();
copyScriptString(option);
debug(1,"o72_writeINI: %s set to %d", option, value);
break;
+ case 77: // HE 100
case 7: // string
copyScriptString(string);
copyScriptString(option);
@@ -2472,6 +2479,7 @@
break;
default:
warning("o72_getResourceSize: default type %d", subOp);
+ push(0);
return;
}
Index: script_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v7he.cpp,v
retrieving revision 2.101
retrieving revision 2.102
diff -u -d -r2.101 -r2.102
--- script_v7he.cpp 5 Oct 2004 22:28:13 -0000 2.101
+++ script_v7he.cpp 9 Oct 2004 14:33:31 -0000 2.102
@@ -916,6 +916,8 @@
int fromId, toId;
switch (b) {
+ case 68: // HE 100
+ case 69: // HE 100
case 246:
case 248:
vert4y = pop();
@@ -928,9 +930,10 @@
vert1x = pop();
id = pop();
- polygonStore(id, (b == 248), vert1x, vert1y, vert2x, vert2y, vert3x, vert3y,
+ polygonStore(id, (b == 69 || b == 248), vert1x, vert1y, vert2x, vert2y, vert3x, vert3y,
vert4x, vert4y);
break;
+ case 28: // HE 100
case 247:
toId = pop();
fromId = pop();
Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.52
retrieving revision 2.53
diff -u -d -r2.52 -r2.53
--- script_v80he.cpp 9 Oct 2004 05:15:12 -0000 2.52
+++ script_v80he.cpp 9 Oct 2004 14:33:31 -0000 2.53
@@ -502,6 +502,9 @@
int args[16];
int subOp = fetchScriptByte();
+ if (_heversion == 100)
+ subOp += 5;
+
switch (subOp) {
case 0x13: // Loads cursors from another resource
a = pop();
Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.249
retrieving revision 1.250
diff -u -d -r1.249 -r1.250
--- scumm.cpp 8 Oct 2004 16:08:07 -0000 1.249
+++ scumm.cpp 9 Oct 2004 14:33:31 -0000 1.250
@@ -337,7 +337,7 @@
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
// Humongous Entertainment Scumm Version ?
- {"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_HEGAME, 6, 99, MDT_NONE,
+ {"ff5demo", "Freddi Fish 5: The Case of the Creature of Coral Cave (Demo)", GID_HEGAME, 6, 100, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"freddicove", "Freddi Fish 5: The Case of the Creature of Coral Cave", GID_HEGAME, 6, 99, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, 0, 0},
@@ -364,6 +364,14 @@
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"Football2002", "Backyard Football 2002 (Demo)", GID_HEGAME, 6, 99, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
+
+ // Humongous Entertainment Scumm Version ?
+ {"PuttTTT", "Putt-Putt Travels Through Time *updated)", GID_HEGAME, 6, 100, MDT_NONE,
+ GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
+ {"SamsFunShop", "Pajama Sam's One-Stop Fun Shop", GID_HEGAME, 6, 100, MDT_NONE,
+ GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
+
+
#endif
{NULL, NULL, 0, 0, 0, MDT_NONE, 0, 0, 0}
};
@@ -404,7 +412,7 @@
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"0ab19be9e2a3f6938226638b2a3744fe", "Putt-Putt Travels Through Time (updated Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
- {"3de99ef0523f8ca7958faa3afccd035a", "Spyfox 1: Dry Cereal (Updated)", GID_HEGAME, 6, 98, MDT_NONE,
+ {"3de99ef0523f8ca7958faa3afccd035a", "Spyfox 1: Dry Cereal (Updated)", GID_HEGAME, 6, 100, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
{"9d4ab3e0e1d1ebc6ba8a6a4c470ed184", "Spyfox 1: Dry Cereal (Updated Demo)", GID_HEGAME, 6, 98, MDT_NONE,
GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0},
@@ -2833,6 +2841,9 @@
case 6:
switch (game.heversion) {
#ifndef __PALM_OS__
+ case 100:
+ engine = new ScummEngine_v100he(detector, syst, game, md5sum);
+ break;
case 90:
case 98:
case 99:
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/saga isomap.cpp,1.13,1.14 render.cpp,1.35,1.36 scene.cpp,1.42,1.43 script.cpp,1.23,1.24 script.h,1.18,1.19 sdata.cpp,1.14,1.15 sthread.cpp,1.28,1.29 xref.txt,1.7,1.8
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm scumm.cpp,1.250,1.251
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list