aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2005-05-14 22:56:41 +0000
committerEugene Sandulenko2005-05-14 22:56:41 +0000
commit3588b96d4fc6c1100a01f21987f34dab9c0e97bf (patch)
tree8bbeeacc9f3fce01838de5129703ffb11b83d44a
parent0bb3024467c8eb1f74f716848366b9b8fdf6a8c5 (diff)
downloadscummvm-rg350-3588b96d4fc6c1100a01f21987f34dab9c0e97bf.tar.gz
scummvm-rg350-3588b96d4fc6c1100a01f21987f34dab9c0e97bf.tar.bz2
scummvm-rg350-3588b96d4fc6c1100a01f21987f34dab9c0e97bf.zip
Added --disable-hq and --disable-scumm-7-8 options. Also improved
DISABLE_HE so more HE-specific code gets excluded. svn-id: r18099
-rw-r--r--Makefile.common9
-rw-r--r--NEWS2
-rw-r--r--backends/sdl/graphics.cpp4
-rw-r--r--common/module.mk9
-rw-r--r--common/scaler.cpp6
-rw-r--r--common/scaler.h3
-rwxr-xr-xconfigure47
-rw-r--r--scumm/actor.cpp15
-rw-r--r--scumm/akos.cpp102
-rw-r--r--scumm/bomp.cpp105
-rw-r--r--scumm/camera.cpp200
-rw-r--r--scumm/cursor.cpp8
-rw-r--r--scumm/input.cpp18
-rw-r--r--scumm/intern.h7
-rw-r--r--scumm/logic_he.cpp1
-rw-r--r--scumm/module.mk14
-rw-r--r--scumm/object.cpp2
-rw-r--r--scumm/palette.cpp2
-rw-r--r--scumm/resource.cpp6
-rw-r--r--scumm/saveload.cpp4
-rw-r--r--scumm/script_v6.cpp14
-rw-r--r--scumm/scumm.cpp46
-rw-r--r--scumm/sound.cpp17
-rw-r--r--scumm/string.cpp15
-rw-r--r--scumm/vars.cpp13
25 files changed, 430 insertions, 239 deletions
diff --git a/Makefile.common b/Makefile.common
index ce6cdb0a83..4eb8377739 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -37,12 +37,17 @@ ifdef DISABLE_SCUMM
DEFINES += -DDISABLE_SCUMM
else
MODULES += scumm
+
+ifdef DISABLE_SCUMM_7_8
+DEFINES += -DDISABLE_SCUMM_7_8
endif
ifdef DISABLE_HE
DEFINES += -DDISABLE_HE
endif
+endif
+
ifdef DISABLE_SIMON
DEFINES += -DDISABLE_SIMON
else
@@ -103,6 +108,10 @@ ifdef USE_MT32EMU
MODULES += sound/softsynth/mt32
endif
+ifdef DISABLE_HQ_SCALERS
+DEFINES += -DDISABLE_HQ_SCALERS
+endif
+
######################################################################
# The build rules follow - normally you should have no need to
# touch whatever comes after here.
diff --git a/NEWS b/NEWS
index 0af8919a60..c19f6f58f4 100644
--- a/NEWS
+++ b/NEWS
@@ -28,6 +28,8 @@ For a more comprehensive changelog for the latest experimental CVS code, see:
- Added support for NES version of Maniac Mansion
- Added thumbnail support for savegames.
- Broke compatibility with HE savegame (HE v71 and upwards only)
+ - Added possibility to disable building of HE and SCUMM v7 & v8 games
+ support.
Sword2:
- Made the resource manager expire resources more intelligently.
diff --git a/backends/sdl/graphics.cpp b/backends/sdl/graphics.cpp
index 43e1a7cd4d..fc5db722b4 100644
--- a/backends/sdl/graphics.cpp
+++ b/backends/sdl/graphics.cpp
@@ -36,8 +36,10 @@ static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
{"supereagle", "SuperEagle", GFX_SUPEREAGLE},
{"advmame2x", "AdvMAME2x", GFX_ADVMAME2X},
{"advmame3x", "AdvMAME3x", GFX_ADVMAME3X},
+#ifndef DISABLE_HQ_SCALERS
{"hq2x", "HQ2x", GFX_HQ2X},
{"hq3x", "HQ3x", GFX_HQ3X},
+#endif
{"tv2x", "TV2x", GFX_TV2X},
{"dotmatrix", "DotMatrix", GFX_DOTMATRIX},
{0, 0, 0}
@@ -161,6 +163,7 @@ bool OSystem_SDL::setGraphicsMode(int mode) {
newScaleFactor = 3;
newScalerProc = AdvMame3x;
break;
+#ifndef DISABLE_HQ_SCALERS
case GFX_HQ2X:
newScaleFactor = 2;
newScalerProc = HQ2x;
@@ -169,6 +172,7 @@ bool OSystem_SDL::setGraphicsMode(int mode) {
newScaleFactor = 3;
newScalerProc = HQ3x;
break;
+#endif
case GFX_TV2X:
newScaleFactor = 2;
newScalerProc = TV2x;
diff --git a/common/module.mk b/common/module.mk
index 83177bcfee..9d455e153a 100644
--- a/common/module.mk
+++ b/common/module.mk
@@ -18,13 +18,16 @@ MODULE_OBJS += \
common/scaler.o \
common/scaler/2xsai.o \
common/scaler/aspect.o \
- common/scaler/hq2x.o \
- common/scaler/hq3x.o \
common/scaler/scale2x.o \
common/scaler/scale3x.o \
common/scaler/scalebit.o \
common/scaler/thumbnail.o
+ifndef DISABLE_HQ_SCALERS
+MODULE_OBJS += \
+ common/scaler/hq2x.o \
+ common/scaler/hq3x.o
+
ifdef HAVE_NASM
MODULE_OBJS += \
common/scaler/hq2x_i386.o \
@@ -33,6 +36,8 @@ endif
endif
+endif
+
MODULE_DIRS += \
common \
common/scaler
diff --git a/common/scaler.cpp b/common/scaler.cpp
index db37cc72bd..0d059f84ec 100644
--- a/common/scaler.cpp
+++ b/common/scaler.cpp
@@ -27,6 +27,7 @@
int gBitFormat = 565;
+#ifndef DISABLE_HQ_SCALERS
// RGB-to-YUV lookup table
extern "C" {
@@ -71,6 +72,7 @@ uint RGBtoYUVstorage[65536];
uint *RGBtoYUV = RGBtoYUVstorage;
uint LUT16to32[65536];
}
+#endif
static const uint16 dotmatrix_565[16] = {
0x01E0, 0x0007, 0x3800, 0x0000,
@@ -101,6 +103,9 @@ void InitScalers(uint32 BitFormat) {
InitLUT(BitFormat);
}
+#ifdef DISABLE_HQ_SCALERS
+void InitLUT(uint32 BitFormat) {}
+#else
void InitLUT(uint32 BitFormat) {
int r, g, b;
int Y, u, v;
@@ -129,6 +134,7 @@ void InitLUT(uint32 BitFormat) {
}
}
}
+#endif
/**
* Trivial 'scaler' - in fact it doesn't do any scaling but just copies the
diff --git a/common/scaler.h b/common/scaler.h
index 37f7be99ff..10d7e1161d 100644
--- a/common/scaler.h
+++ b/common/scaler.h
@@ -45,8 +45,11 @@ DECLARE_SCALER(Normal3x);
DECLARE_SCALER(Normal1o5x);
DECLARE_SCALER(TV2x);
DECLARE_SCALER(DotMatrix);
+
+#ifndef DISABLE_HQ_SCALERS
DECLARE_SCALER(HQ2x);
DECLARE_SCALER(HQ3x);
+#endif
FORCEINLINE int real2Aspect(int y) {
return y + (y + 1) / 5;
diff --git a/configure b/configure
index b3b4d52ee8..6c313ad7ee 100755
--- a/configure
+++ b/configure
@@ -24,6 +24,7 @@ _fluidsynth=auto
_mt32emu=yes
# default option behaviour yes/no
_build_scumm=yes
+_build_scumm_7_8=yes
_build_he=yes
_build_simon=yes
_build_sky=yes
@@ -36,6 +37,7 @@ _build_kyra=no
_need_memalign=no
_build_plugins=no
_nasm=auto
+_build_hq_scalers=yes
# more defaults
_backend=sdl
_ranlib=ranlib
@@ -264,6 +266,7 @@ Special configuration feature:
Optional Features:
--disable-debug disable building with debugging symbols
--disable-scumm don't build the SCUMM engine
+ --disable-scumm-7-8 exclude v7 and v8 game in SCUMM engine (ft, dig, comi and demos)
--disable-he exclude HE70+ games in SCUMM engine
--disable-simon don't build the simon engine
--disable-sky don't build the Beneath a Steel Sky engine
@@ -276,6 +279,7 @@ Optional Features:
--enable-plugins build engines as loadable modules instead of
static linking them
--disable-mt32emu don't enable the integrated MT-32 emulator
+ --disable-hq-scalers exclude HQ2x and HQ3x scalers
Optional Libraries:
--with-alsa-prefix=DIR Prefix where alsa is installed (optional)
@@ -323,6 +327,7 @@ DEBFLAGS="-g"
for ac_option in $@; do
case "$ac_option" in
--disable-scumm) _build_scumm=no ;;
+ --disable-scumm-7-8) _build_scumm_7_8=no ;;
--disable-he) _build_he=no ;;
--disable-simon) _build_simon=no ;;
--disable-sky) _build_sky=no ;;
@@ -332,6 +337,7 @@ for ac_option in $@; do
--disable-saga) _build_saga=no ;;
--disable-gob) _build_gob=no ;;
--enable-kyra) _build_kyra=yes ;;
+ --disable-hq-scalers) _build_hq_scalers=no ;;
--enable-alsa) _alsa=yes ;;
--disable-alsa) _alsa=no ;;
--enable-vorbis) _vorbis=yes ;;
@@ -426,6 +432,13 @@ 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
@@ -559,6 +572,12 @@ else
_mak_scumm='# DISABLE_SCUMM = 1'
fi
+if test "$_build_scumm_7_8" = no ; then
+ _mak_scumm_7_8='DISABLE_SCUMM_7_8 = 1'
+else
+ _mak_scumm_7_8='# DISABLE_SCUMM_7_8 = 1'
+fi
+
if test "$_build_he" = no ; then
_mak_he='DISABLE_HE = 1'
else
@@ -613,6 +632,12 @@ else
_mak_gob='# DISABLE_GOB = 1'
fi
+if test "$_build_hq_scalers" = no ; then
+ _mak_hq_scalers='DISABLE_HQ_SCALERS = 1'
+else
+ _mak_hq_scalers='# DISABLE_HQ_SCALERS = 1'
+fi
+
if test -n "$_host"; then
# Cross-compiling mode - add your target here if needed
case "$_host" in
@@ -1072,10 +1097,14 @@ test -z "$_mandir" && _mandir="$_prefix/man"
echo
echo "Engines:"
if test "$_build_scumm" = yes ; then
- echo " SCUMM"
+ echo_n " SCUMM"
+ if test "$_build_scumm_7_8" = yes ; then
+ echo_n " [v7 & v8 games]"
+ fi
if test "$_build_he" = yes ; then
- echo " SCUMM (HE70+ games)"
+ echo_n " [HE70+ games]"
fi
+ echo
fi
if test "$_build_simon" = yes ; then
echo " Simon the Sorcerer"
@@ -1118,11 +1147,18 @@ echo_n "Backend... "
echo_n "$_backend"
if test "$_nasm" = yes ; then
- echo ", assembly routines"
+ echo_n ", assembly routines"
+fi
+
+if test "$_build_hq_scalers" = yes ; then
+ echo_n ", HQ scalers"
+fi
+
+if test "$_mt32emu" = yes ; then
+ echo ", MT-32 emu"
else
echo
fi
-
#
# Backend related stuff
#
@@ -1230,6 +1266,7 @@ $_mak_plugins
$_make_def_HAVE_GCC3
$_make_def_HAVE_NASM
$_mak_scumm
+$_mak_scumm_7_8
$_mak_he
$_mak_simon
$_mak_sky
@@ -1241,6 +1278,8 @@ $_mak_saga
$_mak_gob
$_mak_mt32emu
+$_mak_hq_scalers
+
INCLUDES += $INCLUDES
OBJS += $OBJS
DEFINES += $DEFINES
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index ada0dd12fd..b120f2b617 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -23,7 +23,6 @@
#include "stdafx.h"
#include "scumm/scumm.h"
#include "scumm/actor.h"
-#include "scumm/akos.h"
#include "scumm/boxes.h"
#include "scumm/charset.h"
#include "scumm/costume.h"
@@ -36,6 +35,10 @@
#include "scumm/util.h"
#include "scumm/wiz_he.h"
+#ifndef DISABLE_SCUMM_7_8
+#include "scumm/akos.h"
+#endif
+
namespace Scumm {
byte Actor::kInvalidBox = 0;
@@ -1005,8 +1008,10 @@ void ScummEngine::processActors() {
a->animateCostume();
}
+#ifndef DISABLE_SCUMM_7_8
if (_features & GF_NEW_COSTUMES)
akos_processQueue();
+#endif
}
#ifndef DISABLE_HE
@@ -1166,6 +1171,7 @@ void Actor::drawActorCostume(bool hitTestMode) {
}
}
+#ifndef DISABLE_SCUMM_7_8
bool Actor::actorHitTest(int x, int y) {
AkosRenderer *ar = (AkosRenderer *)_vm->_costumeRenderer;
@@ -1180,6 +1186,7 @@ bool Actor::actorHitTest(int x, int y) {
return ar->_actorHitResult;
}
+#endif
void Actor::animateCostume() {
if (_costume == 0)
@@ -1196,6 +1203,7 @@ void Actor::animateCostume() {
}
}
+#ifndef DISABLE_SCUMM_7_8
void Actor::animateLimb(int limb, int f) {
// This methods is very similiar to animateCostume().
// However, instead of animating *all* the limbs, it only animates
@@ -1230,6 +1238,7 @@ void Actor::animateLimb(int limb, int f) {
// _needBgReset = true;
}
}
+#endif
void ScummEngine::redrawAllActors() {
int j;
@@ -1300,12 +1309,14 @@ int ScummEngine::getActorFromPos(int x, int y) {
return result;
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v7::actorTalk(const byte *msg) {
ScummEngine::actorTalk(msg);
// Play associated speech, if any
playSpeech((byte *)_lastStringTag);
}
+#endif
void ScummEngine::actorTalk(const byte *msg) {
Actor *a;
@@ -1434,6 +1445,7 @@ 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)
@@ -1453,6 +1465,7 @@ void Actor::setActorCostume(int c) {
}
startAnimActor(_initFrame);
}
+#endif
} else {
if (_visible) {
hideActor();
diff --git a/scumm/akos.cpp b/scumm/akos.cpp
index d53fb0d016..cee334f063 100644
--- a/scumm/akos.cpp
+++ b/scumm/akos.cpp
@@ -591,7 +591,6 @@ void AkosRenderer::codec1_genericDecode(Codec1 &v1) {
}
#ifdef __PALM_OS__
-const byte *defaultScaleTable;
const byte *oldScaleTable;
#else
const byte oldScaleTable[256] = {
@@ -628,107 +627,6 @@ 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) {
diff --git a/scumm/bomp.cpp b/scumm/bomp.cpp
index ded9f912bc..4f2a636879 100644
--- a/scumm/bomp.cpp
+++ b/scumm/bomp.cpp
@@ -330,6 +330,111 @@ 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/camera.cpp b/scumm/camera.cpp
index 489740a5b5..42e11c72b0 100644
--- a/scumm/camera.cpp
+++ b/scumm/camera.cpp
@@ -58,37 +58,6 @@ void ScummEngine::setCameraAt(int pos_x, int pos_y) {
stopTalk();
}
-void ScummEngine_v7::setCameraAt(int pos_x, int pos_y) {
- Common::Point old;
-
- old = camera._cur;
-
- camera._cur.x = pos_x;
- camera._cur.y = pos_y;
-
- clampCameraPos(&camera._cur);
-
- camera._dest = camera._cur;
- VAR(VAR_CAMERA_DEST_X) = camera._dest.x;
- VAR(VAR_CAMERA_DEST_Y) = camera._dest.y;
-
- assert(camera._cur.x >= (_screenWidth / 2) && camera._cur.y >= (_screenHeight / 2));
-
- if (camera._cur.x != old.x || camera._cur.y != old.y) {
- if (VAR(VAR_SCROLL_SCRIPT)) {
- VAR(VAR_CAMERA_POS_X) = camera._cur.x;
- VAR(VAR_CAMERA_POS_Y) = camera._cur.y;
- runScript(VAR(VAR_SCROLL_SCRIPT), 0, 0, 0);
- }
-
- // Even though cameraMoved() is called automatically, we may
- // need to know at once that the camera has moved, or text may
- // be printed at the wrong coordinates. See bugs #795938 and
- // #929242
- cameraMoved();
- }
-}
-
void ScummEngine::setCameraFollows(Actor *a) {
int t, i;
@@ -115,30 +84,6 @@ void ScummEngine::setCameraFollows(Actor *a) {
runInventoryScript(0);
}
-void ScummEngine_v7::setCameraFollows(Actor *a) {
-
- byte oldfollow = camera._follows;
- int ax, ay;
-
- camera._follows = a->_number;
- VAR(VAR_CAMERA_FOLLOWED_ACTOR) = a->_number;
-
- if (!a->isInCurrentRoom()) {
- startScene(a->getRoom(), 0, 0);
- }
-
- ax = abs(a->_pos.x - camera._cur.x);
- ay = abs(a->_pos.y - camera._cur.y);
-
- if (ax > VAR(VAR_CAMERA_THRESHOLD_X) || ay > VAR(VAR_CAMERA_THRESHOLD_Y) || ax > (_screenWidth / 2) || ay > (_screenHeight / 2)) {
- setCameraAt(a->_pos.x, a->_pos.y);
- }
-
- if (a->_number != oldfollow)
- runInventoryScript(0);
-}
-
-
void ScummEngine::clampCameraPos(Common::Point *pt) {
if (pt->x < VAR(VAR_CAMERA_MIN_X))
pt->x = (short) VAR(VAR_CAMERA_MIN_X);
@@ -228,6 +173,105 @@ void ScummEngine::moveCamera() {
}
}
+void ScummEngine::cameraMoved() {
+ int screenLeft;
+ if (_features & GF_NEW_CAMERA) {
+ assert(camera._cur.x >= (_screenWidth / 2) && camera._cur.y >= (_screenHeight / 2));
+ } else {
+ if (camera._cur.x < (_screenWidth / 2)) {
+ camera._cur.x = (_screenWidth / 2);
+ } else if (camera._cur.x > _roomWidth - (_screenWidth / 2)) {
+ camera._cur.x = _roomWidth - (_screenWidth / 2);
+ }
+ }
+
+ _screenStartStrip = camera._cur.x / 8 - gdi._numStrips / 2;
+ _screenEndStrip = _screenStartStrip + gdi._numStrips - 1;
+
+ _screenTop = camera._cur.y - (_screenHeight / 2);
+ if (_features & GF_NEW_CAMERA) {
+ screenLeft = camera._cur.x - (_screenWidth / 2);
+ } else {
+ screenLeft = _screenStartStrip * 8;
+ }
+
+ virtscr[0].xstart = screenLeft;
+}
+
+void ScummEngine::panCameraTo(int x, int y) {
+ camera._dest.x = x;
+ camera._mode = kPanningCameraMode;
+ camera._movingToActor = false;
+}
+
+void ScummEngine::actorFollowCamera(int act) {
+ if (!(_features & GF_NEW_CAMERA)) {
+ int old;
+
+ old = camera._follows;
+ setCameraFollows(derefActor(act, "actorFollowCamera"));
+ if (camera._follows != old)
+ runInventoryScript(0);
+
+ camera._movingToActor = false;
+ }
+}
+
+#ifndef DISABLE_SCUMM_7_8
+void ScummEngine_v7::setCameraAt(int pos_x, int pos_y) {
+ Common::Point old;
+
+ old = camera._cur;
+
+ camera._cur.x = pos_x;
+ camera._cur.y = pos_y;
+
+ clampCameraPos(&camera._cur);
+
+ camera._dest = camera._cur;
+ VAR(VAR_CAMERA_DEST_X) = camera._dest.x;
+ VAR(VAR_CAMERA_DEST_Y) = camera._dest.y;
+
+ assert(camera._cur.x >= (_screenWidth / 2) && camera._cur.y >= (_screenHeight / 2));
+
+ if (camera._cur.x != old.x || camera._cur.y != old.y) {
+ if (VAR(VAR_SCROLL_SCRIPT)) {
+ VAR(VAR_CAMERA_POS_X) = camera._cur.x;
+ VAR(VAR_CAMERA_POS_Y) = camera._cur.y;
+ runScript(VAR(VAR_SCROLL_SCRIPT), 0, 0, 0);
+ }
+
+ // Even though cameraMoved() is called automatically, we may
+ // need to know at once that the camera has moved, or text may
+ // be printed at the wrong coordinates. See bugs #795938 and
+ // #929242
+ cameraMoved();
+ }
+}
+
+void ScummEngine_v7::setCameraFollows(Actor *a) {
+
+ byte oldfollow = camera._follows;
+ int ax, ay;
+
+ camera._follows = a->_number;
+ VAR(VAR_CAMERA_FOLLOWED_ACTOR) = a->_number;
+
+ if (!a->isInCurrentRoom()) {
+ startScene(a->getRoom(), 0, 0);
+ }
+
+ ax = abs(a->_pos.x - camera._cur.x);
+ ay = abs(a->_pos.y - camera._cur.y);
+
+ if (ax > VAR(VAR_CAMERA_THRESHOLD_X) || ay > VAR(VAR_CAMERA_THRESHOLD_Y) || ax > (_screenWidth / 2) || ay > (_screenHeight / 2)) {
+ setCameraAt(a->_pos.x, a->_pos.y);
+ }
+
+ if (a->_number != oldfollow)
+ runInventoryScript(0);
+}
+
void ScummEngine_v7::moveCamera() {
Common::Point old = camera._cur;
Actor *a = NULL;
@@ -312,55 +356,11 @@ void ScummEngine_v7::moveCamera() {
}
}
-
-void ScummEngine::cameraMoved() {
- int screenLeft;
- if (_features & GF_NEW_CAMERA) {
- assert(camera._cur.x >= (_screenWidth / 2) && camera._cur.y >= (_screenHeight / 2));
- } else {
- if (camera._cur.x < (_screenWidth / 2)) {
- camera._cur.x = (_screenWidth / 2);
- } else if (camera._cur.x > _roomWidth - (_screenWidth / 2)) {
- camera._cur.x = _roomWidth - (_screenWidth / 2);
- }
- }
-
- _screenStartStrip = camera._cur.x / 8 - gdi._numStrips / 2;
- _screenEndStrip = _screenStartStrip + gdi._numStrips - 1;
-
- _screenTop = camera._cur.y - (_screenHeight / 2);
- if (_features & GF_NEW_CAMERA) {
- screenLeft = camera._cur.x - (_screenWidth / 2);
- } else {
- screenLeft = _screenStartStrip * 8;
- }
-
- virtscr[0].xstart = screenLeft;
-}
-
-void ScummEngine::panCameraTo(int x, int y) {
- camera._dest.x = x;
- camera._mode = kPanningCameraMode;
- camera._movingToActor = false;
-}
-
void ScummEngine_v7::panCameraTo(int x, int y) {
VAR(VAR_CAMERA_FOLLOWED_ACTOR) = camera._follows = 0;
VAR(VAR_CAMERA_DEST_X) = camera._dest.x = x;
VAR(VAR_CAMERA_DEST_Y) = camera._dest.y = y;
}
-
-void ScummEngine::actorFollowCamera(int act) {
- if (!(_features & GF_NEW_CAMERA)) {
- int old;
-
- old = camera._follows;
- setCameraFollows(derefActor(act, "actorFollowCamera"));
- if (camera._follows != old)
- runInventoryScript(0);
-
- camera._movingToActor = false;
- }
-}
+#endif
} // End of namespace Scumm
diff --git a/scumm/cursor.cpp b/scumm/cursor.cpp
index a923f4897c..0aad5939de 100644
--- a/scumm/cursor.cpp
+++ b/scumm/cursor.cpp
@@ -22,14 +22,16 @@
#include "stdafx.h"
#include "common/system.h"
#include "common/util.h"
-#include "scumm/bomp.h"
#include "scumm/charset.h"
#include "scumm/intern.h"
#include "scumm/object.h"
-#include "scumm/resource_v7he.h"
#include "scumm/saveload.h"
#include "scumm/scumm.h"
+#include "scumm/bomp.h"
+#ifndef DISABLE_HE
+#include "scumm/resource_v7he.h"
+#endif
namespace Scumm {
@@ -163,7 +165,6 @@ void ScummEngine_v70he::setCursorFromImg(uint img, uint room, uint imgindex) {
else
_win32ResExtractor->setCursor(img);
}
-#endif
void ScummEngine_v90he::setDefaultCursor() {
const uint16 *src;
@@ -196,6 +197,7 @@ void ScummEngine_v90he::setDefaultCursor() {
updateCursor();
}
+#endif
void ScummEngine_v6::setCursorFromImg(uint img, uint room, uint imgindex) {
int w, h;
diff --git a/scumm/input.cpp b/scumm/input.cpp
index 584e01e0ac..787ed4f284 100644
--- a/scumm/input.cpp
+++ b/scumm/input.cpp
@@ -31,11 +31,18 @@
#include "scumm/debugger.h"
#include "scumm/dialogs.h"
#include "scumm/imuse.h"
-#include "scumm/insane/insane.h"
-#include "scumm/logic_he.h"
#include "scumm/scumm.h"
#include "scumm/sound.h"
+#ifndef DISABLE_SCUMM_7_8
+#include "scumm/insane/insane.h"
+#endif
+
+#ifndef DISABLE_HE
+#include "scumm/logic_he.h"
+#endif
+
+
#ifdef _WIN32_WCE
#define KEY_ALL_SKIP 3457
#endif
@@ -211,9 +218,12 @@ void ScummEngine::parseEvents() {
void ScummEngine::clearClickedStatus() {
_keyPressed = 0;
+
+#ifndef DISABLE_HE
if (_heversion >= 98) {
((ScummEngine_v90he *)this)->_logicHE->processKeyStroke(_keyPressed);
}
+#endif
_mouseAndKeyboardStat = 0;
_leftBtnPressed &= ~msClicked;
_rightBtnPressed &= ~msClicked;
@@ -222,9 +232,11 @@ void ScummEngine::clearClickedStatus() {
void ScummEngine::processKbd(bool smushMode) {
int saveloadkey;
+#ifndef DISABLE_HE
if (_heversion >= 98) {
((ScummEngine_v90he *)this)->_logicHE->processKeyStroke(_keyPressed);
}
+#endif
_lastKeyHit = _keyPressed;
_keyPressed = 0;
@@ -413,6 +425,7 @@ void ScummEngine::processKbd(bool smushMode) {
if (_lastKeyHit == VAR(VAR_CUTSCENEEXIT_KEY) ||
((VAR(VAR_CUTSCENEEXIT_KEY) == 4 || VAR(VAR_CUTSCENEEXIT_KEY) == 64) && _lastKeyHit == 27)) {
+#ifndef DISABLE_SCUMM_7_8
// Skip cutscene (or active SMUSH video). For the V2 games, which
// normally use F4 for this, we add in a hack that makes escape work,
// too (just for convenience).
@@ -422,6 +435,7 @@ void ScummEngine::processKbd(bool smushMode) {
else
_smushVideoShouldFinish = true;
}
+#endif
if (!smushMode || _smushVideoShouldFinish)
abortCutscene();
if (_version <= 2) {
diff --git a/scumm/intern.h b/scumm/intern.h
index bee950899e..407431ef46 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -665,6 +665,7 @@ protected:
byte VAR_TIMEDATE_SECOND;
};
+#ifndef DISABLE_SCUMM_7_8
class ScummEngine_v60he : public ScummEngine_v6 {
protected:
typedef void (ScummEngine_v60he::*OpcodeProcv60he)();
@@ -715,7 +716,9 @@ protected:
void o60_redimArray();
void o60_readFilePos();
};
+#endif
+#ifndef DISABLE_HE
class ScummEngine_v70he : public ScummEngine_v60he {
friend class Win32ResExtractor;
friend class MacResExtractor;
@@ -1315,7 +1318,9 @@ protected:
void o100_getSpriteInfo();
void o100_getWizData();
};
+#endif
+#ifndef DISABLE_SCUMM_7_8
class ScummEngine_v7 : public ScummEngine_v6 {
public:
ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]);
@@ -1429,6 +1434,8 @@ protected:
};
+#endif
+
} // End of namespace Scumm
#endif
diff --git a/scumm/logic_he.cpp b/scumm/logic_he.cpp
index fec1d5e4d6..046f05676f 100644
--- a/scumm/logic_he.cpp
+++ b/scumm/logic_he.cpp
@@ -434,7 +434,6 @@ void LogicHEfunshop::op_1005(int32 *args) {
}
int LogicHEfunshop::checkShape(int arg_0, int arg_4, int arg_8, int arg_C, int arg_10, int arg_14, int arg_18, int arg_1C, int arg_20, int arg_24) {
- // XXX: Check arg_20/24 types
return 1;
}
diff --git a/scumm/module.mk b/scumm/module.mk
index ac5d8d495e..2a7b3166d8 100644
--- a/scumm/module.mk
+++ b/scumm/module.mk
@@ -2,7 +2,6 @@ MODULE := scumm
MODULE_OBJS := \
scumm/actor.o \
- scumm/akos.o \
scumm/base-costume.o \
scumm/bomp.o \
scumm/boxes.o \
@@ -39,8 +38,6 @@ MODULE_OBJS := \
scumm/script_v2.o \
scumm/script_v5.o \
scumm/script_v6.o \
- scumm/script_v6he.o \
- scumm/script_v8.o \
scumm/scumm.o \
scumm/sound.o \
scumm/string.o \
@@ -48,6 +45,13 @@ MODULE_OBJS := \
scumm/util.o \
scumm/vars.o \
scumm/verbs.o \
+ scumm/thumbnail.o
+
+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 \
scumm/imuse_digi/dimuse_codecs.o \
@@ -69,8 +73,8 @@ MODULE_OBJS := \
scumm/smush/smush_player.o \
scumm/smush/saud_channel.o \
scumm/smush/smush_mixer.o \
- scumm/smush/smush_font.o \
- scumm/thumbnail.o
+ scumm/smush/smush_font.o
+endif
ifndef DISABLE_HE
MODULE_OBJS += \
diff --git a/scumm/object.cpp b/scumm/object.cpp
index ec39ea7530..c3dc557bb8 100644
--- a/scumm/object.cpp
+++ b/scumm/object.cpp
@@ -1115,6 +1115,7 @@ int ScummEngine::getObjectImageCount(int object) {
}
}
+#ifndef DISABLE_SCUMM_7_8
int ScummEngine_v8::getObjectIdFromOBIM(const byte *obim) {
// In V8, IMHD has no obj_id, but rather a name string. We map the name
// back to an object id using a table derived from the DOBJ resource.
@@ -1129,6 +1130,7 @@ int ScummEngine_v7::getObjectIdFromOBIM(const byte *obim) {
const ImageHeader *imhd = (const ImageHeader *)findResourceData(MKID('IMHD'), obim);
return READ_LE_UINT16(&imhd->v7.obj_id);
}
+#endif
int ScummEngine::getObjectIdFromOBIM(const byte *obim) {
if (_features & GF_SMALL_HEADER)
diff --git a/scumm/palette.cpp b/scumm/palette.cpp
index 3085c98f12..0dda37dd15 100644
--- a/scumm/palette.cpp
+++ b/scumm/palette.cpp
@@ -686,6 +686,7 @@ void ScummEngine::darkenPalette(int redScale, int greenScale, int blueScale, int
}
}
+#ifndef DISABLE_SCUMM_7_8
static int HSL2RGBHelper(int n1, int n2, int hue) {
if (hue > 360)
hue = hue - 360;
@@ -778,6 +779,7 @@ void ScummEngine_v8::desaturatePalette(int hueScale, int satScale, int lightScal
setDirtyColors(startColor, endColor);
}
}
+#endif
int ScummEngine::remapPaletteColor(int r, int g, int b, int threshold) {
diff --git a/scumm/resource.cpp b/scumm/resource.cpp
index 2ad0f47543..2ac7d110df 100644
--- a/scumm/resource.cpp
+++ b/scumm/resource.cpp
@@ -342,6 +342,7 @@ void ScummEngine::readIndexFile() {
closeRoom();
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v7::readIndexBlock(uint32 blocktype, uint32 itemsize) {
int num;
char *ptr;
@@ -358,6 +359,7 @@ void ScummEngine_v7::readIndexBlock(uint32 blocktype, uint32 itemsize) {
ScummEngine::readIndexBlock(blocktype, itemsize);
}
}
+#endif
#ifndef DISABLE_HE
void ScummEngine_v70he::readIndexBlock(uint32 blocktype, uint32 itemsize) {
@@ -1034,6 +1036,7 @@ void ScummEngine_v5::readMAXS(int blockSize) {
_shadowPalette = (byte *)calloc(_shadowPaletteSize, 1);
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v8::readMAXS(int blockSize) {
debug(9, "readMAXS: MAXS has blocksize %d", blockSize);
@@ -1096,6 +1099,7 @@ void ScummEngine_v7::readMAXS(int blockSize) {
_shadowPaletteSize = NUM_SHADOW_PALETTE * 256;
_shadowPalette = (byte *)calloc(_shadowPaletteSize, 1);
}
+#endif
void ScummEngine_v6::readMAXS(int blockSize) {
debug(0, "readMAXS: MAXS has blocksize %d", blockSize);
@@ -1148,6 +1152,7 @@ void ScummEngine::readGlobalObjects() {
#endif
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v8::readGlobalObjects() {
int i;
int num = _fileHandle->readUint32LE();
@@ -1189,6 +1194,7 @@ void ScummEngine_v7::readGlobalObjects() {
_classData[i] = FROM_LE_32(_classData[i]);
#endif
}
+#endif
void ScummEngine::allocateArrays() {
// Note: Buffers are now allocated in scummMain to allow for
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp
index 6e19d9672a..ff9fe5b95c 100644
--- a/scumm/saveload.cpp
+++ b/scumm/saveload.cpp
@@ -162,10 +162,12 @@ bool ScummEngine::loadState(int slot, bool compat) {
if (!_imuse || _saveSound || !_saveTemporaryState)
_sound->stopAllSounds();
+#ifndef DISABLE_SCUMM_7_8
if (_imuseDigital) {
_imuseDigital->stopAllSounds();
_imuseDigital->resetState();
}
+#endif
_sound->stopCD();
@@ -997,12 +999,14 @@ void ScummEngine_v5::saveOrLoad(Serializer *s, uint32 savegameVersion) {
s->saveLoadEntries(this, cursorEntries);
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v7::saveOrLoad(Serializer *s, uint32 savegameVersion) {
ScummEngine::saveOrLoad(s, savegameVersion);
assert(_imuseDigital);
_imuseDigital->saveOrLoad(s);
}
+#endif
#ifndef DISABLE_HE
void ScummEngine_v70he::saveOrLoad(Serializer *s, uint32 savegameVersion) {
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index 70576e2b49..f744ee9365 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -1,4 +1,3 @@
-
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2005 The ScummVM project
@@ -29,19 +28,22 @@
#include "scumm/actor.h"
#include "scumm/charset.h"
#include "scumm/imuse.h"
-#include "scumm/imuse_digi/dimuse.h"
#include "scumm/intern.h"
#include "scumm/object.h"
#include "scumm/resource.h"
#include "scumm/scumm.h"
#include "scumm/sound.h"
+#include "scumm/util.h"
#include "scumm/verbs.h"
-#include "scumm/smush/smush_player.h"
#include "sound/mididrv.h"
#include "sound/mixer.h"
+#ifndef DISABLE_SCUMM_7_8
+#include "scumm/imuse_digi/dimuse.h"
#include "scumm/insane/insane.h"
+#include "scumm/smush/smush_player.h"
+#endif
namespace Scumm {
@@ -1088,10 +1090,12 @@ void ScummEngine_v6::o6_startSound() {
// sound. See also o6_soundOps()
if (_heversion >= 61)
offset = pop();
-
+
+#ifndef DISABLE_SCUMM_7_8
if (_features & GF_DIGI_IMUSE)
_imuseDigital->startSfx(pop(), 64);
else
+#endif
_sound->addSoundToQueue(pop(), offset);
}
@@ -2490,6 +2494,7 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
case 4:
grabCursor(args[1], args[2], args[3], args[4]);
break;
+#ifndef DISABLE_SCUMM_7_8
case 6: {
uint32 speed;
if (_smushFrameRate == 0)
@@ -2522,6 +2527,7 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
}
}
break;
+#endif
case 12:
setCursorFromImg(args[1], (uint) - 1, args[2]);
break;
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 95009505a7..0fbd069c3a 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -34,23 +34,32 @@
#include "gui/message.h"
#include "gui/newgui.h"
-#include "scumm/akos.h"
#include "scumm/charset.h"
#include "scumm/costume.h"
#include "scumm/debugger.h"
#include "scumm/dialogs.h"
-#include "scumm/imuse_digi/dimuse.h"
#include "scumm/imuse.h"
-#include "scumm/insane/insane.h"
#include "scumm/intern.h"
-#include "scumm/logic_he.h"
#include "scumm/player_nes.h"
#include "scumm/player_v1.h"
#include "scumm/player_v2.h"
#include "scumm/player_v2a.h"
#include "scumm/player_v3a.h"
-#include "scumm/resource_v7he.h"
+#include "scumm/sound.h"
#include "scumm/scumm.h"
+#include "scumm/util.h"
+
+#ifndef DISABLE_HE
+#include "scumm/logic_he.h"
+#include "scumm/resource_v7he.h"
+#endif
+
+#ifndef DISABLE_SCUMM_7_8
+#include "scumm/akos.h"
+#include "scumm/imuse_digi/dimuse.h"
+#include "scumm/insane/insane.h"
+#endif
+
#ifdef __PALM_OS__
#include "extras/palm-scumm-md5.h"
#else
@@ -187,6 +196,7 @@ static const ScummGameSettings scumm_settings[] = {
// {"test", "Test demo game", GID_SAMNMAX, 6, 0, /*MDT_PCSPK |*/ MDT_ADLIB | MDT_NATIVE, GF_NEW_OPCODES, Common::kPlatformUnknown, 0, 0},
+#ifndef DISABLE_SCUMM_7_8
/* Scumm Version 7 */
{"ft", "Full Throttle", GID_FT, 7, 0, MDT_NONE,
GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE, Common::kPlatformPC, 0, 0},
@@ -215,11 +225,14 @@ static const ScummGameSettings scumm_settings[] = {
GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE | GF_DEFAULT_TO_1X_SCALER | GF_DEMO, Common::kPlatformWindows, "comi", "COMI.LA0"},
#endif
+#endif
+
// Humongous Entertainment Scumm Version 6
- {"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},
{"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,
GF_USE_KEY | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, Common::kPlatformPC, 0, 0},
{"puttmoon", "Putt-Putt Goes To The Moon", GID_HEGAME, 6, 61, MDT_ADLIB | MDT_NATIVE,
@@ -232,6 +245,7 @@ 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,
@@ -1342,6 +1356,7 @@ ScummEngine_v90he::~ScummEngine_v90he() {
}
#endif
+#ifndef DISABLE_SCUMM_7_8
ScummEngine_v7::ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16])
: ScummEngine_v6(detector, syst, gs, md5sum) {
_existLanguageFile = false;
@@ -1362,7 +1377,7 @@ ScummEngine_v8::ScummEngine_v8(GameDetector *detector, OSystem *syst, const Scum
ScummEngine_v8::~ScummEngine_v8() {
delete [] _objectIDMap;
}
-
+#endif
#pragma mark -
#pragma mark --- Initialization ---
@@ -1425,8 +1440,10 @@ 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);
@@ -1435,10 +1452,12 @@ int ScummEngine::init(GameDetector &detector) {
_costumeLoader = new ClassicCostumeLoader(this);
}
+#ifndef DISABLE_SCUMM_7_8
// Create FT INSANE object
if (_gameId == GID_FT)
_insane = new Insane((ScummEngine_v6 *)this);
else
+#endif
_insane = 0;
// Load game from specified slot, if any
@@ -1755,6 +1774,7 @@ void ScummEngine_v6::scummInit() {
}
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v60he::scummInit() {
ScummEngine::scummInit();
@@ -1764,6 +1784,7 @@ void ScummEngine_v60he::scummInit() {
if (_gameId == GID_FUNPACK)
setCursorHotspot(16, 16);
}
+#endif
#ifndef DISABLE_HE
void ScummEngine_v72he::scummInit() {
@@ -1844,7 +1865,9 @@ void ScummEngine::setupMusic(int midi) {
// Init iMuse
if (_features & GF_DIGI_IMUSE) {
+#ifndef DISABLE_SCUMM_7_8
_musicEngine = _imuseDigital = new IMuseDigital(this, 10);
+#endif
} else if (_platform == Common::kPlatformNES) {
_musicEngine = new Player_NES(this);
} else if ((_platform == Common::kPlatformAmiga) && (_version == 2)) {
@@ -2247,11 +2270,13 @@ load_game:
_sound->processSoundQues();
+#ifndef DISABLE_SCUMM_7_8
if (_imuseDigital) {
_imuseDigital->flushTracks();
if ( ((_gameId == GID_DIG) && (!(_features & GF_DEMO))) || (_gameId == GID_CMI) )
_imuseDigital->refreshScripts();
}
+#endif
camera._last = camera._cur;
@@ -2891,13 +2916,16 @@ 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);
}
break;
+#ifndef DISABLE_SCUMM_7_8
case 7:
engine = new ScummEngine_v7(detector, syst, game, md5sum);
break;
@@ -2906,6 +2934,8 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) {
engine = new ScummEngine_v8(detector, syst, game, md5sum);
break;
#endif
+
+#endif
default:
error("Engine_SCUMM_create(): Unknown version of game engine");
}
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index d6059aecc6..e222ab19d7 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -23,12 +23,15 @@
#include "stdafx.h"
#include "scumm/actor.h"
#include "scumm/imuse.h"
-#include "scumm/imuse_digi/dimuse.h"
#include "scumm/scumm.h"
#include "scumm/saveload.h"
#include "scumm/sound.h"
#include "scumm/util.h"
+#ifndef DISABLE_SCUMM_7_8
+#include "scumm/imuse_digi/dimuse.h"
+#endif
+
#include "common/config-manager.h"
#include "common/timer.h"
#include "common/util.h"
@@ -806,8 +809,10 @@ void Sound::startTalkSound(uint32 offset, uint32 b, int mode, Audio::SoundHandle
}
if (_vm->_imuseDigital) {
+#ifndef DISABLE_SCUMM_7_8
//_vm->_imuseDigital->stopSound(kTalkSoundID);
_vm->_imuseDigital->startVoice(kTalkSoundID, input);
+#endif
} else {
_vm->_mixer->playInputStream(Audio::Mixer::kSFXSoundType, handle, input, id);
}
@@ -817,7 +822,9 @@ void Sound::startTalkSound(uint32 offset, uint32 b, int mode, Audio::SoundHandle
void Sound::stopTalkSound() {
if (_sfxMode & 2) {
if (_vm->_imuseDigital) {
+#ifndef DISABLE_SCUMM_7_8
_vm->_imuseDigital->stopSound(kTalkSoundID);
+#endif
} else if (_vm->_heversion >= 60) {
_vm->_mixer->stopID(1);
} else {
@@ -855,8 +862,10 @@ int Sound::getSoundElapsedTime(int sound) const {
}
int Sound::isSoundRunning(int sound) const {
+#ifndef DISABLE_SCUMM_7_8
if (_vm->_imuseDigital)
return (_vm->_imuseDigital->getSoundStatus(sound) != 0);
+#endif
if (sound == _currentCDSound)
return pollCD();
@@ -906,8 +915,10 @@ int Sound::isSoundRunning(int sound) const {
*/
bool Sound::isSoundInUse(int sound) const {
+#ifndef DISABLE_SCUMM_7_8
if (_vm->_imuseDigital)
return (_vm->_imuseDigital->getSoundStatus(sound) != 0);
+#endif
if (sound == _currentCDSound)
return pollCD() != 0;
@@ -1015,11 +1026,13 @@ void Sound::stopAllSounds() {
void Sound::soundKludge(int *list, int num) {
int i;
+#ifndef DISABLE_SCUMM_7_8
if (_vm->_imuseDigital) {
_vm->_imuseDigital->parseScriptCmds(list[0], list[1], list[2], list[3], list[4],
list[5], list[6], list[7]);
return;
}
+#endif
if (list[0] == -1) {
processSoundQues();
@@ -1081,9 +1094,11 @@ void Sound::pauseSounds(bool pause) {
_soundsPaused = pause;
+#ifndef DISABLE_SCUMM_7_8
if (_vm->_imuseDigital) {
_vm->_imuseDigital->pause(pause);
}
+#endif
_vm->_mixer->pauseAll(pause);
diff --git a/scumm/string.cpp b/scumm/string.cpp
index e0b42a18c7..bb2a07ac79 100644
--- a/scumm/string.cpp
+++ b/scumm/string.cpp
@@ -747,10 +747,12 @@ int ScummEngine::addStringToStack(byte *dst, int dstSize, int var) {
return 0;
}
+#ifndef DISABLE_HE
void ScummEngine_v80he::initCharset(int charsetno) {
ScummEngine::initCharset(charsetno);
VAR(VAR_CURRENT_CHARSET) = charsetno;
}
+#endif
void ScummEngine::initCharset(int charsetno) {
int i;
@@ -836,6 +838,7 @@ void ScummEngine_v6::removeBlastTexts() {
_blastTextQueuePos = 0;
}
+#ifndef DISABLE_SCUMM_7_8
int indexCompare(const void *p1, const void *p2) {
const LangIndexNode *i1 = (const LangIndexNode *) p1;
const LangIndexNode *i2 = (const LangIndexNode *) p2;
@@ -989,11 +992,6 @@ void ScummEngine_v7::playSpeech(const byte *ptr) {
}
}
-void ScummEngine::translateText(const byte *text, byte *trans_buff) {
- // Default: just copy the string
- memcpy(trans_buff, text, resStrLen(text) + 1);
-}
-
void ScummEngine_v7::translateText(const byte *text, byte *trans_buff) {
LangIndexNode target;
LangIndexNode *found = NULL;
@@ -1083,4 +1081,11 @@ void ScummEngine_v7::translateText(const byte *text, byte *trans_buff) {
}
}
+#endif
+
+void ScummEngine::translateText(const byte *text, byte *trans_buff) {
+ // Default: just copy the string
+ memcpy(trans_buff, text, resStrLen(text) + 1);
+}
+
} // End of namespace Scumm
diff --git a/scumm/vars.cpp b/scumm/vars.cpp
index e23e07295d..e78fd5abc9 100644
--- a/scumm/vars.cpp
+++ b/scumm/vars.cpp
@@ -24,10 +24,13 @@
#include "stdafx.h"
#include "common/config-manager.h"
#include "scumm/scumm.h"
-#include "scumm/logic_he.h"
#include "scumm/intern.h"
#include "sound/mididrv.h"
+#ifndef DISABLE_HE
+#include "scumm/logic_he.h"
+#endif
+
namespace Scumm {
void ScummEngine::setupScummVars() {
@@ -194,6 +197,7 @@ void ScummEngine_v6::setupScummVars() {
VAR_CHARSET_MASK = 123;
}
+#ifndef DISABLE_HE
void ScummEngine_v70he::setupScummVars() {
ScummEngine_v6::setupScummVars();
@@ -303,7 +307,9 @@ void ScummEngine_v72he::setupScummVars() {
VAR_NUM_UNK = 131;
}
}
+#endif
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v7::setupScummVars() {
VAR_MOUSE_X = 1;
VAR_MOUSE_Y = 2;
@@ -500,6 +506,7 @@ void ScummEngine_v8::setupScummVars() {
VAR_BLAST_ABOVE_TEXT = 133;
VAR_SYNC = 134;
}
+#endif
void ScummEngine_v2::initScummVars() {
@@ -525,6 +532,7 @@ void ScummEngine_v5::initScummVars() {
_scummVars[74] = 1225;
}
+#ifndef DISABLE_SCUMM_7_8
void ScummEngine_v7::initScummVars() {
ScummEngine::initScummVars();
@@ -539,7 +547,9 @@ void ScummEngine_v7::initScummVars() {
VAR(VAR_DEFAULT_TALK_DELAY) = 60;
VAR(VAR_VOICE_MODE) = ConfMan.getBool("subtitles");
}
+#endif
+#ifndef DISABLE_HE
void ScummEngine_v70he::initScummVars() {
ScummEngine::initScummVars();
@@ -591,6 +601,7 @@ void ScummEngine_v99he::initScummVars() {
VAR(VAR_NUM_PALETTES) = _numPalettes;
VAR(VAR_NUM_UNK) = _numUnk;
}
+#endif
void ScummEngine::initScummVars() {