Skip to content

Commit

Permalink
Merge branch 'emileb-master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
LTCHIPS committed Jan 4, 2021
2 parents 49bba1e + dd23059 commit 407e3d8
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 167 deletions.
18 changes: 17 additions & 1 deletion src/rt_cfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

extern int G_weaponscale;
extern boolean iG_aimCross;
extern int hudRescaleFactor;

boolean WriteSoundFile = true;

Expand All @@ -90,7 +91,7 @@ boolean allowMovementWithMouseYAxis = 1;
boolean enableZomROTT = 0;
int FocalWidthOffset = 0;
int ScreenHeightToWriteToCfg = 0;

int HudScaleToWriteToCfg = 0;
int ScreenWidthToWriteToCfg = 0;
boolean writeNewResIntoCfg = false;

Expand Down Expand Up @@ -495,6 +496,9 @@ boolean ParseConfigFile (void)
}
}

// Read in HUDScale
ReadInt("HUDScale",&hudRescaleFactor);

// Read in MouseAdjustment
ReadInt("MouseAdjustment",&mouseadjustment);

Expand Down Expand Up @@ -1745,6 +1749,18 @@ void WriteConfig (void)
WriteParameter(file,"Weaponscale ",G_weaponscale);


// Write out HUD Scale
SafeWriteString(file,"\n;\n");
SafeWriteString(file,"; HUD Scale.\n");
if (writeNewResIntoCfg)
{
WriteParameter(file,"HUDScale ",HudScaleToWriteToCfg);
}
else
{
WriteParameter(file,"HUDScale ",hudRescaleFactor);
}

// Write out MouseAdjustment

SafeWriteString(file,"\n;\n");
Expand Down
258 changes: 92 additions & 166 deletions src/rt_menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -759,52 +759,41 @@ CP_MenuNames VisualOptionsNames[] =
"DISPLAY OPTIONS"
};

CP_MenuNames ScreenResolutions[] =
{
"320x200",
"640x400",
"640x480",
"800x600",
"1024x768",
"1152x864",
"1280x720",
"1280x768",
"1280x800",
"1280x960",
"1280x1024",
//"1366x768",
"1400x1050",
"1440x900",
"1600x900",
"1680x1050",
"1920x1080",
"2560x1080",
"2560x1440",
"3840x2160"
};
CP_itemtype ScreenResolutionMenu[] = {
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
//{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
{1, "", ' ',NULL},
typedef struct
{
int width;
int height;
char *extraMenuText;
int hudScale;
} ValidResolution;

ValidResolution AvailableResolutions[] =
{
{320, 200, NULL, 1},
{640, 400, NULL, 2},
{640, 480, NULL, 2},
{800, 600, NULL, 2},
{1024, 768, NULL, 2},
{1152, 864, NULL, 2},
{1280, 720, NULL, 2},
{1280, 768, NULL, 2},
{1280, 800, NULL, 2},
{1280, 960, NULL, 2},
{1280, 1024, NULL, 2},
{1400, 1050, NULL, 2},
{1440, 900, NULL, 2},
{1600, 900, NULL, 2},
{1680, 1050, NULL, 2},
{1920, 1080, NULL, 2},
{2560, 1080, NULL, 2},
{2560, 1440, NULL, 2},
{3840, 2160, NULL, 2},
};

CP_MenuNames *ScreenResolutions = NULL;

CP_itemtype *ScreenResolutionMenu = NULL;

CP_MenuNames DisplayOptionsNames[] = {
"Fullscreen",
"Bordered Window",
Expand All @@ -817,9 +806,10 @@ CP_itemtype DisplayOptionsItems[] = {
{1, "", 'B', NULL}
};


CP_iteminfo VisualOptionsItems = { 20, MENU_Y, 4, 0, 43, VisualOptionsNames, mn_largefont };

CP_iteminfo ScreenResolutionItems = {NORMALKEY_X, 17, 19, 0, 16, ScreenResolutions, mn_tinyfont};
CP_iteminfo ScreenResolutionItems; // This gets filled in at run time

CP_iteminfo ExtOptionsItems = { 20, MENU_Y, 7, 0, 43, ExtOptionsNames, mn_largefont };

Expand Down Expand Up @@ -4618,6 +4608,7 @@ int CalibrateJoystick
return( status );
}


//******************************************************************************
//
// ADJUST MOUSE SENSITIVITY
Expand Down Expand Up @@ -5299,17 +5290,57 @@ void DoAdjustHudScale (void)

void DrawScreenResolutionMenu(void)
{
int position;
int i;

MenuNum = 1;
SetAlternateMenuBuf();
ClearMenuBuf();
SetMenuTitle ("Screen Resolution");

MN_GetCursorLocation( &ScreenResolutionItems, &ScreenResolutionMenu[ 0 ] );

// First time create the menu from our list of resolutions
if (ScreenResolutions == NULL)
{
int nbrResolutions = sizeof(AvailableResolutions) / sizeof(AvailableResolutions[0]);

ScreenResolutions = malloc(nbrResolutions * sizeof(CP_MenuNames));
ScreenResolutionMenu = malloc(nbrResolutions * sizeof(CP_itemtype));

for (i = 0; i < nbrResolutions; i++)
{
// Create menu resolution labels. They are already 64 byte chars
if(AvailableResolutions[i].extraMenuText)
snprintf(ScreenResolutions[i] , 64, "%dx%d (%s)", AvailableResolutions[i].width, AvailableResolutions[i].height, AvailableResolutions[i].extraMenuText);
else
snprintf(ScreenResolutions[i] , 64, "%dx%d", AvailableResolutions[i].width, AvailableResolutions[i].height);

// Populate items
ScreenResolutionMenu[i] = (CP_itemtype){CP_Active, "", ' ', NULL};
}

// Set item info
ScreenResolutionItems = (CP_iteminfo){NORMALKEY_X, 17, nbrResolutions, 0, 16, ScreenResolutions, mn_tinyfont};
}

// Find the current resolution and select the resolution
position = 0; // Default select first if current resolution isn't in the list
for (i = 0; i < ScreenResolutionItems.amount; i++ )
{
ScreenResolutionMenu[ i ].active = CP_Active;

if ( AvailableResolutions[i].width == iGLOBAL_SCREENWIDTH && AvailableResolutions[i].height == iGLOBAL_SCREENHEIGHT)
{
position = i;
}
}

ScreenResolutionItems.curpos = position;
ScreenResolutionMenu[ position ].active = CP_CursorLocation;

DrawMenu (&ScreenResolutionItems, &ScreenResolutionMenu[0]);

DisplayInfo (0);
FlipMenuBuf();

}

void CP_RestartProgramMessage
Expand All @@ -5326,130 +5357,25 @@ void CP_RestartProgramMessage

extern int ScreenWidthToWriteToCfg;
extern int ScreenHeightToWriteToCfg;
extern int HudScaleToWriteToCfg;
extern boolean writeNewResIntoCfg;

void CP_ScreenResolution(void)
{
int which;

//CP_RestartProgramMessage();


DrawScreenResolutionMenu();

do
which = HandleMenu (&ScreenResolutionItems, &ScreenResolutionMenu[0], NULL);

if (which >= 0)
{
which = HandleMenu (&ScreenResolutionItems, &ScreenResolutionMenu[0], NULL);
switch(which)
{
case 0:
ScreenWidthToWriteToCfg = 320;
ScreenHeightToWriteToCfg = 200;
writeNewResIntoCfg = true;
break;
case 1:
ScreenWidthToWriteToCfg = 640;
ScreenHeightToWriteToCfg = 400;
writeNewResIntoCfg = true;
break;
case 2:
ScreenWidthToWriteToCfg = 640;
ScreenHeightToWriteToCfg = 480;
writeNewResIntoCfg = true;
break;
case 3:
ScreenWidthToWriteToCfg = 800;
ScreenHeightToWriteToCfg = 600;
writeNewResIntoCfg = true;
break;
case 4:
ScreenWidthToWriteToCfg = 1024;
ScreenHeightToWriteToCfg = 768;
writeNewResIntoCfg = true;
break;
case 5:
ScreenWidthToWriteToCfg = 1152;
ScreenHeightToWriteToCfg = 864;
writeNewResIntoCfg = true;
break;
case 6:
ScreenWidthToWriteToCfg = 1280;
ScreenHeightToWriteToCfg = 720;
writeNewResIntoCfg = true;
break;
case 7:
ScreenWidthToWriteToCfg = 1280;
ScreenHeightToWriteToCfg = 768;
writeNewResIntoCfg = true;
break;
case 8:
ScreenWidthToWriteToCfg = 1280;
ScreenHeightToWriteToCfg = 800;
writeNewResIntoCfg = true;
break;
case 9:
ScreenWidthToWriteToCfg = 1280;
ScreenHeightToWriteToCfg = 960;
writeNewResIntoCfg = true;
break;
case 10:
ScreenWidthToWriteToCfg = 1280;
ScreenHeightToWriteToCfg = 1024;
writeNewResIntoCfg = true;
break;
/* buggy af mode
case 11:
ScreenWidthToWriteToCfg = 1366;
ScreenHeightToWriteToCfg = 768;
writeNewResIntoCfg = true;
break;
*/
case 11:
ScreenWidthToWriteToCfg = 1400;
ScreenHeightToWriteToCfg = 1050;
writeNewResIntoCfg = true;
break;
case 12:
ScreenWidthToWriteToCfg = 1440;
ScreenHeightToWriteToCfg = 900;
writeNewResIntoCfg = true;
break;
case 13:
ScreenWidthToWriteToCfg = 1600;
ScreenHeightToWriteToCfg = 900;
writeNewResIntoCfg = true;
break;
case 14:
ScreenWidthToWriteToCfg = 1680;
ScreenHeightToWriteToCfg = 1050;
writeNewResIntoCfg = true;
break;
case 15:
ScreenWidthToWriteToCfg = 1920;
ScreenHeightToWriteToCfg = 1080;
writeNewResIntoCfg = true;
break;
case 16:
ScreenWidthToWriteToCfg = 2560;
ScreenHeightToWriteToCfg = 1080;
writeNewResIntoCfg = true;
break;
case 17:
ScreenWidthToWriteToCfg = 2560;
ScreenHeightToWriteToCfg = 1440;
writeNewResIntoCfg = true;
break;
case 18:
ScreenWidthToWriteToCfg = 3840;
ScreenHeightToWriteToCfg = 2160;
writeNewResIntoCfg = true;
break;
default:
break;
}


} while (which >= 0);

ScreenWidthToWriteToCfg = AvailableResolutions[which].width;
ScreenHeightToWriteToCfg = AvailableResolutions[which].height;
HudScaleToWriteToCfg = AvailableResolutions[which].hudScale;
writeNewResIntoCfg = true;
}

if (writeNewResIntoCfg)
CP_RestartProgramMessage();

Expand Down Expand Up @@ -6350,6 +6276,7 @@ void MN_PlayMenuSnd (int which)
SD_Play (which);
}


//******************************************************************************
//
// SliderMenu ()
Expand Down Expand Up @@ -6421,8 +6348,6 @@ boolean SliderMenu
timer = GetTicCount();
lastdir = dir_None;



do
{
RefreshMenuBuf( 0 );
Expand Down Expand Up @@ -6513,6 +6438,7 @@ boolean SliderMenu
return( returnval );
}


//******************************************************************************
//
// DrawF1Help ()
Expand Down

0 comments on commit 407e3d8

Please sign in to comment.