rott/kf_sources/GUI2K4/Classes/UT2K4ServerLoading.uc
2026-07-14 20:27:09 +07:00

169 lines
3.3 KiB
Ucode

//==============================================================================
// Loading screen that appears while you are waiting join a server
//
// Created by Ron Prestenback
// © 2003, Epic Games, Inc. All Rights Reserved
//==============================================================================
class UT2K4ServerLoading extends UT2K4LoadingPageBase
config(User);
var() config array<string> Backgrounds;
simulated event Init()
{
Super.Init();
SetImage();
SetText();
}
simulated function SetImage()
{
local int i, cnt;
local string str;
local material mat;
mat = Material'MenuBlack';
DrawOpImage(Operations[0]).Image = mat;
if ( Backgrounds.Length == 0 )
{
Warn("No background images configured for"@Name);
return;
}
do
{
i = Rand(Backgrounds.Length);
str = Backgrounds[i];
if ( str == "" )
Warn("Invalid value for "$Name$".Backgrounds["$i$"]");
else mat = DLOTexture(str);
}
until (mat != None || ++cnt >= 10);
if ( mat == None )
Warn("Unable to find any valid images for vignette class"@name$"!");
DrawOpImage(Operations[0]).Image = mat;
}
simulated function string StripMap(string s)
{
local int p;
p = len(s);
while (p>0)
{
if ( mid(s,p,1) == "." )
{
s = left(s,p);
break;
}
else
p--;
}
p = len(s);
while (p>0)
{
if ( mid(s,p,1) == "\\" || mid(s,p,1) == "/" || mid(s,p,1) == ":" )
return Right(s,len(s)-p-1);
else
p--;
}
return s;
}
simulated function SetText()
{
local GUIController GC;
local DrawOpText HintOp;
local string Hint;
GC = GUIController(Level.GetLocalPlayerController().Player.GUIController);
if (GC!=none)
{
GC.LCDCls();
GC.LCDDrawTile(GC.LCDLogo,0,0,64,43,0,0,64,43);
GC.LCDDrawText("Loading...",55,10,GC.LCDMedFont);
GC.LCDDrawText(StripMap(MapName),55,26,GC.LCDTinyFont);
GC.LCDRePaint();
}
DrawOpText(Operations[2]).Text = StripMap(MapName);
if (Level.IsSoftwareRendering())
return;
HintOp = DrawOpText(Operations[3]);
if ( HintOp == None )
return;
if ( GameClass == None )
{
Warn("Invalid game class, so cannot draw loading hint!");
return;
}
Hint = GameClass.static.GetLoadingHint(Level.GetLocalPlayerController(), MapName, HintOp.DrawColor);
if ( Hint == "" )
{
log("No loading hint configured for "@GameClass.Name);
return;
}
HintOp.Text = Hint;
}
DefaultProperties
{
Begin Object Class=DrawOpImage Name=OpBackground
Top=0
Lft=0
Width=1.0
Height=1.0
DrawColor=(R=255,B=255,G=255,A=255)
SubXL=1024
SubYL=768
End Object
Operations(0)=OpBackground
Begin Object Class=DrawOpText Name=OpLoading
Top=0.48
Lft=0.5
Height=0.05
Width=0.49
Justification=2
Text=". . . LOADING"
FontName="XInterface.UT2LargeFont"
bWrapText=False
End Object
Operations(1)=OpLoading
Begin Object Class=DrawOpText Name=OpMapname
Top=0.6
Lft=0.5
Height=0.05
Width=0.49
Justification=2
FontName="XInterface.UT2LargeFont"
bWrapText=False
End Object
Operations(2)=OpMapname
Begin Object Class=DrawOpText Name=OpHint
Top=0.8
Height=0.2
Lft=0.05
Width=0.93
Justification=2
FontName="GUI2K4.fntUT2k4SmallHeader"
End Object
Operations(3)=OpHint
}