101 lines
3.4 KiB
Ucode
101 lines
3.4 KiB
Ucode
class ScrnPerkSelectList extends SRPerkSelectList;
|
|
|
|
var float ProgressBarBottomOffset;
|
|
|
|
|
|
function float PerkHeight(Canvas c)
|
|
{
|
|
return (MenuOwner.ActualHeight() / ItemsPerPage ) - 1.0;
|
|
}
|
|
|
|
|
|
function DrawPerk(Canvas Canvas, int CurIndex, float X, float Y, float Width, float Height, bool bSelected, bool bPending)
|
|
{
|
|
local float TempX, TempY;
|
|
local float IconSize, ProgressBarWidth;
|
|
local float TempWidth, TempHeight;
|
|
local ClientPerkRepLink ST;
|
|
local Material M,SM;
|
|
|
|
ST = Class'ScrnClientPerkRepLink'.Static.FindMe(Canvas.Viewport.Actor);
|
|
if( ST==None )
|
|
return;
|
|
|
|
// Offset for the Background
|
|
TempX = X;
|
|
TempY = Y + ItemSpacing / 2.0;
|
|
TempHeight = Height - ItemSpacing;
|
|
|
|
// Initialize the Canvas
|
|
Canvas.Style = 1;
|
|
Canvas.Font = class'ROHUD'.Static.GetSmallMenuFont(Canvas);
|
|
Canvas.SetDrawColor(255, 255, 255, 255);
|
|
|
|
// Draw Item Background
|
|
Canvas.SetPos(TempX, TempY);
|
|
if ( bSelected )
|
|
{
|
|
Canvas.DrawTileStretched(SelectedPerkBackground, IconSize, IconSize);
|
|
Canvas.SetPos(TempX + IconSize - 1.0, TempY);
|
|
Canvas.DrawTileStretched(SelectedInfoBackground, Width - IconSize, TempHeight);
|
|
}
|
|
else
|
|
{
|
|
Canvas.DrawTileStretched(PerkBackground, IconSize, IconSize);
|
|
Canvas.SetPos(TempX + IconSize - 1.0, TempY);
|
|
Canvas.DrawTileStretched(InfoBackground, Width - IconSize, TempHeight);
|
|
}
|
|
|
|
// Offset and Calculate Icon's Size
|
|
TempX += ItemBorder * Height;
|
|
TempY += ItemBorder * Height;
|
|
IconSize = TempHeight - (ItemBorder * 2.0 * Height);
|
|
|
|
// Draw Icon
|
|
Canvas.SetPos(TempX, TempY);
|
|
ST.CachePerks[CurIndex].PerkClass.Static.PreDrawPerk(Canvas,Max(ST.CachePerks[CurIndex].CurrentLevel,1)-1,M,SM);
|
|
Canvas.DrawTile(M, IconSize, IconSize, 0, 0, M.MaterialUSize(), M.MaterialVSize());
|
|
|
|
TempX += IconSize + (IconToInfoSpacing * Width);
|
|
TempY += TextTopOffset * Height;
|
|
|
|
ProgressBarWidth = Width - (TempX - X) - (IconToInfoSpacing * Width);
|
|
|
|
// Select Text Color
|
|
if ( CurIndex == MouseOverIndex )
|
|
Canvas.SetDrawColor(255, 0, 0, 255);
|
|
else Canvas.SetDrawColor(255, 255, 255, 255);
|
|
|
|
// Draw the Perk's Level Name
|
|
Canvas.StrLen(PerkName[CurIndex], TempWidth, TempHeight);
|
|
Canvas.SetPos(TempX, TempY);
|
|
Canvas.DrawText(PerkName[CurIndex]);
|
|
|
|
// Draw the Perk's Level
|
|
if ( PerkLevelString[CurIndex] != "" )
|
|
{
|
|
Canvas.StrLen(PerkLevelString[CurIndex], TempWidth, TempHeight);
|
|
Canvas.SetPos(TempX + ProgressBarWidth - TempWidth, TempY);
|
|
Canvas.DrawText(PerkLevelString[CurIndex]);
|
|
}
|
|
|
|
TempY += TempHeight + (0.01 * Height);
|
|
|
|
// Draw Progress Bar
|
|
TempHeight = fmin(ProgressBarHeight*Height, Y + Height - ItemSpacing/2.0 - Height*(ItemBorder+ProgressBarBottomOffset) - TempY);
|
|
TempY = Y + Height - ItemSpacing/2.0 - Height*(ItemBorder+ProgressBarBottomOffset) - TempHeight;
|
|
Canvas.SetDrawColor(255, 255, 255, 255);
|
|
Canvas.SetPos(TempX, TempY);
|
|
Canvas.DrawTileStretched(ProgressBarBackground, ProgressBarWidth, TempHeight);
|
|
Canvas.SetPos(TempX, TempY);
|
|
Canvas.DrawTileStretched(ProgressBarForeground, ProgressBarWidth * PerkProgress[CurIndex], TempHeight);
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
ProgressBarBottomOffset=0.100000
|
|
ItemBorder=0.020000
|
|
ItemSpacing=8.000000
|
|
ItemsPerPage=8
|
|
}
|