aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Hamm2002-02-14 22:51:01 +0000
committerVincent Hamm2002-02-14 22:51:01 +0000
commit3bf6462a2485035321d66e2e595054490a789111 (patch)
tree3ec2e4102d3b8551665027c743cec7dc0a8f9922
parent0ad2121e7422ead4475c98bcac4cc9ee6f061ed4 (diff)
downloadscummvm-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.cpp2
-rw-r--r--costume.cpp3
-rw-r--r--script_v1.cpp17
-rw-r--r--sound.cpp2
-rw-r--r--string.cpp4
5 files changed, 22 insertions, 6 deletions
diff --git a/boxes.cpp b/boxes.cpp
index 6466e00161..873dd78071 100644
--- a/boxes.cpp
+++ b/boxes.cpp
@@ -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);
}
diff --git a/sound.cpp b/sound.cpp
index b7ff534e3b..3c47089790 100644
--- a/sound.cpp
+++ b/sound.cpp
@@ -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;
}