aboutsummaryrefslogtreecommitdiff
path: root/gob/inter_v1.cpp
diff options
context:
space:
mode:
authorSven Hesse2006-01-14 09:57:20 +0000
committerSven Hesse2006-01-14 09:57:20 +0000
commitf7a2981dfad9fa50a275af0eb678ade7dbbd73b6 (patch)
tree23807ebd80ff77d17c953c7889f5cdc0ff7fd344 /gob/inter_v1.cpp
parent319cd187c8dfecc870cd6a511d7e982a8e90e341 (diff)
downloadscummvm-rg350-f7a2981dfad9fa50a275af0eb678ade7dbbd73b6.tar.gz
scummvm-rg350-f7a2981dfad9fa50a275af0eb678ade7dbbd73b6.tar.bz2
scummvm-rg350-f7a2981dfad9fa50a275af0eb678ade7dbbd73b6.zip
Added copy protection skipping; Fixed Inter::getOpcodeGoblinDesc()
svn-id: r20019
Diffstat (limited to 'gob/inter_v1.cpp')
-rw-r--r--gob/inter_v1.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/gob/inter_v1.cpp b/gob/inter_v1.cpp
index 09a8eb7ebf..fc854006ff 100644
--- a/gob/inter_v1.cpp
+++ b/gob/inter_v1.cpp
@@ -1616,15 +1616,14 @@ const char *Inter_v1::getOpcodeDrawDesc(byte i) {
return _opcodesDrawV1[i].desc;
}
-const char *Inter_v1::getOpcodeFuncDesc(byte i, byte j)
-{
+const char *Inter_v1::getOpcodeFuncDesc(byte i, byte j) {
if ((i > 4) || (j > 15))
return "";
return _opcodesFuncV1[i*16 + j].desc;
}
-const char *Inter_v1::getOpcodeGoblinDesc(byte i) {
+const char *Inter_v1::getOpcodeGoblinDesc(int i) {
for (int j = 0; j < ARRAYSIZE(_goblinFuncLookUp); j++)
if (_goblinFuncLookUp[j][0] == i)
return _opcodesGoblinV1[_goblinFuncLookUp[j][1]].desc;
@@ -1633,7 +1632,21 @@ const char *Inter_v1::getOpcodeGoblinDesc(byte i) {
bool Inter_v1::o1_callSub(char &cmdCount, int16 &counter, int16 &retFlag) {
char *storedIP = _vm->_global->_inter_execPtr;
- _vm->_global->_inter_execPtr = (char *)_vm->_game->_totFileData + READ_LE_UINT16(_vm->_global->_inter_execPtr);
+
+// _vm->_global->_inter_execPtr = (char *)_vm->_game->_totFileData + READ_LE_UINT16(_vm->_global->_inter_execPtr);
+
+ uint16 offset = READ_LE_UINT16(_vm->_global->_inter_execPtr);
+ debug(5, "tot = \"%s\", offset = %d", _vm->_game->_curTotFile, offset);
+
+ // Skipping the copy protection screen in Gobliiins
+ if (!_vm->_copyProtection && (_vm->_features & GF_GOB1) && (offset == 3905)
+ && !scumm_stricmp(_vm->_game->_curTotFile, "intro.tot")) {
+ debug(2, "Skipping copy protection screen");
+ _vm->_global->_inter_execPtr += 2;
+ return false;
+ }
+
+ _vm->_global->_inter_execPtr = (char *)_vm->_game->_totFileData + offset;
if (counter == cmdCount && retFlag == 2)
return true;