More detailed item sense colors.

This commit is contained in:
Mari the Deer 2022-08-26 17:50:37 +02:00
commit 76b667ccab
2 changed files with 20 additions and 3 deletions

View file

@ -1383,6 +1383,23 @@ Class SWWMStatusBar : BaseStatusBar
while ( poi = poi.next );
}
private int GetItemFontColor( SWWMitemSense s )
{
let col = s.scoreitem?Font.CR_YELLOW:Font.CR_WHITE;
let i = (s.item is 'SWWMRespawnTimer')?s.item.tracer:s.item;
if ( i is 'Weapon' ) col = s.vipitem?Font.FindFontColor('VIPGold'):Font.CR_GOLD;
else if ( i is 'MagAmmo' ) col = s.vipitem?Font.FindFontColor('VIPTan'):Font.CR_TAN;
else if ( (i is 'BackpackItem') || (i is 'HammerspaceEmbiggener') ) col = Font.CR_DARKBROWN;
else if ( i is 'Ammo' ) col = s.vipitem?Font.FindFontColor('VIPBrown'):Font.CR_BROWN;
else if ( (i is 'PowerupGiver') || (i is 'AmmoFabricator') || Inventory(i).bBIGPOWERUP ) col = s.vipitem?Font.FindFontColor('VIPPurple'):Font.CR_PURPLE;
else if ( (i is 'Health') || (i is 'HealthPickup') || (i is 'SWWMHealth') ) col = Font.CR_RED;
else if ( (i is 'Armor') || (i is 'SWWMSpareArmor') ) col = Font.CR_GREEN;
else if ( i is 'PuzzleItem' ) col = Font.CR_LIGHTBLUE;
else if ( i is 'Key' ) col = Font.CR_UNTRANSLATED;
else if ( i is 'SWWMCollectible' ) col = Font.CR_PURPLE;
return col;
}
private void DrawItemSense( Vector3 viewvec, out bool projinit )
{
let demo = Demolitionist(CPlayer.mo);
@ -1401,7 +1418,7 @@ Class SWWMStatusBar : BaseStatusBar
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,s.vipitem?Font.CR_PURPLE:s.scoreitem?Font.CR_GOLD:Font.CR_GREEN,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(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);
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);
if ( s.item is 'SWWMRespawnTimer' )