|
|
|
|
@ -163,7 +163,7 @@ void __fastcall CelDecDatOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth)
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int v1, v2, nDataSize; |
|
|
|
|
int nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -176,25 +176,25 @@ void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWi
|
|
|
|
|
|
|
|
|
|
pFrameTable = (DWORD *)pCelBuff; |
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
v1 = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
|
|
|
|
|
if (!v1) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v2 = 0; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
else |
|
|
|
|
v2 = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (v2) |
|
|
|
|
nDataSize = v2 - v1; |
|
|
|
|
nDataCap = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
|
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize -= v1; |
|
|
|
|
nDataSize -= nDataStart; |
|
|
|
|
|
|
|
|
|
CelDrawDatOnly( |
|
|
|
|
&gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], |
|
|
|
|
&pRLEBytes[v1], |
|
|
|
|
&pRLEBytes[nDataStart], |
|
|
|
|
nDataSize, |
|
|
|
|
nWidth); |
|
|
|
|
} |
|
|
|
|
@ -205,7 +205,7 @@ void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWi
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int v1, v2, nDataSize; |
|
|
|
|
int nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -218,23 +218,22 @@ void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWid
|
|
|
|
|
|
|
|
|
|
pFrameTable = (DWORD *)pCelBuff; |
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
v1 = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
|
|
|
|
|
if (!v1) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v2 = 0; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
else |
|
|
|
|
v2 = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (v2) |
|
|
|
|
nDataSize = v2 - v1; |
|
|
|
|
nDataCap = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize -= v1; |
|
|
|
|
nDataSize -= nDataStart; |
|
|
|
|
|
|
|
|
|
CelDrawDatOnly(pBuff, &pRLEBytes[v1], nDataSize, nWidth); |
|
|
|
|
CelDrawDatOnly(pBuff, &pRLEBytes[nDataStart], nDataSize, nWidth); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void __fastcall CelDecDatLightOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth) |
|
|
|
|
@ -611,7 +610,7 @@ void __fastcall CelDecodeLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int nDataStart, nDataSize, nDataCap; |
|
|
|
|
int nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *pRLEBytes, *pDecodeTo; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -928,7 +927,7 @@ void __fastcall Cel2DecDatOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize,
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int v1, v2, nDataSize; |
|
|
|
|
int nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -941,25 +940,24 @@ void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nW
|
|
|
|
|
|
|
|
|
|
pFrameTable = (DWORD *)pCelBuff; |
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
v1 = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
|
|
|
|
|
if (!v1) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v2 = 0; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
else |
|
|
|
|
v2 = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (v2) |
|
|
|
|
nDataSize = v2 - v1; |
|
|
|
|
nDataCap = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize -= v1; |
|
|
|
|
nDataSize -= nDataStart; |
|
|
|
|
|
|
|
|
|
Cel2DecDatOnly( |
|
|
|
|
&gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], |
|
|
|
|
&pRLEBytes[v1], |
|
|
|
|
&pRLEBytes[nDataStart], |
|
|
|
|
nDataSize, |
|
|
|
|
nWidth); |
|
|
|
|
} |
|
|
|
|
@ -970,7 +968,7 @@ void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nW
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int v1, v2, nDataSize; |
|
|
|
|
int nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -983,22 +981,22 @@ void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWi
|
|
|
|
|
|
|
|
|
|
pFrameTable = (DWORD *)pCelBuff; |
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
v1 = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
|
|
|
|
|
if (!v1) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; |
|
|
|
|
|
|
|
|
|
v2 = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
nDataCap = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v2 = 0; |
|
|
|
|
if (v2) |
|
|
|
|
nDataSize = v2 - v1; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
|
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize -= v1; |
|
|
|
|
nDataSize -= nDataStart; |
|
|
|
|
|
|
|
|
|
Cel2DecDatOnly(pBuff, &pRLEBytes[v1], nDataSize, nWidth); |
|
|
|
|
Cel2DecDatOnly(pBuff, &pRLEBytes[nDataStart], nDataSize, nWidth); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void __fastcall Cel2DecDatLightOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth) |
|
|
|
|
@ -1421,7 +1419,7 @@ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int nDataStart, nDataSize, nDataCap; |
|
|
|
|
int nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -1705,7 +1703,7 @@ void __fastcall CelDecodeRect(BYTE *pBuff, int CelSkip, int hgt, int wdt, BYTE *
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int w, hdr, nDataSize, v1; |
|
|
|
|
int w, nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *src, *dst; |
|
|
|
|
|
|
|
|
|
/// ASSERT: assert(pCelBuff != NULL);
|
|
|
|
|
@ -1730,23 +1728,23 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel,
|
|
|
|
|
add edx, CelSkip |
|
|
|
|
xor eax, eax |
|
|
|
|
mov ax, [edx] |
|
|
|
|
mov hdr, eax |
|
|
|
|
mov nDataStart, eax |
|
|
|
|
mov edx, src |
|
|
|
|
add edx, CelCap |
|
|
|
|
mov ax, [edx] |
|
|
|
|
mov v1, eax |
|
|
|
|
mov nDataCap, eax |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!hdr) return; |
|
|
|
|
if (!nDataStart) return; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v1 = 0; |
|
|
|
|
if (v1) |
|
|
|
|
nDataSize = v1 - hdr; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize -= hdr; |
|
|
|
|
nDataSize -= nDataStart; |
|
|
|
|
|
|
|
|
|
src += hdr; |
|
|
|
|
src += nDataStart; |
|
|
|
|
dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; |
|
|
|
|
|
|
|
|
|
__asm { |
|
|
|
|
@ -1798,19 +1796,19 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel,
|
|
|
|
|
|
|
|
|
|
pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; |
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[0]]; |
|
|
|
|
hdr = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!hdr) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
v1 = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
nDataCap = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v1 = 0; |
|
|
|
|
if (v1) |
|
|
|
|
nDataSize = v1 - hdr; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize = pFrameTable[1] - pFrameTable[0] - hdr; |
|
|
|
|
nDataSize = pFrameTable[1] - pFrameTable[0] - nDataStart; |
|
|
|
|
|
|
|
|
|
src = &pRLEBytes[hdr]; |
|
|
|
|
src = &pRLEBytes[nDataStart]; |
|
|
|
|
end = &src[nDataSize]; |
|
|
|
|
dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; |
|
|
|
|
|
|
|
|
|
@ -1845,7 +1843,7 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel,
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int w, hdr, nDataSize, v1; |
|
|
|
|
int w, nDataStart, nDataCap, nDataSize; |
|
|
|
|
BYTE *src, *dst; |
|
|
|
|
|
|
|
|
|
/// ASSERT: assert(pCelBuff != NULL);
|
|
|
|
|
@ -1870,23 +1868,23 @@ void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nC
|
|
|
|
|
add edx, CelSkip |
|
|
|
|
xor eax, eax |
|
|
|
|
mov ax, [edx] |
|
|
|
|
mov hdr, eax |
|
|
|
|
mov nDataStart, eax |
|
|
|
|
mov edx, src |
|
|
|
|
add edx, CelCap |
|
|
|
|
mov ax, [edx] |
|
|
|
|
mov v1, eax |
|
|
|
|
mov nDataCap, eax |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!hdr) return; |
|
|
|
|
if (!nDataStart) return; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v1 = 0; |
|
|
|
|
if (v1) |
|
|
|
|
nDataSize = v1 - hdr; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize -= hdr; |
|
|
|
|
nDataSize -= nDataStart; |
|
|
|
|
|
|
|
|
|
src += hdr; |
|
|
|
|
src += nDataStart; |
|
|
|
|
dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; |
|
|
|
|
|
|
|
|
|
__asm { |
|
|
|
|
@ -1963,19 +1961,19 @@ void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nC
|
|
|
|
|
|
|
|
|
|
pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; |
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[0]]; |
|
|
|
|
hdr = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!hdr) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
v1 = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
nDataCap = *(WORD *)&pRLEBytes[CelCap]; |
|
|
|
|
if (CelCap == 8) |
|
|
|
|
v1 = 0; |
|
|
|
|
if (v1) |
|
|
|
|
nDataSize = v1 - hdr; |
|
|
|
|
nDataCap = 0; |
|
|
|
|
if (nDataCap) |
|
|
|
|
nDataSize = nDataCap - nDataStart; |
|
|
|
|
else |
|
|
|
|
nDataSize = pFrameTable[1] - pFrameTable[0] - hdr; |
|
|
|
|
nDataSize = pFrameTable[1] - pFrameTable[0] - nDataStart; |
|
|
|
|
|
|
|
|
|
src = &pRLEBytes[hdr]; |
|
|
|
|
src = &pRLEBytes[nDataStart]; |
|
|
|
|
end = &src[nDataSize]; |
|
|
|
|
dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; |
|
|
|
|
|
|
|
|
|
@ -2527,7 +2525,7 @@ void __fastcall Cl2ApplyTrans(BYTE *p, BYTE *ttbl, int nCel)
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int hdr, nDataSize; |
|
|
|
|
int nDataStart, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -2545,8 +2543,8 @@ void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid
|
|
|
|
|
/// ASSERT: assert(nCel <= (int) pFrameTable[0]);
|
|
|
|
|
|
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
hdr = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!hdr) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
@ -2558,8 +2556,8 @@ void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid
|
|
|
|
|
|
|
|
|
|
Cl2DecDatFrm1( |
|
|
|
|
&gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], |
|
|
|
|
&pRLEBytes[hdr], |
|
|
|
|
nDataSize - hdr, |
|
|
|
|
&pRLEBytes[nDataStart], |
|
|
|
|
nDataSize - nDataStart, |
|
|
|
|
nWidth); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -2710,7 +2708,7 @@ void __fastcall Cl2DecDatFrm1(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, i
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int hdr, nDataSize; |
|
|
|
|
int nDataStart, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -2728,8 +2726,8 @@ void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel
|
|
|
|
|
/// ASSERT: assert(nCel <= (int) pFrameTable[0]);
|
|
|
|
|
|
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
hdr = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!hdr) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
@ -2741,8 +2739,8 @@ void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel
|
|
|
|
|
|
|
|
|
|
Cl2DecDatFrm2( |
|
|
|
|
&gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], |
|
|
|
|
&pRLEBytes[hdr], |
|
|
|
|
nDataSize - hdr, |
|
|
|
|
&pRLEBytes[nDataStart], |
|
|
|
|
nDataSize - nDataStart, |
|
|
|
|
nWidth, |
|
|
|
|
col); |
|
|
|
|
} |
|
|
|
|
@ -3160,7 +3158,7 @@ void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int hdr, nDataSize; |
|
|
|
|
int nDataStart, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -3178,8 +3176,8 @@ void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid
|
|
|
|
|
/// ASSERT: assert(nCel <= (int) pFrameTable[0]);
|
|
|
|
|
|
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
hdr = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!hdr) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
@ -3191,8 +3189,8 @@ void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid
|
|
|
|
|
|
|
|
|
|
Cl2DecDatFrm4( |
|
|
|
|
&gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], |
|
|
|
|
&pRLEBytes[hdr], |
|
|
|
|
nDataSize - hdr, |
|
|
|
|
&pRLEBytes[nDataStart], |
|
|
|
|
nDataSize - nDataStart, |
|
|
|
|
nWidth); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -3357,7 +3355,7 @@ void __fastcall Cl2DecDatFrm4(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, i
|
|
|
|
|
*/ |
|
|
|
|
void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) |
|
|
|
|
{ |
|
|
|
|
int hdr, nDataSize; |
|
|
|
|
int nDataStart, nDataSize; |
|
|
|
|
BYTE *pRLEBytes; |
|
|
|
|
DWORD *pFrameTable; |
|
|
|
|
|
|
|
|
|
@ -3375,8 +3373,8 @@ void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCe
|
|
|
|
|
/// ASSERT: assert(nCel <= (int) pFrameTable[0]);
|
|
|
|
|
|
|
|
|
|
pRLEBytes = &pCelBuff[pFrameTable[nCel]]; |
|
|
|
|
hdr = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!hdr) |
|
|
|
|
nDataStart = *(WORD *)&pRLEBytes[CelSkip]; |
|
|
|
|
if (!nDataStart) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (CelCap == 8) |
|
|
|
|
@ -3389,8 +3387,8 @@ void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCe
|
|
|
|
|
gpBufEnd -= 768; |
|
|
|
|
Cl2DecDatClrHL( |
|
|
|
|
&gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], |
|
|
|
|
&pRLEBytes[hdr], |
|
|
|
|
nDataSize - hdr, |
|
|
|
|
&pRLEBytes[nDataStart], |
|
|
|
|
nDataSize - nDataStart, |
|
|
|
|
nWidth, |
|
|
|
|
col); |
|
|
|
|
gpBufEnd += 768; |
|
|
|
|
|