From 4d6d0d859261eb452d54094cb96c4bf682d8a4cf Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 7 Apr 2019 23:53:03 +0200 Subject: [PATCH 1/6] Clean up CelDecodeHdrLightOnly --- Source/engine.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index 7956095c0..8d792aad4 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -611,8 +611,8 @@ 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 hdr, nDataSize, v1, v2; - BYTE *pRLEBytes, *pDecodeTo, *v9; + int nDataStart, nDataSize, nDataCap; + BYTE *pRLEBytes, *pDecodeTo; DWORD *pFrameTable; /// ASSERT: assert(gpBuffer); @@ -622,23 +622,24 @@ void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, if (!pCelBuff) return; - pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; - v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[CelSkip]; - if (!hdr) + pFrameTable = (DWORD *)pCelBuff; + pRLEBytes = &pCelBuff[pFrameTable[nCel]]; + nDataStart = *(WORD *)&pRLEBytes[CelSkip]; + if (!nDataStart) return; - v1 = pFrameTable[1] - pFrameTable[0]; + nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; + if (CelCap == 8) - v2 = 0; + nDataCap = 0; else - v2 = *(WORD *)&v9[CelCap]; - if (v2) - nDataSize = v2 - hdr; + nDataCap = *(WORD *)&pRLEBytes[CelCap]; + if (nDataCap) + nDataSize = nDataCap - nDataStart; else - nDataSize = v1 - hdr; + nDataSize -= nDataStart; - pRLEBytes = &v9[hdr]; + pRLEBytes = &pRLEBytes[nDataStart]; pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) From 1af8fc330f479ef4e886cf07ee882380495d8987 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 8 Apr 2019 00:10:07 +0200 Subject: [PATCH 2/6] Clean up Cel2DecodeLightTrans --- Source/engine.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index 8d792aad4..840c71bf9 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -1421,30 +1421,31 @@ 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 hdr, nDataSize, v1, v2; - BYTE *pRLEBytes, *v9; + int nDataStart, nDataSize, nDataCap; + BYTE *pRLEBytes; DWORD *pFrameTable; /// ASSERT: assert(pCelBuff != NULL); if (!pCelBuff) return; - pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; - v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[CelSkip]; - if (!hdr) + pFrameTable = (DWORD *)pCelBuff; + pRLEBytes = &pCelBuff[pFrameTable[nCel]]; + nDataStart = *(WORD *)&pRLEBytes[CelSkip]; + if (!nDataStart) return; - v1 = pFrameTable[1] - pFrameTable[0]; - v2 = *(WORD *)&v9[CelCap]; + nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; + + nDataCap = *(WORD *)&pRLEBytes[CelCap]; if (CelCap == 8) - v2 = 0; - if (v2) - nDataSize = v2 - hdr; + nDataCap = 0; + if (nDataCap) + nDataSize = nDataCap - nDataStart; else - nDataSize = v1 - hdr; + nDataSize -= nDataStart; - pRLEBytes = &v9[hdr]; + pRLEBytes = &pRLEBytes[nDataStart]; if (cel_transparency_active) Cel2DecDatLightTrans(pBuff, pRLEBytes, nDataSize, nWidth); From 46f83455be8e7c382e9a4185ef1d403a7cff717b Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 8 Apr 2019 00:32:33 +0200 Subject: [PATCH 3/6] Clean up variable naming in engine.cpp --- Source/engine.cpp | 190 +++++++++++++++++++++++----------------------- 1 file changed, 94 insertions(+), 96 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index 840c71bf9..cae401c80 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -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; From eb90aa182a0396e347733d6084319feb2d9e46e6 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 8 Apr 2019 00:56:33 +0200 Subject: [PATCH 4/6] Clean up CelDecodeHdrLightTrans --- Source/engine.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index cae401c80..712819ba3 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -654,8 +654,8 @@ void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, */ void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { - int hdr, nDataSize, v1, v2; - BYTE *pRLEBytes, *v9; + int nDataStart, nDataCap, nDataSize; + BYTE *pRLEBytes; DWORD *pFrameTable; /// ASSERT: assert(pCelBuff != NULL); @@ -665,23 +665,23 @@ void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, in if (!pBuff) return; - pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; - v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[CelSkip]; - if (!hdr) + pFrameTable = (DWORD *)pCelBuff; + pRLEBytes = &pCelBuff[pFrameTable[nCel]]; + nDataStart = *(WORD *)&pRLEBytes[CelSkip]; + if (!nDataStart) return; - v1 = pFrameTable[1] - pFrameTable[0]; + nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; if (CelCap == 8) - v2 = 0; + nDataCap = 0; else - v2 = *(WORD *)&v9[CelCap]; - if (v2) - nDataSize = v2 - hdr; + nDataCap = *(WORD *)&pRLEBytes[CelCap]; + if (nDataCap) + nDataSize = nDataCap - nDataStart; else - nDataSize = v1 - hdr; + nDataSize -= nDataStart; - pRLEBytes = &v9[hdr]; + pRLEBytes = &pRLEBytes[nDataStart]; if (cel_transparency_active) CelDecDatLightTrans(pBuff, pRLEBytes, nDataSize, nWidth); From 53cd38a8e8324b9946a7ff89e1ea9802f7b45fe5 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 8 Apr 2019 01:05:52 +0200 Subject: [PATCH 5/6] Clean up Cel2DecodeHdrLight --- Source/engine.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index 712819ba3..fd4a4cc9d 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -1378,8 +1378,8 @@ void __fastcall Cel2DecDatLightTrans(BYTE *pDecodeTo, BYTE *pRLEBytes, int nData */ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { - int hdr, nDataSize, v1; - BYTE *pRLEBytes, *pDecodeTo, *v9; + int nDataStart, nDataCap, nDataSize; + BYTE *pRLEBytes, *pDecodeTo; DWORD *pFrameTable; /// ASSERT: assert(gpBuffer); @@ -1389,21 +1389,22 @@ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int if (!pCelBuff) return; - pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; - v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[CelSkip]; - if (!hdr) + pFrameTable = (DWORD *)pCelBuff; + pRLEBytes = &pCelBuff[pFrameTable[nCel]]; + nDataStart = *(WORD *)&pRLEBytes[CelSkip]; + if (!nDataStart) return; - v1 = *(WORD *)&v9[CelCap]; + nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; + 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 -= nDataStart; - pRLEBytes = &v9[hdr]; + pRLEBytes += nDataStart; pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) From 8387d0fb974d0db10c8d582706eb899e47325c76 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 8 Apr 2019 03:42:50 +0200 Subject: [PATCH 6/6] Align code style in engine.cpp --- Source/engine.cpp | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index fd4a4cc9d..e7577b3b9 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -186,7 +186,6 @@ void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWi nDataCap = 0; else nDataCap = *(WORD *)&pRLEBytes[CelCap]; - if (nDataCap) nDataSize = nDataCap - nDataStart; else @@ -194,7 +193,7 @@ void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWi CelDrawDatOnly( &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], - &pRLEBytes[nDataStart], + pRLEBytes + nDataStart, nDataSize, nWidth); } @@ -233,7 +232,7 @@ void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWid else nDataSize -= nDataStart; - CelDrawDatOnly(pBuff, &pRLEBytes[nDataStart], nDataSize, nWidth); + CelDrawDatOnly(pBuff, pRLEBytes + nDataStart, nDataSize, nWidth); } void __fastcall CelDecDatLightOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth) @@ -638,7 +637,7 @@ void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, else nDataSize -= nDataStart; - pRLEBytes = &pRLEBytes[nDataStart]; + pRLEBytes += nDataStart; pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) @@ -672,6 +671,7 @@ void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, in return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; + if (CelCap == 8) nDataCap = 0; else @@ -681,7 +681,7 @@ void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, in else nDataSize -= nDataStart; - pRLEBytes = &pRLEBytes[nDataStart]; + pRLEBytes += nDataStart; if (cel_transparency_active) CelDecDatLightTrans(pBuff, pRLEBytes, nDataSize, nWidth); @@ -957,7 +957,7 @@ void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nW Cel2DecDatOnly( &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], - &pRLEBytes[nDataStart], + pRLEBytes + nDataStart, nDataSize, nWidth); } @@ -986,7 +986,6 @@ void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWi return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - nDataCap = *(WORD *)&pRLEBytes[CelCap]; if (CelCap == 8) nDataCap = 0; @@ -996,7 +995,7 @@ void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWi else nDataSize -= nDataStart; - Cel2DecDatOnly(pBuff, &pRLEBytes[nDataStart], nDataSize, nWidth); + Cel2DecDatOnly(pBuff, pRLEBytes + nDataStart, nDataSize, nWidth); } void __fastcall Cel2DecDatLightOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth) @@ -1399,6 +1398,7 @@ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int nDataCap = *(WORD *)&pRLEBytes[CelCap]; if (CelCap == 8) nDataCap = 0; + if (nDataCap) nDataSize = nDataCap - nDataStart; else @@ -1435,16 +1435,16 @@ void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - nDataCap = *(WORD *)&pRLEBytes[CelCap]; if (CelCap == 8) nDataCap = 0; + if (nDataCap) nDataSize = nDataCap - nDataStart; else nDataSize -= nDataStart; - pRLEBytes = &pRLEBytes[nDataStart]; + pRLEBytes += nDataStart; if (cel_transparency_active) Cel2DecDatLightTrans(pBuff, pRLEBytes, nDataSize, nWidth); @@ -1804,12 +1804,13 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, nDataCap = *(WORD *)&pRLEBytes[CelCap]; if (CelCap == 8) nDataCap = 0; + if (nDataCap) nDataSize = nDataCap - nDataStart; else nDataSize = pFrameTable[1] - pFrameTable[0] - nDataStart; - src = &pRLEBytes[nDataStart]; + src = pRLEBytes + nDataStart; end = &src[nDataSize]; dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; @@ -1969,12 +1970,13 @@ void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nC nDataCap = *(WORD *)&pRLEBytes[CelCap]; if (CelCap == 8) nDataCap = 0; + if (nDataCap) nDataSize = nDataCap - nDataStart; else nDataSize = pFrameTable[1] - pFrameTable[0] - nDataStart; - src = &pRLEBytes[nDataStart]; + src = pRLEBytes + nDataStart; end = &src[nDataSize]; dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; @@ -2557,7 +2559,7 @@ void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid Cl2DecDatFrm1( &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], - &pRLEBytes[nDataStart], + pRLEBytes + nDataStart, nDataSize - nDataStart, nWidth); } @@ -2740,7 +2742,7 @@ void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel Cl2DecDatFrm2( &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], - &pRLEBytes[nDataStart], + pRLEBytes + nDataStart, nDataSize - nDataStart, nWidth, col); @@ -3190,7 +3192,7 @@ void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid Cl2DecDatFrm4( &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], - &pRLEBytes[nDataStart], + pRLEBytes + nDataStart, nDataSize - nDataStart, nWidth); } @@ -3388,7 +3390,7 @@ 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[nDataStart], + pRLEBytes + nDataStart, nDataSize - nDataStart, nWidth, col);