From e7d5aac5dc63ed1c81da8470b681205a952cedef Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 7 Apr 2019 04:20:01 +0200 Subject: [PATCH] Clean up engine and scrollrt attribute naming --- Source/engine.cpp | 294 ++++++++++++++++++++------------ Source/engine.h | 40 ++--- Source/scrollrt.cpp | 404 ++++++++++++++++++++++---------------------- Source/scrollrt.h | 36 ++-- 4 files changed, 427 insertions(+), 347 deletions(-) diff --git a/Source/engine.cpp b/Source/engine.cpp index 16d9a0a08..7956095c0 100644 --- a/Source/engine.cpp +++ b/Source/engine.cpp @@ -157,7 +157,11 @@ void __fastcall CelDecDatOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth) nWidth); } -void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int v1, v2, nDataSize; BYTE *pRLEBytes; @@ -172,30 +176,34 @@ void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWi pFrameTable = (DWORD *)pCelBuff; pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - v1 = *(WORD *)&pRLEBytes[always_0]; + v1 = *(WORD *)&pRLEBytes[CelSkip]; if (!v1) return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - if (dir == 8) + if (CelCap == 8) v2 = 0; else - v2 = *(WORD *)&pRLEBytes[dir]; + v2 = *(WORD *)&pRLEBytes[CelCap]; if (v2) nDataSize = v2 - v1; else nDataSize -= v1; CelDrawDatOnly( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[v1], nDataSize, nWidth); } -void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int v1, v2, nDataSize; BYTE *pRLEBytes; @@ -210,17 +218,17 @@ void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWid pFrameTable = (DWORD *)pCelBuff; pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - v1 = *(WORD *)&pRLEBytes[always_0]; + v1 = *(WORD *)&pRLEBytes[CelSkip]; if (!v1) return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - if (dir == 8) + if (CelCap == 8) v2 = 0; else - v2 = *(WORD *)&pRLEBytes[dir]; + v2 = *(WORD *)&pRLEBytes[CelCap]; if (v2) nDataSize = v2 - v1; else @@ -597,7 +605,11 @@ void __fastcall CelDecodeLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int } // 69BEF8: using guessed type int light_table_index; -void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +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; @@ -612,22 +624,22 @@ void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[always_0]; + hdr = *(WORD *)&v9[CelSkip]; if (!hdr) return; v1 = pFrameTable[1] - pFrameTable[0]; - if (dir == 8) + if (CelCap == 8) v2 = 0; else - v2 = *(WORD *)&v9[dir]; + v2 = *(WORD *)&v9[CelCap]; if (v2) nDataSize = v2 - hdr; else nDataSize = v1 - hdr; pRLEBytes = &v9[hdr]; - pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) CelDecDatLightOnly(pDecodeTo, pRLEBytes, nDataSize, nWidth); @@ -636,7 +648,11 @@ void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, } // 69BEF8: using guessed type int light_table_index; -void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize, v1, v2; BYTE *pRLEBytes, *v9; @@ -651,15 +667,15 @@ void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, in pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[always_0]; + hdr = *(WORD *)&v9[CelSkip]; if (!hdr) return; v1 = pFrameTable[1] - pFrameTable[0]; - if (dir == 8) + if (CelCap == 8) v2 = 0; else - v2 = *(WORD *)&v9[dir]; + v2 = *(WORD *)&v9[CelCap]; if (v2) nDataSize = v2 - hdr; else @@ -677,7 +693,11 @@ void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, in // 69BEF8: using guessed type int light_table_index; // 69CF94: using guessed type int cel_transparency_active; -void __fastcall CelDrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall 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; @@ -692,21 +712,21 @@ void __fastcall CelDrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; pRLEBytes = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&pRLEBytes[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) v1 = 0; else - v1 = *(WORD *)&pRLEBytes[dir]; + v1 = *(WORD *)&pRLEBytes[CelCap]; if (v1) nDataSize = v1 - hdr; else nDataSize = pFrameTable[1] - pFrameTable[0] - hdr; src = &pRLEBytes[hdr]; - dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; idx = light4flag ? 1024 : 4096; if (light == 2) @@ -901,7 +921,11 @@ void __fastcall Cel2DecDatOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, } // 69CF0C: using guessed type int gpBufEnd; -void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int v1, v2, nDataSize; BYTE *pRLEBytes; @@ -916,30 +940,34 @@ void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nW pFrameTable = (DWORD *)pCelBuff; pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - v1 = *(WORD *)&pRLEBytes[always_0]; + v1 = *(WORD *)&pRLEBytes[CelSkip]; if (!v1) return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - if (dir == 8) + if (CelCap == 8) v2 = 0; else - v2 = *(WORD *)&pRLEBytes[dir]; + v2 = *(WORD *)&pRLEBytes[CelCap]; if (v2) nDataSize = v2 - v1; else nDataSize -= v1; Cel2DecDatOnly( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[v1], nDataSize, nWidth); } -void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int v1, v2, nDataSize; BYTE *pRLEBytes; @@ -954,15 +982,15 @@ void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWi pFrameTable = (DWORD *)pCelBuff; pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - v1 = *(WORD *)&pRLEBytes[always_0]; + v1 = *(WORD *)&pRLEBytes[CelSkip]; if (!v1) return; nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - v2 = *(WORD *)&pRLEBytes[dir]; - if (dir == 8) + v2 = *(WORD *)&pRLEBytes[CelCap]; + if (CelCap == 8) v2 = 0; if (v2) nDataSize = v2 - v1; @@ -1345,7 +1373,11 @@ void __fastcall Cel2DecDatLightTrans(BYTE *pDecodeTo, BYTE *pRLEBytes, int nData // 69BEF8: using guessed type int light_table_index; // 69CF0C: using guessed type int gpBufEnd; -void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +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; @@ -1360,12 +1392,12 @@ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[always_0]; + hdr = *(WORD *)&v9[CelSkip]; if (!hdr) return; - v1 = *(WORD *)&v9[dir]; - if (dir == 8) + v1 = *(WORD *)&v9[CelCap]; + if (CelCap == 8) v1 = 0; if (v1) nDataSize = v1 - hdr; @@ -1373,7 +1405,7 @@ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int nDataSize = pFrameTable[1] - pFrameTable[0] - hdr; pRLEBytes = &v9[hdr]; - pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) Cel2DecDatLightOnly(pDecodeTo, pRLEBytes, nDataSize, nWidth); @@ -1382,7 +1414,11 @@ void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int } // 69BEF8: using guessed type int light_table_index; -void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize, v1, v2; BYTE *pRLEBytes, *v9; @@ -1394,13 +1430,13 @@ void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; v9 = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&v9[always_0]; + hdr = *(WORD *)&v9[CelSkip]; if (!hdr) return; v1 = pFrameTable[1] - pFrameTable[0]; - v2 = *(WORD *)&v9[dir]; - if (dir == 8) + v2 = *(WORD *)&v9[CelCap]; + if (CelCap == 8) v2 = 0; if (v2) nDataSize = v2 - hdr; @@ -1419,7 +1455,11 @@ void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int // 69BEF8: using guessed type int light_table_index; // 69CF94: using guessed type int cel_transparency_active; -void __fastcall Cel2DrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cel2DrawHdrLightRed(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; @@ -1434,21 +1474,21 @@ void __fastcall Cel2DrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, in pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; pRLEBytes = &pCelBuff[pFrameTable[0]]; - hdr = *(WORD *)&pRLEBytes[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) v1 = 0; else - v1 = *(WORD *)&pRLEBytes[dir]; + v1 = *(WORD *)&pRLEBytes[CelCap]; if (v1) nDataSize = v1 - hdr; else nDataSize = pFrameTable[1] - pFrameTable[0] - hdr; src = &pRLEBytes[hdr]; - dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; idx = light4flag ? 1024 : 4096; if (light == 2) @@ -1541,7 +1581,7 @@ void __fastcall Cel2DrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, in // 525728: using guessed type int light4flag; // 69CF0C: using guessed type int gpBufEnd; -void __fastcall CelDecodeRect(BYTE *pBuff, int always_0, int hgt, int wdt, BYTE *pCelBuff, int nCel, int nWidth) +void __fastcall CelDecodeRect(BYTE *pBuff, int CelSkip, int hgt, int wdt, BYTE *pCelBuff, int nCel, int nWidth) { BYTE *src, *dst, *end; @@ -1566,7 +1606,7 @@ void __fastcall CelDecodeRect(BYTE *pBuff, int always_0, int hgt, int wdt, BYTE mov src, eax } - dst = &pBuff[hgt * wdt + always_0]; + dst = &pBuff[hgt * wdt + CelSkip]; __asm { mov esi, src @@ -1618,7 +1658,7 @@ void __fastcall CelDecodeRect(BYTE *pBuff, int always_0, int hgt, int wdt, BYTE pFrameTable = (DWORD *)&pCelBuff[4 * nCel]; src = &pCelBuff[pFrameTable[0]]; end = &src[pFrameTable[1] - pFrameTable[0]]; - dst = &pBuff[hgt * wdt + always_0]; + dst = &pBuff[hgt * wdt + CelSkip]; for (; src != end; dst -= wdt + nWidth) { for (i = nWidth; i;) { @@ -1657,7 +1697,11 @@ void __fastcall CelDecodeRect(BYTE *pBuff, int always_0, int hgt, int wdt, BYTE #endif } -void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int w, hdr, nDataSize, v1; BYTE *src, *dst; @@ -1681,19 +1725,19 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, mov edx, pCelBuff add edx, [ebx] mov src, edx - add edx, always_0 + add edx, CelSkip xor eax, eax mov ax, [edx] mov hdr, eax mov edx, src - add edx, dir + add edx, CelCap mov ax, [edx] mov v1, eax } if (!hdr) return; - if (dir == 8) + if (CelCap == 8) v1 = 0; if (v1) nDataSize = v1 - hdr; @@ -1701,7 +1745,7 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, nDataSize -= hdr; src += hdr; - dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; __asm { mov esi, src @@ -1752,12 +1796,12 @@ 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[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - v1 = *(WORD *)&pRLEBytes[dir]; - if (dir == 8) + v1 = *(WORD *)&pRLEBytes[CelCap]; + if (CelCap == 8) v1 = 0; if (v1) nDataSize = v1 - hdr; @@ -1766,7 +1810,7 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, src = &pRLEBytes[hdr]; end = &src[nDataSize]; - dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; for (; src != end; dst -= 768 + nWidth) { for (w = nWidth; w;) { @@ -1793,7 +1837,11 @@ void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, #endif } -void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int w, hdr, nDataSize, v1; BYTE *src, *dst; @@ -1817,19 +1865,19 @@ void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nC mov edx, pCelBuff add edx, [ebx] mov src, edx - add edx, always_0 + add edx, CelSkip xor eax, eax mov ax, [edx] mov hdr, eax mov edx, src - add edx, dir + add edx, CelCap mov ax, [edx] mov v1, eax } if (!hdr) return; - if (dir == 8) + if (CelCap == 8) v1 = 0; if (v1) nDataSize = v1 - hdr; @@ -1837,7 +1885,7 @@ void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nC nDataSize -= hdr; src += hdr; - dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; __asm { mov esi, src @@ -1913,12 +1961,12 @@ 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[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - v1 = *(WORD *)&pRLEBytes[dir]; - if (dir == 8) + v1 = *(WORD *)&pRLEBytes[CelCap]; + if (CelCap == 8) v1 = 0; if (v1) nDataSize = v1 - hdr; @@ -1927,7 +1975,7 @@ void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nC src = &pRLEBytes[hdr]; end = &src[nDataSize]; - dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + dst = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; for (; src != end; dst -= 768 + nWidth) { for (w = nWidth; w;) { @@ -2471,7 +2519,11 @@ void __fastcall Cl2ApplyTrans(BYTE *p, BYTE *ttbl, int nCel) } } -void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize; BYTE *pRLEBytes; @@ -2491,19 +2543,19 @@ 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[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; Cl2DecDatFrm1( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[hdr], nDataSize - hdr, nWidth); @@ -2650,7 +2702,11 @@ void __fastcall Cl2DecDatFrm1(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, i #endif } -void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize; BYTE *pRLEBytes; @@ -2670,19 +2726,19 @@ 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[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; Cl2DecDatFrm2( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[hdr], nDataSize - hdr, nWidth, @@ -2851,7 +2907,11 @@ void __fastcall Cl2DecDatFrm2(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, i #endif } -void __fastcall Cl2DecodeFrm3(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeFrm3(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light) { int hdr, idx, nDataSize; BYTE *pRLEBytes; @@ -2871,14 +2931,14 @@ void __fastcall Cl2DecodeFrm3(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid /// ASSERT: assert(nCel <= (int) pFrameTable[0]); pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - hdr = *(WORD *)&pRLEBytes[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; @@ -2889,7 +2949,7 @@ void __fastcall Cl2DecodeFrm3(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid idx += (light - 1) << 8; Cl2DecDatLightTbl1( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[hdr], nDataSize - hdr, nWidth, @@ -3048,7 +3108,11 @@ void __fastcall Cl2DecDatLightTbl1(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSi } // 52B978: using guessed type int sgnWidth; -void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize; BYTE *pRLEBytes, *pDecodeTo; @@ -3068,18 +3132,18 @@ void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int /// ASSERT: assert(nCel <= (int) pFrameTable[0]); pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - hdr = *(WORD *)&pRLEBytes[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) Cl2DecDatLightTbl1(pDecodeTo, &pRLEBytes[hdr], nDataSize - hdr, nWidth, &pLightTbl[light_table_index * 256]); @@ -3088,7 +3152,11 @@ void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int } // 69BEF8: using guessed type int light_table_index; -void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize; BYTE *pRLEBytes; @@ -3108,19 +3176,19 @@ 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[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; Cl2DecDatFrm4( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[hdr], nDataSize - hdr, nWidth); @@ -3281,7 +3349,11 @@ void __fastcall Cl2DecDatFrm4(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, i } // 69CF0C: using guessed type int gpBufEnd; -void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize; BYTE *pRLEBytes; @@ -3301,20 +3373,20 @@ 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[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; gpBufEnd -= 768; Cl2DecDatClrHL( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[hdr], nDataSize - hdr, nWidth, @@ -3497,7 +3569,11 @@ void __fastcall Cl2DecDatClrHL(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, } // 69CF0C: using guessed type int gpBufEnd; -void __fastcall Cl2DecodeFrm5(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeFrm5(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light) { int hdr, idx, nDataSize; BYTE *pRLEBytes; @@ -3517,14 +3593,14 @@ void __fastcall Cl2DecodeFrm5(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid /// ASSERT: assert(nCel <= (int) pFrameTable[0]); pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - hdr = *(WORD *)&pRLEBytes[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; @@ -3535,7 +3611,7 @@ void __fastcall Cl2DecodeFrm5(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid idx += (light - 1) << 8; Cl2DecDatLightTbl2( - &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]], + &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]], &pRLEBytes[hdr], nDataSize - hdr, nWidth, @@ -3708,7 +3784,11 @@ void __fastcall Cl2DecDatLightTbl2(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSi // 52B978: using guessed type int sgnWidth; // 69CF0C: using guessed type int gpBufEnd; -void __fastcall Cl2DecodeFrm6(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir) +/** + * @param CelSkip Skip lower parts of sprite, must be multiple of 2, max 8 + * @param CelCap Amount of sprite to render from lower to upper, must be multiple of 2, max 8 + */ +void __fastcall Cl2DecodeFrm6(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int hdr, nDataSize; BYTE *pRLEBytes, *pDecodeTo; @@ -3728,18 +3808,18 @@ void __fastcall Cl2DecodeFrm6(int sx, int sy, BYTE *pCelBuff, int nCel, int nWid /// ASSERT: assert(nCel <= (int) pFrameTable[0]); pRLEBytes = &pCelBuff[pFrameTable[nCel]]; - hdr = *(WORD *)&pRLEBytes[always_0]; + hdr = *(WORD *)&pRLEBytes[CelSkip]; if (!hdr) return; - if (dir == 8) + if (CelCap == 8) nDataSize = 0; else - nDataSize = *(WORD *)&pRLEBytes[dir]; + nDataSize = *(WORD *)&pRLEBytes[CelCap]; if (!nDataSize) nDataSize = pFrameTable[nCel + 1] - pFrameTable[nCel]; - pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * always_0]]; + pDecodeTo = &gpBuffer[sx + screen_y_times_768[sy - 16 * CelSkip]]; if (light_table_index) Cl2DecDatLightTbl2(pDecodeTo, &pRLEBytes[hdr], nDataSize - hdr, nWidth, &pLightTbl[light_table_index * 256]); diff --git a/Source/engine.h b/Source/engine.h index 7c5352b78..7dc6848cd 100644 --- a/Source/engine.h +++ b/Source/engine.h @@ -14,25 +14,25 @@ extern int dword_52B99C; // bool valid - if x/y are in bounds void __fastcall CelDrawDatOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); void __fastcall CelDecodeOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth); 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 always_0, int dir); -void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall CelDrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall CelDecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall CelDecDatLightOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); void __fastcall CelDecDatLightTrans(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); void __fastcall CelDecodeLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth); -void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall CelDrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light); +void __fastcall CelDecodeHdrLightOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall CelDecodeHdrLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall CelDrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light); void __fastcall Cel2DecDatOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); -void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall Cel2DrawHdrOnly(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall Cel2DecodeHdrOnly(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall Cel2DecDatLightOnly(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); void __fastcall Cel2DecDatLightTrans(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); -void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall Cel2DrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light); +void __fastcall Cel2DecodeHdrLight(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall Cel2DecodeLightTrans(BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall Cel2DrawHdrLightRed(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light); void __fastcall CelDecodeRect(BYTE *pBuff, int always_0, int hgt, int wdt, BYTE *pCelBuff, int nCel, int nWidth); -void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall CelDecodeClr(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall CelDrawHdrClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall ENG_set_pixel(int sx, int sy, BYTE col); void __fastcall engine_draw_pixel(int sx, int sy); void __fastcall DrawLine(int x0, int y0, int x1, int y1, UCHAR col); @@ -48,20 +48,20 @@ void __fastcall mem_free_dbg(void *p); BYTE *__fastcall LoadFileInMem(char *pszName, int *pdwFileLen); void __fastcall LoadFileWithMem(char *pszName, void *buf); void __fastcall Cl2ApplyTrans(BYTE *p, BYTE *ttbl, int nCel); -void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall Cl2DecDatFrm1(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); -void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall Cl2DecodeFrm2(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall Cl2DecDatFrm2(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, char col); -void __fastcall Cl2DecodeFrm3(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light); +void __fastcall Cl2DecodeFrm3(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light); void __fastcall Cl2DecDatLightTbl1(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, BYTE *pTable); -void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); -void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall Cl2DecodeLightTbl(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); +void __fastcall Cl2DecodeFrm4(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall Cl2DecDatFrm4(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth); -void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall Cl2DecodeClrHL(char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall Cl2DecDatClrHL(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, char col); -void __fastcall Cl2DecodeFrm5(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir, char light); +void __fastcall Cl2DecodeFrm5(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap, char light); void __fastcall Cl2DecDatLightTbl2(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, BYTE *pTable); -void __fastcall Cl2DecodeFrm6(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int always_0, int dir); +void __fastcall Cl2DecodeFrm6(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap); void __fastcall PlayInGameMovie(char *pszMovie); /* rdata */ diff --git a/Source/scrollrt.cpp b/Source/scrollrt.cpp index 2994095dd..5d47af1d0 100644 --- a/Source/scrollrt.cpp +++ b/Source/scrollrt.cpp @@ -67,7 +67,7 @@ void __cdecl ClearCursor() // CODE_FIX: this was supposed to be in cursor.cpp sgdwCursWdtOld = 0; } -void __fastcall DrawMissile(int x, int y, int sx, int sy, int a5, int a6, BOOL pre) +void __fastcall DrawMissile(int x, int y, int sx, int sy, int CelSkip, int CelCap, BOOL pre) { int i, mx, my, nCel; MissileStruct *m; @@ -95,11 +95,11 @@ void __fastcall DrawMissile(int x, int y, int sx, int sy, int a5, int a6, BOOL p mx = sx + m->_mixoff - m->_miAnimWidth2; my = sy + m->_miyoff; if (m->_miUniqTrans) - Cl2DecodeFrm3(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6, m->_miUniqTrans + 3); + Cl2DecodeFrm3(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap, m->_miUniqTrans + 3); else if (m->_miLightFlag) - Cl2DecodeLightTbl(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeLightTbl(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); else - Cl2DecodeFrm1(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeFrm1(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); } } } else { @@ -119,16 +119,16 @@ void __fastcall DrawMissile(int x, int y, int sx, int sy, int a5, int a6, BOOL p mx = sx + m->_mixoff - m->_miAnimWidth2; my = sy + m->_miyoff; if (m->_miUniqTrans) - Cl2DecodeFrm3(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6, m->_miUniqTrans + 3); + Cl2DecodeFrm3(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap, m->_miUniqTrans + 3); else if (m->_miLightFlag) - Cl2DecodeLightTbl(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeLightTbl(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); else - Cl2DecodeFrm1(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeFrm1(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); } } } -void __fastcall DrawClippedMissile(int x, int y, int sx, int sy, int a5, int a6, BOOL pre) +void __fastcall DrawClippedMissile(int x, int y, int sx, int sy, int CelSkip, int CelCap, BOOL pre) { int i, mx, my, nCel; MissileStruct *m; @@ -156,11 +156,11 @@ void __fastcall DrawClippedMissile(int x, int y, int sx, int sy, int a5, int a6, mx = sx + m->_mixoff - m->_miAnimWidth2; my = sy + m->_miyoff; if (m->_miUniqTrans) - Cl2DecodeFrm5(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6, m->_miUniqTrans + 3); + Cl2DecodeFrm5(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap, m->_miUniqTrans + 3); else if (m->_miLightFlag) - Cl2DecodeFrm6(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeFrm6(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); else - Cl2DecodeFrm4(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeFrm4(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); } } } else { @@ -180,16 +180,16 @@ void __fastcall DrawClippedMissile(int x, int y, int sx, int sy, int a5, int a6, mx = sx + m->_mixoff - m->_miAnimWidth2; my = sy + m->_miyoff; if (m->_miUniqTrans) - Cl2DecodeFrm5(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6, m->_miUniqTrans + 3); + Cl2DecodeFrm5(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap, m->_miUniqTrans + 3); else if (m->_miLightFlag) - Cl2DecodeFrm6(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeFrm6(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); else - Cl2DecodeFrm4(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, a5, a6); + Cl2DecodeFrm4(mx, my, m->_miAnimData, m->_miAnimFrame, m->_miAnimWidth, CelSkip, CelCap); } } } -void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int a5, int a6, BOOL clipped) +void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int CelSkip, int CelCap, BOOL clipped) { int i, px, py, nCel; PlayerStruct *p; @@ -220,12 +220,12 @@ void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int a5, int a6, BOO dFlags[x][y] |= DFLAG_DEAD_PLAYER; px = sx + p->_pxoff - p->_pAnimWidth2; py = sy + p->_pyoff; - DrawPlrProc(i, x, y, px, py, p->_pAnimData, p->_pAnimFrame, p->_pAnimWidth, a5, a6); + DrawPlrProc(i, x, y, px, py, p->_pAnimData, p->_pAnimFrame, p->_pAnimWidth, CelSkip, CelCap); } } } -void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int a9, int a10) +void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int l; DWORD *pFrameTable; @@ -253,9 +253,9 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuf return; } if (pnum == pcursplr) - Cl2DecodeFrm2(165, px, py, pCelBuff, nCel, nWidth, a9, a10); + Cl2DecodeFrm2(165, px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap); if (pnum == myplr) { - Cl2DecodeFrm1(px, py, pCelBuff, nCel, nWidth, a9, a10); + Cl2DecodeFrm1(px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap); if (plr[pnum].pManaShield) Cl2DecodeFrm1( px + plr[pnum]._pAnimWidth2 - misfiledata[MFILE_MANASHLD].mAnimWidth2[0], @@ -263,10 +263,10 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuf misfiledata[MFILE_MANASHLD].mAnimData[0], 1, misfiledata[MFILE_MANASHLD].mAnimWidth[0], - a9, - a10); + CelSkip, + CelCap); } else if (!(dFlags[x][y] & DFLAG_LIT) || plr[myplr]._pInfraFlag && light_table_index > 8) { - Cl2DecodeFrm3(px, py, pCelBuff, nCel, nWidth, a9, a10, 1); + Cl2DecodeFrm3(px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap, 1); if (plr[pnum].pManaShield) Cl2DecodeFrm3( px + plr[pnum]._pAnimWidth2 - misfiledata[MFILE_MANASHLD].mAnimWidth2[0], @@ -274,8 +274,8 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuf misfiledata[MFILE_MANASHLD].mAnimData[0], 1, misfiledata[MFILE_MANASHLD].mAnimWidth[0], - a9, - a10, + CelSkip, + CelCap, 1); } else { l = light_table_index; @@ -283,7 +283,7 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuf light_table_index = 0; else light_table_index -= 5; - Cl2DecodeLightTbl(px, py, pCelBuff, nCel, nWidth, a9, a10); + Cl2DecodeLightTbl(px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap); if (plr[pnum].pManaShield) Cl2DecodeLightTbl( px + plr[pnum]._pAnimWidth2 - misfiledata[MFILE_MANASHLD].mAnimWidth2[0], @@ -291,8 +291,8 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuf misfiledata[MFILE_MANASHLD].mAnimData[0], 1, misfiledata[MFILE_MANASHLD].mAnimWidth[0], - a9, - a10); + CelSkip, + CelCap); light_table_index = l; } } @@ -301,7 +301,7 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuf // 5CF31D: using guessed type char setlevel; // 69BEF8: using guessed type int light_table_index; -void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int a9, int a10) +void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap) { int l; DWORD *pFrameTable; @@ -329,9 +329,9 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE * return; } if (pnum == pcursplr) - Cl2DecodeClrHL(165, px, py, pCelBuff, nCel, nWidth, a9, a10); + Cl2DecodeClrHL(165, px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap); if (pnum == myplr) { - Cl2DecodeFrm4(px, py, pCelBuff, nCel, nWidth, a9, a10); + Cl2DecodeFrm4(px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap); if (plr[pnum].pManaShield) Cl2DecodeFrm4( px + plr[pnum]._pAnimWidth2 - misfiledata[MFILE_MANASHLD].mAnimWidth2[0], @@ -339,10 +339,10 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE * misfiledata[MFILE_MANASHLD].mAnimData[0], 1, misfiledata[MFILE_MANASHLD].mAnimWidth[0], - a9, - a10); + CelSkip, + CelCap); } else if (!(dFlags[x][y] & DFLAG_LIT) || plr[myplr]._pInfraFlag && light_table_index > 8) { - Cl2DecodeFrm5(px, py, pCelBuff, nCel, nWidth, a9, a10, 1); + Cl2DecodeFrm5(px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap, 1); if (plr[pnum].pManaShield) Cl2DecodeFrm5( px + plr[pnum]._pAnimWidth2 - misfiledata[MFILE_MANASHLD].mAnimWidth2[0], @@ -350,8 +350,8 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE * misfiledata[MFILE_MANASHLD].mAnimData[0], 1, misfiledata[MFILE_MANASHLD].mAnimWidth[0], - a9, - a10, + CelSkip, + CelCap, 1); } else { l = light_table_index; @@ -359,7 +359,7 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE * light_table_index = 0; else light_table_index -= 5; - Cl2DecodeFrm6(px, py, pCelBuff, nCel, nWidth, a9, a10); + Cl2DecodeFrm6(px, py, pCelBuff, nCel, nWidth, CelSkip, CelCap); if (plr[pnum].pManaShield) Cl2DecodeFrm6( px + plr[pnum]._pAnimWidth2 - misfiledata[MFILE_MANASHLD].mAnimWidth2[0], @@ -367,8 +367,8 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE * misfiledata[MFILE_MANASHLD].mAnimData[0], 1, misfiledata[MFILE_MANASHLD].mAnimWidth[0], - a9, - a10); + CelSkip, + CelCap); light_table_index = l; } } @@ -544,7 +544,7 @@ void __fastcall DrawGame(int x, int y) // 69CF0C: using guessed type int gpBufEnd; // 69CF20: using guessed type char arch_draw_type; -void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int a5, int some_flag) +void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int chunks, int eflag) { int i, j; BYTE *dst; @@ -554,7 +554,7 @@ void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int a5, int so pMap = dpiece_defs_map_1[IsometricCoord(x, y)]; - if (some_flag) { + if (eflag) { if ((DWORD)y < MAXDUNY && (DWORD)x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; @@ -601,10 +601,10 @@ void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int a5, int so y--; sx += 64; pMap += 16; - a5--; + chunks--; } - j = a5; + j = chunks; while (j != 0) { j--; if (y < 0 || x >= MAXDUNX) { @@ -649,7 +649,7 @@ void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int a5, int so pMap += 16; } - if (some_flag && (DWORD)y < MAXDUNY && (DWORD)x < MAXDUNX) { + if (eflag && (DWORD)y < MAXDUNY && (DWORD)x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; if (level_piece_id == 0) { @@ -698,7 +698,7 @@ void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int a5, int so // 69CF94: using guessed type int cel_transparency_active; // 69CF98: using guessed type int level_piece_id; -void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, int a5, int a6) +void __fastcall scrollrt_draw_clipped_dungeon(char *pBuff, int sx, int sy, int x, int y, int eflag) { int v6; // eax char v7; // bl @@ -747,7 +747,7 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, char v50; // [esp+23h] [ebp-1h] a1a = sx; - dst_buf = a1; + dst_buf = pBuff; v6 = 112 * sx + sy; v7 = dDead[0][v6]; v50 = dFlags[0][v6]; @@ -765,25 +765,25 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, if (visiondebug && v50 & DFLAG_LIT) Cel2DecodeHdrOnly((BYTE *)dst_buf, (BYTE *)pSquareCel, 1, 64, 0, 8); if (MissilePreFlag && v50 & DFLAG_MISSILE) - DrawClippedMissile(a1a, sy, a4, a5, 0, 8, TRUE); + DrawClippedMissile(a1a, sy, x, y, 0, 8, TRUE); if (light_table_index < lightmax) { if (v7) { v11 = &dead[(v7 & 0x1F) - 1]; v12 = (int *)v11->_deadData[(v7 >> 5) & 7]; - v13 = a4 - v11->_deadWidth2; + v13 = x - v11->_deadWidth2; if (v12) { v14 = v11->_deadFrame; if (v14 >= 1 && (unsigned int)*v12 <= 0x32 && v14 <= *v12) { v15 = v11->_deadtrans; if (v15) - Cl2DecodeFrm5(v13, a5, (BYTE *)v12, v14, v11->_deadWidth, 0, 8, v15); + Cl2DecodeFrm5(v13, y, (BYTE *)v12, v14, v11->_deadWidth, 0, 8, v15); else - Cl2DecodeFrm6(v13, a5, (BYTE *)v12, v14, v11->_deadWidth, 0, 8); + Cl2DecodeFrm6(v13, y, (BYTE *)v12, v14, v11->_deadWidth, 0, 8); } } } if (v47) - DrawClippedObject(a1a, sy, a4, a5, 1, 0, 8); + DrawClippedObject(a1a, sy, x, y, 1, 0, 8); } if (v49) { v16 = &item[v49 - 1]; @@ -792,10 +792,10 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, if (v17) { v18 = v16->_iAnimFrame; if (v18 >= 1 && *(_DWORD *)v17 <= 0x32u && v18 <= *(_DWORD *)v17) { - v19 = a4 - v16->_iAnimWidth2; + v19 = x - v16->_iAnimWidth2; if (v49 - 1 == pcursitem) - CelDrawHdrClrHL(ICOL_BLUE, v19, a5, (BYTE *)v17, v16->_iAnimFrame, v16->_iAnimWidth, 0, 8); - Cel2DecodeHdrLight(v19, a5, v16->_iAnimData, v16->_iAnimFrame, v16->_iAnimWidth, 0, 8); + CelDrawHdrClrHL(ICOL_BLUE, v19, y, (BYTE *)v17, v16->_iAnimFrame, v16->_iAnimWidth, 0, 8); + Cel2DecodeHdrLight(v19, y, v16->_iAnimData, v16->_iAnimFrame, v16->_iAnimWidth, 0, 8); } } } @@ -808,19 +808,19 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, v20, a1a, sy - 1, - a4 + v21->_pxoff - v21->_pAnimWidth2, - a5 + v21->_pyoff, + x + v21->_pxoff - v21->_pAnimWidth2, + y + v21->_pyoff, v21->_pAnimData, v21->_pAnimFrame, v21->_pAnimWidth, 0, 8); - if (a6) { + if (eflag) { v22 = v21->_peflag; if (v22) { if (v22 == 2) - scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 12384, a1a - 2, sy + 1, a4 - 96, a5 - 16); - scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, a4 - 64, a5); + scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 12384, a1a - 2, sy + 1, x - 96, y - 16); + scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, x - 64, y); } } } @@ -833,21 +833,21 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, if (!(v24->_mFlags & MFLAG_HIDDEN)) { v25 = v24->MType; if (v25) { - v26 = a5 + v24->_myoff; - v27 = a4 + v24->_mxoff - v25->width2; + v26 = y + v24->_myoff; + v27 = x + v24->_mxoff - v25->width2; if (v23 == pcursmonst) { Cl2DecodeClrHL(233, v27, v26, v24->_mAnimData, v24->_mAnimFrame, v25->width, 0, 8); v23 = draw_monster_num; } DrawClippedMonster(a1a, sy, v27, v26, v23, 0, 8); - if (a6 && v24->_meflag) - scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, a4 - 64, a5); + if (eflag && v24->_meflag) + scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, x - 64, y); } } } } if (v50 & 4) - DrawDeadPlayer(a1a, sy, a4, a5, 0, 8, 1); + DrawDeadPlayer(a1a, sy, x, y, 0, 8, 1); if (v48 > 0) { v28 = v48 - 1; if (v28 < 4) { @@ -856,19 +856,19 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, v28, a1a, sy, - a4 + v29->_pxoff - v29->_pAnimWidth2, - a5 + v29->_pyoff, + x + v29->_pxoff - v29->_pAnimWidth2, + y + v29->_pyoff, v29->_pAnimData, v29->_pAnimFrame, v29->_pAnimWidth, 0, 8); - if (a6) { + if (eflag) { v30 = v29->_peflag; if (v30) { if (v30 == 2) - scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 12384, a1a - 2, sy + 1, a4 - 96, a5 - 16); - scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, a4 - 64, a5); + scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 12384, a1a - 2, sy + 1, x - 96, y - 16); + scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, x - 64, y); } } } @@ -881,23 +881,23 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, if (!(v32->_mFlags & MFLAG_HIDDEN)) { v33 = v32->MType; if (v33) { - v34 = a5 + v32->_myoff; - v35 = a4 + v32->_mxoff - v33->width2; + v34 = y + v32->_myoff; + v35 = x + v32->_mxoff - v33->width2; if (v31 == pcursmonst) { Cl2DecodeClrHL(233, v35, v34, v32->_mAnimData, v32->_mAnimFrame, v33->width, 0, 8); v31 = draw_monster_num; } DrawClippedMonster(a1a, sy, v35, v34, v31, 0, 8); - if (a6 && v32->_meflag) - scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, a4 - 64, a5); + if (eflag && v32->_meflag) + scrollrt_draw_clipped_e_flag((BYTE *)dst_buf - 64, a1a - 1, sy + 1, x - 64, y); } } } } if (v50 & 1) - DrawClippedMissile(a1a, sy, a4, a5, 0, 8, FALSE); + DrawClippedMissile(a1a, sy, x, y, 0, 8, FALSE); if (v47 && light_table_index < lightmax) - DrawClippedObject(a1a, sy, a4, a5, 0, 0, 8); + DrawClippedObject(a1a, sy, x, y, 0, 0, 8); if (v49) { v36 = &item[v49 - 1]; if (v36->_iPostDraw) { @@ -906,12 +906,12 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, if (v37) { v38 = v36->_iAnimFrame; if (v38 >= 1 && *(_DWORD *)v37 <= 0x32u && v38 <= *(_DWORD *)v37) { - v39 = a4 - v36->_iAnimWidth2; + v39 = x - v36->_iAnimWidth2; if (v49 - 1 == pcursitem) - CelDrawHdrClrHL(ICOL_BLUE, v39, a5, (BYTE *)v37, v36->_iAnimFrame, v36->_iAnimWidth, 0, 8); + CelDrawHdrClrHL(ICOL_BLUE, v39, y, (BYTE *)v37, v36->_iAnimFrame, v36->_iAnimWidth, 0, 8); Cel2DecodeHdrLight( v39, - a5, + y, v36->_iAnimData, v36->_iAnimFrame, v36->_iAnimWidth, @@ -935,7 +935,7 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, // 69CF94: using guessed type int cel_transparency_active; // 69EFA4: using guessed type int draw_monster_num; -void __fastcall DrawClippedMonster(int x, int y, int mx, int my, int m, int a6, int a7) +void __fastcall DrawClippedMonster(int x, int y, int mx, int my, int m, int CelSkip, int CelCap) { int nCel; char trans; @@ -972,7 +972,7 @@ void __fastcall DrawClippedMonster(int x, int y, int mx, int my, int m, int a6, } if (!(dFlags[x][y] & DFLAG_LIT)) { - Cl2DecodeFrm5(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, a6, a7, 1); + Cl2DecodeFrm5(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, CelSkip, CelCap, 1); } else { trans = 0; if (monster[m]._uniqtype) @@ -982,14 +982,14 @@ void __fastcall DrawClippedMonster(int x, int y, int mx, int my, int m, int a6, if (plr[myplr]._pInfraFlag && light_table_index > 8) trans = 1; if (trans) - Cl2DecodeFrm5(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, a6, a7, trans); + Cl2DecodeFrm5(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, CelSkip, CelCap, trans); else - Cl2DecodeFrm6(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, a6, a7); + Cl2DecodeFrm6(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, CelSkip, CelCap); } } // 69BEF8: using guessed type int light_table_index; -void __fastcall DrawClippedObject(int x, int y, int ox, int oy, BOOL pre, int a6, int dir) +void __fastcall DrawClippedObject(int x, int y, int ox, int oy, BOOL pre, int CelSkip, int CelCap) { int sx, sy, xx, yy, nCel; char bv; @@ -1010,8 +1010,8 @@ void __fastcall DrawClippedObject(int x, int y, int ox, int oy, BOOL pre, int a6 yy = object[bv]._oy - y; sx = (xx << 5) + ox - object[bv]._oAnimWidth2 - (yy << 5); sy = oy + (yy << 4) + (xx << 4); - a6 = 0; - dir = 8; + CelSkip = 0; + CelCap = 8; } /// ASSERT: assert((unsigned char)bv < MAXOBJECTS); @@ -1032,11 +1032,11 @@ void __fastcall DrawClippedObject(int x, int y, int ox, int oy, BOOL pre, int a6 } if (bv == pcursobj) - CelDrawHdrClrHL(194, sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, a6, dir); + CelDrawHdrClrHL(194, sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, CelSkip, CelCap); if (object[bv]._oLight) - Cel2DecodeHdrLight(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, a6, dir); + Cel2DecodeHdrLight(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, CelSkip, CelCap); else - Cel2DrawHdrOnly(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, a6, dir); + Cel2DrawHdrOnly(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, CelSkip, CelCap); } // 4B8CC1: using guessed type char pcursobj; @@ -1093,18 +1093,18 @@ void __fastcall scrollrt_draw_clipped_e_flag(BYTE *pBuff, int x, int y, int a4, // 69CF94: using guessed type int cel_transparency_active; // 69CF98: using guessed type int level_piece_id; -void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int a6, int some_flag) +void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int chunks, int skipChunks, int eflag) { - int i, j, dir; + int i, j, CelSkip; BYTE *dst; WORD *pMap; /// ASSERT: assert(gpBuffer); pMap = dpiece_defs_map_1[IsometricCoord(x, y)]; - dir = 2 * a6 + 2; + CelSkip = 2 * skipChunks + 2; - if (some_flag) { + if (eflag) { if (y >= 0 && y < MAXDUNY && x >= 0 && x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; @@ -1112,7 +1112,7 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int dst = &gpBuffer[sx - (768 * 32 - 32) + screen_y_times_768[sy]]; cel_transparency_active = (unsigned char)(nTransTable[level_piece_id] & TransList[dTransVal[x][y]]); for (i = 0; i < (MicroTileLen >> 1) - 1; i++) { - if (a6 <= i) { + if (skipChunks <= i) { level_cel_block = pMap[2 * i + 3]; if (level_cel_block != 0) { drawLowerScreen(dst); @@ -1120,19 +1120,19 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int } dst -= 768 * 32; } - if (dir < 8) { - scrollrt_draw_clipped_dungeon_2((char *)&gpBuffer[sx + screen_y_times_768[sy] - 768 * 16 * dir], x, y, a6, dir, sx, sy, 0); + if (CelSkip < 8) { + scrollrt_draw_clipped_dungeon_2((char *)&gpBuffer[sx + screen_y_times_768[sy] - 768 * 16 * CelSkip], x, y, skipChunks, CelSkip, sx, sy, 0); } } } x++; y--; sx += 64; - a5--; + chunks--; pMap += 16; } - j = a5; + j = chunks; while (j != 0) { j--; if (x >= MAXDUNX || y < 0) { @@ -1146,7 +1146,7 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int cel_transparency_active = (unsigned char)(nTransTable[level_piece_id] & TransList[dTransVal[x][y]]); i = 0; while (i < (MicroTileLen >> 1) - 1) { - if (a6 <= i) { + if (skipChunks <= i) { level_cel_block = pMap[2 * i + 2]; if (level_cel_block != 0) { drawLowerScreen(dst); @@ -1159,8 +1159,8 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int i++; dst -= 768 * 32; } - if (dir < 8) { - scrollrt_draw_clipped_dungeon_2((char *)&gpBuffer[sx + screen_y_times_768[sy] - 768 * 32 * (a6 + 1)], x, y, a6, dir, sx, sy, 1); + if (CelSkip < 8) { + scrollrt_draw_clipped_dungeon_2((char *)&gpBuffer[sx + screen_y_times_768[sy] - 768 * 32 * (skipChunks + 1)], x, y, skipChunks, CelSkip, sx, sy, 1); } } } @@ -1170,14 +1170,14 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int pMap += 16; } - if (some_flag && (DWORD)y < MAXDUNY && (DWORD)x < MAXDUNX) { + if (eflag && (DWORD)y < MAXDUNY && (DWORD)x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; if (level_piece_id != 0) { dst = &gpBuffer[sx - 768 * 32 + screen_y_times_768[sy]]; cel_transparency_active = (unsigned char)(nTransTable[level_piece_id] & TransList[dTransVal[x][y]]); for (i = 0; i < (MicroTileLen >> 1) - 1; i++) { - if (a6 <= i) { + if (skipChunks <= i) { level_cel_block = pMap[2 * i + 2]; if (level_cel_block != 0) { drawLowerScreen(dst); @@ -1185,8 +1185,8 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int } dst -= 768 * 32; } - if (dir < 8) { - scrollrt_draw_clipped_dungeon_2((char *)&gpBuffer[sx + screen_y_times_768[sy] - 768 * 16 * dir], x, y, a6, dir, sx, sy, 0); + if (CelSkip < 8) { + scrollrt_draw_clipped_dungeon_2((char *)&gpBuffer[sx + screen_y_times_768[sy] - 768 * 16 * CelSkip], x, y, skipChunks, CelSkip, sx, sy, 0); } } } @@ -1196,7 +1196,7 @@ void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int // 69CF94: using guessed type int cel_transparency_active; // 69CF98: using guessed type int level_piece_id; -void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int a4, int a5, int sx, int sy, int me_flag) +void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int skipChunks, int CelSkip, int sx, int sy, int eflag) { int v8; // eax char v9; // bl @@ -1262,10 +1262,10 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int v43 = *v12; v44 = *(v12 - 1); if (visiondebug && v53 & DFLAG_LIT) - Cel2DecodeHdrOnly((BYTE *)dst_buf, (BYTE *)pSquareCel, 1, 64, a5, 8); + Cel2DecodeHdrOnly((BYTE *)dst_buf, (BYTE *)pSquareCel, 1, 64, CelSkip, 8); if (MissilePreFlag && v53 & DFLAG_MISSILE) { v13 = sx; - DrawClippedMissile(a1, y, sx, sy, a5, 8, TRUE); + DrawClippedMissile(a1, y, sx, sy, CelSkip, 8, TRUE); } else { v13 = sx; } @@ -1279,14 +1279,14 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int if (v17 >= 1 && (unsigned int)*v15 <= 0x32 && v17 <= *v15) { v18 = v14->_deadtrans; if (v18) - Cl2DecodeFrm5(v16, sy, (BYTE *)v15, v17, v14->_deadWidth, a5, 8, v18); + Cl2DecodeFrm5(v16, sy, (BYTE *)v15, v17, v14->_deadWidth, CelSkip, 8, v18); else - Cl2DecodeFrm6(v16, sy, (BYTE *)v15, v17, v14->_deadWidth, a5, 8); + Cl2DecodeFrm6(v16, sy, (BYTE *)v15, v17, v14->_deadWidth, CelSkip, 8); } } } if (v50) - DrawClippedObject(a1, y, v13, sy, 1, a5, 8); + DrawClippedObject(a1, y, v13, sy, 1, CelSkip, 8); } if (v52) { v19 = &item[v52 - 1]; @@ -1297,8 +1297,8 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int if (v21 >= 1 && *(_DWORD *)v20 <= 0x32u && v21 <= *(_DWORD *)v20) { v22 = v13 - v19->_iAnimWidth2; if (v52 - 1 == pcursitem) - CelDrawHdrClrHL(ICOL_BLUE, v22, sy, (BYTE *)v20, v19->_iAnimFrame, v19->_iAnimWidth, a5, 8); - Cel2DecodeHdrLight(v22, sy, v19->_iAnimData, v19->_iAnimFrame, v19->_iAnimWidth, a5, 8); + CelDrawHdrClrHL(ICOL_BLUE, v22, sy, (BYTE *)v20, v19->_iAnimFrame, v19->_iAnimWidth, CelSkip, 8); + Cel2DecodeHdrLight(v22, sy, v19->_iAnimData, v19->_iAnimFrame, v19->_iAnimWidth, CelSkip, 8); } } } @@ -1316,14 +1316,14 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int v24->_pAnimData, v24->_pAnimFrame, v24->_pAnimWidth, - a5, + CelSkip, 8); - if (me_flag) { + if (eflag) { v25 = v24->_peflag; if (v25) { if (v25 == 2) - scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 12384, a1 - 2, y + 1, a4, a5, v13 - 96, sy - 16); - scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, a4, a5, v13 - 64, sy); + scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 12384, a1 - 2, y + 1, skipChunks, CelSkip, v13 - 96, sy - 16); + scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, skipChunks, CelSkip, v13 - 64, sy); } } } @@ -1339,19 +1339,19 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int v29 = sy + v27->_myoff; v30 = sx + v27->_mxoff - v28->width2; if (v26 == pcursmonst) { - Cl2DecodeClrHL(233, v30, v29, v27->_mAnimData, v27->_mAnimFrame, v28->width, a5, 8); + Cl2DecodeClrHL(233, v30, v29, v27->_mAnimData, v27->_mAnimFrame, v28->width, CelSkip, 8); v26 = draw_monster_num; } - DrawClippedMonster(a1, y, v30, v29, v26, a5, 8); - if (me_flag && !v27->_meflag) - scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, a4, a5, sx - 64, sy); + DrawClippedMonster(a1, y, v30, v29, v26, CelSkip, 8); + if (eflag && !v27->_meflag) + scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, skipChunks, CelSkip, sx - 64, sy); v13 = sx; } } } } if (v53 & DFLAG_DEAD_PLAYER) - DrawDeadPlayer(a1, y, v13, sy, a5, 8, 1); + DrawDeadPlayer(a1, y, v13, sy, CelSkip, 8, 1); if (v51 > 0) { v31 = v51 - 1; if (v31 < 4) { @@ -1365,14 +1365,14 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int v32->_pAnimData, v32->_pAnimFrame, v32->_pAnimWidth, - a5, + CelSkip, 8); - if (me_flag) { + if (eflag) { v33 = v32->_peflag; if (v33) { if (v33 == 2) - scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 12384, a1 - 2, y + 1, a4, a5, v13 - 96, sy - 16); - scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, a4, a5, v13 - 64, sy); + scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 12384, a1 - 2, y + 1, skipChunks, CelSkip, v13 - 96, sy - 16); + scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, skipChunks, CelSkip, v13 - 64, sy); } } } @@ -1388,21 +1388,21 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int v37 = sy + v35->_myoff; v38 = sx + v35->_mxoff - v36->width2; if (v34 == pcursmonst) { - Cl2DecodeClrHL(233, v38, v37, v35->_mAnimData, v35->_mAnimFrame, v36->width, a5, 8); + Cl2DecodeClrHL(233, v38, v37, v35->_mAnimData, v35->_mAnimFrame, v36->width, CelSkip, 8); v34 = draw_monster_num; } - DrawClippedMonster(a1, y, v38, v37, v34, a5, 8); - if (me_flag && !v35->_meflag) - scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, a4, a5, sx - 64, sy); + DrawClippedMonster(a1, y, v38, v37, v34, CelSkip, 8); + if (eflag && !v35->_meflag) + scrollrt_draw_clipped_e_flag_2((BYTE *)dst_buf - 64, a1 - 1, y + 1, skipChunks, CelSkip, sx - 64, sy); v13 = sx; } } } } if (v53 & DFLAG_MISSILE) - DrawClippedMissile(a1, y, v13, sy, a5, 8, FALSE); + DrawClippedMissile(a1, y, v13, sy, CelSkip, 8, FALSE); if (v50 && light_table_index < lightmax) - DrawClippedObject(a1, y, v13, sy, 0, a5, 8); + DrawClippedObject(a1, y, v13, sy, 0, CelSkip, 8); if (v52) { v39 = &item[v52 - 1]; if (v39->_iPostDraw) { @@ -1413,14 +1413,14 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int if (v41 >= 1 && *(_DWORD *)v40 <= 0x32u && v41 <= *(_DWORD *)v40) { v42 = v13 - v39->_iAnimWidth2; if (v52 - 1 == pcursitem) - CelDrawHdrClrHL(ICOL_BLUE, v42, sy, (BYTE *)v40, v41, v39->_iAnimWidth, a5, 8); + CelDrawHdrClrHL(ICOL_BLUE, v42, sy, (BYTE *)v40, v41, v39->_iAnimWidth, CelSkip, 8); Cel2DecodeHdrLight( v42, sy, v39->_iAnimData, v39->_iAnimFrame, v39->_iAnimWidth, - a5, + CelSkip, 8); } } @@ -1429,7 +1429,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int } if (v49) { cel_transparency_active = (unsigned char)TransList[v47]; - Cel2DecodeLightTrans((BYTE *)dst_buf, (BYTE *)level_special_cel, v49, 64, a5, 8); + Cel2DecodeLightTrans((BYTE *)dst_buf, (BYTE *)level_special_cel, v49, 64, CelSkip, 8); } } // 4B8CC0: using guessed type char pcursitem; @@ -1440,7 +1440,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int // 69CF94: using guessed type int cel_transparency_active; // 69EFA4: using guessed type int draw_monster_num; -void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int a4, signed int a5, int sx, int sy) +void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int skipChunks, signed int CelSkip, int sx, int sy) { int lti_old, cta_old, lpi_old; BYTE *dst; @@ -1452,11 +1452,11 @@ void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int a4 level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; - dst = &pBuff[768 * 32 * a4]; + dst = &pBuff[768 * 32 * skipChunks]; cel_transparency_active = (unsigned char)(nTransTable[level_piece_id] & TransList[dTransVal[x][y]]); pMap = dpiece_defs_map_1[IsometricCoord(x, y)]; - switch (a4) { + switch (skipChunks) { case 0: level_cel_block = pMap[2]; if (level_cel_block != 0) { @@ -1499,8 +1499,8 @@ void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int a4 break; } - if (a5 < 8) { - scrollrt_draw_clipped_dungeon_2((char *)pBuff, x, y, a4, a5, sx, sy, 0); + if (CelSkip < 8) { + scrollrt_draw_clipped_dungeon_2((char *)pBuff, x, y, skipChunks, CelSkip, sx, sy, 0); } light_table_index = lti_old; @@ -1512,28 +1512,28 @@ void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int a4 // 69CF94: using guessed type int cel_transparency_active; // 69CF98: using guessed type int level_piece_id; -void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6, int some_flag) +void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int chunks, int capChunks, int eflag) { - int i, j, dir; + int i, j, CelCap; BYTE *dst; WORD *pMap; /// ASSERT: assert(gpBuffer); pMap = dpiece_defs_map_1[IsometricCoord(x, y)]; - dir = 2 * a6 + 2; - if (dir > 8) { - dir = 8; + CelCap = 2 * capChunks + 2; + if (CelCap > 8) { + CelCap = 8; } - if (some_flag) { + if (eflag) { if (y >= 0 && y < MAXDUNY && x >= 0 && x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; if (level_piece_id != 0) { dst = &gpBuffer[sx + 32 + screen_y_times_768[sy]]; cel_transparency_active = (unsigned char)(nTransTable[level_piece_id] & TransList[dTransVal[x][y]]); - if (a6 >= 0) { + if (capChunks >= 0) { level_cel_block = pMap[1]; if (level_cel_block != 0) { arch_draw_type = 2; @@ -1542,27 +1542,27 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 } } dst -= 768 * 32; - if (a6 >= 1) { + if (capChunks >= 1) { level_cel_block = pMap[3]; if (level_cel_block != 0) { drawUpperScreen(dst); } } dst -= 768 * 32; - if (a6 >= 2) { + if (capChunks >= 2) { level_cel_block = pMap[5]; if (level_cel_block != 0) { drawUpperScreen(dst); } } dst -= 768 * 32; - if (a6 >= 3) { + if (capChunks >= 3) { level_cel_block = pMap[7]; if (level_cel_block != 0) { drawUpperScreen(dst); } } - scrollrt_draw_dungeon(&gpBuffer[sx + screen_y_times_768[sy]], x, y, a6, dir, sx, sy, 0); + scrollrt_draw_dungeon(&gpBuffer[sx + screen_y_times_768[sy]], x, y, capChunks, CelCap, sx, sy, 0); } else { world_draw_black_tile(&gpBuffer[sx + screen_y_times_768[sy]]); } @@ -1570,11 +1570,11 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 x++; y--; sx += 64; - a5--; + chunks--; pMap += 16; } - for (j = 0; j < a5; j++) { + for (j = 0; j < chunks; j++) { if (y >= 0 && y < MAXDUNY && x >= 0 && x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; @@ -1594,7 +1594,7 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 arch_draw_type = 0; for (i = 1; i < (MicroTileLen >> 1) - 1; i++) { dst -= 768 * 32; - if (a6 >= i) { + if (capChunks >= i) { level_cel_block = pMap[2 * i]; if (level_cel_block != 0) { drawUpperScreen(dst); @@ -1605,7 +1605,7 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 } } } - scrollrt_draw_dungeon(&gpBuffer[sx + screen_y_times_768[sy]], x, y, a6, dir, sx, sy, 1); + scrollrt_draw_dungeon(&gpBuffer[sx + screen_y_times_768[sy]], x, y, capChunks, CelCap, sx, sy, 1); } else { world_draw_black_tile(&gpBuffer[sx + screen_y_times_768[sy]]); } @@ -1616,14 +1616,14 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 pMap += 16; } - if (some_flag && y >= 0 && y < MAXDUNY && x >= 0 && x < MAXDUNX) { + if (eflag && y >= 0 && y < MAXDUNY && x >= 0 && x < MAXDUNX) { level_piece_id = dPiece[x][y]; light_table_index = dLight[x][y]; if (level_piece_id != 0) { dst = &gpBuffer[sx + screen_y_times_768[sy]]; cel_transparency_active = (unsigned char)(nTransTable[level_piece_id] & TransList[dTransVal[x][y]]); arch_draw_type = 1; - if (a6 >= 0) { + if (capChunks >= 0) { level_cel_block = pMap[0]; if (level_cel_block != 0) { drawUpperScreen(dst); @@ -1631,27 +1631,27 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 } arch_draw_type = 0; dst -= 768 * 32; - if (a6 >= 1) { + if (capChunks >= 1) { level_cel_block = pMap[2]; if (level_cel_block != 0) { drawUpperScreen(dst); } } dst -= 768 * 32; - if (a6 >= 2) { + if (capChunks >= 2) { level_cel_block = pMap[4]; if (level_cel_block != 0) { drawUpperScreen(dst); } } dst -= 768 * 32; - if (a6 >= 3) { + if (capChunks >= 3) { level_cel_block = pMap[6]; if (level_cel_block != 0) { drawUpperScreen(dst); } } - scrollrt_draw_dungeon(&gpBuffer[sx + screen_y_times_768[sy]], x, y, a6, dir, sx, sy, 0); + scrollrt_draw_dungeon(&gpBuffer[sx + screen_y_times_768[sy]], x, y, capChunks, CelCap, sx, sy, 0); } else { world_draw_black_tile(&gpBuffer[sx + screen_y_times_768[sy]]); } @@ -1663,7 +1663,7 @@ void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6 // 69CF94: using guessed type int cel_transparency_active; // 69CF98: using guessed type int level_piece_id; -void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a5, int dx, int dy, int me_flag) +void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int capChunks, int CelCap, int dx, int dy, int eflag) { int px, py, nCel, nMon, negMon, p; char bFlag, bDead, bObj, bItem, bPlr, bArch, bMap, negPlr, dd; @@ -1690,10 +1690,10 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a negMon = dMonster[sx][sy - 1]; if (visiondebug && (bFlag & 0x40)) { - CelDecodeHdrOnly(pBuff, (BYTE *)pSquareCel, 1, 64, 0, a5); + CelDecodeHdrOnly(pBuff, (BYTE *)pSquareCel, 1, 64, 0, CelCap); } if (MissilePreFlag && (bFlag & 1)) { - DrawMissile(sx, sy, dx, dy, 0, a5, 1); + DrawMissile(sx, sy, dx, dy, 0, CelCap, 1); } if (light_table_index < lightmax) { if (bDead != 0) { @@ -1707,9 +1707,9 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a pFrameTable = (DWORD *)pCelBuff; if (nCel >= 1 && pFrameTable[0] <= 50 && nCel <= (int)pFrameTable[0]) { if (pDeadGuy->_deadtrans != 0) { - Cl2DecodeFrm3(px, dy, pDeadGuy->_deadData[dd], pDeadGuy->_deadFrame, pDeadGuy->_deadWidth, 0, a5, pDeadGuy->_deadtrans); + Cl2DecodeFrm3(px, dy, pDeadGuy->_deadData[dd], pDeadGuy->_deadFrame, pDeadGuy->_deadWidth, 0, CelCap, pDeadGuy->_deadtrans); } else { - Cl2DecodeLightTbl(px, dy, pDeadGuy->_deadData[dd], pDeadGuy->_deadFrame, pDeadGuy->_deadWidth, 0, a5); + Cl2DecodeLightTbl(px, dy, pDeadGuy->_deadData[dd], pDeadGuy->_deadFrame, pDeadGuy->_deadWidth, 0, CelCap); } } else { // app_fatal("Unclipped dead: frame %d of %d, deadnum==%d", nCel, pFrameTable[0], (bDead & 0x1F) - 1); @@ -1717,7 +1717,7 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a } } if (bObj != 0) { - DrawObject(sx, sy, dx, dy, 1, 0, a5); + DrawObject(sx, sy, dx, dy, 1, 0, CelCap); } } if (bItem != 0) { @@ -1732,9 +1732,9 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a if (nCel >= 1 && pFrameTable[0] <= 50 && nCel <= (int)pFrameTable[0]) { px = dx - pItem->_iAnimWidth2; if (bItem - 1 == pcursitem) { - CelDecodeClr(181, px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, a5); + CelDecodeClr(181, px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, CelCap); } - CelDecodeHdrLightOnly(px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, a5); + CelDecodeHdrLightOnly(px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, CelCap); } else { // app_fatal("Draw \"%s\" Item 1: frame %d of %d, item type==%d", pItem->_iIName, nCel, pFrameTable[0], pItem->_itype); } @@ -1750,12 +1750,12 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a pPlayer = &plr[p]; px = dx + pPlayer->_pxoff - pPlayer->_pAnimWidth2; py = dy + pPlayer->_pyoff; - DrawPlayer(p, sx, sy - 1, px, py, pPlayer->_pAnimData, pPlayer->_pAnimFrame, pPlayer->_pAnimWidth, 0, a5); - if (me_flag && pPlayer->_peflag != 0) { + DrawPlayer(p, sx, sy - 1, px, py, pPlayer->_pAnimData, pPlayer->_pAnimFrame, pPlayer->_pAnimWidth, 0, CelCap); + if (eflag && pPlayer->_peflag != 0) { if (pPlayer->_peflag == 2) { - scrollrt_draw_e_flag(pBuff - (768 * 16 + 96), sx - 2, sy + 1, a4, a5, dx - 96, dy - 16); + scrollrt_draw_e_flag(pBuff - (768 * 16 + 96), sx - 2, sy + 1, capChunks, CelCap, dx - 96, dy - 16); } - scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, a4, a5, dx - 64, dy); + scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, capChunks, CelCap, dx - 64, dy); } } else { // app_fatal("draw player: tried to draw illegal player %d", p); @@ -1770,11 +1770,11 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a py = dy + pMonster->_myoff; px = dx + pMonster->_mxoff - pMonster->MType->width2; if (draw_monster_num == pcursmonst) { - Cl2DecodeFrm2(233, px, py, pMonster->_mAnimData, pMonster->_mAnimFrame, pMonster->MType->width, 0, a5); + Cl2DecodeFrm2(233, px, py, pMonster->_mAnimData, pMonster->_mAnimFrame, pMonster->MType->width, 0, CelCap); } - DrawMonster(sx, sy, px, py, draw_monster_num, 0, a5); - if (me_flag && !pMonster->_meflag) { - scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, a4, a5, dx - 64, dy); + DrawMonster(sx, sy, px, py, draw_monster_num, 0, CelCap); + if (eflag && !pMonster->_meflag) { + scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, capChunks, CelCap, dx - 64, dy); } } else { // app_fatal("Draw Monster \"%s\": uninitialized monster", pMonster->mName); @@ -1785,7 +1785,7 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a } } if (bFlag & 4) { - DrawDeadPlayer(sx, sy, dx, dy, 0, a5, 0); + DrawDeadPlayer(sx, sy, dx, dy, 0, CelCap, 0); } if (bPlr > 0) { p = bPlr - 1; @@ -1793,12 +1793,12 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a pPlayer = &plr[p]; px = dx + pPlayer->_pxoff - pPlayer->_pAnimWidth2; py = dy + pPlayer->_pyoff; - DrawPlayer(p, sx, sy, px, py, pPlayer->_pAnimData, pPlayer->_pAnimFrame, pPlayer->_pAnimWidth, 0, a5); - if (me_flag && pPlayer->_peflag != 0) { + DrawPlayer(p, sx, sy, px, py, pPlayer->_pAnimData, pPlayer->_pAnimFrame, pPlayer->_pAnimWidth, 0, CelCap); + if (eflag && pPlayer->_peflag != 0) { if (pPlayer->_peflag == 2) { - scrollrt_draw_e_flag(pBuff - (768 * 16 + 96), sx - 2, sy + 1, a4, a5, dx - 96, dy - 16); + scrollrt_draw_e_flag(pBuff - (768 * 16 + 96), sx - 2, sy + 1, capChunks, CelCap, dx - 96, dy - 16); } - scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, a4, a5, dx - 64, dy); + scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, capChunks, CelCap, dx - 64, dy); } } else { // app_fatal("draw player: tried to draw illegal player %d", p); @@ -1813,11 +1813,11 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a py = dy + pMonster->_myoff; px = dx + pMonster->_mxoff - pMonster->MType->width2; if (draw_monster_num == pcursmonst) { - Cl2DecodeFrm2(233, px, py, pMonster->_mAnimData, pMonster->_mAnimFrame, pMonster->MType->width, 0, a5); + Cl2DecodeFrm2(233, px, py, pMonster->_mAnimData, pMonster->_mAnimFrame, pMonster->MType->width, 0, CelCap); } - DrawMonster(sx, sy, px, py, draw_monster_num, 0, a5); - if (me_flag && !pMonster->_meflag) { - scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, a4, a5, dx - 64, dy); + DrawMonster(sx, sy, px, py, draw_monster_num, 0, CelCap); + if (eflag && !pMonster->_meflag) { + scrollrt_draw_e_flag(pBuff - 64, sx - 1, sy + 1, capChunks, CelCap, dx - 64, dy); } } else { // app_fatal("Draw Monster \"%s\": uninitialized monster", pMonster->mName); @@ -1828,10 +1828,10 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a } } if (bFlag & 1) { - DrawMissile(sx, sy, dx, dy, 0, a5, 0); + DrawMissile(sx, sy, dx, dy, 0, CelCap, 0); } if (bObj != 0 && light_table_index < lightmax) { - DrawObject(sx, sy, dx, dy, 0, 0, a5); + DrawObject(sx, sy, dx, dy, 0, 0, CelCap); } if (bItem != 0) { pItem = &item[bItem - 1]; @@ -1845,9 +1845,9 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a if (nCel >= 1 && pFrameTable[0] <= 50 && nCel <= (int)pFrameTable[0]) { px = dx - pItem->_iAnimWidth2; if (bItem - 1 == pcursitem) { - CelDecodeClr(181, px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, a5); + CelDecodeClr(181, px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, CelCap); } - CelDecodeHdrLightOnly(px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, a5); + CelDecodeHdrLightOnly(px, dy, pItem->_iAnimData, pItem->_iAnimFrame, pItem->_iAnimWidth, 0, CelCap); } else { // app_fatal("Draw \"%s\" Item 2: frame %d of %d, item type==%d", pItem->_iIName, nCel, pFrameTable[0], pItem->_itype); } @@ -1859,7 +1859,7 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a } if (bArch != 0) { cel_transparency_active = (unsigned char)TransList[bMap]; - CelDecodeHdrLightTrans(pBuff, (BYTE *)level_special_cel, bArch, 64, 0, a5); + CelDecodeHdrLightTrans(pBuff, (BYTE *)level_special_cel, bArch, 64, 0, CelCap); } } // 4B8CC0: using guessed type char pcursitem; @@ -1870,7 +1870,7 @@ void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a // 69CF94: using guessed type int cel_transparency_active; // 69EFA4: using guessed type int draw_monster_num; -void __fastcall DrawMonster(int x, int y, int mx, int my, int m, int a6, int a7) +void __fastcall DrawMonster(int x, int y, int mx, int my, int m, int CelSkip, int CelCap) { int nCel; char trans; @@ -1907,7 +1907,7 @@ void __fastcall DrawMonster(int x, int y, int mx, int my, int m, int a6, int a7) } if (!(dFlags[x][y] & DFLAG_LIT)) { - Cl2DecodeFrm3(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, a6, a7, 1); + Cl2DecodeFrm3(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, CelSkip, CelCap, 1); } else { trans = 0; if (monster[m]._uniqtype) @@ -1917,14 +1917,14 @@ void __fastcall DrawMonster(int x, int y, int mx, int my, int m, int a6, int a7) if (plr[myplr]._pInfraFlag && light_table_index > 8) trans = 1; if (trans) - Cl2DecodeFrm3(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, a6, a7, trans); + Cl2DecodeFrm3(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, CelSkip, CelCap, trans); else - Cl2DecodeLightTbl(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, a6, a7); + Cl2DecodeLightTbl(mx, my, monster[m]._mAnimData, monster[m]._mAnimFrame, monster[m].MType->width, CelSkip, CelCap); } } // 69BEF8: using guessed type int light_table_index; -void __fastcall DrawObject(int x, int y, int ox, int oy, BOOL pre, int a6, int dir) +void __fastcall DrawObject(int x, int y, int ox, int oy, BOOL pre, int CelSkip, int CelCap) { int sx, sy, xx, yy, nCel; char bv; @@ -1945,8 +1945,8 @@ void __fastcall DrawObject(int x, int y, int ox, int oy, BOOL pre, int a6, int d yy = object[bv]._oy - y; sx = (xx << 5) + ox - object[bv]._oAnimWidth2 - (yy << 5); sy = oy + (yy << 4) + (xx << 4); - a6 = 0; - dir = 8; + CelSkip = 0; + CelCap = 8; } /// ASSERT: assert((unsigned char)bv < MAXOBJECTS); @@ -1967,18 +1967,18 @@ void __fastcall DrawObject(int x, int y, int ox, int oy, BOOL pre, int a6, int d } if (bv == pcursobj) - CelDecodeClr(194, sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, a6, dir); + CelDecodeClr(194, sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, CelSkip, CelCap); if (object[bv]._oLight) { - CelDecodeHdrLightOnly(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, a6, dir); + CelDecodeHdrLightOnly(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, CelSkip, CelCap); } else { /// ASSERT: assert(object[bv]._oAnimData); if (object[bv]._oAnimData) // BUGFIX: _oAnimData was already checked, this is redundant - CelDrawHdrOnly(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, a6, dir); + CelDrawHdrOnly(sx, sy, object[bv]._oAnimData, object[bv]._oAnimFrame, object[bv]._oAnimWidth, CelSkip, CelCap); } } // 4B8CC1: using guessed type char pcursobj; -void __fastcall scrollrt_draw_e_flag(BYTE *pBuff, int x, int y, int a4, int a5, int sx, int sy) +void __fastcall scrollrt_draw_e_flag(BYTE *pBuff, int x, int y, int capChunks, int CelCap, int sx, int sy) { int i, lti_old, cta_old, lpi_old; BYTE *dst; @@ -2008,7 +2008,7 @@ void __fastcall scrollrt_draw_e_flag(BYTE *pBuff, int x, int y, int a4, int a5, arch_draw_type = 0; for (i = 1; i < (MicroTileLen >> 1) - 1; i++) { dst -= 768 * 32; - if (a4 >= i) { + if (capChunks >= i) { level_cel_block = pMap[2 * i]; if (level_cel_block != 0) { drawUpperScreen(dst); @@ -2020,7 +2020,7 @@ void __fastcall scrollrt_draw_e_flag(BYTE *pBuff, int x, int y, int a4, int a5, } } - scrollrt_draw_dungeon(pBuff, x, y, a4, a5, sx, sy, 0); + scrollrt_draw_dungeon(pBuff, x, y, capChunks, CelCap, sx, sy, 0); light_table_index = lti_old; cel_transparency_active = cta_old; diff --git a/Source/scrollrt.h b/Source/scrollrt.h index cb1743987..17d3ba8a3 100644 --- a/Source/scrollrt.h +++ b/Source/scrollrt.h @@ -14,26 +14,26 @@ extern void (__fastcall *DrawPlrProc)(int, int, int, int, int, BYTE *, int, int, extern int draw_monster_num; // weak void __cdecl ClearCursor(); -void __fastcall DrawMissile(int x, int y, int sx, int sy, int a5, int a6, BOOL pre); -void __fastcall DrawClippedMissile(int x, int y, int sx, int sy, int a5, int a6, BOOL pre); -void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int a5, int a6, BOOL clipped); -void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int a9, int a10); -void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int a9, int a10); +void __fastcall DrawMissile(int x, int y, int sx, int sy, int CelSkip, int capChunks, BOOL pre); +void __fastcall DrawClippedMissile(int x, int y, int sx, int sy, int CelSkip, int capChunks, BOOL pre); +void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int CelSkip, int capChunks, BOOL clipped); +void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int capChunks); +void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int capChunks); void __fastcall DrawView(int StartX, int StartY); void __fastcall DrawGame(int x, int y); -void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int a5, int some_flag); -void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, int a5, int a6); -void __fastcall DrawClippedMonster(int x, int y, int mx, int my, int m, int a6, int a7); -void __fastcall DrawClippedObject(int x, int y, int ox, int oy, BOOL pre, int a6, int dir); -void __fastcall scrollrt_draw_clipped_e_flag(BYTE *pBuff, int x, int y, int a4, int a5); -void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int a5, int a6, int some_flag); -void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int a4, int a5, int sx, int sy, int me_flag); -void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int a4, signed int a5, int sx, int sy); -void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int a5, int a6, int some_flag); -void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int a4, int a5, int dx, int dy, int me_flag); -void __fastcall DrawMonster(int x, int y, int mx, int my, int m, int a6, int a7); -void __fastcall DrawObject(int x, int y, int ox, int oy, BOOL pre, int a6, int dir); -void __fastcall scrollrt_draw_e_flag(BYTE *pBuff, int x, int y, int a4, int a5, int sx, int sy); +void __fastcall scrollrt_draw_lower(int x, int y, int sx, int sy, int chunks, int eflag); +void __fastcall scrollrt_draw_clipped_dungeon(char *pBuff, int sx, int sy, int x, int y, int eflag); +void __fastcall DrawClippedMonster(int x, int y, int mx, int my, int m, int CelSkip, int capChunks); +void __fastcall DrawClippedObject(int x, int y, int ox, int oy, BOOL pre, int CelSkip, int capChunks); +void __fastcall scrollrt_draw_clipped_e_flag(BYTE *pBuff, int x, int y, int sx, int sy); +void __fastcall scrollrt_draw_lower_2(int x, int y, int sx, int sy, int chunks, int skipChunks, int eflag); +void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int skipChunks, int CelSkip, int sx, int sy, int eflag); +void __fastcall scrollrt_draw_clipped_e_flag_2(BYTE *pBuff, int x, int y, int skipChunks, signed int CelSkip, int sx, int sy); +void __fastcall scrollrt_draw_upper(int x, int y, int sx, int sy, int chunks, int capChunks, int eflag); +void __fastcall scrollrt_draw_dungeon(BYTE *pBuff, int sx, int sy, int capChunks, int CelCap, int dx, int dy, int eflag); +void __fastcall DrawMonster(int x, int y, int mx, int my, int m, int CelSkip, int CelCap); +void __fastcall DrawObject(int x, int y, int ox, int oy, BOOL pre, int CelSkip, int capChunks); +void __fastcall scrollrt_draw_e_flag(BYTE *pBuff, int x, int y, int capChunks, int CelCap, int sx, int sy); void __fastcall DrawZoom(int x, int y); void __cdecl ClearScreenBuffer(); #ifdef _DEBUG