diff options
author | Vincent Hamm | 2002-02-14 22:51:01 +0000 |
---|---|---|
committer | Vincent Hamm | 2002-02-14 22:51:01 +0000 |
commit | 3bf6462a2485035321d66e2e595054490a789111 (patch) | |
tree | 3ec2e4102d3b8551665027c743cec7dc0a8f9922 | |
parent | 0ad2121e7422ead4475c98bcac4cc9ee6f061ed4 (diff) | |
download | scummvm-rg350-3bf6462a2485035321d66e2e595054490a789111.tar.gz scummvm-rg350-3bf6462a2485035321d66e2e595054490a789111.tar.bz2 scummvm-rg350-3bf6462a2485035321d66e2e595054490a789111.zip |
Indy3 256 now boot. Disabled costumes for zak256 and indy3_256 since they can crash sdl
svn-id: r3585
-rw-r--r-- | boxes.cpp | 2 | ||||
-rw-r--r-- | costume.cpp | 3 | ||||
-rw-r--r-- | script_v1.cpp | 17 | ||||
-rw-r--r-- | sound.cpp | 2 | ||||
-rw-r--r-- | string.cpp | 4 |
5 files changed, 22 insertions, 6 deletions
@@ -46,7 +46,7 @@ Box *Scumm::getBoxBaseAddr(int box) { byte *ptr = getResourceAddress(rtMatrix, 2); checkRange(ptr[0]-1, 0, box, "Illegal box %d"); if(_features & GF_SMALL_HEADER) { - if (_gameId == GID_ZAK256) + if (_features & GF_OLD256) return (Box*)(ptr + box*(SIZEOF_BOX-2) + 1); else return (Box*)(ptr + box*SIZEOF_BOX + 1); diff --git a/costume.cpp b/costume.cpp index 23d677ec0b..6f22ca8190 100644 --- a/costume.cpp +++ b/costume.cpp @@ -786,6 +786,9 @@ void Scumm::cost_decodeData(Actor *a, int frame, uint usemask) { int anim; LoadedCostume lc; + if(_features & GF_OLD256) /*FIXME*/ + return; + loadCostume(&lc, a->costume); anim = cost_frameToAnim(a, frame); diff --git a/script_v1.cpp b/script_v1.cpp index 994280fa53..818cc97d19 100644 --- a/script_v1.cpp +++ b/script_v1.cpp @@ -1294,7 +1294,7 @@ void Scumm::o5_resourceRoutines() { _opcode = fetchScriptByte(); if (_opcode != 17) res = getVarOrDirectByte(0x80); - if(_gameId == GID_ZAK256) /*FIXME: find a better way to implement this */ + if(_features & GF_OLD256) /*FIXME: find a better way to implement this */ _opcode&=0x3F; switch(_opcode&0x1F) { case 1: /* load script */ @@ -1307,7 +1307,7 @@ void Scumm::o5_resourceRoutines() { ensureResourceLoaded(rtCostume, res); break; case 4: /* load room */ - if(_gameId == GID_ZAK256) + if(_features & GF_OLD256) ensureResourceLoaded(rtScript, res & 0x7F); /*FIXME: missing stuff...*/ else ensureResourceLoaded(rtRoom, res); @@ -1382,6 +1382,13 @@ void Scumm::o5_roomOps() { { a = getVarOrDirectByte(0x80); b = getVarOrDirectByte(0x40); + if(_gameId == GID_INDY3_256 && a == 16 && b == 0) /* FIXME*/ + { + fetchScriptByte(); + fetchScriptByte(); + fetchScriptByte(); + return; + } } _opcode = fetchScriptByte(); @@ -1677,6 +1684,12 @@ void Scumm::o5_startObject() { obj = getVarOrDirectWord(0x80); script = getVarOrDirectByte(0x40); + if(_gameId == GID_INDY3_256) /*FIXME*/ + { + fetchScriptByte(); + return; + } + getWordVararg(data); runVerbCode(obj, script, 0, 0, data); } @@ -90,7 +90,7 @@ void Scumm::processSoundQues() { void Scumm::playSound(int sound) { SoundEngine *se = (SoundEngine*)_soundEngine; - if (_gameId == GID_ZAK256) return; /* FIXME */ + if (_features & GF_OLD256) return; /* FIXME */ if (se) { getResourceAddress(rtSound, sound); diff --git a/string.cpp b/string.cpp index 62e9044421..37e42d0eb1 100644 --- a/string.cpp +++ b/string.cpp @@ -285,7 +285,7 @@ void Scumm::CHARSET_1() { } buffer = charset._buffer + charset._bufPos; - if(_gameId==GID_ZAK256) { + if(_features & GF_OLD256) { debug(1, "CHARSET_1: %s", buffer); return; } @@ -446,7 +446,7 @@ void Scumm::drawString(int a) { _msgPtrToAdd++; } if(space) *space='\0'; - if(_gameId==GID_ZAK256) { + if(_features & GF_OLD256) { debug(1, "DRAWSTRING: %s", buf); return; } |