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

336 lines
8.7 KiB
Ucode

// ====================================================================
// Class: XInterface.Tab_OnlineSettings
// Parent: XInterface.GUITabPanel
//
// <Enter a description here>
// ====================================================================
class Tab_NetworkSettings extends UT2K3TabPanel;
var localized string NetSpeedText[4];
var localized string StatsURL;
var localized string EpicIDMsg;
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
local int i;
Super.Initcomponent(MyController, MyOwner);
for (i=0;i<Controls.Length;i++)
Controls[i].OnChange=InternalOnChange;
for(i = 0;i < ArrayCount(NetSpeedText);i++)
moComboBox(Controls[1]).AddItem(NetSpeedText[i]);
moEditBox(Controls[2]).MyEditBox.bConvertSpaces = true;
moEditBox(Controls[2]).MyEditBox.MaxWidth=14;
moEditBox(Controls[3]).MyEditBox.MaxWidth=14;
moEditBox(Controls[3]).MaskText(true);
moEditBox(Controls[2]).MenuStateChange(MSAT_Disabled);
moEditBox(Controls[3]).MenuStateChange(MSAT_Disabled);
GUILabel(Controls[8]).Caption = EpicIDMsg@FormatID(PlayerOwner().GetPlayerIDHash());
moCheckBox(Controls[9]).Checked(PlayerOwner().bDynamicNetSpeed);
}
function string FormatID(string id)
{
id=Caps(id);
return mid(id,0,8)$"-"$mid(id,8,8)$"-"$mid(id,16,8)$"-"$mid(id,24,8);
}
function InternalOnLoadINI(GUIComponent Sender, string s)
{
local int i;
if (Sender==Controls[1])
{
i = class'Player'.default.ConfiguredInternetSpeed;
if (i<=2600)
moComboBox(Sender).SetText(NetSpeedText[0]);
else if (i<=5000)
moComboBox(Sender).SetText(NetSpeedText[1]);
else if (i<=10000)
moComboBox(Sender).SetText(NetSpeedText[2]);
else
moComboBox(Sender).SetText(NetSpeedText[3]);
}
else if (Sender==Controls[2])
{
if(PlayerOwner().StatsUserName!="" && PlayerOwner().StatsPassword!="")
{
moEditBox(Sender).SetText(PlayerOwner().StatsUserName);
moEditBox(Sender).MenuStateChange(MSAT_Blurry);
}
else
{
moEditBox(Sender).SetText("");
moEditBox(Sender).MenuStateChange(MSAT_Disabled);
}
}
else if (Sender==Controls[3])
{
if(PlayerOwner().StatsUserName!="" && PlayerOwner().StatsPassword!="")
{
moEditBox(Sender).SetText(PlayerOwner().StatsPassword);
moEditBox(Sender).MenuStateChange(MSAT_Blurry);
}
else
{
moEditBox(Sender).SetText("");
moEditBox(Sender).MenuStateChange(MSAT_Disabled);
}
}
else if (Sender==Controls[5])
{
GUICheckBoxButton(GUIMenuOption(Sender).MyComponent).SetChecked( PlayerOwner().StatsUserName!="" && PlayerOwner().StatsPassword!="" );
}
Controls[7].bVisible = !ValidStatConfig();
}
function bool ValidStatConfig()
{
if(moCheckBox(Controls[5]).IsChecked())
{
if(Len(moEditBox(Controls[2]).GetText()) < 4)
return false;
if(Len(moEditBox(Controls[3]).GetText()) < 6)
return false;
}
return true;
}
function ApplyStatConfig()
{
if(moCheckBox(Controls[5]).IsChecked())
{
PlayerOwner().StatsUserName = moEditBox(Controls[2]).GetText();
PlayerOwner().StatsPassword = moEditBox(Controls[3]).GetText();
}
else
{
PlayerOwner().StatsUserName = moEditBox(Controls[2]).GetText();
PlayerOwner().StatsPassword = moEditBox(Controls[3]).GetText();
}
PlayerOwner().SaveConfig();
}
function InternalOnChange(GUIComponent Sender)
{
local GUIMenuOption O;
if (!Controller.bCurMenuInitialized)
return;
if (Sender==Controls[1])
{
if (moComboBox(Sender).GetText()==NetSpeedText[0])
PlayerOwner().ConsoleCommand("netspeed 2600");
else if (moComboBox(Sender).GetText()==NetSpeedText[1])
PlayerOwner().ConsoleCommand("netspeed 5000");
else if (moComboBox(Sender).GetText()==NetSpeedText[2])
PlayerOwner().ConsoleCommand("netspeed 10000");
else if (moComboBox(Sender).GetText()==NetSpeedText[3])
PlayerOwner().ConsoleCommand("netspeed 20000");
}
else
if (Sender==Controls[5])
{
O = GUIMenuOption(Sender);
if ( !GUICheckBoxButton(O.MyComponent).bChecked )
{
moEditBox(Controls[2]).SetText("");
moEditBox(Controls[3]).SetText("");
moEditBox(Controls[2]).MenuStateChange(MSAT_Disabled);
moEditBox(Controls[3]).MenuStateChange(MSAT_Disabled);
}
else
{
moEditBox(Controls[2]).MenuStateChange(MSAT_Blurry);
moEditBox(Controls[3]).MenuStateChange(MSAT_Blurry);
}
}
else if (Sender==Controls[9])
{
PlayerOwner().bDynamicNetSpeed = moCheckBox(Controls[9]).IsChecked();
PlayerOwner().Saveconfig();
}
Controls[7].bVisible = !ValidStatConfig();
}
function bool OnViewStats(GUIComponent Sender)
{
PlayerOwner().ConsoleCommand("start"@StatsURL);
return true;
}
defaultproperties
{
Begin Object class=GUIImage Name=OnlineBK1
WinWidth=0.576640
WinHeight=0.489999
WinLeft=0.216797
WinTop=0.355208
Image=Texture'InterfaceArt_tex.Menu.changeme_texture' //Material'InterfaceContent.Menu.BorderBoxD'
ImageColor=(R=255,G=255,B=255,A=160);
ImageRenderStyle=MSTY_Alpha
ImageStyle=ISTY_Stretched
End Object
Controls(0)=GUIImage'OnlineBK1'
Begin Object class=moComboBox Name=OnlineNetSpeed
WinWidth=0.500000
WinHeight=0.060000
WinLeft=0.250000
WinTop=0.085678
Caption="Connection"
INIOption="@Internal"
INIDefault="Cable Modem/DSL"
OnLoadINI=InternalOnLoadINI
Hint="How fast is your connection?"
CaptionWidth=0.4
ComponentJustification=TXTA_Left
bReadOnly=true
End Object
Controls(1)=GUIMenuOption'OnlineNetSpeed'
Begin Object class=moEditBox Name=OnlineStatsName
WinWidth=0.500000
WinHeight=0.060000
WinLeft=0.250000
WinTop=0.494271
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
Caption="Stats UserName"
Hint="Please select a name to use for UT Stats!"
CaptionWidth=0.4
End Object
Controls(2)=moEditBox'OnlineStatsName'
Begin Object class=moEditBox Name=OnlineStatsPW
WinWidth=0.500000
WinHeight=0.060000
WinLeft=0.250000
WinTop=0.583594
Caption="Stats Password"
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
Hint="Please select a password that will secure your UT Stats!"
CaptionWidth=0.4
End Object
Controls(3)=moEditBox'OnlineStatsPW'
Begin Object class=GUILabel Name=OnlineStatDesc
// if _RO_
Caption="Killing Floor Global Stats"
// else
// Caption="UT2003 Global Stats"
// end if _RO_
TextALign=TXTA_Center
TextFont="UT2HeaderFont"
TextColor=(R=230,G=200,B=0,A=255)
WinWidth=0.500000
WinHeight=32.000000
WinLeft=0.250000
WinTop=0.391145
End Object
Controls(4)=GUILabel'OnlineStatDesc'
Begin Object class=moCheckBox Name=OnlineTrackStats
WinWidth=0.210000
WinHeight=0.040000
WinLeft=0.251565
WinTop=0.742708
Caption="Track Stats"
INIOption="@Internal"
INIDefault="True"
OnLoadINI=InternalOnLoadINI
Hint="Enable this option to join the online ranking system."
CaptionWidth=0.9
bSquare=true
ComponentJustification=TXTA_Left
End Object
Controls(5)=moCheckBox'OnlineTrackStats'
Begin Object class=GUIButton Name=ViewOnlineStats
WinWidth=0.210000
WinHeight=0.040000
WinLeft=0.536721
WinTop=0.742708
Caption="View Stats"
Hint="Click to launch the UT stats website."
OnClick=OnViewStats
End Object
Controls(6)=GUIButton'ViewOnlineStats'
Begin Object class=GUILabel Name=InvalidWarning
WinWidth=0.576561
WinHeight=0.125001
WinLeft=0.215625
WinTop=0.870832
Caption="Your stats username or password is invalid. Your username must be at least 4 characters long, and your password must be at least 6 characters long."
TextAlign=TXTA_Center
bMultiLine=True
TextColor=(R=255,G=0,B=0,A=255)
TextFont="UT2MenuFont"
End Object
Controls(7)=GUILabel'InvalidWarning'
Begin Object class=GUILabel Name=EpicID
WinWidth=1
WinHeight=0.066407
WinLeft=0
WinTop=0.313279
Caption="Your Unique id is:"
TextAlign=TXTA_Center
bMultiLine=True
TextColor=(R=255,G=255,B=0,A=255)
TextFont="UT2SmallFont"
End Object
Controls(8)=GUILabel'EpicID'
Begin Object class=moCheckBox Name=NetworkDynamicNetspeed
WinWidth=0.500000
WinHeight=0.040000
WinLeft=0.250000
WinTop=0.179011
Caption="Dynamic Netspeed"
Hint="Dynamic adjust your netspeed on slower connections."
CaptionWidth=0.9
bSquare=true
ComponentJustification=TXTA_Left
End Object
Controls(9)=moCheckBox'NetworkDynamicNetspeed'
WinTop=0.15
WinLeft=0
WinWidth=1
WinHeight=0.74
bAcceptsInput=false
NetSpeedText(0)="Modem"
NetSpeedText(1)="ISDN"
NetSpeedText(2)="Cable/ADSL"
NetSpeedText(3)="LAN/T1"
// if _RO_
StatsURL="http://www.killingfloorthegame.com/"
// else
// StatsURL="http://ut2003stats.epicgames.com/"
// end if _RO_
EpicIDMsg="Your Unique id is:"
}