[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.274,2.275 resource.cpp,1.277,1.278 script_v72he.cpp,2.137,2.138 script_v90he.cpp,2.59,2.60
Travis Howell
kirben at users.sourceforge.net
Thu Sep 30 02:36:07 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8299/scumm
Modified Files:
intern.h resource.cpp script_v72he.cpp script_v90he.cpp
Log Message:
Add some extra cases/opcodes for lost/smaller.
Add work around for paths
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.274
retrieving revision 2.275
diff -u -d -r2.274 -r2.275
--- intern.h 29 Sep 2004 21:45:52 -0000 2.274
+++ intern.h 30 Sep 2004 09:35:01 -0000 2.275
@@ -887,6 +887,8 @@
void o90_unknown29();
void o90_unknown2F();
void o90_mod();
+ void o90_unknown31();
+ void o90_unknown32();
void o90_unknown34();
void o90_unknown36();
void o90_unknown37();
Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.277
retrieving revision 1.278
diff -u -d -r1.277 -r1.278
--- resource.cpp 30 Sep 2004 07:26:21 -0000 1.277
+++ resource.cpp 30 Sep 2004 09:35:01 -0000 1.278
@@ -2423,6 +2423,8 @@
_numFlObject = 50;
}
+ printf("_numLocalScripts is %d\n", _numLocalScripts);
+
if (_shadowPaletteSize)
_shadowPalette = (byte *)calloc(_shadowPaletteSize, 1);
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.137
retrieving revision 2.138
diff -u -d -r2.137 -r2.138
--- script_v72he.cpp 30 Sep 2004 06:57:18 -0000 2.137
+++ script_v72he.cpp 30 Sep 2004 09:35:02 -0000 2.138
@@ -872,22 +872,32 @@
void ScummEngine_v72he::o72_getArrayDimSize() {
int subOp = fetchScriptByte();
int32 val1, val2;
- ArrayHeader *ah;
+ ArrayHeader *ah = (ArrayHeader *)getResourceAddress(rtString, readVar(fetchScriptWord()));
switch (subOp) {
case 1:
case 3:
- ah = (ArrayHeader *)getResourceAddress(rtString, readVar(fetchScriptWord()));
val1 = FROM_LE_32(ah->dim1end);
val2 = FROM_LE_32(ah->dim1start);
push(val1 - val2 + 1);
break;
case 2:
- ah = (ArrayHeader *)getResourceAddress(rtString, readVar(fetchScriptWord()));
val1 = FROM_LE_32(ah->dim2end);
val2 = FROM_LE_32(ah->dim2start);
push(val1 - val2 + 1);
break;
+ case 4:
+ push(FROM_LE_32(ah->dim1start));
+ break;
+ case 5:
+ push(FROM_LE_32(ah->dim1end));
+ break;
+ case 6:
+ push(FROM_LE_32(ah->dim2start));
+ break;
+ case 7:
+ push(FROM_LE_32(ah->dim2end));
+ break;
default:
error("o72_getArrayDimSize: default case %d", subOp);
}
@@ -1844,8 +1854,24 @@
break;
}
- debug(1,"File %s", filename + r);
-
+ debug(0,"Filename %s", filename + r);
+
+ // HACK: Convert paths
+ if (filename[0] == ':') {
+ int len = resStrLen(filename) + 1;
+ int i = 1, j = 0;
+ while(len--) {
+ if (filename[i] == ':')
+ filename[j] = '/';
+ else
+ filename[j] = filename[i];
+
+ i++;
+ j++;
+ }
+ debug(0,"Converted Filename %s", filename + r);
+ }
+
slot = -1;
for (l = 0; l < 17; l++) {
if (_hFileTable[l].isOpen() == false) {
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.59
retrieving revision 2.60
diff -u -d -r2.59 -r2.60
--- script_v90he.cpp 29 Sep 2004 11:58:28 -0000 2.59
+++ script_v90he.cpp 30 Sep 2004 09:35:02 -0000 2.60
@@ -106,8 +106,8 @@
OPCODE(o90_unknown2F),
/* 30 */
OPCODE(o90_mod),
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o90_unknown31),
+ OPCODE(o90_unknown32),
OPCODE(o6_invalid),
/* 34 */
OPCODE(o90_unknown34),
@@ -748,6 +748,9 @@
case 52: // HE 98+
pop();
break;
+ case 63: // HE 98+
+ pop();
+ break;
case 64:
pop();
break;
@@ -927,6 +930,16 @@
debug(1,"o90_unknown2F stub (%d)", subOp);
}
+void ScummEngine_v90he::o90_unknown31() {
+ int a = pop() << 2;
+ push(pop() << a);
+}
+
+void ScummEngine_v90he::o90_unknown32() {
+ int a = pop() << 2;
+ push(pop() >> a);
+}
+
void ScummEngine_v90he::o90_mod() {
int a = pop();
if (a == 0)
More information about the Scummvm-git-logs
mailing list