From a592838d42d9f562aafdd379608f07d6f4d027fe Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Tue, 9 Apr 2019 13:50:44 +0200 Subject: [PATCH] Clean up CelDecodeHdrLightTrans --- Source/engine.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index 2419e987f..209de3610 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -699,8 +699,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); @@ -710,22 +710,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;