Browse Source

Merge pull request #965 from galaxyhaxz/Adddefs

Add defs for screen resolution
pull/88/head
Robin Eklind 7 years ago committed by GitHub
parent
commit
e2ab0e4dee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      Source/dx.cpp
  2. 28
      Source/scrollrt.cpp
  3. 6
      defs.h

12
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);

28
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;

6
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) \

Loading…
Cancel
Save