flak_m/zscript/utmenu.zsc
Marisa Kirisame a3449b5c5b This branch is a staging area for changes that will make it to devel once they are fully implemented.
Everything in here is highly unstable and may not work.
Current commit contains various new features for the HUD, some cleanup, and additional changes for compatibility with Doomreal as it is developed.
The diff is kinda fucky on the font restructure due to flaky rename detection.
2019-08-31 03:12:46 +02:00

86 lines
2.8 KiB
Text

// for hud config
Class OptionMenuItemUTHudPreview : OptionMenuItem
{
TextureID tex[2];
CVar mColorP, mColorC, mOpacity, mPTeam, mPColor;
OptionMenuItemUTHudPreview Init( String label )
{
Super.Init(label,"",true);
mColorP = CVar.FindCVar("flak_colorprefs");
mColorC = CVar.FindCVar("flak_colorcustom");
mOpacity = CVar.FindCVar("flak_opacity");
mPTeam = CVar.FindCVar("team");
mPColor = CVar.FindCVar("color");
tex[0] = TexMan.CheckForTexture("graphics/HudPreviewBG.png",TexMan.Type_Any);
tex[1] = TexMan.CheckForTexture("graphics/HudPreview.png",TexMan.Type_Any);
return self;
}
override bool Selectable()
{
return false;
}
override int Draw( OptionMenuDescriptor desc, int y, int indent, bool selected )
{
int xpos = indent + CursorSpace();
int ypos = y+OptionMenuSettings.mLinespacing*CleanYfac_1;
Screen.DrawFrame(xpos,ypos,64*CleanXFac_1,64*CleanYFac_1);
Screen.DrawTexture(tex[0],false,xpos,ypos,DTA_CleanNoMove_1,true);
Color tintcolor = Color("White");
switch ( mColorP.GetInt() )
{
case 0:
int t = mPTeam.GetInt();
if ( t < Teams.Size() )
tintcolor = Color(Teams[t].mName);
break;
case 1:
tintcolor = Color(mPColor.GetString());
break;
case 2:
tintcolor = Color(mColorC.GetString());
break;
}
int opacity = mOpacity.GetInt();
if ( opacity >= 16 ) Screen.DrawTexture(tex[1],false,xpos,ypos,DTA_CleanNoMove_1,true,DTA_FillColor,Color("Black"));
double alpha = clamp(opacity/15.,0.,1.);
Screen.DrawTexture(tex[1],false,xpos,ypos,DTA_CleanNoMove_1,true,DTA_FillColor,tintcolor,DTA_Alpha,alpha,DTA_LegacyRenderStyle,STYLE_AddShaded);
return -1;
}
}
// changes to Tahoma
Class UTMessageBox : MessageBoxMenu
{
override void Init( Menu parent, String message, int messagemode, bool playsound, Name cmd, voidptr native_handler )
{
Super.Init(parent,message,messagemode,playsound,cmd,native_handler);
Font NFont = Font.GetFont('Tahoma10');
if ( !generic_ui )
{
if ( NFont && NFont.CanPrint(message) && NFont.CanPrint("$TXT_YES") && NFont.CanPrint("$TXT_NO") ) textFont = NFont;
else if ( OriginalSmallFont && OriginalSmallFont.CanPrint(message) && OriginalSmallFont.CanPrint("$TXT_YES") && OriginalSmallFont.CanPrint("$TXT_NO") ) textFont = OriginalSmallFont;
}
if ( !textFont )
{
arrowFont = textFont = NewSmallFont;
int factor = (CleanXfac+1)/2;
destWidth = screen.GetWidth()/factor;
destHeight = screen.GetHeight()/factor;
selector = "▶";
}
else
{
arrowFont = ConFont;
destWidth = CleanWidth;
destHeight = CleanHeight;
selector = "\xd";
}
int mr1 = destWidth/2+10+textFont.StringWidth(Stringtable.Localize("$TXT_YES"));
int mr2 = destWidth/2+10+textFont.StringWidth(Stringtable.Localize("$TXT_NO"));
mMouseRight = MAX(mr1,mr2);
mMessage = textFont.BreakLines(Stringtable.Localize(message),generic_ui?600:300);
}
}