[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.142,2.143 script_v6he.cpp,2.22,2.23
Eugene Sandulenko
sev at users.sourceforge.net
Sun Feb 22 17:15:11 CET 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9675/scumm
Modified Files:
intern.h script_v6he.cpp
Log Message:
Added missing HE opcode (0xEB tellFile)
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.142
retrieving revision 2.143
diff -u -d -r2.142 -r2.143
--- intern.h 22 Feb 2004 16:08:13 -0000 2.142
+++ intern.h 23 Feb 2004 00:59:34 -0000 2.143
@@ -591,8 +591,10 @@
void o6_redimArray();
void o6_readINI();
void o6_unknownF9();
- void o6_kernelSetFunctions1(byte *addr);
- int o6_kernelGetFunctions1(byte *addr, int arg1, int arg2, int arg3, int agr4);
+ void o6_tellFile();
+ void kernelSetFunctions1(byte *addr);
+ int kernelGetFunctions1(byte *addr, int arg1, int arg2, int arg3, int agr4);
+ void seekWrapper(int slot, int offset, int mode);
};
class ScummEngine_v7 : public ScummEngine_v6 {
Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.22
retrieving revision 2.23
diff -u -d -r2.22 -r2.23
--- script_v6he.cpp 20 Feb 2004 03:29:39 -0000 2.22
+++ script_v6he.cpp 23 Feb 2004 00:59:34 -0000 2.23
@@ -340,7 +340,7 @@
OPCODE(o6_invalid),
OPCODE(o6_seekFile),
OPCODE(o6_redimArray),
- OPCODE(o6_invalid),
+ OPCODE(o6_tellFile),
/* EC */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
@@ -883,7 +883,7 @@
// Fatty Bear's Birthday Surprise
debug(0, "stub ScummEngine_v6he::o6_kernelSetFunctions(%d, %d, %d, %d, %d, %d)",
args[0], args[1], args[2], args[3], args[4], args[5]);
- //o6_kernelSetFunctions1(getResourceAddress(rtScreen, args[1]) + 6);
+ //kernelSetFunctions1(getResourceAddress(rtScreen, args[1]) + 6);
//if (args[5] >= args[3]) {
//}
break;
@@ -893,7 +893,7 @@
}
}
-void ScummEngine_v6he::o6_kernelSetFunctions1(byte *addr) {
+void ScummEngine_v6he::kernelSetFunctions1(byte *addr) {
// TODO
}
@@ -911,10 +911,10 @@
debug(0, "stub ScummEngine_v6he::o6_kernelGetFunctions(%d, %d, %d, %d, %d)",
args[0], args[1], args[2], args[3], args[4]);
writeVar(0, 0);
- defineArray(0, 3, 0, o6_kernelGetFunctions1(0, args[1], args[2], args[3], args[4]));
+ defineArray(0, 3, 0, kernelGetFunctions1(0, args[1], args[2], args[3], args[4]));
retval = readVar(0);
addr = getResourceAddress(rtString, retval);
- o6_kernelGetFunctions1(addr + 6, args[1], args[2], args[3], args[4]);
+ kernelGetFunctions1(addr + 6, args[1], args[2], args[3], args[4]);
push(retval);
break;
default:
@@ -922,7 +922,7 @@
}
}
-int ScummEngine_v6he::o6_kernelGetFunctions1(byte *addr, int arg1, int arg2, int arg3, int agr4) {
+int ScummEngine_v6he::kernelGetFunctions1(byte *addr, int arg1, int arg2, int arg3, int agr4) {
// TODO
return 0;
}
@@ -1132,23 +1132,57 @@
}
void ScummEngine_v6he::o6_seekFile() {
- int a, b, c;
- a = pop();
- b = pop();
- c = pop();
+ int mode, offset, slot;
+ mode = pop();
+ offset = pop();
+ slot = pop();
- switch (a) {
+ warning("stub o6_seekFile(%d, %d, %d)", slot, offset, mode);
+
+ switch (mode) {
case 1:
- //seekWrapper(c, b, 0, 0);
+ seekWrapper(slot, offset, 0);
break;
case 2:
- //seekWrapper(c, b, ?, 1);
+ seekWrapper(slot, offset, 1);
+ break;
+ case 3:
+ seekWrapper(slot, offset, 2);
break;
default:
break;
}
+}
- warning("stub o6_seekFile(%d, %d, %d)", a, b, c);
+void ScummEngine_v6he::seekWrapper(int slot, int offset, int mode) {
+ if (slot == 1)
+ return;
+
+ switch (mode) {
+ case 0:
+ // _hFileTable[slot].seek(offset, SEEK_SET);
+ break;
+ case 1:
+ // _hFileTable[slot].seek(offset, SEEK_CUR);
+ break;
+ case 2:
+ // _hFileTable[slot].seek(offset, SEEK_END);
+ break;
+ }
+}
+
+void ScummEngine_v6he::o6_tellFile() {
+ int slot = pop();
+
+ warning("stub o6_tellFile(%d)", slot);
+
+ if (slot == -1) {
+ push(0);
+ return;
+ }
+
+ // push(_hFileTable[slot].tell());
+ push(0);
}
void ScummEngine_v6he::o6_redimArray() {
More information about the Scummvm-git-logs
mailing list