aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-03-02 23:14:06 +0000
committerTravis Howell2005-03-02 23:14:06 +0000
commitbad34c12cd3bdb26d6feb46daccb15cc97dd3783 (patch)
tree794927fd06d166734e84959aacb56a8ab6ce477f
parentb6fdeff330c653685b046c3efcaa2a2c2a6c70c4 (diff)
downloadscummvm-rg350-bad34c12cd3bdb26d6feb46daccb15cc97dd3783.tar.gz
scummvm-rg350-bad34c12cd3bdb26d6feb46daccb15cc97dd3783.tar.bz2
scummvm-rg350-bad34c12cd3bdb26d6feb46daccb15cc97dd3783.zip
Add two more VARs for HE89+
Minor cleanup svn-id: r16977
-rw-r--r--scumm/script_v72he.cpp4
-rw-r--r--scumm/scumm.cpp2
-rw-r--r--scumm/scumm.h2
-rw-r--r--scumm/vars.cpp9
4 files changed, 13 insertions, 4 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 8f68dcc986..b8e235f778 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -1620,9 +1620,7 @@ int ScummEngine_v72he::readFileToArray(int slot, int32 size) {
writeVar(0, 0);
ArrayHeader *ah = defineArray(0, kByteArray, 0, 0, 0, size);
- size = (FROM_LE_32(ah->dim1end) - FROM_LE_32(ah->dim1start) + 1) *
- (FROM_LE_32(ah->dim2end) - FROM_LE_32(ah->dim2start) + 1);
- _hFileTable[slot].read(ah->data, size);
+ _hFileTable[slot].read(ah->data, size + 1);
return readVar(0);
}
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 8e49aed57f..713abd0cba 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -967,6 +967,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
VAR_MUSIC_BUNDLE_LOADED = 0xFF;
VAR_VOICE_BUNDLE_LOADED = 0xFF;
+ VAR_NUM_ACTIVE_SOUND_CHANNELS = 0xFF;
VAR_NUM_SOUND_CHANNELS = 0xFF;
VAR_MUSIC_CHANNEL = 0xFF;
VAR_SOUND_CHANNEL = 0xFF;
@@ -981,6 +982,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
VAR_NUM_IMAGES = 0xFF;
VAR_NUM_CHARSETS = 0xFF;
VAR_NUM_GLOBAL_OBJS = 0xFF;
+ VAR_NUM_SPRITE_GROUPS = 0xFF;
VAR_NUM_SPRITES = 0xFF;
VAR_NUM_PALETTES = 0xFF;
VAR_NUM_UNK = 0xFF;
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 202f40d5f8..44fa8ead0d 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -1293,6 +1293,7 @@ public:
byte VAR_MUSIC_BUNDLE_LOADED;
byte VAR_VOICE_BUNDLE_LOADED;
+ byte VAR_NUM_ACTIVE_SOUND_CHANNELS;
byte VAR_NUM_SOUND_CHANNELS;
byte VAR_MUSIC_CHANNEL;
byte VAR_SOUND_CHANNEL;
@@ -1307,6 +1308,7 @@ public:
byte VAR_NUM_IMAGES;
byte VAR_NUM_CHARSETS;
byte VAR_NUM_GLOBAL_OBJS;
+ byte VAR_NUM_SPRITE_GROUPS;
byte VAR_NUM_SPRITES;
byte VAR_NUM_PALETTES;
byte VAR_NUM_UNK;
diff --git a/scumm/vars.cpp b/scumm/vars.cpp
index 0da5f29f44..5f8fc7dee9 100644
--- a/scumm/vars.cpp
+++ b/scumm/vars.cpp
@@ -265,9 +265,12 @@ void ScummEngine_v72he::setupScummVars() {
VAR_WINDOWS_VERSION = 79;
VAR_KEY_STATE = 86;
if (_heversion >= 90) {
+ VAR_NUM_ACTIVE_SOUND_CHANNELS = 88;
+
VAR_SCRIPT_CYCLE = 103;
VAR_NUM_SCRIPT_CYCLES = 104;
+ VAR_NUM_SPRITE_GROUPS = 105;
VAR_NUM_SPRITES = 106;
VAR_WIZ_TCOLOR = 117;
}
@@ -511,10 +514,14 @@ void ScummEngine::initScummVars() {
if (_heversion >= 80)
VAR(VAR_WINDOWS_VERSION) = 40;
if (_heversion >= 90) {
+ VAR(VAR_NUM_ACTIVE_SOUND_CHANNELS) = 8;
+
VAR(VAR_SCRIPT_CYCLE) = 1;
VAR(VAR_NUM_SCRIPT_CYCLES) = 1;
- VAR(VAR_WIZ_TCOLOR) = 5;
+
+ VAR(VAR_NUM_SPRITE_GROUPS) = MAX(64, _numSprites / 4) - 1;
VAR(VAR_NUM_SPRITES) = _numSprites - 1;
+ VAR(VAR_WIZ_TCOLOR) = 5;
}
if (_heversion >= 99) {
VAR(VAR_NUM_PALETTES) = _numPalettes;