Re-add "tight" hud scaling, for those who play at odd resolutions (e.g.: the dragon).

This commit is contained in:
Mari the Deer 2023-11-07 14:48:33 +01:00
commit 7b6c0df00b
7 changed files with 22 additions and 12 deletions

View file

@ -1003,15 +1003,16 @@ Class OptionMenuItemScaleSliderFix : OptionMenuItemScaleSlider
}
}
// allows only positive numeric values, 0 optionally gets a special label in parentheses
// allows only positive integer values, plus zero and minus-one if optionally hinted
Class OptionMenuItemSWWMScaleField : OptionMenuItemTextField
{
String mZeroHint;
String mZeroHint, mNegOneHint;
OptionMenuItemSWWMScaleField Init( String label, Name command, String zerohint = "" )
OptionMenuItemSWWMScaleField Init( String label, Name command, String zerohint = "", String negonehint = "" )
{
Super.Init(label,command);
mZeroHint = zerohint;
mNegOneHint = negonehint;
return self;
}
@ -1023,6 +1024,8 @@ Class OptionMenuItemSWWMScaleField : OptionMenuItemTextField
int val = mCVar?mCVar.GetInt():0;
if ( (val == 0) && (mZeroHint != "") )
str.AppendFormat(" (%s)",StringTable.Localize(mZeroHint));
else if ( (val == -1) && (mNegOneHint != "") )
str.AppendFormat(" (%s)",StringTable.Localize(mNegOneHint));
return true, str;
}
return false,"";
@ -1039,7 +1042,8 @@ Class OptionMenuItemSWWMScaleField : OptionMenuItemTextField
if ( mkey == Menu.MKEY_Left )
{
int val = mCVar?mCVar.GetInt():0;
val = max(0,val-1);
int cap = (mNegOneHint!="")?-1:(mZeroHint!="")?0:1;
val = max(cap,val-1);
if ( mCVar ) mCVar.SetInt(val);
Menu.MenuSound("menu/change");
return true;
@ -1058,7 +1062,8 @@ Class OptionMenuItemSWWMScaleField : OptionMenuItemTextField
{
if ( i == 0 )
{
int numval = max(s.ToInt(),0);
int cap = (mNegOneHint!="")?-1:(mZeroHint!="")?0:1;
int numval = max(cap,s.ToInt());
if ( mCVar ) mCVar.SetInt(numval);
return true;
}