[Scummvm-git-logs] scummvm master -> a6500c009d40099e091f86fd39be7208fd3b7664
AndywinXp
noreply at scummvm.org
Wed Jan 4 20:56:56 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a6500c009d JANITORIAL: SCUMM: Clean-up and relabel SMUSH codecs 37 and 47
Commit: a6500c009d40099e091f86fd39be7208fd3b7664
https://github.com/scummvm/scummvm/commit/a6500c009d40099e091f86fd39be7208fd3b7664
Author: AndywinXp (andywinxp at gmail.com)
Date: 2023-01-04T21:56:50+01:00
Commit Message:
JANITORIAL: SCUMM: Clean-up and relabel SMUSH codecs 37 and 47
Changed paths:
engines/scumm/smush/codec37.cpp
engines/scumm/smush/codec37.h
engines/scumm/smush/codec47.cpp
engines/scumm/smush/codec47.h
engines/scumm/smush/smush_player.cpp
engines/scumm/smush/smush_player.h
diff --git a/engines/scumm/smush/codec37.cpp b/engines/scumm/smush/codec37.cpp
index 717fde422dc..47d9976247b 100644
--- a/engines/scumm/smush/codec37.cpp
+++ b/engines/scumm/smush/codec37.cpp
@@ -28,26 +28,26 @@
namespace Scumm {
-Codec37Decoder::Codec37Decoder(int width, int height) {
+SmushDeltaBlocksDecoder::SmushDeltaBlocksDecoder(int width, int height) {
_width = width;
_height = height;
_frameSize = _width * _height;
_deltaSize = _frameSize * 3 + 0x13600;
_deltaBuf = (byte *)calloc(_deltaSize, sizeof(byte));
if (_deltaBuf == nullptr)
- error("unable to allocate decoder buffer");
+ error("SmushDeltaBlocksDecoder::SmushDeltaBlocksDecoder(): ERROR: Unable to allocate decoder buffer.");
_deltaBufs[0] = _deltaBuf + 0x4D80;
_deltaBufs[1] = _deltaBuf + 0xE880 + _frameSize;
_offsetTable = new int16[255];
if (_offsetTable == nullptr)
- error("unable to allocate decoder offset table");
- _curtable = 0;
+ error("SmushDeltaBlocksDecoder::SmushDeltaBlocksDecoder(): ERROR: Unable to allocate decoder offset table.");
+ _curTable = 0;
_prevSeqNb = 0;
_tableLastPitch = -1;
_tableLastIndex = -1;
}
-Codec37Decoder::~Codec37Decoder() {
+SmushDeltaBlocksDecoder::~SmushDeltaBlocksDecoder() {
if (_offsetTable) {
delete[] _offsetTable;
_offsetTable = nullptr;
@@ -63,8 +63,8 @@ Codec37Decoder::~Codec37Decoder() {
}
}
-void Codec37Decoder::maketable(int pitch, int index) {
- static const int8 maketable_bytes[] = {
+void SmushDeltaBlocksDecoder::makeTable(int pitch, int index) {
+ static const int8 makeTableBytes[] = {
0, 0, 1, 0, 2, 0, 3, 0, 5, 0,
8, 0, 13, 0, 21, 0, -1, 0, -2, 0,
-3, 0, -5, 0, -8, 0, -13, 0, -17, 0,
@@ -226,105 +226,105 @@ void Codec37Decoder::maketable(int pitch, int index) {
_tableLastPitch = pitch;
_tableLastIndex = index;
index *= 255;
- assert(index + 254 < (int32)(sizeof(maketable_bytes) / 2));
+ assert(index + 254 < (int32)(sizeof(makeTableBytes) / 2));
for (int32 i = 0; i < 255; i++) {
int32 j = (i + index) * 2;
- _offsetTable[i] = maketable_bytes[j + 1] * pitch + maketable_bytes[j];
+ _offsetTable[i] = makeTableBytes[j + 1] * pitch + makeTableBytes[j];
}
}
#if defined(SCUMM_NEED_ALIGNMENT)
-#define DECLARE_LITERAL_TEMP(v) \
+#define DECLARE_LITERAL_TEMP(v) \
byte v
-#define READ_LITERAL_PIXEL(src, v) \
+#define READ_LITERAL_PIXEL(src, v) \
v = *src++
-#define WRITE_4X1_LINE(dst, v) \
- do { \
- int j; \
- for (j=0; j<4; j++) \
- (dst)[j] = v; \
+#define WRITE_4X1_LINE(dst, v) \
+ do { \
+ int j; \
+ for (j = 0; j < 4; j++) \
+ (dst)[j] = v; \
} while (0)
-#define COPY_4X1_LINE(dst, src) \
- do { \
- int j; \
- for (j=0; j<4; j++) \
- (dst)[j] = (src)[j]; \
+#define COPY_4X1_LINE(dst, src) \
+ do { \
+ int j; \
+ for (j = 0; j < 4; j++) \
+ (dst)[j] = (src)[j]; \
} while (0)
#else /* SCUMM_NEED_ALIGNMENT */
-#define DECLARE_LITERAL_TEMP(v) \
+#define DECLARE_LITERAL_TEMP(v) \
uint32 v
-#define READ_LITERAL_PIXEL(src, v) \
- do { \
- v = *src++; \
- v += (v << 8) + (v << 16) + (v << 24); \
+#define READ_LITERAL_PIXEL(src, v) \
+ do { \
+ v = *src++; \
+ v += (v << 8) + (v << 16) + (v << 24); \
} while (0)
-#define WRITE_4X1_LINE(dst, v) \
+#define WRITE_4X1_LINE(dst, v) \
*(uint32 *)(dst) = v
-#define COPY_4X1_LINE(dst, src) \
+#define COPY_4X1_LINE(dst, src) \
*(uint32 *)(dst) = *(const uint32 *)(src)
#endif /* SCUMM_NEED_ALIGNMENT */
/* Fill a 4x4 pixel block with a literal pixel value */
-#define LITERAL_4X4(src, dst, pitch) \
- do { \
- int x; \
- DECLARE_LITERAL_TEMP(t); \
- READ_LITERAL_PIXEL(src, t); \
- for (x=0; x<4; x++) { \
- WRITE_4X1_LINE(dst + pitch * x, t); \
- } \
- dst += 4; \
+#define LITERAL_4X4(src, dst, pitch) \
+ do { \
+ int x; \
+ DECLARE_LITERAL_TEMP(t); \
+ READ_LITERAL_PIXEL(src, t); \
+ for (x = 0; x < 4; x++) { \
+ WRITE_4X1_LINE(dst + pitch * x, t); \
+ } \
+ dst += 4; \
} while (0)
/* Fill four 4x1 pixel blocks with literal pixel values */
-#define LITERAL_4X1(src, dst, pitch) \
- do { \
- int x; \
- DECLARE_LITERAL_TEMP(t); \
- for (x=0; x<4; x++) { \
- READ_LITERAL_PIXEL(src, t); \
- WRITE_4X1_LINE(dst + pitch * x, t); \
- } \
- dst += 4; \
+#define LITERAL_4X1(src, dst, pitch) \
+ do { \
+ int x; \
+ DECLARE_LITERAL_TEMP(t); \
+ for (x = 0; x < 4; x++) { \
+ READ_LITERAL_PIXEL(src, t); \
+ WRITE_4X1_LINE(dst + pitch * x, t); \
+ } \
+ dst += 4; \
} while (0)
/* Fill sixteen 1x1 pixel blocks with literal pixel values */
-#define LITERAL_1X1(src, dst, pitch) \
- do { \
- int x; \
- for (x=0; x<4; x++) { \
- COPY_4X1_LINE(dst + pitch * x, src); \
- src += 4; \
- } \
- dst += 4; \
+#define LITERAL_1X1(src, dst, pitch) \
+ do { \
+ int x; \
+ for (x = 0; x < 4; x++) { \
+ COPY_4X1_LINE(dst + pitch * x, src); \
+ src += 4; \
+ } \
+ dst += 4; \
} while (0)
/* Copy a 4x4 pixel block from a different place in the framebuffer */
-#define COPY_4X4(dst2, dst, pitch) \
- do { \
- int x; \
- for (x=0; x<4; x++) { \
+#define COPY_4X4(dst2, dst, pitch) \
+ do { \
+ int x; \
+ for (x=0; x<4; x++) { \
COPY_4X1_LINE(dst + pitch * x, dst2 + pitch * x); \
- } \
- dst += 4; \
+ } \
+ dst += 4; \
} while (0)
-void Codec37Decoder::proc1(byte *dst, const byte *src, int32 next_offs, int bw, int bh, int pitch, int16 *offset_table) {
+void SmushDeltaBlocksDecoder::proc1(byte *dst, const byte *src, int32 nextOffs, int bw, int bh, int pitch, int16 *offsetTable) {
uint8 code;
bool filling, skipCode;
int32 len;
@@ -376,7 +376,7 @@ void Codec37Decoder::proc1(byte *dst, const byte *src, int32 next_offs, int bw,
continue;
}
}
- byte *dst2 = dst + offset_table[code] + next_offs;
+ byte *dst2 = dst + offsetTable[code] + nextOffs;
COPY_4X4(dst2, dst, pitch);
--i;
if (i == 0) {
@@ -389,7 +389,7 @@ void Codec37Decoder::proc1(byte *dst, const byte *src, int32 next_offs, int bw,
}
}
-void Codec37Decoder::proc3WithFDFE(byte *dst, const byte *src, int32 next_offs, int bw, int bh, int pitch, int16 *offset_table) {
+void SmushDeltaBlocksDecoder::proc3WithFDFE(byte *dst, const byte *src, int32 nextOffs, int bw, int bh, int pitch, int16 *offsetTable) {
do {
int32 i = bw;
do {
@@ -401,7 +401,7 @@ void Codec37Decoder::proc3WithFDFE(byte *dst, const byte *src, int32 next_offs,
} else if (code == 0xFF) {
LITERAL_1X1(src, dst, pitch);
} else {
- byte *dst2 = dst + _offsetTable[code] + next_offs;
+ byte *dst2 = dst + _offsetTable[code] + nextOffs;
COPY_4X4(dst2, dst, pitch);
}
} while (--i);
@@ -409,7 +409,7 @@ void Codec37Decoder::proc3WithFDFE(byte *dst, const byte *src, int32 next_offs,
} while (--bh);
}
-void Codec37Decoder::proc3WithoutFDFE(byte *dst, const byte *src, int32 next_offs, int bw, int bh, int pitch, int16 *offset_table) {
+void SmushDeltaBlocksDecoder::proc3WithoutFDFE(byte *dst, const byte *src, int32 nextOffs, int bw, int bh, int pitch, int16 *offsetTable) {
do {
int32 i = bw;
do {
@@ -417,7 +417,7 @@ void Codec37Decoder::proc3WithoutFDFE(byte *dst, const byte *src, int32 next_off
if (code == 0xFF) {
LITERAL_1X1(src, dst, pitch);
} else {
- byte *dst2 = dst + _offsetTable[code] + next_offs;
+ byte *dst2 = dst + _offsetTable[code] + nextOffs;
COPY_4X4(dst2, dst, pitch);
}
} while (--i);
@@ -425,7 +425,7 @@ void Codec37Decoder::proc3WithoutFDFE(byte *dst, const byte *src, int32 next_off
} while (--bh);
}
-void Codec37Decoder::proc4WithFDFE(byte *dst, const byte *src, int32 next_offs, int bw, int bh, int pitch, int16 *offset_table) {
+void SmushDeltaBlocksDecoder::proc4WithFDFE(byte *dst, const byte *src, int32 nextOffs, int bw, int bh, int pitch, int16 *offsetTable) {
do {
int32 i = bw;
do {
@@ -439,7 +439,7 @@ void Codec37Decoder::proc4WithFDFE(byte *dst, const byte *src, int32 next_offs,
} else if (code == 0x00) {
int32 length = *src++ + 1;
for (int32 l = 0; l < length; l++) {
- byte *dst2 = dst + next_offs;
+ byte *dst2 = dst + nextOffs;
COPY_4X4(dst2, dst, pitch);
i--;
if (i == 0) {
@@ -453,7 +453,7 @@ void Codec37Decoder::proc4WithFDFE(byte *dst, const byte *src, int32 next_offs,
}
i++;
} else {
- byte *dst2 = dst + _offsetTable[code] + next_offs;
+ byte *dst2 = dst + _offsetTable[code] + nextOffs;
COPY_4X4(dst2, dst, pitch);
}
} while (--i);
@@ -461,7 +461,7 @@ void Codec37Decoder::proc4WithFDFE(byte *dst, const byte *src, int32 next_offs,
} while (--bh);
}
-void Codec37Decoder::proc4WithoutFDFE(byte *dst, const byte *src, int32 next_offs, int bw, int bh, int pitch, int16 *offset_table) {
+void SmushDeltaBlocksDecoder::proc4WithoutFDFE(byte *dst, const byte *src, int32 nextOffs, int bw, int bh, int pitch, int16 *offsetTable) {
do {
int32 i = bw;
do {
@@ -471,7 +471,7 @@ void Codec37Decoder::proc4WithoutFDFE(byte *dst, const byte *src, int32 next_off
} else if (code == 0x00) {
int32 length = *src++ + 1;
for (int32 l = 0; l < length; l++) {
- byte *dst2 = dst + next_offs;
+ byte *dst2 = dst + nextOffs;
COPY_4X4(dst2, dst, pitch);
i--;
if (i == 0) {
@@ -485,7 +485,7 @@ void Codec37Decoder::proc4WithoutFDFE(byte *dst, const byte *src, int32 next_off
}
i++;
} else {
- byte *dst2 = dst + _offsetTable[code] + next_offs;
+ byte *dst2 = dst + _offsetTable[code] + nextOffs;
COPY_4X4(dst2, dst, pitch);
}
} while (--i);
@@ -493,80 +493,80 @@ void Codec37Decoder::proc4WithoutFDFE(byte *dst, const byte *src, int32 next_off
} while (--bh);
}
-void Codec37Decoder::decode(byte *dst, const byte *src) {
+void SmushDeltaBlocksDecoder::decode(byte *dst, const byte *src) {
int32 bw = (_width + 3) / 4, bh = (_height + 3) / 4;
int32 pitch = bw * 4;
- int16 seq_nb = READ_LE_UINT16(src + 2);
- int32 decoded_size = READ_LE_UINT32(src + 4);
- byte mask_flags = src[12];
- maketable(pitch, src[1]);
+ int16 seqNb = READ_LE_UINT16(src + 2);
+ int32 decodedSize = READ_LE_UINT32(src + 4);
+ byte maskFlags = src[12];
+ makeTable(pitch, src[1]);
int32 tmp;
switch (src[0]) {
case 0:
- if ((_deltaBufs[_curtable] - _deltaBuf) > 0) {
- memset(_deltaBuf, 0, _deltaBufs[_curtable] - _deltaBuf);
+ if ((_deltaBufs[_curTable] - _deltaBuf) > 0) {
+ memset(_deltaBuf, 0, _deltaBufs[_curTable] - _deltaBuf);
}
- tmp = (_deltaBuf + _deltaSize) - _deltaBufs[_curtable] - decoded_size;
+ tmp = (_deltaBuf + _deltaSize) - _deltaBufs[_curTable] - decodedSize;
if (tmp > 0) {
- memset(_deltaBufs[_curtable] + decoded_size, 0, tmp);
+ memset(_deltaBufs[_curTable] + decodedSize, 0, tmp);
}
- memcpy(_deltaBufs[_curtable], src + 16, decoded_size);
+ memcpy(_deltaBufs[_curTable], src + 16, decodedSize);
break;
case 1:
- if ((seq_nb & 1) || !(mask_flags & 1)) {
- _curtable ^= 1;
+ if ((seqNb & 1) || !(maskFlags & 1)) {
+ _curTable ^= 1;
}
- proc1(_deltaBufs[_curtable], src + 16, _deltaBufs[_curtable ^ 1] - _deltaBufs[_curtable],
+ proc1(_deltaBufs[_curTable], src + 16, _deltaBufs[_curTable ^ 1] - _deltaBufs[_curTable],
bw, bh, pitch, _offsetTable);
break;
case 2:
- bompDecodeLine(_deltaBufs[_curtable], src + 16, decoded_size);
- if ((_deltaBufs[_curtable] - _deltaBuf) > 0) {
- memset(_deltaBuf, 0, _deltaBufs[_curtable] - _deltaBuf);
+ bompDecodeLine(_deltaBufs[_curTable], src + 16, decodedSize);
+ if ((_deltaBufs[_curTable] - _deltaBuf) > 0) {
+ memset(_deltaBuf, 0, _deltaBufs[_curTable] - _deltaBuf);
}
- tmp = (_deltaBuf + _deltaSize) - _deltaBufs[_curtable] - decoded_size;
+ tmp = (_deltaBuf + _deltaSize) - _deltaBufs[_curTable] - decodedSize;
if (tmp > 0) {
- memset(_deltaBufs[_curtable] + decoded_size, 0, tmp);
+ memset(_deltaBufs[_curTable] + decodedSize, 0, tmp);
}
break;
case 3:
- if ((seq_nb & 1) || !(mask_flags & 1)) {
- _curtable ^= 1;
+ if ((seqNb & 1) || !(maskFlags & 1)) {
+ _curTable ^= 1;
}
- if ((mask_flags & 4) != 0) {
- proc3WithFDFE(_deltaBufs[_curtable], src + 16,
- _deltaBufs[_curtable ^ 1] - _deltaBufs[_curtable], bw, bh,
+ if ((maskFlags & 4) != 0) {
+ proc3WithFDFE(_deltaBufs[_curTable], src + 16,
+ _deltaBufs[_curTable ^ 1] - _deltaBufs[_curTable], bw, bh,
pitch, _offsetTable);
} else {
- proc3WithoutFDFE(_deltaBufs[_curtable], src + 16,
- _deltaBufs[_curtable ^ 1] - _deltaBufs[_curtable], bw, bh,
+ proc3WithoutFDFE(_deltaBufs[_curTable], src + 16,
+ _deltaBufs[_curTable ^ 1] - _deltaBufs[_curTable], bw, bh,
pitch, _offsetTable);
}
break;
case 4:
- if ((seq_nb & 1) || !(mask_flags & 1)) {
- _curtable ^= 1;
+ if ((seqNb & 1) || !(maskFlags & 1)) {
+ _curTable ^= 1;
}
- if ((mask_flags & 4) != 0) {
- proc4WithFDFE(_deltaBufs[_curtable], src + 16,
- _deltaBufs[_curtable ^ 1] - _deltaBufs[_curtable], bw, bh,
+ if ((maskFlags & 4) != 0) {
+ proc4WithFDFE(_deltaBufs[_curTable], src + 16,
+ _deltaBufs[_curTable ^ 1] - _deltaBufs[_curTable], bw, bh,
pitch, _offsetTable);
} else {
- proc4WithoutFDFE(_deltaBufs[_curtable], src + 16,
- _deltaBufs[_curtable ^ 1] - _deltaBufs[_curtable], bw, bh,
+ proc4WithoutFDFE(_deltaBufs[_curTable], src + 16,
+ _deltaBufs[_curTable ^ 1] - _deltaBufs[_curTable], bw, bh,
pitch, _offsetTable);
}
break;
default:
break;
}
- _prevSeqNb = seq_nb;
+ _prevSeqNb = seqNb;
- memcpy(dst, _deltaBufs[_curtable], _frameSize);
+ memcpy(dst, _deltaBufs[_curTable], _frameSize);
}
} // End of namespace Scumm
diff --git a/engines/scumm/smush/codec37.h b/engines/scumm/smush/codec37.h
index 4614fd5ac29..c5ac882fd81 100644
--- a/engines/scumm/smush/codec37.h
+++ b/engines/scumm/smush/codec37.h
@@ -26,14 +26,14 @@
namespace Scumm {
-class Codec37Decoder {
+class SmushDeltaBlocksDecoder {
private:
int32 _deltaSize;
byte *_deltaBufs[2];
byte *_deltaBuf;
int16 *_offsetTable;
- int _curtable;
+ int _curTable;
uint16 _prevSeqNb;
int _tableLastPitch;
int _tableLastIndex;
@@ -41,10 +41,10 @@ private:
int _width, _height;
public:
- Codec37Decoder(int width, int height);
- ~Codec37Decoder();
+ SmushDeltaBlocksDecoder(int width, int height);
+ ~SmushDeltaBlocksDecoder();
protected:
- void maketable(int, int);
+ void makeTable(int, int);
void proc1(byte *dst, const byte *src, int32, int, int, int, int16 *);
void proc3WithFDFE(byte *dst, const byte *src, int32, int, int, int, int16 *);
void proc3WithoutFDFE(byte *dst, const byte *src, int32, int, int, int, int16 *);
diff --git a/engines/scumm/smush/codec47.cpp b/engines/scumm/smush/codec47.cpp
index 25e11437f97..3e0d23e1f5b 100644
--- a/engines/scumm/smush/codec47.cpp
+++ b/engines/scumm/smush/codec47.cpp
@@ -30,69 +30,69 @@ namespace Scumm {
#if defined(SCUMM_NEED_ALIGNMENT)
-#define COPY_4X1_LINE(dst, src) \
- do { \
- (dst)[0] = (src)[0]; \
- (dst)[1] = (src)[1]; \
- (dst)[2] = (src)[2]; \
- (dst)[3] = (src)[3]; \
+#define COPY_4X1_LINE(dst, src) \
+ do { \
+ (dst)[0] = (src)[0]; \
+ (dst)[1] = (src)[1]; \
+ (dst)[2] = (src)[2]; \
+ (dst)[3] = (src)[3]; \
} while (0)
-#define COPY_2X1_LINE(dst, src) \
- do { \
- (dst)[0] = (src)[0]; \
- (dst)[1] = (src)[1]; \
+#define COPY_2X1_LINE(dst, src) \
+ do { \
+ (dst)[0] = (src)[0]; \
+ (dst)[1] = (src)[1]; \
} while (0)
#else /* SCUMM_NEED_ALIGNMENT */
-#define COPY_4X1_LINE(dst, src) \
+#define COPY_4X1_LINE(dst, src) \
*(uint32 *)(dst) = *(const uint32 *)(src)
-#define COPY_2X1_LINE(dst, src) \
+#define COPY_2X1_LINE(dst, src) \
*(uint16 *)(dst) = *(const uint16 *)(src)
#endif
-#define FILL_4X1_LINE(dst, val) \
- do { \
- (dst)[0] = val; \
- (dst)[1] = val; \
- (dst)[2] = val; \
- (dst)[3] = val; \
+#define FILL_4X1_LINE(dst, val) \
+ do { \
+ (dst)[0] = val; \
+ (dst)[1] = val; \
+ (dst)[2] = val; \
+ (dst)[3] = val; \
} while (0)
-#define FILL_2X1_LINE(dst, val) \
- do { \
- (dst)[0] = val; \
- (dst)[1] = val; \
+#define FILL_2X1_LINE(dst, val) \
+ do { \
+ (dst)[0] = val; \
+ (dst)[1] = val; \
} while (0)
#define MOTION_OFFSET_TABLE_SIZE 0xF8
-#define PROCESS_SUBBLOCKS 0xFF
-#define FILL_SINGLE_COLOR 0xFE
-#define DRAW_GLYPH 0xFD
-#define COPY_PREV_BUFFER 0xFC
+#define PROCESS_SUBBLOCKS 0xFF
+#define FILL_SINGLE_COLOR 0xFE
+#define DRAW_GLYPH 0xFD
+#define COPY_PREV_BUFFER 0xFC
-static const int8 codec47Glyph4XVec[] = {
+static const int8 codecGlyph4XVec[] = {
0, 1, 2, 3, 3, 3, 3, 2, 1, 0, 0, 0, 1, 2, 2, 1,
};
-static const int8 codec47Glyph4YVec[] = {
+static const int8 codecGlyph4YVec[] = {
0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1, 2, 2,
};
-static const int8 codec47Glyph8XVec[] = {
+static const int8 codecGlyph8XVec[] = {
0, 2, 5, 7, 7, 7, 7, 7, 7, 5, 2, 0, 0, 0, 0, 0,
};
-static const int8 codec47Glyph8YVec[] = {
+static const int8 codecGlyph8YVec[] = {
0, 0, 0, 0, 1, 3, 4, 6, 7, 7, 7, 7, 6, 4, 3, 1,
};
-static const int8 codec47Table[] = {
- 0, 0, -1, -43, 6, -43, -9, -42, 13, -41,
+static const int8 codecTable[] = {
+ 0, 0, -1, -43, 6, -43, -9, -42, 13, -41,
-16, -40, 19, -39, -23, -36, 26, -34, -2, -33,
4, -33, -29, -32, -9, -32, 11, -31, -16, -29,
32, -29, 18, -28, -34, -26, -22, -25, -1, -25,
@@ -140,7 +140,7 @@ static const int8 codec47Table[] = {
38, 20, -13, 21, 12, 22, -36, 23, -24, 23,
-8, 24, 7, 24, -3, 25, 1, 25, 22, 25,
34, 26, -18, 28, -32, 29, 16, 29, -11, 31,
- 9, 32, 29, 32, -4, 33, 2, 33, -26, 34,
+ 9, 32, 29, 32, -4, 33, 2, 33, -26, 34,
23, 36, -19, 39, 16, 40, -13, 41, 9, 42,
-6, 43, 1, 43, 0, 0, 0, 0, 0, 0
};
@@ -155,7 +155,7 @@ enum Edge {
#define NGLYPHS 256
-void Codec47Decoder::makeTablesInterpolation(int sideLength) {
+void SmushDeltaGlyphsDecoder::makeTablesInterpolation(int sideLength) {
int32 pos, npoints;
int32 edge0, edge1;
int32 x1, x0, y1, y0;
@@ -166,8 +166,8 @@ void Codec47Decoder::makeTablesInterpolation(int sideLength) {
int i, x, y;
if (sideLength == 8) {
- xGlyph = codec47Glyph8XVec;
- yGlyph = codec47Glyph8YVec;
+ xGlyph = codecGlyph8XVec;
+ yGlyph = codecGlyph8YVec;
ptr = _tableBig;
for (i = 0; i < NGLYPHS; i++) {
ptr[384] = 0;
@@ -175,8 +175,8 @@ void Codec47Decoder::makeTablesInterpolation(int sideLength) {
ptr += 388;
}
} else if (sideLength == 4) {
- xGlyph = codec47Glyph4XVec;
- yGlyph = codec47Glyph4YVec;
+ xGlyph = codecGlyph4XVec;
+ yGlyph = codecGlyph4YVec;
ptr = _tableSmall;
for (i = 0; i < NGLYPHS; i++) {
ptr[96] = 0;
@@ -184,7 +184,7 @@ void Codec47Decoder::makeTablesInterpolation(int sideLength) {
ptr += 128;
}
} else {
- error("Codec47Decoder::makeTablesInterpolation: unknown sideLength %d", sideLength);
+ error("SmushDeltaGlyphsDecoder::makeTablesInterpolation(): ERROR: Unknown sideLength %d.", sideLength);
}
s = 0;
@@ -302,7 +302,7 @@ void Codec47Decoder::makeTablesInterpolation(int sideLength) {
}
}
-void Codec47Decoder::makeTables47(int width) {
+void SmushDeltaGlyphsDecoder::makeCodecTables(int width) {
if (_lastTableWidth == width)
return;
@@ -311,8 +311,8 @@ void Codec47Decoder::makeTables47(int width) {
int32 a, c, d;
int16 tmp;
- for (int l = 0; l < ARRAYSIZE(codec47Table); l += 2) {
- _table[l / 2] = (int16)(codec47Table[l + 1] * width + codec47Table[l]);
+ for (int l = 0; l < ARRAYSIZE(codecTable); l += 2) {
+ _table[l / 2] = (int16)(codecTable[l + 1] * width + codecTable[l]);
}
// Note: _table[255] is never inited; but since only the first 0xF8
// entries of it are used anyway, this doesn't matter.
@@ -372,92 +372,92 @@ extern "C" void ARM_Smush_decode2( byte *dst,
_offset1,_offset2,_tableSmall)
#else
-void Codec47Decoder::level3(byte *d_dst) {
+void SmushDeltaGlyphsDecoder::level3(byte *dDst) {
int32 tmp;
- byte code = *_d_src++;
+ byte code = *_dSrc++;
if (code < MOTION_OFFSET_TABLE_SIZE) {
tmp = _table[code] + _offset1;
- COPY_2X1_LINE(d_dst, d_dst + tmp);
- COPY_2X1_LINE(d_dst + _d_pitch, d_dst + _d_pitch + tmp);
+ COPY_2X1_LINE(dDst, dDst + tmp);
+ COPY_2X1_LINE(dDst + _dPitch, dDst + _dPitch + tmp);
} else if (code == PROCESS_SUBBLOCKS) {
- COPY_2X1_LINE(d_dst, _d_src + 0);
- COPY_2X1_LINE(d_dst + _d_pitch, _d_src + 2);
- _d_src += 4;
+ COPY_2X1_LINE(dDst, _dSrc + 0);
+ COPY_2X1_LINE(dDst + _dPitch, _dSrc + 2);
+ _dSrc += 4;
} else if (code == FILL_SINGLE_COLOR) {
- byte t = *_d_src++;
- FILL_2X1_LINE(d_dst, t);
- FILL_2X1_LINE(d_dst + _d_pitch, t);
+ byte t = *_dSrc++;
+ FILL_2X1_LINE(dDst, t);
+ FILL_2X1_LINE(dDst + _dPitch, t);
} else if (code == COPY_PREV_BUFFER) {
tmp = _offset2;
- COPY_2X1_LINE(d_dst, d_dst + tmp);
- COPY_2X1_LINE(d_dst + _d_pitch, d_dst + _d_pitch + tmp);
+ COPY_2X1_LINE(dDst, dDst + tmp);
+ COPY_2X1_LINE(dDst + _dPitch, dDst + _dPitch + tmp);
} else {
byte t = _paramPtr[code];
- FILL_2X1_LINE(d_dst, t);
- FILL_2X1_LINE(d_dst + _d_pitch, t);
+ FILL_2X1_LINE(dDst, t);
+ FILL_2X1_LINE(dDst + _dPitch, t);
}
}
-void Codec47Decoder::level2(byte *d_dst) {
+void SmushDeltaGlyphsDecoder::level2(byte *d_dst) {
int32 tmp;
- byte code = *_d_src++;
+ byte code = *_dSrc++;
int i;
if (code < MOTION_OFFSET_TABLE_SIZE) {
tmp = _table[code] + _offset1;
for (i = 0; i < 4; i++) {
COPY_4X1_LINE(d_dst, d_dst + tmp);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
} else if (code == PROCESS_SUBBLOCKS) {
level3(d_dst);
d_dst += 2;
level3(d_dst);
- d_dst += _d_pitch * 2 - 2;
+ d_dst += _dPitch * 2 - 2;
level3(d_dst);
d_dst += 2;
level3(d_dst);
} else if (code == FILL_SINGLE_COLOR) {
- byte t = *_d_src++;
+ byte t = *_dSrc++;
for (i = 0; i < 4; i++) {
FILL_4X1_LINE(d_dst, t);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
} else if (code == DRAW_GLYPH) {
- byte *tmp_ptr = _tableSmall + *_d_src++ * 128;
- int32 l = tmp_ptr[96];
- byte val = *_d_src++;
- int16 *tmp_ptr2 = (int16 *)tmp_ptr;
+ byte *tmpPtr = _tableSmall + *_dSrc++ * 128;
+ int32 l = tmpPtr[96];
+ byte val = *_dSrc++;
+ int16 *tmpPtr2 = (int16 *)tmpPtr;
while (l--) {
- *(d_dst + READ_LE_UINT16(tmp_ptr2)) = val;
- tmp_ptr2++;
+ *(d_dst + READ_LE_UINT16(tmpPtr2)) = val;
+ tmpPtr2++;
}
- l = tmp_ptr[97];
- val = *_d_src++;
- tmp_ptr2 = (int16 *)(tmp_ptr + 32);
+ l = tmpPtr[97];
+ val = *_dSrc++;
+ tmpPtr2 = (int16 *)(tmpPtr + 32);
while (l--) {
- *(d_dst + READ_LE_UINT16(tmp_ptr2)) = val;
- tmp_ptr2++;
+ *(d_dst + READ_LE_UINT16(tmpPtr2)) = val;
+ tmpPtr2++;
}
} else if (code == COPY_PREV_BUFFER) {
tmp = _offset2;
for (i = 0; i < 4; i++) {
COPY_4X1_LINE(d_dst, d_dst + tmp);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
} else {
byte t = _paramPtr[code];
for (i = 0; i < 4; i++) {
FILL_4X1_LINE(d_dst, t);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
}
}
-void Codec47Decoder::level1(byte *d_dst) {
+void SmushDeltaGlyphsDecoder::level1(byte *d_dst) {
int32 tmp;
- byte code = *_d_src++;
+ byte code = *_dSrc++;
int i;
if (code < MOTION_OFFSET_TABLE_SIZE) {
@@ -465,77 +465,77 @@ void Codec47Decoder::level1(byte *d_dst) {
for (i = 0; i < 8; i++) {
COPY_4X1_LINE(d_dst + 0, d_dst + tmp);
COPY_4X1_LINE(d_dst + 4, d_dst + tmp + 4);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
} else if (code == PROCESS_SUBBLOCKS) {
level2(d_dst);
d_dst += 4;
level2(d_dst);
- d_dst += _d_pitch * 4 - 4;
+ d_dst += _dPitch * 4 - 4;
level2(d_dst);
d_dst += 4;
level2(d_dst);
} else if (code == FILL_SINGLE_COLOR) {
- byte t = *_d_src++;
+ byte t = *_dSrc++;
for (i = 0; i < 8; i++) {
FILL_4X1_LINE(d_dst, t);
FILL_4X1_LINE(d_dst + 4, t);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
} else if (code == DRAW_GLYPH) {
- tmp = *_d_src++;
- byte *tmp_ptr = _tableBig + tmp * 388;
- byte l = tmp_ptr[384];
- byte val = *_d_src++;
- int16 *tmp_ptr2 = (int16 *)tmp_ptr;
+ tmp = *_dSrc++;
+ byte *tmpPtr = _tableBig + tmp * 388;
+ byte l = tmpPtr[384];
+ byte val = *_dSrc++;
+ int16 *tmpPtr2 = (int16 *)tmpPtr;
while (l--) {
- *(d_dst + READ_LE_UINT16(tmp_ptr2)) = val;
- tmp_ptr2++;
+ *(d_dst + READ_LE_UINT16(tmpPtr2)) = val;
+ tmpPtr2++;
}
- l = tmp_ptr[385];
- val = *_d_src++;
- tmp_ptr2 = (int16 *)(tmp_ptr + 128);
+ l = tmpPtr[385];
+ val = *_dSrc++;
+ tmpPtr2 = (int16 *)(tmpPtr + 128);
while (l--) {
- *(d_dst + READ_LE_UINT16(tmp_ptr2)) = val;
- tmp_ptr2++;
+ *(d_dst + READ_LE_UINT16(tmpPtr2)) = val;
+ tmpPtr2++;
}
} else if (code == COPY_PREV_BUFFER) {
tmp = _offset2;
for (i = 0; i < 8; i++) {
COPY_4X1_LINE(d_dst + 0, d_dst + tmp);
COPY_4X1_LINE(d_dst + 4, d_dst + tmp + 4);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
} else {
byte t = _paramPtr[code];
for (i = 0; i < 8; i++) {
FILL_4X1_LINE(d_dst, t);
FILL_4X1_LINE(d_dst + 4, t);
- d_dst += _d_pitch;
+ d_dst += _dPitch;
}
}
}
-void Codec47Decoder::decode2(byte *dst, const byte *src, int width, int height, const byte *param_ptr) {
- _d_src = src;
+void SmushDeltaGlyphsDecoder::decode2(byte *dst, const byte *src, int width, int height, const byte *param_ptr) {
+ _dSrc = src;
_paramPtr = param_ptr - MOTION_OFFSET_TABLE_SIZE;
int bw = (width + 7) / 8;
int bh = (height + 7) / 8;
- int next_line = width * 7;
- _d_pitch = width;
+ int nextLine = width * 7;
+ _dPitch = width;
do {
- int tmp_bw = bw;
+ int tmpBw = bw;
do {
level1(dst);
dst += 8;
- } while (--tmp_bw);
- dst += next_line;
+ } while (--tmpBw);
+ dst += nextLine;
} while (--bh);
}
#endif
-Codec47Decoder::Codec47Decoder(int width, int height) {
+SmushDeltaGlyphsDecoder::SmushDeltaGlyphsDecoder(int width, int height) {
_lastTableWidth = -1;
_width = width;
_height = height;
@@ -554,7 +554,7 @@ Codec47Decoder::Codec47Decoder(int width, int height) {
_curBuf = _deltaBuf + _frameSize * 2;
}
-Codec47Decoder::~Codec47Decoder() {
+SmushDeltaGlyphsDecoder::~SmushDeltaGlyphsDecoder() {
if (_tableBig) {
free(_tableBig);
_tableBig = nullptr;
@@ -573,39 +573,39 @@ Codec47Decoder::~Codec47Decoder() {
}
}
-bool Codec47Decoder::decode(byte *dst, const byte *src) {
+bool SmushDeltaGlyphsDecoder::decode(byte *dst, const byte *src) {
if ((_tableBig == nullptr) || (_tableSmall == nullptr) || (_deltaBuf == nullptr))
return false;
_offset1 = _deltaBufs[1] - _curBuf;
_offset2 = _deltaBufs[0] - _curBuf;
- int32 seq_nb = READ_LE_UINT16(src + 0);
+ int32 seqNb = READ_LE_UINT16(src + 0);
- const byte *gfx_data = src + 26;
+ const byte *gfxData = src + 26;
- if (seq_nb == 0) {
- makeTables47(_width);
+ if (seqNb == 0) {
+ makeCodecTables(_width);
memset(_deltaBufs[0], src[12], _frameSize);
memset(_deltaBufs[1], src[13], _frameSize);
_prevSeqNb = -1;
}
if ((src[4] & 1) != 0) {
- gfx_data += 32896;
+ gfxData += 32896;
}
switch (src[2]) {
case 0:
- memcpy(_curBuf, gfx_data, _frameSize);
+ memcpy(_curBuf, gfxData, _frameSize);
break;
case 1:
// Used by Outlaws, but not by any SCUMM game.
error("codec47: not implemented decode1 proc");
break;
case 2:
- if (seq_nb == _prevSeqNb + 1) {
- decode2(_curBuf, gfx_data, _width, _height, src + 8);
+ if (seqNb == _prevSeqNb + 1) {
+ decode2(_curBuf, gfxData, _width, _height, src + 8);
}
break;
case 3:
@@ -615,7 +615,7 @@ bool Codec47Decoder::decode(byte *dst, const byte *src) {
memcpy(_curBuf, _deltaBufs[0], _frameSize);
break;
case 5:
- bompDecodeLine(_curBuf, gfx_data, READ_LE_UINT32(src + 14));
+ bompDecodeLine(_curBuf, gfxData, READ_LE_UINT32(src + 14));
break;
default:
break;
@@ -623,7 +623,7 @@ bool Codec47Decoder::decode(byte *dst, const byte *src) {
memcpy(dst, _curBuf, _frameSize);
- if (seq_nb == _prevSeqNb + 1) {
+ if (seqNb == _prevSeqNb + 1) {
if (src[3] == 1) {
SWAP(_curBuf, _deltaBufs[1]);
} else if (src[3] == 2) {
@@ -631,7 +631,7 @@ bool Codec47Decoder::decode(byte *dst, const byte *src) {
SWAP(_deltaBufs[1], _curBuf);
}
}
- _prevSeqNb = seq_nb;
+ _prevSeqNb = seqNb;
return true;
}
diff --git a/engines/scumm/smush/codec47.h b/engines/scumm/smush/codec47.h
index beb783ed067..73fb7523cf7 100644
--- a/engines/scumm/smush/codec47.h
+++ b/engines/scumm/smush/codec47.h
@@ -26,7 +26,7 @@
namespace Scumm {
-class Codec47Decoder {
+class SmushDeltaGlyphsDecoder {
private:
int32 _deltaSize;
@@ -35,8 +35,8 @@ private:
byte *_curBuf;
int32 _prevSeqNb;
int _lastTableWidth;
- const byte *_d_src, *_paramPtr;
- int _d_pitch;
+ const byte *_dSrc, *_paramPtr;
+ int _dPitch;
int32 _offset1, _offset2;
byte *_tableBig;
byte *_tableSmall;
@@ -45,15 +45,15 @@ private:
int _width, _height;
void makeTablesInterpolation(int param);
- void makeTables47(int width);
+ void makeCodecTables(int width);
void level1(byte *d_dst);
void level2(byte *d_dst);
void level3(byte *d_dst);
void decode2(byte *dst, const byte *src, int width, int height, const byte *param_ptr);
public:
- Codec47Decoder(int width, int height);
- ~Codec47Decoder();
+ SmushDeltaGlyphsDecoder(int width, int height);
+ ~SmushDeltaGlyphsDecoder();
bool decode(byte *dst, const byte *src);
};
diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp
index c94765a99e8..3bab90abd80 100644
--- a/engines/scumm/smush/smush_player.cpp
+++ b/engines/scumm/smush/smush_player.cpp
@@ -218,8 +218,8 @@ SmushPlayer::SmushPlayer(ScummEngine_v7 *scumm, IMuseDigital *imuseDigital, Insa
_imuseDigital = imuseDigital;
_insane = insane;
_nbframes = 0;
- _codec37 = 0;
- _codec47 = 0;
+ _deltaBlocksCodec = 0;
+ _deltaGlyphsCodec = 0;
_strings = nullptr;
_sf[0] = nullptr;
_sf[1] = nullptr;
@@ -330,10 +330,10 @@ void SmushPlayer::release() {
_vm->_virtscr[kMainVirtScreen].pitch = _origPitch;
_vm->_gdi->_numStrips = _origNumStrips;
- delete _codec37;
- _codec37 = 0;
- delete _codec47;
- _codec47 = 0;
+ delete _deltaBlocksCodec;
+ _deltaBlocksCodec = 0;
+ delete _deltaGlyphsCodec;
+ _deltaGlyphsCodec = 0;
}
void SmushPlayer::handleStore(int32 subSize, Common::SeekableReadStream &b) {
@@ -771,17 +771,17 @@ void SmushPlayer::decodeFrameObject(int codec, const uint8 *src, int left, int t
case SMUSH_CODEC_RLE_ALT:
smushDecodeRLE(_dst, src, left, top, width, height, _vm->_screenWidth);
break;
- case SMUSH_CODEC_37:
- if (!_codec37)
- _codec37 = new Codec37Decoder(width, height);
- if (_codec37)
- _codec37->decode(_dst, src);
+ case SMUSH_CODEC_DELTA_BLOCKS:
+ if (!_deltaBlocksCodec)
+ _deltaBlocksCodec = new SmushDeltaBlocksDecoder(width, height);
+ if (_deltaBlocksCodec)
+ _deltaBlocksCodec->decode(_dst, src);
break;
- case SMUSH_CODEC_47:
- if (!_codec47)
- _codec47 = new Codec47Decoder(width, height);
- if (_codec47)
- _codec47->decode(_dst, src);
+ case SMUSH_CODEC_DELTA_GLYPHS:
+ if (!_deltaGlyphsCodec)
+ _deltaGlyphsCodec = new SmushDeltaGlyphsDecoder(width, height);
+ if (_deltaGlyphsCodec)
+ _deltaGlyphsCodec->decode(_dst, src);
break;
case SMUSH_CODEC_UNCOMPRESSED:
// Used by Full Throttle Classic (from Remastered)
diff --git a/engines/scumm/smush/smush_player.h b/engines/scumm/smush/smush_player.h
index 84b9500c260..15d09b15bf7 100644
--- a/engines/scumm/smush/smush_player.h
+++ b/engines/scumm/smush/smush_player.h
@@ -57,15 +57,15 @@ namespace Scumm {
#define SMUSH_CODEC_RLE 1
#define SMUSH_CODEC_RLE_ALT 3
#define SMUSH_CODEC_UNCOMPRESSED 20
-#define SMUSH_CODEC_37 37 // TODO: Relabel!
-#define SMUSH_CODEC_47 47 // TODO: Relabel!
+#define SMUSH_CODEC_DELTA_BLOCKS 37
+#define SMUSH_CODEC_DELTA_GLYPHS 47
class ScummEngine_v7;
class SmushFont;
class SmushMixer;
class StringResource;
-class Codec37Decoder;
-class Codec47Decoder;
+class SmushDeltaBlocksDecoder;
+class SmushDeltaGlyphsDecoder;
class IMuseDigital;
class Insane;
@@ -114,8 +114,8 @@ private:
byte _pal[0x300];
SmushFont *_sf[5];
StringResource *_strings;
- Codec37Decoder *_codec37;
- Codec47Decoder *_codec47;
+ SmushDeltaBlocksDecoder *_deltaBlocksCodec;
+ SmushDeltaGlyphsDecoder *_deltaGlyphsCodec;
Common::SeekableReadStream *_base;
uint32 _baseSize;
byte *_frameBuffer;
More information about the Scummvm-git-logs
mailing list