aboutsummaryrefslogtreecommitdiff
path: root/scumm/gfx.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-05-21 14:14:03 +0000
committerEugene Sandulenko2005-05-21 14:14:03 +0000
commit31974eaead154ae6637b5655d5a5eb573ce342e2 (patch)
treeedab7561725f1865e9f9885310079b622a6767ab /scumm/gfx.cpp
parent7beb36ec72c8604e6d7269171b3bb02d33ec2bca (diff)
downloadscummvm-rg350-31974eaead154ae6637b5655d5a5eb573ce342e2.tar.gz
scummvm-rg350-31974eaead154ae6637b5655d5a5eb573ce342e2.tar.bz2
scummvm-rg350-31974eaead154ae6637b5655d5a5eb573ce342e2.zip
Beautify decompressTMSK().
svn-id: r18206
Diffstat (limited to 'scumm/gfx.cpp')
-rw-r--r--scumm/gfx.cpp63
1 files changed, 26 insertions, 37 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp
index ff04b58064..b0f82ecafa 100644
--- a/scumm/gfx.cpp
+++ b/scumm/gfx.cpp
@@ -1871,58 +1871,47 @@ void Gdi::decompressMaskImg(byte *dst, const byte *src, int height) const {
}
void Gdi::decompressTMSK(byte *dst, const byte *tmsk, const byte *src, int height) const {
- int edx;
- int var_10 = 0;
- int var_14 = 0;
- int tmp1 = 0;
- int tmp2 = 0;
+ byte srcbits = 0;
+ byte srcFlag = 0;
+ byte maskFlag = 0;
- int esi = 0;
- int edi = 0;
- int ebx = 0;
+ byte srcCount = 0;
+ byte maskCount = 0;
+ byte maskbits = 0;
while (height) {
- if (esi == 0) {
- esi = *src++;
- edx = esi & 0x80;
- tmp1 = edx;
- if (edx) {
- esi &= 0x7F;
- var_10 = *src++;
+ if (srcCount == 0) {
+ srcCount = *src++;
+ srcFlag = srcCount & 0x80;
+ if (srcFlag) {
+ srcCount &= 0x7F;
+ srcbits = *src++;
}
}
- if (tmp1 == 0) {
- var_10 = *src++;
+ if (srcFlag == 0) {
+ srcbits = *src++;
}
- esi--;
- if (edi == 0) {
- edi = *tmsk++;
- edx = edi & 0x80;
- tmp2 = edx;
- if (edx) {
- edi &= 0x7F;
- ebx = *tmsk++;
+ srcCount--;
+
+ if (maskCount == 0) {
+ maskCount = *tmsk++;
+ maskFlag = maskCount & 0x80;
+ if (maskFlag) {
+ maskCount &= 0x7F;
+ maskbits = *tmsk++;
}
}
- if (tmp2 == 0) {
- ebx = *tmsk++;
+ if (maskFlag == 0) {
+ maskbits = *tmsk++;
}
- edi--;
-
- edx = ebx;
- edx = !edx;
- edx &= *dst;
-
- var_14 = var_10;
- var_14 &= ebx;
+ maskCount--;
- edx |= var_14;
- *dst = edx;
+ *dst = (*dst & ~maskbits) | (srcbits & maskbits);
dst += 80;
height--;