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

208 lines
4.9 KiB
Ucode

//==============================================================================
// Server version of IAMultiColumnRulesPanel.
// Only shows Voting and Server settings.
//
// Created by Bruce Bickar
// © 2003, Epic Games, Inc. All Rights Reserved
//==============================================================================
class UT2K4Tab_ServerRulesPanel extends IAMultiColumnRulesPanel
config;
var config bool bLANServer;
var automated moCheckbox ch_Webadmin, ch_LANServer;
var automated moNumericEdit nu_Port;
var int Port;
var bool bWebadmin;
//------------------------------------------------------------------------------------------------
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
Super.InitComponent(MyController, MyOwner);
// Shrink the list to make room for additional options
lb_Rules.WinHeight=0.875008;
// move checkbox over to the left
ch_Advanced.WinWidth=0.331250;
ch_Advanced.WinHeight=0.043750;
ch_Advanced.WinLeft=0.073126;
ch_Advanced.WinTop=0.890000;
RemoveComponent(b_Symbols);
i_BK.SetPosition(0.000505,0.014733,0.996997,0.853123);
lb_Rules.SetPosition(0.024912,0.066344,0.950175,0.735499);
}
//------------------------------------------------------------------------------------------------
protected function bool ShouldDisplayRule(int Index)
{
if ( GamePI.Settings[Index].bAdvanced && !Controller.bExpertMode )
return false;
// Only multiplayer-specific setting on this page
return GamePI.Settings[Index].bMPOnly;
}
//------------------------------------------------------------------------------------------------
// rjp --
protected function SetGamePI()
{
GamePI = p_Anchor.RuleInfo;
GamePI.Sort(6);
}
function Change(GUIComponent Sender)
{
if ( Sender == ch_Webadmin )
{
bWebadmin = ch_Webadmin.IsChecked();
UpdatePortState();
}
else if ( Sender == ch_LANServer )
{
bLANServer = ch_LANServer.IsChecked();
SaveConfig();
}
else if ( Sender == nu_Port )
Port = nu_Port.GetValue();
}
function string Play()
{
local bool b;
if ( bWebadmin != class'UWeb.WebServer'.default.bEnabled )
{
class'UWeb.WebServer'.default.bEnabled = bWebadmin;
b = True;
}
if ( Port != class'UWeb.WebServer'.default.ListenPort )
{
class'UWeb.Webserver'.default.ListenPort = Port;
b = True;
}
if ( b )
class'UWeb.Webserver'.static.StaticSaveConfig();
if ( bLANServer )
return " -lanplay";
return "";
}
function InternalOnLoadINI(GUIComponent Sender, string S)
{
switch (Sender)
{
case ch_Webadmin:
bWebadmin = class'UWeb.WebServer'.default.bEnabled;
ch_Webadmin.Checked(bWebAdmin);
UpdatePortState();
break;
case ch_LANServer:
ch_LANServer.Checked(bLANServer);
break;
case nu_Port:
Port = class'UWeb.WebServer'.default.ListenPort;
nu_Port.SetValue(Port);
break;
}
}
function UpdateBotSetting(int i)
{
}
function UpdateSymbolButton()
{
}
function UpdatePortState()
{
if ( bWebAdmin )
EnableComponent(nu_Port);
else DisableComponent(nu_Port);
}
event Closed(GUIComponent Sender, bool bCancelled) // Called when the Menu Owner is closed
{
local bool b;
Super.Closed(Sender, bCancelled);
if ( bWebadmin != class'UWeb.WebServer'.default.bEnabled )
{
class'UWeb.WebServer'.default.bEnabled = bWebadmin;
b = True;
}
if ( Port != class'UWeb.WebServer'.default.ListenPort )
{
class'UWeb.Webserver'.default.ListenPort = Port;
b = True;
}
if ( b )
class'UWeb.Webserver'.static.StaticSaveConfig();
}
// -- rjp
defaultproperties
{
Begin Object Class=moCheckbox Name=LANServer
Caption="LAN Server"
Hint="Optimizes various engine and network settings for LAN-based play. Enabling this option when running an internet server will cause EXTREME lag during the match!"
WinWidth=0.331250
WinHeight=0.043750
WinLeft=0.073126
WinTop=0.953334
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
OnChange=Change
TabOrder=3
bAutoSizeCaption=True
End Object
ch_LANServer=LANServer
Begin Object Class=moCheckbox Name=EnableWebadmin
Caption="Enable WebAdmin"
Hint="Enables remote web-based administration of the server"
WinWidth=0.295063
WinHeight=0.043750
WinLeft=0.586874
WinTop=0.893334
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
OnChange=Change
TabOrder=4
bAutoSizeCaption=True
End Object
ch_Webadmin=EnableWebAdmin
Begin Object Class=moNumericEdit Name=WebadminPort
Caption="WebAdmin Port"
Hint="Select which port should be used to connect to the remote web-based administration"
WinWidth=0.295063
WinHeight=0.043750
WinLeft=0.586874
WinTop=0.953334
MinValue=1
MaxValue=65536
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
OnChange=Change
CaptionWidth=0.7
ComponentWidth=0.3
TabOrder=5
bAutoSizeCaption=True
End Object
nu_Port=WebadminPort
}