From 308f36d0e8bdc9ab42092d5f20848565c8842b73 Mon Sep 17 00:00:00 2001 From: nukeykt Date: Tue, 29 Oct 2019 23:17:15 +0900 Subject: [PATCH] Make screensize independent on screen resolution --- source/exhumed/src/exhumed.cpp | 35 ++++++++++++---------------------- source/exhumed/src/init.cpp | 13 ++----------- source/exhumed/src/status.cpp | 4 ++-- source/exhumed/src/view.cpp | 2 +- 4 files changed, 17 insertions(+), 37 deletions(-) diff --git a/source/exhumed/src/exhumed.cpp b/source/exhumed/src/exhumed.cpp index df9bf1c91..45cdcbde6 100644 --- a/source/exhumed/src/exhumed.cpp +++ b/source/exhumed/src/exhumed.cpp @@ -752,14 +752,15 @@ int MyGetStringWidth(const char *str) void UpdateScreenSize() { - int v0 = ydim * screensize / xdim; - int y1 = ((ydim >> 1) - (v0 >> 1)); + int xsize = xdim - scale(screensize*16, xdim, 320); + int ysize = scale(ydim, xsize, xdim); + int y1 = ((ydim >> 1) - (ysize >> 1)); MySetView( - (xdim >> 1) - (screensize >> 1), + (xdim >> 1) - (xsize >> 1), y1, - (xdim >> 1) - (screensize >> 1) + screensize - 1, - (y1 + v0 - 1)); + (xdim >> 1) - (xsize >> 1) + xsize - 1, + (y1 + ysize - 1)); RefreshStatus(); } @@ -894,14 +895,7 @@ void CheckKeys() if (BUTTON(gamefunc_Enlarge_Screen)) { - if (bHiRes) { - eax = 32; - } - else { - eax = 16; - } - - if (screensize == xdim) + if (screensize == 0) { if (!bFullScreen) { @@ -911,9 +905,9 @@ void CheckKeys() } else { - screensize += eax; - if (screensize > xdim) { - screensize = xdim; + screensize--; + if (screensize < 0) { + screensize = 0; } UpdateScreenSize(); @@ -955,19 +949,14 @@ void CheckKeys() if (BUTTON(gamefunc_Shrink_Screen)) { - if (bHiRes) - eax = 32; - else - eax = 16; - if (bFullScreen) { bFullScreen = kFalse; } else { - if ((screensize - eax) > (xdim >> 2)) - screensize -= eax; + if ((screensize + 1) < 15) + screensize++; } UpdateScreenSize(); diff --git a/source/exhumed/src/init.cpp b/source/exhumed/src/init.cpp index ce4a7b119..807ca8082 100644 --- a/source/exhumed/src/init.cpp +++ b/source/exhumed/src/init.cpp @@ -1229,12 +1229,8 @@ int myloadconfig() fread(&nGamma, sizeof(nGamma), 1, fp); fread(&lMouseSens, sizeof(lMouseSens), 1, fp); - if (bHiRes) { - screensize *= 2; - } - - if (screensize > xdim || screensize < xdim >> 2) { - screensize = xdim; + if (screensize < 0 || screensize > 15) { + screensize = 0; } fclose(fp); @@ -1262,11 +1258,6 @@ int mysaveconfig() short nSize = screensize; - if (bHiRes) - { - nSize = screensize / 2; - } - fwrite(&nSize, sizeof(nSize), 1, fp); fwrite(&bFullScreen, sizeof(bFullScreen), 1, fp); fwrite(&nGamma, sizeof(nGamma), 1, fp); diff --git a/source/exhumed/src/status.cpp b/source/exhumed/src/status.cpp index fad133db3..7ae7914a0 100644 --- a/source/exhumed/src/status.cpp +++ b/source/exhumed/src/status.cpp @@ -473,7 +473,7 @@ void MoveStatus() message_timer -= 4; if (message_timer <= 0) { - if (screensize < xdim) { + if (screensize > 0) { textpages = numpages; } @@ -644,7 +644,7 @@ void StatusMessage(int messageTime, const char *fmt, ...) vsprintf(message_text, fmt, args); - if (screensize < xdim) { + if (screensize > 0) { textpages = numpages; } } diff --git a/source/exhumed/src/view.cpp b/source/exhumed/src/view.cpp index 2731a7eb3..dab43c542 100644 --- a/source/exhumed/src/view.cpp +++ b/source/exhumed/src/view.cpp @@ -62,7 +62,7 @@ short nEnemyPal = 0; void InitView() { - screensize = (short)xdim; + screensize = 0; #ifdef USE_OPENGL polymostcenterhoriz = 92; #endif