Allow manually setting HUD scales (with disregard for potential overlaps).

This commit is contained in:
Mari the Deer 2023-08-21 11:17:43 +02:00
commit b8385fc480
9 changed files with 173 additions and 21 deletions

View file

@ -984,6 +984,53 @@ Class OptionMenuItemScaleSliderFix : OptionMenuItemScaleSlider
}
}
// allows only positive numeric values, 0 optionally gets a special label in parentheses
Class OptionMenuItemSWWMScaleField : OptionMenuItemTextField
{
String mZeroHint;
OptionMenuItemSWWMScaleField Init( String label, Name command, String zerohint = "" )
{
Super.Init(label,command);
mZeroHint = zerohint;
return self;
}
override bool, String GetString( int i )
{
if ( i == 0 )
{
String str = mCVar?mCVar.GetString():"";
int val = mCVar?mCVar.GetInt():0;
if ( (val == 0) && (mZeroHint != "") )
str.AppendFormat(" (%s)",StringTable.Localize(mZeroHint));
return true, str;
}
return false,"";
}
override bool MenuEvent (int mkey, bool fromcontroller)
{
if ( mkey == Menu.MKEY_Enter )
{
Menu.MenuSound("menu/choose");
mEnter = TextEnterMenu.OpenTextEnter(Menu.GetCurrentMenu(),Menu.OptionFont(),"",-1,fromcontroller);
mEnter.ActivateMenu();
return true;
}
return Super.MenuEvent(mkey,fromcontroller);
}
override bool SetString( int i, String s )
{
if ( i == 0 )
{
int numval = max(s.ToInt(),0);
if ( mCVar ) mCVar.SetInt(numval);
return true;
}
return false;
}
}
// draw captions using our own font
Class SWWMMenuDelegate : DoomMenuDelegate
{