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

242 lines
5.9 KiB
Ucode

//==============================================================================
// Created on: 01/02/2004
// Configure general match setup options
//
// Written by Ron Prestenback
// © 2003, Epic Games, Inc. All Rights Reserved
//==============================================================================
class MatchSetupMain extends MatchSetupPanelBase;
var automated moComboBox co_GameType;
var automated moEditBox ed_Params, ed_DemoRec;
var automated moCheckbox ch_DemoRec, ch_Tournament;
var bool bDemoRec, bTournament;
var string GameClass, DemoFilename, Params;
function InitPanel()
{
Super.InitPanel();
Group = class'VotingReplicationInfo'.default.GeneralID;
}
function bool HandleResponse(string Type, string Info, string Data)
{
local string InfoStr, SubType;
if ( Type ~= Group )
{
log("MAIN HandleResponse Info '"$Info$"' Data '"$Data$"'",'MapVoteDebug');
if ( !Divide(Info, Chr(27), InfoStr, SubType) )
{
log("received unknown general token");
return true;
}
if ( InfoStr ~= class'VotingReplicationInfo'.default.AddID )
{
switch ( SubType )
{
case class'VotingReplicationInfo'.default.TournamentID:
bTournament = bool(Data);
ch_Tournament.SetComponentValue(bTournament,True);
break;
case class'VotingReplicationInfo'.default.DemoRecID:
bDemoRec = bool(Data);
ch_DemoRec.SetComponentValue(bDemoRec,true);
if ( bDemoRec )
EnableComponent(ed_DemoRec);
else DisableComponent(ed_DemoRec);
break;
case class'VotingReplicationInfo'.default.GameTypeID:
GameClass = Data;
if ( GameClass != "" )
{
co_GameType.MyComboBox.List.bNotify = false;
co_GameType.Find(Data, ,true);
co_Gametype.MyComboBox.List.bNotify = true;
}
break;
case class'VotingReplicationInfo'.default.URLID:
Params = Data;
ed_Params.SetComponentValue(Params,true);
break;
}
}
else if ( InfoStr ~= class'VotingReplicationInfo'.default.UpdateID )
{
// this setting was changed by someone else
switch ( SubType )
{
case class'VotingReplicationInfo'.default.TournamentID:
bTournament = bool(Data);
ch_Tournament.SetComponentValue(bTournament,True);
break;
case class'VotingReplicationInfo'.default.DemoRecID:
bDemoRec = bool(Data);
ch_DemoRec.SetComponentValue(bDemoRec,true);
if ( bDemoRec )
EnableComponent(ed_DemoRec);
else DisableComponent(ed_DemoRec);
break;
case class'VotingReplicationInfo'.default.GameTypeID:
GameClass = Data;
if ( GameClass != "" )
{
co_GameType.MyComboBox.List.bNotify = false;
co_GameType.Find(Data, ,true);
co_Gametype.MyComboBox.List.bNotify = true;
}
break;
case class'VotingReplicationInfo'.default.URLID:
Params = Data;
ed_Params.SetComponentValue(Params,true);
break;
}
}
return true;
}
return false;
}
function InternalOnChange( GUIComponent Sender )
{
if ( Sender == ch_DemoRec )
{
if ( ch_DemoRec.IsChecked() )
EnableComponent(ed_DemoRec);
else DisableComponent(ed_DemoRec);
}
Super.InternalOnChange(Sender);
}
function SubmitChanges()
{
if ( GameClass != co_GameType.GetExtra() )
SendCommand( GetCommandString(co_GameType) );
if ( bTournament != ch_Tournament.IsChecked() )
SendCommand( GetCommandString(ch_Tournament) );
if ( bDemoRec != ch_DemoRec.IsChecked() )
SendCommand( GetCommandString(ch_DemoRec) );
if ( Params != ed_Params.GetText() )
SendCommand( GetCommandString(ed_Params) );
Super.SubmitChanges();
}
function string GetCommandString( GUIComponent Comp )
{
local string str;
if ( Comp == None )
return "";
str = Group;
switch ( Comp )
{
case co_Gametype:
str $= ":" $ class'VotingReplicationInfo'.default.GametypeID $ ";" $ co_GameType.GetExtra();
break;
case ch_Tournament:
str $= ":" $ class'VotingReplicationInfo'.default.TournamentID $ ";" $ ch_Tournament.IsChecked();
break;
case ch_DemoRec:
str $= ":" $ class'VotingReplicationInfo'.default.DemoRecID;
if ( ch_DemoRec.IsChecked() )
str $= ";" $ ed_DemoRec.GetText();
break;
case ed_Params:
str $= ":" $ class'VotingReplicationInfo'.default.URLID;
if ( ed_Params.GetText() != "" )
str $= ";" $ ed_Params.GetText();
break;
}
return str;
}
DefaultProperties
{
PanelCaption="General"
Begin Object Class=moComboBox Name=GameTypeCombo
Caption="Game Type"
Hint="Select the gametype to use in the current match"
WinWidth=0.622588
WinHeight=0.1
WinLeft=0.014282
WinTop=0.132839
TabOrder=0
End Object
co_GameType=GameTypeCombo
Begin Object Class=moCheckbox Name=TournamentCheckbox
Caption="Tournament Mode"
Hint="All players must be connected to the server before the match can start"
WinWidth=0.353296
WinHeight=0.100000
WinLeft=0.012272
WinTop=0.295934
TabOrder=1
End Object
ch_Tournament=TournamentCheckBox
Begin Object Class=moEditBox Name=CommandLineParamsBox
Caption="Additional Command Line Parameters"
Hint="Specify any additional command line parameters (optional)"
bVerticalLayout=True
LabelJustification=TXTA_Center
WinWidth=0.986084
WinHeight=0.2
WinLeft=0.008252
WinTop=0.734349
TabOrder=2
End Object
ed_Params=CommandLineParamsBox
Begin Object Class=moCheckBox Name=DemoRecCheckbox
Caption="Record Demo"
Hint="Record a server-side demo of this match"
WinWidth=0.353046
WinHeight=0.100000
WinLeft=0.011267
WinTop=0.459699
OnChange=InternalOnChange
TabOrder=3
End Object
ch_DemoRec=DemoRecCheckBox
Begin Object Class=moEditBox Name=DemoRecBox
Caption="Filename"
CaptionWidth=0.1
Hint="Enter the name of the demo you'd like to record for this match"
WinWidth=0.591943
WinHeight=0.100000
WinLeft=0.391845
WinTop=0.457450
MenuState=MSAT_Disabled
TabOrder=4
End Object
ed_DemoRec=DemoRecBox
}