223 lines
4.8 KiB
Ucode
223 lines
4.8 KiB
Ucode
class Browser_MOTD extends Browser_Page;
|
|
|
|
var MasterServerClient MSC;
|
|
var String MOTD;
|
|
var GUIScrollTextBox MOTDTextBox;
|
|
var GUIButton UpgradeButton;
|
|
var bool MustUpgrade;
|
|
var bool GotMOTD;
|
|
var GUITitleBar StatusBar;
|
|
|
|
var float ReReadyPause;
|
|
|
|
var localized string VersionString;
|
|
|
|
event Timer()
|
|
{
|
|
StatusBar.SetCaption(ReadyString);
|
|
}
|
|
|
|
function InitComponent(GUIController MyController, GUIComponent MyOwner)
|
|
{
|
|
Super.InitComponent(MyController, MyOwner);
|
|
|
|
StatusBar = GUITitleBar(GUIPanel(Controls[1]).Controls[3]);
|
|
StatusBar.SetCaption(ReadyString);
|
|
|
|
MSC = PlayerOwner().Level.Spawn( class'MasterServerClient' );
|
|
MSC.OnReceivedMOTDData = MyReceivedMOTDData;
|
|
MSC.OnQueryFinished = MyQueryFinished;
|
|
|
|
MOTDTextBox = GUIScrollTextBox(Controls[0]);
|
|
GUIButton(GUIPanel(Controls[1]).Controls[0]).OnClick=BackClick;
|
|
GUIButton(GUIPanel(Controls[1]).Controls[1]).OnClick=RefreshClick;
|
|
UpgradeButton = GUIButton(GUIPanel(Controls[1]).Controls[2]);
|
|
UpgradeButton.OnClick=UpgradeClick;
|
|
|
|
if( !GotMOTD )
|
|
{
|
|
UpgradeButton.bVisible = false;
|
|
MustUpgrade = false;
|
|
MSC.StartQuery(CTM_GetMOTD);
|
|
|
|
StatusBar.SetCaption(StartQueryString);
|
|
SetTimer(0, false); // Stop it going back to ready from a previous timer!
|
|
}
|
|
Controls[2].bBoundToParent=false;
|
|
// if _RO_
|
|
GUILabel(Controls[2]).Caption = "Killing Floor"@VersionString@PlayerOwner().Level.ROVersion;
|
|
//else
|
|
//GUILabel(Controls[2]).Caption = "UT2004"@VersionString@PlayerOwner().Level.EngineVersion;
|
|
}
|
|
|
|
function MyReceivedMOTDData( MasterServerClient.EMOTDResponse Command, string Data )
|
|
{
|
|
switch( Command )
|
|
{
|
|
case MR_MOTD:
|
|
GotMOTD = true;
|
|
MOTDTextBox.SetContent(Data, Chr(13));
|
|
break;
|
|
case MR_OptionalUpgrade:
|
|
UpgradeButton.bVisible = true;
|
|
break;
|
|
case MR_MandatoryUpgrade:
|
|
MustUpgrade = true;
|
|
UpgradeButton.bVisible = true;
|
|
break;
|
|
case MR_NewServer:
|
|
break;
|
|
case MR_IniSetting:
|
|
break;
|
|
case MR_Command:
|
|
break;
|
|
}
|
|
}
|
|
|
|
function MyQueryFinished( MasterServerClient.EResponseInfo ResponseInfo, int Info )
|
|
{
|
|
switch( ResponseInfo )
|
|
{
|
|
case RI_Success:
|
|
StatusBar.SetCaption(QueryCompleteString);
|
|
SetTimer(ReReadyPause, false);
|
|
|
|
if( !MustUpgrade )
|
|
Browser.MOTDVerified(true);
|
|
break;
|
|
case RI_AuthenticationFailed:
|
|
StatusBar.SetCaption(AuthFailString);
|
|
SetTimer(ReReadyPause, false);
|
|
break;
|
|
case RI_ConnectionFailed:
|
|
StatusBar.SetCaption(ConnFailString);
|
|
SetTimer(ReReadyPause, false);
|
|
Browser.MOTDVerified(false);
|
|
// try again
|
|
MSC.StartQuery(CTM_GetMOTD);
|
|
break;
|
|
case RI_ConnectionTimeout:
|
|
StatusBar.SetCaption(ConnTimeoutString);
|
|
Browser.MOTDVerified(false);
|
|
SetTimer(ReReadyPause, false);
|
|
break;
|
|
}
|
|
}
|
|
|
|
function OnCloseBrowser()
|
|
{
|
|
if( MSC != None )
|
|
{
|
|
MSC.CancelPings();
|
|
MSC.Destroy();
|
|
MSC = None;
|
|
}
|
|
}
|
|
|
|
// delegates
|
|
function bool BackClick(GUIComponent Sender)
|
|
{
|
|
Controller.CloseMenu(true);
|
|
return true;
|
|
}
|
|
|
|
function bool RefreshClick(GUIComponent Sender)
|
|
{
|
|
MustUpgrade = false;
|
|
UpgradeButton.bVisible = false;
|
|
MSC.Stop();
|
|
MSC.StartQuery(CTM_GetMOTD);
|
|
|
|
StatusBar.SetCaption(StartQueryString);
|
|
SetTimer(0, false);
|
|
|
|
return true;
|
|
}
|
|
|
|
function bool UpgradeClick(GUIComponent Sender)
|
|
{
|
|
MSC.LaunchAutoUpdate();
|
|
return true;
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
Begin Object class=GUIScrollTextBox Name=MyMOTDText
|
|
TextAlign=TXTA_Left
|
|
WinWidth=0.9
|
|
WinHeight=0.8
|
|
WinLeft=0.05
|
|
WinTop=0.048
|
|
CharDelay=0.004
|
|
EOLDelay=0.1
|
|
bNeverFocus=true
|
|
bAcceptsInput=true
|
|
End Object
|
|
Controls(0)=MyMOTDText
|
|
|
|
Begin Object Class=GUIButton Name=MyBackButton
|
|
Caption="BACK"
|
|
StyleName="SquareMenuButton"
|
|
WinWidth=0.2
|
|
WinLeft=0
|
|
WinTop=0
|
|
WinHeight=0.5
|
|
End Object
|
|
|
|
Begin Object Class=GUIButton Name=MyRefreshButton
|
|
Caption="REFRESH"
|
|
StyleName="SquareMenuButton"
|
|
WinWidth=0.2
|
|
WinLeft=0.2
|
|
WinTop=0
|
|
WinHeight=0.5
|
|
End Object
|
|
|
|
Begin Object Class=GUIButton Name=MyUpgradeButton
|
|
Caption="UPGRADE"
|
|
StyleName="SquareMenuButton"
|
|
WinWidth=0.2
|
|
WinLeft=0.8
|
|
WinTop=0
|
|
WinHeight=0.5
|
|
bVisible=false
|
|
End Object
|
|
|
|
Begin Object class=GUITitleBar name=MyStatus
|
|
WinWidth=1
|
|
WinHeight=0.5
|
|
WinLeft=0
|
|
WinTop=0.5
|
|
StyleName="SquareBar"
|
|
Caption=""
|
|
bUseTextHeight=false
|
|
Justification=TXTA_Left
|
|
End Object
|
|
|
|
Begin Object Class=GUIPanel Name=FooterPanel
|
|
Controls(0)=MyBackButton
|
|
Controls(1)=MyRefreshButton
|
|
Controls(2)=MyUpgradeButton
|
|
Controls(3)=MyStatus
|
|
WinWidth=1
|
|
WinHeight=0.1
|
|
WinLeft=0
|
|
WinTop=0.9
|
|
End Object
|
|
Controls(1)=FooterPanel
|
|
|
|
Begin Object class=GUILabel Name=VersionNum
|
|
Caption=""
|
|
TextALign=TXTA_Right
|
|
TextColor=(R=100,G=100,B=160,A=255)
|
|
WinWidth=0.500000
|
|
WinHeight=0.040000
|
|
WinLeft=0.495000
|
|
WinTop=0.0025
|
|
End Object
|
|
Controls(2)=GUILabel'VersionNum'
|
|
|
|
ReReadyPause=2.0
|
|
VersionString="Ver."
|
|
}
|