From 3446e3c9a9ba8e85f5262e98a65e48a5de7c8581 Mon Sep 17 00:00:00 2001 From: galaxyhaxz Date: Tue, 16 Apr 2019 19:43:50 -0500 Subject: [PATCH] Add defs for screen resolution --- Source/dx.cpp | 12 ++++++------ Source/scrollrt.cpp | 28 ++++++++++++++-------------- defs.h | 6 ++++++ 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/Source/dx.cpp b/Source/dx.cpp index f14ab8b04..3aa54aae6 100644 --- a/Source/dx.cpp +++ b/Source/dx.cpp @@ -62,9 +62,9 @@ void dx_init(HWND hWnd) ErrDlg(IDD_DIALOG1, v4, "C:\\Src\\Diablo\\Source\\dx.cpp", 170); } #ifdef __cplusplus - if (lpDDInterface->SetDisplayMode(640, 480, 8)) { + if (lpDDInterface->SetDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, 8)) { #else - if (lpDDInterface->lpVtbl->SetDisplayMode(lpDDInterface, 640, 480, 8)) { + if (lpDDInterface->lpVtbl->SetDisplayMode(lpDDInterface, SCREEN_WIDTH, SCREEN_HEIGHT, 8)) { #endif v6 = GetSystemMetrics(SM_CXSCREEN); v7 = GetSystemMetrics(SM_CYSCREEN); @@ -111,7 +111,7 @@ void dx_create_back_buffer() #else lpDDSPrimary->lpVtbl->Unlock(lpDDSPrimary, NULL); #endif - sgpBackBuf = (BYTE *)DiabloAllocPtr(656 * 768); + sgpBackBuf = (BYTE *)DiabloAllocPtr(BUFFER_HEIGHT * BUFFER_WIDTH); return; } if (error_code != DDERR_CANTLOCKSURFACE) @@ -119,12 +119,12 @@ void dx_create_back_buffer() } memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwWidth = 768; - ddsd.lPitch = 768; + ddsd.dwWidth = BUFFER_WIDTH; + ddsd.lPitch = BUFFER_WIDTH; ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_PIXELFORMAT | DDSD_PITCH | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS; ddsd.ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY | DDSCAPS_OFFSCREENPLAIN; - ddsd.dwHeight = 656; + ddsd.dwHeight = BUFFER_HEIGHT; ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat); #ifdef __cplusplus error_code = lpDDSPrimary->GetPixelFormat(&ddsd.ddpfPixelFormat); diff --git a/Source/scrollrt.cpp b/Source/scrollrt.cpp index 8c726d76a..d53736f42 100644 --- a/Source/scrollrt.cpp +++ b/Source/scrollrt.cpp @@ -2197,12 +2197,12 @@ void ClearScreenBuffer() __asm { mov edi, gpBuffer add edi, SCREENXY(0, 0) - mov edx, 480 + mov edx, SCREEN_HEIGHT xor eax, eax zeroline: - mov ecx, 640 / 4 + mov ecx, SCREEN_WIDTH / 4 rep stosd - add edi, 768 - 640 + add edi, BUFFER_WIDTH - SCREEN_WIDTH dec edx jnz zeroline } @@ -2212,8 +2212,8 @@ void ClearScreenBuffer() dst = &gpBuffer[SCREENXY(0, 0)]; - for (i = 0; i < 480; i++, dst += 768) { - memset(dst, 0, 640); + for (i = 0; i < SCREEN_HEIGHT; i++, dst += BUFFER_WIDTH) { + memset(dst, 0, SCREEN_WIDTH); } #endif @@ -2246,7 +2246,7 @@ void ScrollView() scroll = TRUE; } } - if (MouseX > 640 - 20) { + if (MouseX > SCREEN_WIDTH - 20) { if (dmaxx - 1 <= ViewX || dminy >= ViewY) { if (dmaxx - 1 > ViewX) { ViewX++; @@ -2278,7 +2278,7 @@ void ScrollView() scroll = TRUE; } } - if (MouseY > 480 - 20) { + if (MouseY > SCREEN_HEIGHT - 20) { if (dmaxy - 1 <= ViewY || dmaxx - 1 <= ViewX) { if (dmaxy - 1 > ViewY) { ViewY++; @@ -2371,20 +2371,20 @@ void scrollrt_draw_cursor_item() mx = MouseX - 1; if (mx < 0) { mx = 0; - } else if (mx > 640 - 1) { + } else if (mx > SCREEN_WIDTH - 1) { return; } my = MouseY - 1; if (my < 0) { my = 0; - } else if (my > 480 - 1) { + } else if (my > SCREEN_HEIGHT - 1) { return; } sgdwCursX = mx; sgdwCursWdt = sgdwCursX + cursW + 1; - if (sgdwCursWdt > 640 - 1) { - sgdwCursWdt = 640 - 1; + if (sgdwCursWdt > SCREEN_WIDTH - 1) { + sgdwCursWdt = SCREEN_WIDTH - 1; } sgdwCursX &= ~3; sgdwCursWdt |= 3; @@ -2393,8 +2393,8 @@ void scrollrt_draw_cursor_item() sgdwCursY = my; sgdwCursHgt = sgdwCursY + cursH + 1; - if (sgdwCursHgt > 480 - 1) { - sgdwCursHgt = 480 - 1; + if (sgdwCursHgt > SCREEN_HEIGHT - 1) { + sgdwCursHgt = SCREEN_HEIGHT - 1; } sgdwCursHgt -= sgdwCursY; sgdwCursHgt++; @@ -2635,7 +2635,7 @@ void DoBlitScreen(DWORD dwX, DWORD dwY, DWORD dwWdt, DWORD dwHgt) } else { nSrcOff = SCREENXY(dwX, dwY); nDstOff = dwX + dwY * DDS_desc.lPitch; - nSrcWdt = 768 - dwWdt; + nSrcWdt = BUFFER_WIDTH - dwWdt; nDstWdt = DDS_desc.lPitch - dwWdt; dwWdt >>= 2; diff --git a/defs.h b/defs.h index 71d1f7f90..0496dfcf0 100644 --- a/defs.h +++ b/defs.h @@ -85,6 +85,12 @@ #define PAL16_RED 224 #define PAL16_GRAY 240 +#define SCREEN_WIDTH 640 +#define SCREEN_HEIGHT 480 +#define BUFFER_WIDTH 768 +#define BUFFER_HEIGHT 656 +#define TILE_SIZE 32 + #define SCREENXY(x, y) ((x) + 64 + (((y) + 160) * 768)) #define MemFreeDbg(p) \