Code:
class GlitchHUD extends UTHUD;
function DrawBar(String Title, float Value, float MaxValue,int X, int Y, int R, int G, int B)
{
local int PosX,NbCases,i;
PosX = X; // Where we should draw the next rectangle
NbCases = 8 * Value / MaxValue; // Number of active rectangles to draw
i=0; // Number of rectangles already drawn
/* Displays active rectangles */
while(i < NbCases && i < 8)
{
Canvas.SetPos(PosX,Y);
Canvas.SetDrawColor(R,G,B,200);
Canvas.DrawRect(16,12);
PosX += 18;
i++;
}
/* Displays deactived rectangles */
while(i < 8)
{
Canvas.SetPos(PosX,Y);
Canvas.SetDrawColor(255,255,255,80);
Canvas.DrawRect(16,12);
PosX += 18;
i++;
}
/* Displays a title */
Canvas.SetPos(PosX + 4,Y);
Canvas.SetDrawColor(R,G,B,200);
Canvas.Font = class'Engine'.static.GetSmallFont();
Canvas.DrawText(Title);
}
function DrawGameHud()
{
if ( !PlayerOwner.IsDead() && !UTPlayerOwner.IsInState('Spectating'))
{
DrawBar("LIFE",PlayerOwner.Pawn.Health, PlayerOwner.Pawn.HealthMax,20,20,200,80,80);
DrawBar("SHOTGUN AMMO",UTWeapon(PawnOwner.Weapon).AmmoCount, UTWeapon(PawnOwner.Weapon).MaxAmmoCount ,20,40,80,80,200); }
}
function DisplayLocalMessages()
{
if (!PlayerOwner.bCinematicMode)
{
MaxHUDAreaMessageCount = bIsSplitScreen ? 1 : 2;
Super.DisplayLocalMessages();
}
}
function DisplayConsoleMessages()
{
local int Idx, XPos, YPos;
local float XL, YL;
if (ConsoleMessages.Length == 0 || PlayerOwner.bCinematicMode)
{
return;
}
for (Idx = 0; Idx < ConsoleMessages.Length; Idx++)
{
if ( ConsoleMessages[Idx].Text == "" || ConsoleMessages[Idx].MessageLife < WorldInfo.TimeSeconds )
{
ConsoleMessages.Remove(Idx--,1);
}
}
ConsoleMessagePosX = bDisplayingPowerups ? 0.1 : 0.0;
XPos = (ConsoleMessagePosX * HudCanvasScale * Canvas.SizeX) + (((1.0 - HudCanvasScale) / 2.0) * Canvas.SizeX);
YPos = (ConsoleMessagePosY * HudCanvasScale * Canvas.SizeY) + (((1.0 - HudCanvasScale) / 2.0) * Canvas.SizeY);
Canvas.Font = GetFontSizeIndex(0);
Canvas.TextSize ("A", XL, YL);
YPos -= YL * ConsoleMessages.Length; // DP_LowerLeft
YPos -= YL; // Room for typing prompt
for (Idx = 0; Idx < ConsoleMessages.Length; Idx++)
{
if (ConsoleMessages[Idx].Text == "")
{
continue;
}
Canvas.StrLen( ConsoleMessages[Idx].Text, XL, YL );
Canvas.SetPos( XPos, YPos );
Canvas.DrawColor = ConsoleMessages[Idx].TextColor;
Canvas.DrawText( ConsoleMessages[Idx].Text, false );
YPos += YL;
}
}
defaultproperties
{
MessageOffset(0)=0.15
MessageOffset(1)=0.242
MessageOffset(2)=0.36
MessageOffset(3)=0.58
MessageOffset(4)=0.78
MessageOffset(5)=0.83
MessageOffset(6)=2.0
TextRenderInfo=(bClipText=true)
}
Thanks
Bookmarks