Browse Source

Merge pull request #866 from AJenbo/CelDecodeHdrLightTrans

Clean up CelDrawHdrLightRed
pull/88/head
Robin Eklind 7 years ago committed by GitHub
parent
commit
aefddd13d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 26
      Source/engine.cpp

26
Source/engine.cpp

@ -701,8 +701,8 @@ void CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, i
*/
void CelDrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light)
{
int w, hdr, idx, nDataSize, v1;
BYTE *src, *dst, *tbl, *pRLEBytes;
int w, idx, nDataStart, nDataCap, nDataSize;
BYTE *src, *dst, *tbl;
DWORD *pFrameTable;
/// ASSERT: assert(gpBuffer);
@ -712,22 +712,24 @@ void CelDrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, in
if (!pCelBuff)
return;
pFrameTable = (DWORD *)&pCelBuff[4 * nCel];
pRLEBytes = &pCelBuff[pFrameTable[0]];
hdr = *(WORD *)&pRLEBytes[CelSkip];
if (!hdr)
pFrameTable = (DWORD *)pCelBuff;
src = &pCelBuff[pFrameTable[nCel]];
nDataStart = *(WORD *)&src[CelSkip];
if (!nDataStart)
return;
nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel];
if (CelCap == 8)
v1 = 0;
nDataCap = 0;
else
v1 = *(WORD *)&pRLEBytes[CelCap];
if (v1)
nDataSize = v1 - hdr;
nDataCap = *(WORD *)&src[CelCap];
if (nDataCap)
nDataSize = nDataCap - nDataStart;
else
nDataSize = pFrameTable[1] - pFrameTable[0] - hdr;
nDataSize -= nDataStart;
src = &pRLEBytes[hdr];
src += nDataStart;
dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]];
idx = light4flag ? 1024 : 4096;

Loading…
Cancel
Save