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

168 lines
5.0 KiB
Ucode

class UT2K4Browser_RulesList extends ServerBrowserMCList;
var array<GameInfo.KeyValuePair> Rules;
// Move to PlayInfo??? Perhaps make use of Localize()?
var localized string TrueString;
var localized string FalseString;
var localized string ServerModeString;
var localized string DedicatedString;
var localized string NonDedicatedString;
var localized string AdminNameString;
var localized string AdminEmailString;
var localized string PasswordString;
var localized string GameStatsString;
var localized string GameSpeedString;
var localized string MutatorString;
var localized string BalanceTeamsString;
var localized string PlayersBalanceTeamsString;
var localized string FriendlyFireString;
var localized string GoalScoreString;
var localized string TimeLimitString;
var localized string MinPlayersString;
var localized string TranslocatorString;
var localized string WeaponStayString;
var localized string MapVotingString;
var localized string KickVotingString;
function MyOnDrawItem(Canvas Canvas, int i, float X, float Y, float W, float H, bool bSelected, bool bPending)
{
local float CellLeft, CellWidth;
local GUIStyles DrawStyle;
if (bSelected)
{
SelectedStyle.Draw(Canvas, MSAT_Pressed, X, Y-2, W, H+2);
DrawStyle = SelectedStyle;
}
else DrawStyle = Style;
GetCellLeftWidth( 0, CellLeft, CellWidth );
DrawStyle.DrawText( Canvas, MenuState, CellLeft, Y, CellWidth, H, TXTA_Left, LocalizeRules(Rules[SortData[i].SortItem].Key), FontScale );
GetCellLeftWidth( 1, CellLeft, CellWidth );
DrawStyle.DrawText( Canvas, MenuState, CellLeft, Y, CellWidth, H, TXTA_Left, LocalizeRules(Rules[SortData[i].SortItem].Value), FontScale );
}
function bool InternalOnKeyEvent(out byte Key, out byte State, float delta)
{
if( Super.InternalOnKeyEvent(Key, State, delta) )
return true;
if( State==3 )
{
switch( EInputKey(Key) )
{
case IK_Enter:
tp_MyPage.li_Server.Connect(false);
return true;
case IK_F5: //IK_F5
tp_MyPage.RefreshList();
return true;
}
}
return false;
}
function string LocalizeRules( string code )
{
switch( caps(code) )
{
case "TRUE": return TrueString;
case "FALSE": return FalseString;
case "SERVERMODE": return ServerModeString;
case "DEDICATED": return DedicatedString;
case "NON-DEDICATED": return NonDedicatedString;
case "ADMINNAME": return AdminNameString;
case "ADMINEMAIL": return AdminEmailString;
case "PASSWORD": return PasswordString;
case "GAMESTATS": return GameStatsString;
case "GAMESPEED": return GameSpeedString;
case "MUTATOR": return MutatorString;
case "BALANCETEAMS": return BalanceTeamsString;
case "PLAYERSBALANCETEAMS": return PlayersBalanceTeamsString;
case "FRIENDLYFIRE": return FriendlyFireString;
case "GOALSCORE": return GoalScoreString;
case "TIMELIMIT": return TimeLimitString;
case "MINPLAYERS": return MinPlayersString;
case "TRANSLOCATOR": return TranslocatorString;
case "WEAPONSTAY": return WeaponStayString;
case "MAPVOTING": return MapVotingString;
case "KICKVOTING": return KickVotingString;
}
return code;
}
function AddNewRule(GameInfo.KeyValuePair NewRule)
{
Rules[Rules.Length] = NewRule;
AddedItem();
}
function Clear()
{
ItemCount = 0;
Rules.Remove(0, Rules.Length);
Super.Clear();
}
function string GetSortString( int i )
{
local string S;
if (SortColumn == 1)
{
S = LocalizeRules(Rules[i].Value);
S = Left(S, 10);
}
else
{
S = LocalizeRules(Rules[i].Key);
S = Left(S, 10);
}
return S;
}
defaultproperties
{
ColumnHeadings(0)="Setting"
ColumnHeadings(1)="Value"
InitColumnPerc(0)=0.5
InitColumnPerc(1)=0.5
ExpandLastColumn=True
SortColumn=0
TrueString="Enabled"
FalseString="Disabled"
ServerModeString="Server Mode"
DedicatedString="Dedicated"
NonDedicatedString="Non-Dedicated"
AdminNameString="Server Admin"
AdminEmailString="Admin Email"
PasswordString="Requires Password"
// if _RO_
GameStatsString="Killing Floor Stats"
// else
// GameStatsString="UT2004 Stats"
// end if _RO_
GameSpeedString="Game Speed"
MutatorString="Mutator"
BalanceTeamsString="Bots Balance Teams"
PlayersBalanceTeamsString="Balance Teams"
FriendlyFireString="Friendly Fire"
GoalScoreString="Goal Score"
TimeLimitString="Time Limit"
MinPlayersString="Minimum Players (bots)"
TranslocatorString="Translocator"
WeaponStayString="Weapons Stay"
StyleName="ServerBrowserGrid"
SelectedStyleName="BrowserListSelection"
MapVotingString="Map Voting"
KickVotingString="Kick Voting"
}