aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-05-15 01:03:31 +0000
committerTravis Howell2005-05-15 01:03:31 +0000
commit380f187eeba1f7e00bcf62183db26f72157aa2a9 (patch)
treed7c12e612988569fdfcb652929ccafa040b854ed
parent80ee8188d3d7fdd43c36a47fa68283ee78f9e8dd (diff)
downloadscummvm-rg350-380f187eeba1f7e00bcf62183db26f72157aa2a9.tar.gz
scummvm-rg350-380f187eeba1f7e00bcf62183db26f72157aa2a9.tar.bz2
scummvm-rg350-380f187eeba1f7e00bcf62183db26f72157aa2a9.zip
Disabling SCUMM7/8 games should disable HE61 games.
Split akos_processQueue() in HE61+ and SCUMM7+ versions. svn-id: r18101
-rwxr-xr-xconfigure7
-rw-r--r--scumm/actor.cpp4
-rw-r--r--scumm/akos.cpp182
-rw-r--r--scumm/akos.h2
-rw-r--r--scumm/bomp.cpp105
-rw-r--r--scumm/intern.h4
-rw-r--r--scumm/module.mk4
-rw-r--r--scumm/scumm.cpp8
-rw-r--r--scumm/scumm.h2
9 files changed, 166 insertions, 152 deletions
diff --git a/configure b/configure
index 6c313ad7ee..af84d7b24e 100755
--- a/configure
+++ b/configure
@@ -432,13 +432,6 @@ Try \`$0 --help' for more information." >&2
esac;
done;
-if test "$_build_he" = yes ; then
- if test "$_build_scumm_7_8" != yes ; then
- echo "error: you cannot enable HE games with SCUMM v7 & v8 disabled"
- exit 1
- fi
-fi
-
CXXFLAGS="$CXXFLAGS $DEBFLAGS"
case $_host in
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index d077cf867e..a9e49addd9 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -1005,10 +1005,8 @@ void ScummEngine::processActors() {
a->animateCostume();
}
-#ifndef DISABLE_SCUMM_7_8
if (_features & GF_NEW_COSTUMES)
akos_processQueue();
-#endif
}
#ifndef DISABLE_HE
@@ -1442,7 +1440,6 @@ void Actor::setActorCostume(int c) {
_costumeNeedsInit = true;
if (_vm->_features & GF_NEW_COSTUMES) {
-#ifndef DISABLE_SCUMM_7_8
memset(_animVariable, 0, sizeof(_animVariable));
if (_vm->_heversion >= 71)
@@ -1462,7 +1459,6 @@ void Actor::setActorCostume(int c) {
}
startAnimActor(_initFrame);
}
-#endif
} else {
if (_visible) {
hideActor();
diff --git a/scumm/akos.cpp b/scumm/akos.cpp
index cee334f063..d09b5de4f2 100644
--- a/scumm/akos.cpp
+++ b/scumm/akos.cpp
@@ -27,6 +27,7 @@
#include "scumm/bomp.h"
#include "scumm/imuse.h"
#include "scumm/imuse_digi/dimuse.h"
+#include "scumm/intern.h"
#include "scumm/sound.h"
#include "scumm/util.h"
#include "scumm/wiz_he.h"
@@ -592,6 +593,7 @@ void AkosRenderer::codec1_genericDecode(Codec1 &v1) {
#ifdef __PALM_OS__
const byte *oldScaleTable;
+const byte *defaultScaleTable;
#else
const byte oldScaleTable[256] = {
0xFF, 0xFD, 0x7D, 0xBD, 0x3D, 0xDD, 0x5D, 0x9D,
@@ -627,6 +629,107 @@ const byte oldScaleTable[256] = {
0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE
};
+
+const byte defaultScaleTable[768] = {
+ 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
+ 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
+ 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
+ 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
+ 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
+ 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
+ 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
+ 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
+ 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
+ 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
+ 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
+ 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
+ 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
+ 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
+ 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
+ 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
+ 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
+ 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
+ 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
+ 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
+ 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
+ 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
+ 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
+ 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
+ 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
+ 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
+ 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
+ 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
+ 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
+ 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
+ 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
+ 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFE,
+
+ 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
+ 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
+ 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
+ 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
+ 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
+ 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
+ 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
+ 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
+ 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
+ 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
+ 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
+ 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
+ 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
+ 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
+ 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
+ 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
+ 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
+ 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
+ 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
+ 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
+ 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
+ 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
+ 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
+ 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
+ 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
+ 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
+ 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
+ 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
+ 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
+ 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
+ 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
+ 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFE,
+
+ 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
+ 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
+ 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
+ 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
+ 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
+ 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
+ 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
+ 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
+ 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
+ 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
+ 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
+ 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
+ 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
+ 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
+ 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
+ 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
+ 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
+ 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
+ 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
+ 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
+ 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
+ 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
+ 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
+ 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
+ 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
+ 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
+ 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
+ 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
+ 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
+ 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
+ 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
+ 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF,
+};
#endif
byte AkosRenderer::codec1(int xmoveCur, int ymoveCur) {
@@ -1611,16 +1714,63 @@ void ScummEngine::akos_processQueue() {
case 1:
a->putActor(0, 0, 0);
break;
- case 2:
- warning("unimplemented akos_queCommand(2,%d,%d,%d)", a->_number, param_1, param_2);
- // start script token in actor
+ case 3:
+ _sound->addSoundToQueue(param_1, 0, -1, 0);
+ break;
+ case 4:
+ a->startAnimActor(param_1);
+ break;
+ case 5:
+ a->_forceClip = param_1;
+ break;
+ case 6:
+ a->_offsX = param_1;
+ a->_offsY = param_2;
+ break;
+ case 7:
+ queueAuxEntry(a->_number, param_1);
+ break;
+ case 8:
+ _actorToPrintStrFor = a->_number;
+
+ a->_talkPosX = a->_heTalkQueue[param_1].posX;
+ a->_talkPosY = a->_heTalkQueue[param_1].posY;
+ a->_talkColor = a->_heTalkQueue[param_1].color;
+
+ _string[0].loadDefault();
+ _string[0].color = a->_talkColor;
+ actorTalk(a->_heTalkQueue[param_1].sentence);
+
+ break;
+ default:
+ error("akos_queCommand(%d,%d,%d,%d)", cmd, a->_number, param_1, param_2);
+ }
+ }
+}
+
+#ifndef DISABLE_SCUMM_7_8
+void ScummEngine_v7::akos_processQueue() {
+ byte cmd;
+ int actor, param_1, param_2;
+
+ while (_akosQueuePos) {
+ cmd = _akosQueue[_akosQueuePos].cmd;
+ actor = _akosQueue[_akosQueuePos].actor;
+ param_1 = _akosQueue[_akosQueuePos].param1;
+ param_2 = _akosQueue[_akosQueuePos].param2;
+ _akosQueuePos--;
+
+ Actor *a = derefActor(actor, "akos_processQueue");
+
+ switch (cmd) {
+ case 1:
+ a->putActor(0, 0, 0);
break;
case 3:
if (param_1 != 0) {
- if (_features & GF_DIGI_IMUSE)
+ if (_imuseDigital) {
_imuseDigital->startSfx(param_1, 63);
- else
- _sound->addSoundToQueue(param_1, 0, -1, 0);
+ }
}
break;
case 4:
@@ -1634,27 +1784,14 @@ void ScummEngine::akos_processQueue() {
a->_offsY = param_2;
break;
case 7:
- if (_heversion >= 71) {
- queueAuxEntry(a->_number, param_1);
- } else if (param_1 != 0) {
+ if (param_1 != 0) {
if (_imuseDigital) {
_imuseDigital->setVolume(param_1, param_2);
}
}
break;
case 8:
- if (_heversion >= 71) {
- _actorToPrintStrFor = a->_number;
-
- a->_talkPosX = a->_heTalkQueue[param_1].posX;
- a->_talkPosY = a->_heTalkQueue[param_1].posY;
- a->_talkColor = a->_heTalkQueue[param_1].color;
-
- _string[0].loadDefault();
- _string[0].color = a->_talkColor;
- actorTalk(a->_heTalkQueue[param_1].sentence);
-
- } else if (param_1 != 0) {
+ if (param_1 != 0) {
if (_imuseDigital) {
_imuseDigital->setPan(param_1, param_2);
}
@@ -1668,10 +1805,11 @@ void ScummEngine::akos_processQueue() {
}
break;
default:
- warning("akos_queCommand(%d,%d,%d,%d)", cmd, a->_number, param_1, param_2);
+ error("akos_queCommand(%d,%d,%d,%d)", cmd, a->_number, param_1, param_2);
}
}
}
+#endif
} // End of namespace Scumm
diff --git a/scumm/akos.h b/scumm/akos.h
index e4b7c6c396..6a15bf0bdc 100644
--- a/scumm/akos.h
+++ b/scumm/akos.h
@@ -20,7 +20,7 @@
*
*/
-#if !defined(AKOS_H) && !defined(DISABLE_SCUMM_7_8)
+#ifndef AKOS_H
#define AKOS_H
#include "scumm/base-costume.h"
diff --git a/scumm/bomp.cpp b/scumm/bomp.cpp
index 4f2a636879..ded9f912bc 100644
--- a/scumm/bomp.cpp
+++ b/scumm/bomp.cpp
@@ -330,111 +330,6 @@ void ScummEngine::drawBomp(const BompDrawData &bd, bool mirror) {
}
}
-#ifdef __PALM_OS__
-const byte *defaultScaleTable;
-#else
-const byte defaultScaleTable[768] = {
- 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
- 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
- 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
- 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
- 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
- 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
- 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
- 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
- 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
- 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
- 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
- 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
- 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
- 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
- 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
- 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
- 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
- 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
- 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
- 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
- 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
- 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
- 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
- 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
- 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
- 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
- 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
- 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
- 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
- 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
- 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
- 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFE,
-
- 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
- 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
- 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
- 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
- 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
- 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
- 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
- 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
- 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
- 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
- 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
- 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
- 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
- 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
- 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
- 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
- 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
- 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
- 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
- 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
- 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
- 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
- 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
- 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
- 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
- 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
- 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
- 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
- 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
- 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
- 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
- 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFE,
-
- 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
- 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
- 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
- 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
- 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
- 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
- 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
- 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
- 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
- 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
- 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
- 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
- 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
- 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
- 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
- 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
- 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
- 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
- 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
- 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
- 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
- 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
- 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
- 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
- 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
- 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
- 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
- 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
- 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
- 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
- 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
- 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF,
-};
-#endif
-
static const byte bitCount[] = {
8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 4,
7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
diff --git a/scumm/intern.h b/scumm/intern.h
index 407431ef46..e8becf5f3f 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -665,7 +665,6 @@ protected:
byte VAR_TIMEDATE_SECOND;
};
-#ifndef DISABLE_SCUMM_7_8
class ScummEngine_v60he : public ScummEngine_v6 {
protected:
typedef void (ScummEngine_v60he::*OpcodeProcv60he)();
@@ -716,7 +715,6 @@ protected:
void o60_redimArray();
void o60_readFilePos();
};
-#endif
#ifndef DISABLE_HE
class ScummEngine_v70he : public ScummEngine_v60he {
@@ -1336,6 +1334,8 @@ protected:
virtual void setupScummVars();
virtual void initScummVars();
+ virtual void akos_processQueue();
+
virtual void saveOrLoad(Serializer *s, uint32 savegameVersion);
virtual void readMAXS(int blockSize);
diff --git a/scumm/module.mk b/scumm/module.mk
index 2a7b3166d8..e4fd8b906f 100644
--- a/scumm/module.mk
+++ b/scumm/module.mk
@@ -2,6 +2,7 @@ MODULE := scumm
MODULE_OBJS := \
scumm/actor.o \
+ scumm/akos.o \
scumm/base-costume.o \
scumm/bomp.o \
scumm/boxes.o \
@@ -38,6 +39,7 @@ MODULE_OBJS := \
scumm/script_v2.o \
scumm/script_v5.o \
scumm/script_v6.o \
+ scumm/script_v6he.o \
scumm/scumm.o \
scumm/sound.o \
scumm/string.o \
@@ -49,8 +51,6 @@ MODULE_OBJS := \
ifndef DISABLE_SCUMM_7_8
MODULE_OBJS += \
- scumm/akos.o \
- scumm/script_v6he.o \
scumm/script_v8.o \
scumm/imuse_digi/dimuse.o \
scumm/imuse_digi/dimuse_bndmgr.o \
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 1c31f14177..2b565043a1 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -224,7 +224,6 @@ static const ScummGameSettings scumm_settings[] = {
// Humongous Entertainment Scumm Version 6
{"puttdemo", "Putt-Putt Joins The Parade (Demo)", GID_HEGAME, 6, 60, MDT_ADLIB | MDT_NATIVE,
GF_USE_KEY | GF_MULTIPLE_VERSIONS, Common::kPlatformPC, 0, 0},
-#ifndef DISABLE_SCUMM_7_8
{"puttputt", "Putt-Putt Joins The Parade", GID_HEGAME, 6, 61, MDT_ADLIB | MDT_NATIVE,
GF_USE_KEY | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, Common::kPlatformPC, 0, 0},
{"moondemo", "Putt-Putt Goes To The Moon (Demo)", GID_HEGAME, 6, 61, MDT_ADLIB | MDT_NATIVE,
@@ -239,7 +238,6 @@ static const ScummGameSettings scumm_settings[] = {
GF_USE_KEY | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, Common::kPlatformPC, 0, 0},
{"fbdemo", "Fatty Bear's Birthday Surprise (DOS Demo)", GID_FBEAR, 6, 61, MDT_ADLIB | MDT_NATIVE,
GF_USE_KEY | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, Common::kPlatformPC, 0, 0},
-#endif
#ifndef DISABLE_HE
{"activity", "Putt-Putt & Fatty Bear's Activity Pack", GID_HEGAME, 6, 70, MDT_NONE,
@@ -1434,10 +1432,8 @@ int ScummEngine::init(GameDetector &detector) {
// Create the costume renderer
if (_features & GF_NEW_COSTUMES) {
-#ifndef DISABLE_SCUMM_7_8
_costumeRenderer = new AkosRenderer(this);
_costumeLoader = new AkosCostumeLoader(this);
-#endif
} else if (_platform == Common::kPlatformNES) {
_costumeRenderer = new NESCostumeRenderer(this);
_costumeLoader = new NESCostumeLoader(this);
@@ -1768,7 +1764,6 @@ void ScummEngine_v6::scummInit() {
}
}
-#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v60he::scummInit() {
ScummEngine::scummInit();
@@ -1778,7 +1773,6 @@ void ScummEngine_v60he::scummInit() {
if (_gameId == GID_FUNPACK)
setCursorHotspot(16, 16);
}
-#endif
#ifndef DISABLE_HE
void ScummEngine_v72he::scummInit() {
@@ -2910,11 +2904,9 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) {
engine = new ScummEngine_v70he(detector, syst, game, md5sum);
break;
#endif
-#ifndef DISABLE_SCUMM_7_8
case 61:
engine = new ScummEngine_v60he(detector, syst, game, md5sum);
break;
-#endif
default:
engine = new ScummEngine_v6(detector, syst, game, md5sum);
}
diff --git a/scumm/scumm.h b/scumm/scumm.h
index ad476a859e..490429ac74 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -894,7 +894,7 @@ public:
bool akos_increaseAnims(const byte *akos, Actor *a);
bool akos_increaseAnim(Actor *a, int i, const byte *aksq, const uint16 *akfo, int numakfo);
void akos_queCommand(byte cmd, Actor *a, int param_1, int param_2);
- void akos_processQueue();
+ virtual void akos_processQueue();
protected:
/* Should be in Graphics class? */