diff options
author | James Brown | 2002-04-11 17:19:16 +0000 |
---|---|---|
committer | James Brown | 2002-04-11 17:19:16 +0000 |
commit | 7696081c54a6cac8152a227bd9d0bcc41999f261 (patch) | |
tree | 70859cf2d6be5ad77d7e7c41ed01c20837a0b2d0 /costume.cpp | |
parent | 34747b792a42e8129af60371541e9b7321d4d55f (diff) | |
download | scummvm-rg350-7696081c54a6cac8152a227bd9d0bcc41999f261.tar.gz scummvm-rg350-7696081c54a6cac8152a227bd9d0bcc41999f261.tar.bz2 scummvm-rg350-7696081c54a6cac8152a227bd9d0bcc41999f261.zip |
Large pointless reindentation of all the code. Also fixed a few mistakes
in the object flags code cleanup.
Flags used:
indent *.cpp -br -bap -nbc -lp -ce -cdw -brs -nbad -nbc -npsl -nip
-ts2 -ncs -nbs -npcs -nbap -Tbyte -Tuint32 -Tuint8 -Tuint16 -TArrayHeader
-TMemBlkHeader -TVerbSlot -TObjectData -Tvoid -TImageHeader -TRoomHeader
-TCodeHeader -TResHdr -TBompHeader -TMidiChannelAdl -TGui -TScumm
-TSoundEngine -TPart -TPlayer
svn-id: r3908
Diffstat (limited to 'costume.cpp')
-rw-r--r-- | costume.cpp | 565 |
1 files changed, 305 insertions, 260 deletions
diff --git a/costume.cpp b/costume.cpp index 10e8ff6dfd..cb566ee368 100644 --- a/costume.cpp +++ b/costume.cpp @@ -23,16 +23,18 @@ #include "stdafx.h" #include "scumm.h" -const byte revBitMask[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; +const byte revBitMask[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; -void CostumeRenderer::ignorePakCols(int a) { +void CostumeRenderer::ignorePakCols(int a) +{ int n; n = _height; - if (a>1) n *= a; + if (a > 1) + n *= a; do { _repcolor = *_srcptr++; - _replen = _repcolor&_maskval; - if (_replen==0) { + _replen = _repcolor & _maskval; + if (_replen == 0) { _replen = *_srcptr++; } do { @@ -45,74 +47,75 @@ void CostumeRenderer::ignorePakCols(int a) { } const byte cost_scaleTable[256] = { -255, 253, 125, 189, 61, 221, 93, 157, 29, 237, -109, 173, 45, 205, 77, 141, 13, 245, 117, 181, -53, 213, 85, 149, 21, 229, 101, 165, 37, 197, 69, -133, 5, 249, 121, 185, 57, 217, 89, 153, 25, 233, -105, 169, 41, 201, 73, 137, 9, 241, 113, 177, 49, -209, 81, 145, 17, 225, 97, 161, 33, 193, 65, 129, -1, 251, 123, 187, 59, 219, 91, 155, 27, 235, 107, -171, 43, 203, 75, 139, 11, 243, 115, 179, 51, 211, -83, 147, 19, 227, 99, 163, 35, 195, 67, 131, 3, -247, 119, 183, 55, 215, 87, 151, 23, 231, 103, -167, 39, 199, 71, 135, 7, 239, 111, 175, 47, 207, -79, 143, 15, 223, 95, 159, 31, 191, 63, 127, 0, -128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, -48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, -232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, -68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, -180, 116, 244, 12, 140, 76, 204, 44, 172, 108, -236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, -66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, -178, 114, 242, 10, 138, 74, 202, 42, 170, 106, -234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, -70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, -182, 118, 246, 14, 142, 78, 206, 46, 174, 110, -238, 30, 158, 94, 222, 62, 190, 126, 254 + 255, 253, 125, 189, 61, 221, 93, 157, 29, 237, + 109, 173, 45, 205, 77, 141, 13, 245, 117, 181, + 53, 213, 85, 149, 21, 229, 101, 165, 37, 197, 69, + 133, 5, 249, 121, 185, 57, 217, 89, 153, 25, 233, + 105, 169, 41, 201, 73, 137, 9, 241, 113, 177, 49, + 209, 81, 145, 17, 225, 97, 161, 33, 193, 65, 129, + 1, 251, 123, 187, 59, 219, 91, 155, 27, 235, 107, + 171, 43, 203, 75, 139, 11, 243, 115, 179, 51, 211, + 83, 147, 19, 227, 99, 163, 35, 195, 67, 131, 3, + 247, 119, 183, 55, 215, 87, 151, 23, 231, 103, + 167, 39, 199, 71, 135, 7, 239, 111, 175, 47, 207, + 79, 143, 15, 223, 95, 159, 31, 191, 63, 127, 0, + 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, + 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, + 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, + 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, + 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, + 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, + 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, + 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, + 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, + 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, + 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, + 238, 30, 158, 94, 222, 62, 190, 126, 254 }; -byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { - int xmove, ymove, i,b,s; +byte CostumeRenderer::mainRoutine(Actor * a, int slot, int frame) +{ + int xmove, ymove, i, b, s; uint scal; byte scaling; byte charsetmask, masking; byte unk19; - int ex1,ex2; + int ex1, ex2; - CHECK_HEAP - - _maskval = 0xF; + CHECK_HEAP _maskval = 0xF; _shrval = 4; if (_loaded._numColors == 32) { _maskval = 7; _shrval = 3; } - + _width2 = _srcptr[0]; _width = _width2; _height2 = _srcptr[2]; _height = _height2; - xmove = (int16)READ_LE_UINT16(_srcptr+4) + _xmove; - ymove = (int16)READ_LE_UINT16(_srcptr+6) + _ymove; - _xmove += (int16)READ_LE_UINT16(_srcptr+8); - _ymove -= (int16)READ_LE_UINT16(_srcptr+10); + xmove = (int16) READ_LE_UINT16(_srcptr + 4) + _xmove; + ymove = (int16) READ_LE_UINT16(_srcptr + 6) + _ymove; + _xmove += (int16) READ_LE_UINT16(_srcptr + 8); + _ymove -= (int16) READ_LE_UINT16(_srcptr + 10); _srcptr += 12; - switch(_loaded._ptr[7]&0x7F) { - case 0x60: case 0x61: + switch (_loaded._ptr[7] & 0x7F) { + case 0x60: + case 0x61: ex1 = _srcptr[0]; ex2 = _srcptr[1]; _srcptr += 2; - if (ex1!=0xFF || ex2!=0xFF) { - ex1=READ_LE_UINT16(_loaded._ptr + _loaded._numColors + 10 + ex1*2); - _srcptr = _loaded._ptr + READ_LE_UINT16(_loaded._ptr + ex1 + ex2*2) + 14; + if (ex1 != 0xFF || ex2 != 0xFF) { + ex1 = READ_LE_UINT16(_loaded._ptr + _loaded._numColors + 10 + ex1 * 2); + _srcptr = + _loaded._ptr + READ_LE_UINT16(_loaded._ptr + ex1 + ex2 * 2) + 14; } - } + } _xpos = _actorX; _ypos = _actorY; - - scaling = _scaleX==255 && _scaleY==255 ? 0 : 1; + + scaling = _scaleX == 255 && _scaleY == 255 ? 0 : 1; s = 0; if (scaling) { @@ -122,16 +125,16 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { _scaleIndexXStep = 1; } - if(_mirror) { + if (_mirror) { unk19 = _scaleIndexX = 128 - xmove; - for (i=0; i<xmove; i++) { + for (i = 0; i < xmove; i++) { scal = cost_scaleTable[_scaleIndexX++]; if (scal < _scaleX) _xpos -= _scaleIndexXStep; } _right = _left = _xpos; _scaleIndexX = unk19; - for (i=0; i<_width; i++) { + for (i = 0; i < _width; i++) { if (_right < 0) { s++; unk19 = _scaleIndexX; @@ -142,20 +145,20 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { } } else { unk19 = _scaleIndexX = xmove + 128; - for (i=0; i<xmove; i++) { + for (i = 0; i < xmove; i++) { scal = cost_scaleTable[_scaleIndexX--]; if (scal < _scaleX) _xpos += _scaleIndexXStep; } _right = _left = _xpos; _scaleIndexX = unk19; - for (i=0; i<_width; i++) { + for (i = 0; i < _width; i++) { if (_left > 319) { s++; unk19 = _scaleIndexX; } scal = cost_scaleTable[_scaleIndexX--]; - if(scal < _scaleX) + if (scal < _scaleX) _left--; } } @@ -168,21 +171,21 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { _scaleIndexYStep = 1; } _scaleIndexY = 128 - ymove; - for (i=0; i<ymove; i++) { + for (i = 0; i < ymove; i++) { scal = cost_scaleTable[_scaleIndexY++]; if (scal < _scaleY) _ypos -= _scaleIndexYStep; } _top = _bottom = _ypos; _scaleIndexY = 128 - ymove; - for (i=0; i<_height; i++) { + for (i = 0; i < _height; i++) { scal = cost_scaleTable[_scaleIndexY++]; - if (scal < _scaleY) + if (scal < _scaleY) _bottom++; } _scaleIndexY = _scaleIndexYTop = 128 - ymove; } else { - if(_mirror==0) + if (_mirror == 0) xmove = -xmove; _xpos += xmove; _ypos += ymove; @@ -202,7 +205,7 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { _scaleIndexXStep = 1; _ypostop = _ypos; - _vm->updateDirtyRect(0, _left, _right+1,_top,_bottom,1<<a->number); + _vm->updateDirtyRect(0, _left, _right + 1, _top, _bottom, 1 << a->number); if (_top >= (int)_outheight || _bottom <= 0) return 0; @@ -214,7 +217,7 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { return 1; if (_mirror) { _ypitch--; - if (scaling==0) { + if (scaling == 0) { s = -_xpos; } if (s > 0) { @@ -224,7 +227,7 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { _docontinue = 1; } else { s = _right - 320; - if (s<=0) { + if (s <= 0) { b = 2; } else { _width2 -= s; @@ -232,7 +235,7 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { } } else { _ypitch++; - if(scaling==0) + if (scaling == 0) s = _right - 320; if (s > 0) { _width2 -= s; @@ -248,15 +251,16 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { } } - if (_width2==0) + if (_width2 == 0) return 0; - if ((uint)_top > (uint)_outheight) + if ((uint) _top > (uint) _outheight) _top = 0; - if (_left<0) _left=0; + if (_left < 0) + _left = 0; - if ((uint)_bottom > _outheight) + if ((uint) _bottom > _outheight) _bottom = _outheight; if (a->top > _top) @@ -266,42 +270,49 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { a->bottom = _bottom; if (_height2 + _top >= 256) { - CHECK_HEAP - return 2; + CHECK_HEAP return 2; } - _bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5) + _vm->virtscr[0].xstart + _ypos*320 + _xpos; - _backbuff_ptr = _vm->virtscr[0].screenPtr + _vm->virtscr[0].xstart + _ypos*320 + _xpos; - charsetmask = _vm->hasCharsetMask(_left, _top + _vm->virtscr[0].topline, _right, _vm->virtscr[0].topline + _bottom); + _bgbak_ptr = + _vm->getResourceAddress(rtBuffer, + 5) + _vm->virtscr[0].xstart + _ypos * 320 + _xpos; + _backbuff_ptr = + _vm->virtscr[0].screenPtr + _vm->virtscr[0].xstart + _ypos * 320 + _xpos; + charsetmask = + _vm->hasCharsetMask(_left, _top + _vm->virtscr[0].topline, _right, + _vm->virtscr[0].topline + _bottom); masking = 0; if (_zbuf) { masking = _vm->isMaskActiveAt(_left, _top, _right, _bottom, - _vm->getResourceAddress(rtBuffer, 9) + _vm->gdi._imgBufOffs[_zbuf] + _vm->_screenStartStrip - ); + _vm->getResourceAddress(rtBuffer, + 9) + + _vm->gdi._imgBufOffs[_zbuf] + + _vm->_screenStartStrip); } if (_zbuf || charsetmask) { - _mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + _ypos*40 + _vm->_screenStartStrip; + _mask_ptr = + _vm->getResourceAddress(rtBuffer, + 9) + _ypos * 40 + _vm->_screenStartStrip; _imgbufoffs = _vm->gdi._imgBufOffs[_zbuf]; - if (!charsetmask && _zbuf!=0) + if (!charsetmask && _zbuf != 0) _mask_ptr += _imgbufoffs; _mask_ptr_dest = _mask_ptr + _xpos / 8; } - CHECK_HEAP - - if (a->shadow_mode) { + CHECK_HEAP if (a->shadow_mode) { proc_special(a->shadow_mode); return b; } - switch ((scaling<<2)|(masking<<1)|charsetmask) { - case 0: + switch ((scaling << 2) | (masking << 1) | charsetmask) { + case 0: proc6(); break; - case 1: case 2: + case 1: + case 2: proc5(); break; case 3: @@ -310,7 +321,8 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { case 4: proc1(); break; - case 5:case 6: + case 5: + case 6: proc2(); break; case 7: @@ -318,14 +330,14 @@ byte CostumeRenderer::mainRoutine(Actor *a, int slot, int frame) { break; } - CHECK_HEAP - return b; + CHECK_HEAP return b; } -void CostumeRenderer::proc6() { +void CostumeRenderer::proc6() +{ byte len; byte *src, *dst; - byte width,height,pcolor; + byte width, height, pcolor; int color; uint y; uint scrheight; @@ -339,18 +351,20 @@ void CostumeRenderer::proc6() { width = _width2; height = _height2; - if (_docontinue) goto StartPos; + if (_docontinue) + goto StartPos; do { len = *src++; - color = len>>_shrval; + color = len >> _shrval; len &= _maskval; - if (!len) len = *src++; + if (!len) + len = *src++; do { if (color && y < scrheight) { pcolor = _palette[color]; - if (pcolor==13) { + if (pcolor == 13) { pcolor = _transEffect[*dst]; } *dst = pcolor; @@ -365,19 +379,20 @@ void CostumeRenderer::proc6() { dst -= _ypitch; y = _ypostop; } -StartPos:; + StartPos:; } while (--len); } while (1); } -void CostumeRenderer::proc5() { - byte *mask,*src,*dst; - byte maskbit,len,height,pcolor; - uint y,scrheight; +void CostumeRenderer::proc5() +{ + byte *mask, *src, *dst; + byte maskbit, len, height, pcolor; + uint y, scrheight; int color; mask = _mask_ptr = _mask_ptr_dest; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; y = _ypos; src = _srcptr; dst = _backbuff_ptr; @@ -386,18 +401,20 @@ void CostumeRenderer::proc5() { scrheight = _outheight; height = _height2; - if (_docontinue) goto StartPos; + if (_docontinue) + goto StartPos; do { len = *src++; - color = len>>_shrval; + color = len >> _shrval; len &= _maskval; - if (!len) len = *src++; + if (!len) + len = *src++; do { - if (color && y<scrheight && !(*mask&maskbit)) { + if (color && y < scrheight && !(*mask & maskbit)) { pcolor = _palette[color]; - if (pcolor==13) + if (pcolor == 13) pcolor = _transEffect[*dst]; *dst = pcolor; } @@ -405,39 +422,40 @@ void CostumeRenderer::proc5() { y++; mask += 40; if (!--height) { - if(!--_width2) + if (!--_width2) return; height = _height; dst -= _ypitch; y = _ypostop; - if(_scaleIndexXStep!=1) { - maskbit<<=1; + if (_scaleIndexXStep != 1) { + maskbit <<= 1; if (!maskbit) { - maskbit=1; + maskbit = 1; _mask_ptr--; } } else { - maskbit>>=1; + maskbit >>= 1; if (!maskbit) { - maskbit=0x80; + maskbit = 0x80; _mask_ptr++; } } mask = _mask_ptr; } -StartPos:; + StartPos:; } while (--len); - } while(1); + } while (1); } -void CostumeRenderer::proc4() { - byte *mask,*src,*dst; - byte maskbit,len,height,pcolor; - uint y,scrheight; +void CostumeRenderer::proc4() +{ + byte *mask, *src, *dst; + byte maskbit, len, height, pcolor; + uint y, scrheight; int color; - + mask = _mask_ptr = _mask_ptr_dest; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; y = _ypos; src = _srcptr; dst = _backbuff_ptr; @@ -446,18 +464,20 @@ void CostumeRenderer::proc4() { scrheight = _outheight; height = _height2; - if (_docontinue) goto StartPos; + if (_docontinue) + goto StartPos; do { len = *src++; - color = len>>_shrval; + color = len >> _shrval; len &= _maskval; - if (!len) len = *src++; - + if (!len) + len = *src++; + do { - if (color && y<scrheight && !((*mask|mask[_imgbufoffs])&maskbit)) { + if (color && y < scrheight && !((*mask | mask[_imgbufoffs]) & maskbit)) { pcolor = _palette[color]; - if (pcolor==13) + if (pcolor == 13) pcolor = _transEffect[*dst]; *dst = pcolor; } @@ -465,37 +485,38 @@ void CostumeRenderer::proc4() { y++; mask += 40; if (!--height) { - if(!--_width2) + if (!--_width2) return; height = _height; dst -= _ypitch; y = _ypostop; - if(_scaleIndexXStep!=1) { - maskbit<<=1; + if (_scaleIndexXStep != 1) { + maskbit <<= 1; if (!maskbit) { - maskbit=1; + maskbit = 1; _mask_ptr--; } } else { - maskbit>>=1; + maskbit >>= 1; if (!maskbit) { - maskbit=0x80; + maskbit = 0x80; _mask_ptr++; } } mask = _mask_ptr; } -StartPos:; + StartPos:; } while (--len); - } while(1); + } while (1); } -void CostumeRenderer::proc3() { - byte *mask,*src,*dst; - byte maskbit,len,height,pcolor,width; - int color,t; +void CostumeRenderer::proc3() +{ + byte *mask, *src, *dst; + byte maskbit, len, height, pcolor, width; + int color, t; uint y; - + mask = _mask_ptr_dest; dst = _backbuff_ptr; height = _height2; @@ -503,21 +524,24 @@ void CostumeRenderer::proc3() { len = _replen; color = _repcolor; src = _srcptr; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; y = _ypos; - if (_docontinue) goto StartPos; + if (_docontinue) + goto StartPos; do { len = *src++; - color = len>>_shrval; + color = len >> _shrval; len &= _maskval; - if (!len) len = *src++; + if (!len) + len = *src++; do { if (cost_scaleTable[_scaleIndexY++] < _scaleY) { - if (color && y < _outheight && !((*mask|mask[_imgbufoffs])&maskbit)) { + if (color && y < _outheight + && !((*mask | mask[_imgbufoffs]) & maskbit)) { pcolor = _palette[color]; - if (pcolor==13) + if (pcolor == 13) pcolor = _transEffect[*dst]; *dst = pcolor; } @@ -526,7 +550,7 @@ void CostumeRenderer::proc3() { y++; } if (!--height) { - if(!--width) + if (!--width) return; height = _height; y = _ypostop; @@ -537,23 +561,24 @@ void CostumeRenderer::proc3() { _xpos += _scaleIndexXStep; if (_xpos >= 320) return; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; _backbuff_ptr += _scaleIndexXStep; } dst = _backbuff_ptr; - mask = _mask_ptr + (_xpos>>3); + mask = _mask_ptr + (_xpos >> 3); } -StartPos:; + StartPos:; } while (--len); - } while(1); + } while (1); } -void CostumeRenderer::proc2() { - byte *mask,*src,*dst; - byte maskbit,len,height,pcolor,width; - int color,t; +void CostumeRenderer::proc2() +{ + byte *mask, *src, *dst; + byte maskbit, len, height, pcolor, width; + int color, t; uint y; - + mask = _mask_ptr_dest; dst = _backbuff_ptr; height = _height2; @@ -561,21 +586,23 @@ void CostumeRenderer::proc2() { len = _replen; color = _repcolor; src = _srcptr; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; y = _ypos; - if (_docontinue) goto StartPos; + if (_docontinue) + goto StartPos; do { len = *src++; - color = len>>_shrval; + color = len >> _shrval; len &= _maskval; - if (!len) len = *src++; + if (!len) + len = *src++; do { if (cost_scaleTable[_scaleIndexY++] < _scaleY) { - if (color && y < _outheight && !(*mask&maskbit)) { + if (color && y < _outheight && !(*mask & maskbit)) { pcolor = _palette[color]; - if (pcolor==13) + if (pcolor == 13) pcolor = _transEffect[*dst]; *dst = pcolor; } @@ -584,7 +611,7 @@ void CostumeRenderer::proc2() { y++; } if (!--height) { - if(!--width) + if (!--width) return; height = _height; y = _ypostop; @@ -595,27 +622,28 @@ void CostumeRenderer::proc2() { _xpos += _scaleIndexXStep; if (_xpos >= 320) return; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; _backbuff_ptr += _scaleIndexXStep; } dst = _backbuff_ptr; - mask = _mask_ptr + (_xpos>>3); + mask = _mask_ptr + (_xpos >> 3); } -StartPos:; + StartPos:; } while (--len); - } while(1); + } while (1); } -void CostumeRenderer::proc1() { - byte *mask,*src,*dst,*dstorg; - byte maskbit,len,height,pcolor,width; +void CostumeRenderer::proc1() +{ + byte *mask, *src, *dst, *dstorg; + byte maskbit, len, height, pcolor, width; uint y; int color; int t; mask = _mask_ptr = _mask_ptr_dest; - maskbit = revBitMask[_xpos&7]; + maskbit = revBitMask[_xpos & 7]; y = _ypos; dstorg = dst = _backbuff_ptr; @@ -625,19 +653,21 @@ void CostumeRenderer::proc1() { color = _repcolor; src = _srcptr; - if (_docontinue) goto StartPos; + if (_docontinue) + goto StartPos; do { len = *src++; - color = len>>_shrval; + color = len >> _shrval; len &= _maskval; - if (!len) len = *src++; - + if (!len) + len = *src++; + do { if (cost_scaleTable[_scaleIndexY++] < _scaleY) { if (color && y < _outheight) { pcolor = _palette[color]; - if (pcolor==13) + if (pcolor == 13) pcolor = _transEffect[*dst]; *dst = pcolor; } @@ -645,7 +675,7 @@ void CostumeRenderer::proc1() { y++; } if (!--height) { - if(!--width) + if (!--width) return; height = _height; y = _ypostop; @@ -660,36 +690,38 @@ void CostumeRenderer::proc1() { } dst = _backbuff_ptr; } -StartPos:; + StartPos:; } while (--len); - } while(1); + } while (1); } -void CostumeRenderer::proc_special(byte code) { +void CostumeRenderer::proc_special(byte code) +{ warning("stub CostumeRenderer::proc_special(%d) not implemented"); } #if 0 -void CostumeRenderer::loadCostume(int id) { +void CostumeRenderer::loadCostume(int id) +{ _ptr = _vm->getResourceAddress(rtCostume, id); - - if (_vm->_features&GF_AFTER_V6) { + + if (_vm->_features & GF_AFTER_V6) { _ptr += 8; - } else if(!(_vm->_features&GF_SMALL_HEADER)) { + } else if (!(_vm->_features & GF_SMALL_HEADER)) { _ptr += 2; } - switch(_ptr[7]&0x7F) { + switch (_ptr[7] & 0x7F) { case 0x58: _numColors = 16; break; case 0x59: _numColors = 32; break; - case 0x60: /* New since version 6 */ + case 0x60: /* New since version 6 */ _numColors = 16; break; - case 0x61: /* New since version 6 */ + case 0x61: /* New since version 6 */ _numColors = 32; break; default: @@ -700,36 +732,40 @@ void CostumeRenderer::loadCostume(int id) { } #endif -void Scumm::initActorCostumeData(Actor *a) { +void Scumm::initActorCostumeData(Actor * a) +{ CostumeData *cd = &a->cost; int i; cd->stopped = 0; - for (i=0; i<16; i++) { + for (i = 0; i < 16; i++) { cd->active[i] = 0; cd->curpos[i] = cd->start[i] = cd->end[i] = cd->frame[i] = 0xFFFF; } } -byte CostumeRenderer::drawOneSlot(Actor *a, int slot) { - - if(!(_vm->_features & GF_AFTER_V7)) { +byte CostumeRenderer::drawOneSlot(Actor * a, int slot) +{ + + if (!(_vm->_features & GF_AFTER_V7)) { int i; int code; CostumeData *cd = &a->cost; - - if (cd->curpos[slot]==0xFFFF || cd->stopped & (1<<slot)) + + if (cd->curpos[slot] == 0xFFFF || cd->stopped & (1 << slot)) return 0; - - i = cd->curpos[slot]&0x7FFF; - _frameptr = _loaded._ptr + READ_LE_UINT16(_loaded._ptr + _loaded._numColors + slot*2 + 10); - code = _loaded._dataptr[i]&0x7F; - _srcptr = _loaded._ptr + READ_LE_UINT16(_frameptr + code*2); + i = cd->curpos[slot] & 0x7FFF; + _frameptr = + _loaded._ptr + READ_LE_UINT16(_loaded._ptr + _loaded._numColors + + slot * 2 + 10); + code = _loaded._dataptr[i] & 0x7F; + + _srcptr = _loaded._ptr + READ_LE_UINT16(_frameptr + code * 2); if (code != 0x7B) { - if ( !(_vm->_features & GF_OLD256) || code <0x79) - return mainRoutine(a, slot, code); + if (!(_vm->_features & GF_OLD256) || code < 0x79) + return mainRoutine(a, slot, code); } } @@ -737,40 +773,43 @@ byte CostumeRenderer::drawOneSlot(Actor *a, int slot) { } -byte CostumeRenderer::drawCostume(Actor *a) { +byte CostumeRenderer::drawCostume(Actor * a) +{ int i; byte r = 0; _xmove = _ymove = 0; - for (i=0; i!=16; i++) - r|=drawOneSlot(a, i); + for (i = 0; i != 16; i++) + r |= drawOneSlot(a, i); return r; } -int Scumm::cost_frameToAnim(Actor *a, int frame) { +int Scumm::cost_frameToAnim(Actor * a, int frame) +{ return newDirToOldDir(a->facing) + frame * 4; } -void Scumm::loadCostume(LoadedCostume *lc, int costume) { +void Scumm::loadCostume(LoadedCostume * lc, int costume) +{ lc->_ptr = getResourceAddress(rtCostume, costume); - - if (_features&GF_AFTER_V6) { + + if (_features & GF_AFTER_V6) { lc->_ptr += 8; - } else if (!(_features&GF_SMALL_HEADER)) { + } else if (!(_features & GF_SMALL_HEADER)) { lc->_ptr += 2; } - switch(lc->_ptr[7]&0x7F) { + switch (lc->_ptr[7] & 0x7F) { case 0x58: lc->_numColors = 16; break; case 0x59: lc->_numColors = 32; break; - case 0x60: /* New since version 6 */ + case 0x60: /* New since version 6 */ lc->_numColors = 16; break; - case 0x61: /* New since version 6 */ + case 0x61: /* New since version 6 */ lc->_numColors = 32; break; default: @@ -780,11 +819,12 @@ void Scumm::loadCostume(LoadedCostume *lc, int costume) { lc->_dataptr = lc->_ptr + READ_LE_UINT16(lc->_ptr + lc->_numColors + 8); } -void Scumm::cost_decodeData(Actor *a, int frame, uint usemask) { - byte *p,*r; - uint mask,j; +void Scumm::cost_decodeData(Actor * a, int frame, uint usemask) +{ + byte *p, *r; + uint mask, j; int i; - byte extra,cmd; + byte extra, cmd; byte *dataptr; int anim; LoadedCostume lc; @@ -792,59 +832,59 @@ void Scumm::cost_decodeData(Actor *a, int frame, uint usemask) { loadCostume(&lc, a->costume); anim = cost_frameToAnim(a, frame); - + p = lc._ptr; if (anim > p[6]) { return; } - r = p + READ_LE_UINT16(p + anim*2 + lc._numColors + 42); - if (r==p) { + r = p + READ_LE_UINT16(p + anim * 2 + lc._numColors + 42); + if (r == p) { return; } - - if(_features & GF_OLD256) + + if (_features & GF_OLD256) dataptr = p + *(p + lc._numColors + 8); else dataptr = p + READ_LE_UINT16(p + lc._numColors + 8); mask = READ_LE_UINT16(r); - r+=2; + r += 2; i = 0; do { - if (mask&0x8000) { - if(_features & GF_OLD256 ) { + if (mask & 0x8000) { + if (_features & GF_OLD256) { j = 0; j = *(r); r++; - if(j==0xFF) - j=0xFFFF; + if (j == 0xFF) + j = 0xFFFF; } else { j = READ_LE_UINT16(r); - r+=2; + r += 2; } - if (usemask&0x8000) { - if (j==0xFFFF) { + if (usemask & 0x8000) { + if (j == 0xFFFF) { a->cost.curpos[i] = 0xFFFF; a->cost.start[i] = 0; a->cost.frame[i] = frame; } else { extra = *r++; cmd = dataptr[j]; - if (cmd==0x7A) { - a->cost.stopped &= ~(1<<i); - } else if (cmd==0x79) { - a->cost.stopped |= (1<<i); + if (cmd == 0x7A) { + a->cost.stopped &= ~(1 << i); + } else if (cmd == 0x79) { + a->cost.stopped |= (1 << i); } else { a->cost.curpos[i] = a->cost.start[i] = j; - a->cost.end[i] = j + (extra&0x7F); - if (extra&0x80) + a->cost.end[i] = j + (extra & 0x7F); + if (extra & 0x80) a->cost.curpos[i] |= 0x8000; a->cost.frame[i] = frame; } } } else { - if (j!=0xFFFF) + if (j != 0xFFFF) r++; } } @@ -854,49 +894,55 @@ void Scumm::cost_decodeData(Actor *a, int frame, uint usemask) { } while ((uint16)mask); } -void Scumm::cost_setPalette(CostumeRenderer *cr, byte *palette) { +void Scumm::cost_setPalette(CostumeRenderer * cr, byte *palette) +{ int i; byte color; - for (i=0; i<cr->_loaded._numColors; i++) { + for (i = 0; i < cr->_loaded._numColors; i++) { color = palette[i]; - if (color==255) - color = cr->_loaded._ptr[8+i]; + if (color == 255) + color = cr->_loaded._ptr[8 + i]; cr->_palette[i] = color; } } -void Scumm::cost_setFacing(CostumeRenderer *cr, Actor *a) { - cr->_mirror = newDirToOldDir(a->facing)!=0 || (cr->_loaded._ptr[7]&0x80); +void Scumm::cost_setFacing(CostumeRenderer * cr, Actor * a) +{ + cr->_mirror = newDirToOldDir(a->facing) != 0 + || (cr->_loaded._ptr[7] & 0x80); } -void Scumm::cost_setCostume(CostumeRenderer *cr, int costume) { +void Scumm::cost_setCostume(CostumeRenderer * cr, int costume) +{ loadCostume(&cr->_loaded, costume); } -byte Scumm::cost_increaseAnims(LoadedCostume *lc, Actor *a) { +byte Scumm::cost_increaseAnims(LoadedCostume * lc, Actor * a) +{ int i; byte r = 0; - for (i=0; i!=16; i++) { - if(a->cost.curpos[i]!=0xFFFF) - r+=cost_increaseAnim(lc, a, i); + for (i = 0; i != 16; i++) { + if (a->cost.curpos[i] != 0xFFFF) + r += cost_increaseAnim(lc, a, i); } return r; } -byte Scumm::cost_increaseAnim(LoadedCostume *lc, Actor *a, int slot) { +byte Scumm::cost_increaseAnim(LoadedCostume * lc, Actor * a, int slot) +{ int highflag; - int i,end; - byte code,nc; + int i, end; + byte code, nc; - if (a->cost.curpos[slot]==0xFFFF) + if (a->cost.curpos[slot] == 0xFFFF) return 0; - highflag = a->cost.curpos[slot]&0x8000; - i = a->cost.curpos[slot]&0x7FFF; + highflag = a->cost.curpos[slot] & 0x8000; + i = a->cost.curpos[slot] & 0x7FFF; end = a->cost.end[slot]; - code=lc->_dataptr[i]&0x7F; + code = lc->_dataptr[i] & 0x7F; do { if (!highflag) { @@ -909,28 +955,27 @@ byte Scumm::cost_increaseAnim(LoadedCostume *lc, Actor *a, int slot) { nc = lc->_dataptr[i]; - if (nc==0x7C) { + if (nc == 0x7C) { a->cost.animCounter1++; - if(a->cost.start[slot] != end) + if (a->cost.start[slot] != end) continue; } else { - if (_features&GF_AFTER_V6) { - if (nc>=0x71 && nc<=0x78) { - addSoundToQueue2(a->sound[nc-0x71]); - if(a->cost.start[slot] != end) + if (_features & GF_AFTER_V6) { + if (nc >= 0x71 && nc <= 0x78) { + addSoundToQueue2(a->sound[nc - 0x71]); + if (a->cost.start[slot] != end) continue; } } else { - if (nc==0x78) { + if (nc == 0x78) { a->cost.animCounter2++; - if(a->cost.start[slot] != end) + if (a->cost.start[slot] != end) continue; } } } - a->cost.curpos[slot] = i|highflag; - return (lc->_dataptr[i]&0x7F) != code; - } while(1); + a->cost.curpos[slot] = i | highflag; + return (lc->_dataptr[i] & 0x7F) != code; + } while (1); } - |