diff options
-rwxr-xr-x | configure | 7 | ||||
-rw-r--r-- | scumm/actor.cpp | 4 | ||||
-rw-r--r-- | scumm/akos.cpp | 182 | ||||
-rw-r--r-- | scumm/akos.h | 2 | ||||
-rw-r--r-- | scumm/bomp.cpp | 105 | ||||
-rw-r--r-- | scumm/intern.h | 4 | ||||
-rw-r--r-- | scumm/module.mk | 4 | ||||
-rw-r--r-- | scumm/scumm.cpp | 8 | ||||
-rw-r--r-- | scumm/scumm.h | 2 |
9 files changed, 166 insertions, 152 deletions
@@ -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? */ |