Add Tewi/Miniwi variants with centered gradient, to match MiniHUD font.

This commit is contained in:
Mari the Deer 2024-01-03 14:34:45 +01:00
commit 82c4462edf
5233 changed files with 66 additions and 22 deletions

View file

@ -90,7 +90,7 @@ Class SWWMStatusBar : BaseStatusBar
HealthTex[9], FuelTex[2], DashTex, EnemyBTex, EnemyHTex[7],
GenericAmmoTex[3], AmmoTex[3], MiniBox[2], bgtex, FaceTex[19];
Font mSmallFont, mSmallFontOutline, mTinyFont, mTinyFontOutline, MiniHUDFont, MiniHUDFontOutline;
Font mSmallFont, mSmallFontOutline, mSmallFontOutlineAlt, mTinyFont, mTinyFontOutline, mTinyFontOutlineAlt, MiniHUDFont, MiniHUDFontOutline;
int mhudfontcol[NUM_MINIHUD_COLOR];
Array<MsgLine> MainQueue, PickupQueue;
@ -316,8 +316,10 @@ Class SWWMStatusBar : BaseStatusBar
// other expressions will be added when needed
mSmallFont = Font.GetFont('TewiFont');
mSmallFontOutline = Font.GetFont('TewiFontOutline');
mSmallFontOutlineAlt = Font.GetFont('TewiFontOutlineAlt');
mTinyFont = Font.GetFont('MiniwiFont');
mTinyFontOutline = Font.GetFont('MiniwiFontOutline');
mTinyFontOutlineAlt = Font.GetFont('MiniwiFontOutlineAlt');
MiniHudFont = Font.GetFont("MiniHUDShadow");
MiniHudFontOutline = Font.GetFont("MiniHUDOutline");
mhudfontcol[MCR_DEMOHUD] = Font.FindFontColor("MiniDemoHUD");

View file

@ -60,9 +60,9 @@ extend Class SWWMStatusBar
else tag = String.Format("\cy%s\c-",StringTable.Localize("$SWWM_NEXIT"));
}
}
Screen.DrawText(mTinyFontOutline,Font.CR_WHITE,vpos.x-mTinyFontOutline.StringWidth(tag)/2.,vpos.y-mTinyFontOutline.GetHeight()/2.,tag,DTA_VirtualWidthF,ss2.x,DTA_VirtualHeightF,ss2.y,DTA_KeepRatio,true);
Screen.DrawText(mTinyFontOutlineAlt,Font.CR_WHITE,vpos.x-mTinyFontOutlineAlt.StringWidth(tag)/2.,vpos.y-mTinyFontOutlineAlt.GetHeight()/2.,tag,DTA_VirtualWidthF,ss2.x,DTA_VirtualHeightF,ss2.y,DTA_KeepRatio,true);
tag = String.Format("\cu(%s\cu)\c-",FormatDist(tdir.length()));
Screen.DrawText(mTinyFontOutline,Font.CR_WHITE,vpos.x-mTinyFontOutline.StringWidth(tag)/2.,vpos.y+mTinyFontOutline.GetHeight()/2.,tag,DTA_VirtualWidthF,ss2.x,DTA_VirtualHeightF,ss2.y,DTA_KeepRatio,true);
Screen.DrawText(mTinyFontOutlineAlt,Font.CR_WHITE,vpos.x-mTinyFontOutlineAlt.StringWidth(tag)/2.,vpos.y+mTinyFontOutlineAlt.GetHeight()/2.,tag,DTA_VirtualWidthF,ss2.x,DTA_VirtualHeightF,ss2.y,DTA_KeepRatio,true);
}
while ( poi = poi.next );
}
@ -102,13 +102,13 @@ extend Class SWWMStatusBar
double alph = clamp(((s.updated+mtime)-(level.maptime+fractic))/double(GameTicRate),0.,1.);
alph *= clamp(1.5-1.5*(tdir.length()/(level.allmap?1200.:800.)),0.,1.);
String tag = s.tag;
Screen.DrawText(mTinyFontOutline,GetItemFontColor(s),vpos.x-mTinyFontOutline.StringWidth(tag)/2.,vpos.y-mTinyFontOutline.GetHeight()/2.,tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
Screen.DrawText(mTinyFontOutlineAlt,GetItemFontColor(s),vpos.x-mTinyFontOutlineAlt.StringWidth(tag)/2.,vpos.y-mTinyFontOutlineAlt.GetHeight()/2.,tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
tag = String.Format("\cu(%s\cu)\c-",FormatDist(tdir.length()));
Screen.DrawText(mTinyFontOutline,Font.CR_WHITE,vpos.x-mTinyFontOutline.StringWidth(tag)/2.,vpos.y+mTinyFontOutline.GetHeight()/2.,tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
Screen.DrawText(mTinyFontOutlineAlt,Font.CR_WHITE,vpos.x-mTinyFontOutlineAlt.StringWidth(tag)/2.,vpos.y+mTinyFontOutlineAlt.GetHeight()/2.,tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
if ( s.item is 'SWWMRespawnTimer' )
{
tag = String.Format(StringTable.Localize("$SWWM_TRESPAWN"),s.item.special2/GameTicRate);
Screen.DrawText(mTinyFontOutline,Font.CR_WHITE,vpos.x-mTinyFontOutline.StringWidth(tag)/2.,vpos.y+mTinyFontOutline.GetHeight()*2,tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
Screen.DrawText(mTinyFontOutlineAlt,Font.CR_WHITE,vpos.x-mTinyFontOutlineAlt.StringWidth(tag)/2.,vpos.y+mTinyFontOutlineAlt.GetHeight()*2,tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
}
}
while ( s = s.next );
@ -190,7 +190,7 @@ extend Class SWWMStatusBar
}
if ( swwm_targettags && (ct.mytag != "") )
{
Font fnt = swwm_bigtags?mSmallFontOutline:mTinyFontOutline;
Font fnt = swwm_bigtags?mSmallFontOutlineAlt:mTinyFontOutlineAlt;
String tag = ct.mytag;
if ( IsLegendary(ct.Owner) )
{
@ -268,7 +268,7 @@ extend Class SWWMStatusBar
col = mhudfontcol[MCR_WHITE];
Screen.DrawText(MiniHUDFontOutline,col,vpos.x-(valw/2),barpos.y-(MiniHUDFontOutline.GetHeight()+2),val,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
}
Font fnt = swwm_bigtags?mSmallFontOutline:mTinyFontOutline;
Font fnt = swwm_bigtags?mSmallFontOutlineAlt:mTinyFontOutlineAlt;
int col = Font.CR_WHITE;
if ( teamplay )
{
@ -375,16 +375,16 @@ extend Class SWWMStatusBar
double alph = clamp((snum.lifespan+fractic)/double(GameTicRate),0.,1.);
// score rises linearly
Vector2 fo = (0,snum.initialspan-(snum.lifespan-fractic));
Screen.DrawText(mTinyFontOutline,snum.tcolor,vpos.x-(fo.x+mTinyFontOutline.StringWidth(tag)/2.),vpos.y-(fo.y+(mTinyFontOutline.GetHeight()/2.)),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
Screen.DrawText(mTinyFontOutlineAlt,snum.tcolor,vpos.x-(fo.x+mTinyFontOutlineAlt.StringWidth(tag)/2.),vpos.y-(fo.y+(mTinyFontOutlineAlt.GetHeight()/2.)),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
// extra strings (if available)
fo.y += mTinyFontOutline.GetHeight();
fo.y += mTinyFontOutlineAlt.GetHeight();
for ( int i=0; i<snum.xstr.Size(); i++ )
{
tag = snum.xstr[i];
if ( snum.xscore[i] == int.max ) tag.AppendFormat(" MAX");
else if ( snum.xscore[i] > 0 ) tag.AppendFormat(" x%d",snum.xscore[i]);
Screen.DrawText(mTinyFontOutline,snum.xtcolor[i],vpos.x-(fo.x+mTinyFontOutline.StringWidth(tag)/2.),vpos.y-(fo.y+(mTinyFontOutline.GetHeight()/2.)),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
fo.y += mTinyFontOutline.GetHeight();
Screen.DrawText(mTinyFontOutlineAlt,snum.xtcolor[i],vpos.x-(fo.x+mTinyFontOutlineAlt.StringWidth(tag)/2.),vpos.y-(fo.y+(mTinyFontOutlineAlt.GetHeight()/2.)),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
fo.y += mTinyFontOutlineAlt.GetHeight();
}
}
while ( snum = snum.next );

View file

@ -875,14 +875,14 @@ extend Class SWWMStatusBar
// also, use a cache so we don't call BreakLines constantly
if ( ln_bl && (ln != cached_ln) ) ln_bl.Destroy();
cached_ln = ln;
if ( !ln_bl ) ln_bl = mSmallFontOutline.BreakLines(ln,120);
if ( !ln_bl ) ln_bl = mSmallFontOutlineAlt.BreakLines(ln,120);
if ( !label || ((level.clusterflags&level.CLUSTER_HUB) && (label == 2)) )
{
Screen.DrawText(mSmallFontOutline,tcvalue,xx-ln_bl.StringWidth(0),yy,ln_bl.StringAt(0),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
Screen.DrawText(mSmallFontOutlineAlt,tcvalue,xx-ln_bl.StringWidth(0),yy,ln_bl.StringAt(0),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
for ( int i=1; i<ln_bl.Count(); i++ )
{
yy += mSmallFontOutline.GetHeight();
Screen.DrawText(mSmallFontOutline,tcvalue,xx-ln_bl.StringWidth(i),yy,ln_bl.StringAt(i),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
yy += mSmallFontOutlineAlt.GetHeight();
Screen.DrawText(mSmallFontOutlineAlt,tcvalue,xx-ln_bl.StringWidth(i),yy,ln_bl.StringAt(i),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
}
}
else
@ -891,14 +891,14 @@ extend Class SWWMStatusBar
int labelw = MiniHUDFontOutline.StringWidth(str);
int namew = ln_bl.StringWidth(0);
Screen.DrawText(MiniHUDFontOutline,tclabel,xx-(labelw+namew),yy+4,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
Screen.DrawText(mSmallFontOutline,tcvalue,xx-namew,yy,ln_bl.StringAt(0),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
Screen.DrawText(mSmallFontOutlineAlt,tcvalue,xx-namew,yy,ln_bl.StringAt(0),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
for ( int i=1; i<ln_bl.Count(); i++ )
{
yy += mSmallFontOutline.GetHeight();
Screen.DrawText(mSmallFontOutline,tcvalue,xx-ln_bl.StringWidth(i),yy,ln_bl.StringAt(i),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
yy += mSmallFontOutlineAlt.GetHeight();
Screen.DrawText(mSmallFontOutlineAlt,tcvalue,xx-ln_bl.StringWidth(i),yy,ln_bl.StringAt(i),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
}
}
yy += mSmallFontOutline.GetHeight()+4;
yy += mSmallFontOutlineAlt.GetHeight()+4;
}
if ( (level.total_monsters > 0) && am_showmonsters && !deathmatch )
{