aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/object.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/scumm/object.cpp b/scumm/object.cpp
index a44a4b7cb2..b9bb01ab0b 100644
--- a/scumm/object.cpp
+++ b/scumm/object.cpp
@@ -305,7 +305,7 @@ void Scumm::drawRoomObjects(int arg) {
}
}
-const uint32 IMxx_tags[] = {
+static const uint32 IMxx_tags[] = {
MKID('IM00'),
MKID('IM01'),
MKID('IM02'),
@@ -1468,7 +1468,7 @@ void Scumm::drawBlastObject(BlastObject *eo) {
updateDirtyRect(vs->number, bdd.x, bdd.x + bdd.srcwidth, bdd.y, bdd.y + bdd.srcheight, 0);
}
-byte _bompScaleTable[] = {
+static byte _bompScaleTable[] = {
0, 128, 64, 192, 32, 160, 96, 224,
16, 144, 80, 208, 48, 176, 112, 240,
8, 136, 72, 200, 40, 168, 104, 232,
@@ -1536,7 +1536,7 @@ byte _bompScaleTable[] = {
31, 159, 95, 223, 63, 191, 127, 255,
};
-byte _bompBitsTable[] = {
+static byte _bompBitsTable[] = {
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,
7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
@@ -1556,9 +1556,10 @@ byte _bompBitsTable[] = {
};
int32 Scumm::setupBompScale(byte * scalling, int32 size, byte scale) {
- uint32 tmp;
+ uint32 tmp = (256 - (size >> 1));
int32 count = (size + 7) >> 3;
- byte * tmp_ptr = _bompScaleTable + (256 - (size >> 1));
+ assert(0 <= tmp && tmp < sizeof(_bompScaleTable));
+ byte * tmp_ptr = _bompScaleTable + tmp;
byte * tmp_scalling = scalling;
byte a = 0;
@@ -1615,8 +1616,10 @@ int32 Scumm::setupBompScale(byte * scalling, int32 size, byte scale) {
count = (size + 7) >> 3;
byte ret_value = 0;
- while((count--) != 0) {
- ret_value += *(*(scalling++) + _bompBitsTable);
+ while(count--) {
+ tmp = *scalling++;
+ assert(0 <= tmp && tmp < sizeof(_bompBitsTable));
+ ret_value += _bompBitsTable[tmp];
}
return ret_value;