849 lines
20 KiB
Ucode
849 lines
20 KiB
Ucode
//-----------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------
|
|
class KFTab_MidGameVoiceChat extends UT2K4Tab_MidGameVoiceChat;
|
|
|
|
//copied stuff
|
|
var automated GUIButton b_Team, b_Settings, b_Browser, b_Quit, b_Favs,
|
|
b_Leave, b_MapVote, b_KickVote, b_MatchSetup, b_Spec;
|
|
|
|
var() noexport bool bFFAGame, bNetGame;
|
|
|
|
var localized string LeaveMPButtonText, LeaveSPButtonText, SpectateButtonText, JoinGameButtonText;
|
|
var localized array<string> ContextItems, DefaultItems;
|
|
var localized string KickPlayer, BanPlayer;
|
|
|
|
var localized string BuddyText;
|
|
var localized string RedTeam, BlueTeam;
|
|
var string PlayerStyleName;
|
|
var GUIStyles PlayerStyle;
|
|
|
|
function InitComponent(GUIController MyController, GUIComponent MyOwner)
|
|
{
|
|
local string s;
|
|
local int i;
|
|
local eFontScale FS;
|
|
|
|
Super.InitComponent(MyController, MyOwner);
|
|
|
|
s = GetSizingCaption();
|
|
|
|
for ( i = 0; i < Controls.Length; i++ )
|
|
{
|
|
if ( GUIButton(Controls[i]) != None && Controls[i] != b_Team && Controls[i] != b_Reset)
|
|
{
|
|
GUIButton(Controls[i]).bAutoSize = true;
|
|
GUIButton(Controls[i]).SizingCaption = s;
|
|
GUIButton(Controls[i]).AutoSizePadding.HorzPerc = 0.04;
|
|
GUIButton(Controls[i]).AutoSizePadding.VertPerc = 0.5;
|
|
}
|
|
}
|
|
|
|
PlayerStyle = MyController.GetStyle(PlayerStyleName, fs);
|
|
}
|
|
|
|
function ShowPanel(bool bShow)
|
|
{
|
|
super.ShowPanel(bShow);
|
|
|
|
if ( bShow )
|
|
{
|
|
InitGRI();
|
|
}
|
|
}
|
|
|
|
function string GetSizingCaption()
|
|
{
|
|
local int i;
|
|
local string s;
|
|
|
|
for ( i = 0; i < Controls.Length; i++ )
|
|
{
|
|
if ( GUIButton(Controls[i]) != none && Controls[i] != b_Team && Controls[i] != b_Reset)
|
|
{
|
|
if ( s == "" || Len(GUIButton(Controls[i]).Caption) > Len(s) )
|
|
{
|
|
s = GUIButton(Controls[i]).Caption;
|
|
}
|
|
}
|
|
}
|
|
|
|
return s;
|
|
}
|
|
|
|
function GameReplicationInfo GetGRI()
|
|
{
|
|
return PlayerOwner().GameReplicationInfo;
|
|
}
|
|
|
|
function InitGRI()
|
|
{
|
|
local PlayerController PC;
|
|
local GameReplicationInfo GRI;
|
|
|
|
GRI = GetGRI();
|
|
PC = PlayerOwner();
|
|
|
|
if ( PC == none || PC.PlayerReplicationInfo == none || GRI == none )
|
|
{
|
|
return;
|
|
}
|
|
|
|
bInit = False;
|
|
|
|
if ( !bTeamGame && !bFFAGame )
|
|
{
|
|
if ( GRI.bTeamGame )
|
|
{
|
|
bTeamGame = True;
|
|
}
|
|
else if ( !(GRI.GameClass ~= "Engine.GameInfo") )
|
|
{
|
|
bFFAGame = True;
|
|
}
|
|
}
|
|
|
|
bNetGame = PC.Level.NetMode != NM_StandAlone;
|
|
|
|
if ( bNetGame )
|
|
{
|
|
b_Leave.Caption = LeaveMPButtonText;
|
|
}
|
|
else
|
|
{
|
|
b_Leave.Caption = LeaveSPButtonText;
|
|
}
|
|
|
|
if ( PC.PlayerReplicationInfo.bOnlySpectator )
|
|
{
|
|
b_Spec.Caption = JoinGameButtonText;
|
|
}
|
|
else
|
|
{
|
|
b_Spec.Caption = SpectateButtonText;
|
|
}
|
|
|
|
SetupGroups();
|
|
//InitLists();
|
|
}
|
|
|
|
function float ItemHeight(Canvas C)
|
|
{
|
|
local float XL, YL, H;
|
|
local eFontScale f;
|
|
|
|
if ( bTeamGame )
|
|
{
|
|
f=FNS_Medium;
|
|
}
|
|
else
|
|
{
|
|
f=FNS_Large;
|
|
}
|
|
|
|
PlayerStyle.TextSize(C, MSAT_Blurry, "Wqz, ", XL, H, F);
|
|
|
|
if ( C.ClipX > 640 && bNetGame )
|
|
{
|
|
PlayerStyle.TextSize(C, MSAT_Blurry, "Wqz, ", XL, YL, FNS_Small);
|
|
}
|
|
|
|
H += YL;
|
|
H += (H * 0.2);
|
|
|
|
return h;
|
|
}
|
|
|
|
function SetupGroups()
|
|
{
|
|
local int i;
|
|
local PlayerController PC;
|
|
|
|
PC = PlayerOwner();
|
|
|
|
if ( bTeamGame )
|
|
{
|
|
//RemoveComponent(lb_FFA, True);
|
|
//RemoveComponent(sb_FFA, true);
|
|
|
|
if ( PC.GameReplicationInfo != None && PC.GameReplicationInfo.bNoTeamChanges )
|
|
{
|
|
RemoveComponent(b_Team,true);
|
|
}
|
|
|
|
//lb_FFA = None;
|
|
}
|
|
else if ( bFFAGame )
|
|
{
|
|
//RemoveComponent(i_JoinRed, true);
|
|
//RemoveComponent(lb_Red, true);
|
|
//RemoveComponent(sb_Red, true);
|
|
RemoveComponent(b_Team, true);
|
|
}
|
|
else
|
|
{
|
|
for ( i = 0; i < Controls.Length; i++ )
|
|
{
|
|
if ( Controls[i] == b_Team ||
|
|
Controls[i] == b_Settings ||
|
|
Controls[i] == b_Browser ||
|
|
Controls[i] == b_Quit ||
|
|
Controls[i] == b_Favs ||
|
|
Controls[i] == b_Leave ||
|
|
Controls[i] == b_MapVote ||
|
|
Controls[i] == b_KickVote ||
|
|
Controls[i] == b_MatchSetup ||
|
|
Controls[i] == b_Spec )
|
|
{
|
|
RemoveComponent(Controls[i], True);
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( PC.Level.NetMode != NM_Client )
|
|
{
|
|
RemoveComponent(b_Favs);
|
|
RemoveComponent(b_Browser);
|
|
}
|
|
else if ( CurrentServerIsInFavorites() )
|
|
{
|
|
DisableComponent(b_Favs);
|
|
}
|
|
|
|
if ( PC.Level.NetMode == NM_StandAlone )
|
|
{
|
|
RemoveComponent(b_MapVote, True);
|
|
RemoveComponent(b_MatchSetup, True);
|
|
RemoveComponent(b_KickVote, True);
|
|
}
|
|
else if ( PC.VoteReplicationInfo != None )
|
|
{
|
|
if ( !PC.VoteReplicationInfo.MapVoteEnabled() )
|
|
{
|
|
RemoveComponent(b_MapVote,True);
|
|
}
|
|
|
|
if ( !PC.VoteReplicationInfo.KickVoteEnabled() )
|
|
{
|
|
RemoveComponent(b_KickVote);
|
|
}
|
|
|
|
if ( !PC.VoteReplicationInfo.MatchSetupEnabled() )
|
|
{
|
|
RemoveComponent(b_MatchSetup);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
RemoveComponent(b_MapVote);
|
|
RemoveComponent(b_KickVote);
|
|
RemoveComponent(b_MatchSetup);
|
|
}
|
|
|
|
RemapComponents();
|
|
}
|
|
|
|
function SetButtonPositions(Canvas C)
|
|
{
|
|
local int i, j, ButtonsPerRow, ButtonsLeftInRow, NumButtons;
|
|
local float Width, Height, Center, X, Y, YL, ButtonSpacing;
|
|
|
|
Width = b_Settings.ActualWidth();
|
|
Height = b_Settings.ActualHeight();
|
|
Center = ActualLeft() + (ActualWidth() / 2.0);
|
|
|
|
ButtonSpacing = Width * 0.05;
|
|
YL = Height * 1.2;
|
|
Y = b_Settings.ActualTop();
|
|
|
|
ButtonsPerRow = ActualWidth() / (Width + ButtonSpacing);
|
|
ButtonsLeftInRow = ButtonsPerRow;
|
|
|
|
for ( i = 0; i < Components.Length; i++)
|
|
{
|
|
if ( Components[i].bVisible && GUIButton(Components[i]) != none && Components[i] != b_Team && Components[i] != b_Reset )
|
|
{
|
|
NumButtons++;
|
|
}
|
|
}
|
|
|
|
if ( NumButtons < ButtonsPerRow )
|
|
{
|
|
X = Center - (((Width * float(NumButtons)) + (ButtonSpacing * float(NumButtons - 1))) * 0.5);
|
|
}
|
|
else if ( ButtonsPerRow > 1 )
|
|
{
|
|
X = Center - (((Width * float(ButtonsPerRow)) + (ButtonSpacing * float(ButtonsPerRow - 1))) * 0.5);
|
|
}
|
|
else
|
|
{
|
|
X = Center - Width / 2.0;
|
|
}
|
|
|
|
for ( i = 0; i < Components.Length; i++)
|
|
{
|
|
if ( !Components[i].bVisible || GUIButton(Components[i]) == none || Components[i]==b_Team || Components[i] == b_Reset )
|
|
{
|
|
continue;
|
|
}
|
|
|
|
Components[i].SetPosition( X, Y, Width, Height, true );
|
|
|
|
if ( --ButtonsLeftInRow > 0 )
|
|
{
|
|
X += Width + ButtonSpacing;
|
|
}
|
|
else
|
|
{
|
|
Y += YL;
|
|
|
|
for ( j = i + 1; j < Components.Length && ButtonsLeftInRow < ButtonsPerRow; j++)
|
|
{
|
|
if ( Components[i].bVisible && GUIButton(Components[i]) != none && Components[i] != b_Team && Components[i] != b_Reset )
|
|
{
|
|
ButtonsLeftInRow++;
|
|
}
|
|
}
|
|
|
|
if ( ButtonsLeftInRow > 1 )
|
|
{
|
|
X = Center - (((Width * float(ButtonsLeftInRow)) + (ButtonSpacing * float(ButtonsLeftInRow - 1))) * 0.5);
|
|
}
|
|
else
|
|
{
|
|
X = Center - Width / 2.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// See if we already have this server in our favorites
|
|
function bool CurrentServerIsInFavorites()
|
|
{
|
|
local ExtendedConsole.ServerFavorite Fav;
|
|
local string address,portString;
|
|
|
|
// Get current network address
|
|
if ( PlayerOwner() == None )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
address = PlayerOwner().GetServerNetworkAddress();
|
|
|
|
if( address == "" )
|
|
{
|
|
return true; // slightly hacky - dont want to add "none"!
|
|
}
|
|
|
|
// Parse text to find IP and possibly port number
|
|
if ( Divide(address, ":", Fav.IP, portstring) )
|
|
{
|
|
Fav.Port = int(portString);
|
|
}
|
|
else
|
|
{
|
|
Fav.IP = address;
|
|
}
|
|
|
|
return class'ExtendedConsole'.static.InFavorites(Fav);
|
|
}
|
|
|
|
function bool ButtonClicked(GUIComponent Sender)
|
|
{
|
|
local PlayerController PC;
|
|
local GUIController C;
|
|
|
|
C = Controller;
|
|
|
|
PC = PlayerOwner();
|
|
|
|
/*if ( Sender == i_JoinRed )
|
|
{
|
|
//Join Red team
|
|
if ( PC.PlayerReplicationInfo == None || PC.PlayerReplicationInfo.Team == none ||
|
|
PC.PlayerReplicationInfo.Team.TeamIndex != 0 )
|
|
{
|
|
PC.ChangeTeam(0);
|
|
}
|
|
|
|
Controller.CloseMenu(false);
|
|
}
|
|
*/
|
|
if ( Sender == b_Settings )
|
|
{
|
|
//Settings
|
|
Controller.OpenMenu(Controller.GetSettingsPage());
|
|
}
|
|
else if ( Sender == b_Browser )
|
|
{
|
|
//Server browser
|
|
Controller.OpenMenu("KFGUI.KFServerBrowser");
|
|
}
|
|
else if ( Sender == b_Leave )
|
|
{
|
|
//Forfeit/Disconnect
|
|
PC.ConsoleCommand("DISCONNECT");
|
|
KFGUIController(C).ReturnToMainMenu();
|
|
}
|
|
else if ( Sender == b_Favs )
|
|
{
|
|
//Add this server to favorites
|
|
PC.ConsoleCommand( "ADDCURRENTTOFAVORITES" );
|
|
b_Favs.MenuStateChange(MSAT_Disabled);
|
|
}
|
|
else if ( Sender == b_Quit )
|
|
{
|
|
//Quit game
|
|
Controller.OpenMenu(Controller.GetQuitPage());
|
|
}
|
|
else if ( Sender == b_MapVote )
|
|
{
|
|
//Map voting
|
|
Controller.OpenMenu(Controller.MapVotingMenu);
|
|
}
|
|
else if ( Sender == b_KickVote )
|
|
{
|
|
//Kick voting
|
|
Controller.OpenMenu(Controller.KickVotingMenu);
|
|
}
|
|
else if ( Sender == b_MatchSetup )
|
|
{
|
|
//Match setup
|
|
Controller.OpenMenu(Controller.MatchSetupMenu);
|
|
}
|
|
else if ( Sender == b_Spec )
|
|
{
|
|
Controller.CloseMenu();
|
|
|
|
//Spectate/rejoin
|
|
if ( PC.PlayerReplicationInfo.bOnlySpectator )
|
|
{
|
|
PC.BecomeActivePlayer();
|
|
}
|
|
else
|
|
{
|
|
PC.BecomeSpectator();
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function bool InternalOnPreDraw(Canvas C)
|
|
{
|
|
local GameReplicationInfo GRI;
|
|
|
|
GRI = GetGRI();
|
|
|
|
if ( GRI != none )
|
|
{
|
|
if ( bInit )
|
|
{
|
|
InitGRI();
|
|
}
|
|
|
|
FillPlayerLists();
|
|
|
|
SetButtonPositions(C);
|
|
|
|
if ( (PlayerOwner().myHUD == None || !PlayerOwner().myHUD.IsInCinematic()) && GRI != none && GRI.bMatchHasBegun && !PlayerOwner().IsInState('GameEnded') )
|
|
{
|
|
EnableComponent(b_Spec);
|
|
}
|
|
else
|
|
{
|
|
DisableComponent(b_Spec);
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function PopulateLists(GameReplicationInfo GRI)
|
|
{
|
|
local int i;
|
|
local PlayerReplicationInfo PRI;
|
|
|
|
for ( i = 0; i < GRI.PRIArray.Length; i++ )
|
|
{
|
|
PRI = GRI.PRIArray[i];
|
|
|
|
if ( PRI == None || PRI.bBot || xPlayerReplicationInfo(PRI) == none )
|
|
{
|
|
continue;
|
|
}
|
|
|
|
// If this is the first time seeing this playerid, request the ban/ignore info from our ChatManager
|
|
if ( FindChatListIndex(PRI.PlayerID) == -1 )
|
|
{
|
|
AddPlayerInfo(PRI.PlayerID);
|
|
}
|
|
|
|
if ( PRI.bOnlySpectator )
|
|
{
|
|
li_Specs.Add(PRI.PlayerName,,string(PRI.PlayerID));
|
|
}
|
|
else
|
|
{
|
|
li_Players.Add( PRI.PlayerName,,string(PRI.PlayerID) );
|
|
}
|
|
}
|
|
}
|
|
|
|
function bool ContextMenuOpened(GUIContextMenu Menu)
|
|
{
|
|
local GUIList List;
|
|
local PlayerReplicationInfo PRI;
|
|
local byte Restriction;
|
|
local GameReplicationInfo GRI;
|
|
|
|
GRI = GetGRI();
|
|
|
|
if ( GRI == None )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
List = GUIList(Controller.ActiveControl);
|
|
|
|
if ( List == None )
|
|
{
|
|
log(Name @ "ContextMenuOpened active control was not a list - active:" $ Controller.ActiveControl.Name);
|
|
return False;
|
|
}
|
|
|
|
if ( !List.IsValid() )
|
|
{
|
|
return False;
|
|
}
|
|
|
|
PRI = GRI.FindPlayerByID(int(List.GetExtra()));
|
|
|
|
if ( PRI == None || PRI.bBot || PlayerIDIsMine(PRI.PlayerID) )
|
|
{
|
|
return False;
|
|
}
|
|
|
|
Restriction = PlayerOwner().ChatManager.GetPlayerRestriction(PRI.PlayerID);
|
|
|
|
if ( bool(Restriction & 1) )
|
|
{
|
|
Menu.ContextItems[0] = ContextItems[0];
|
|
}
|
|
else
|
|
{
|
|
Menu.ContextItems[0] = DefaultItems[0];
|
|
}
|
|
|
|
if ( bool(Restriction & 2) )
|
|
{
|
|
Menu.ContextItems[1] = ContextItems[1];
|
|
}
|
|
else
|
|
{
|
|
Menu.ContextItems[1] = DefaultItems[1];
|
|
}
|
|
|
|
if ( bool(Restriction & 4) )
|
|
{
|
|
Menu.ContextItems[2] = ContextItems[2];
|
|
}
|
|
else
|
|
{
|
|
Menu.ContextItems[2] = DefaultItems[2];
|
|
}
|
|
|
|
if ( bool(Restriction & 8) )
|
|
{
|
|
Menu.ContextItems[3] = ContextItems[3];
|
|
}
|
|
else
|
|
{
|
|
Menu.ContextItems[3] = DefaultItems[3];
|
|
}
|
|
|
|
Menu.ContextItems[4] = "-";
|
|
Menu.ContextItems[5] = BuddyText;
|
|
|
|
if ( PlayerOwner().PlayerReplicationInfo.bAdmin )
|
|
{
|
|
Menu.ContextItems[6] = "-";
|
|
Menu.ContextItems[7] = KickPlayer $ "["$List.Get() $ "]";
|
|
Menu.ContextItems[8] = BanPlayer $ "["$List.Get() $ "]";
|
|
}
|
|
else if ( Menu.ContextItems.Length > 6 )
|
|
{
|
|
Menu.ContextItems.Remove(6,Menu.ContextItems.Length - 6);
|
|
}
|
|
|
|
return True;
|
|
}
|
|
|
|
function ContextClick(GUIContextMenu Menu, int ClickIndex)
|
|
{
|
|
local bool bUndo;
|
|
local byte Type;
|
|
local GUIList List;
|
|
local PlayerController PC;
|
|
local PlayerReplicationInfo PRI;
|
|
local GameReplicationInfo GRI;
|
|
|
|
GRI = GetGRI();
|
|
|
|
if ( GRI == None )
|
|
{
|
|
return;
|
|
}
|
|
|
|
PC = PlayerOwner();
|
|
bUndo = Menu.ContextItems[ClickIndex] == ContextItems[ClickIndex];
|
|
List = GUIList(Controller.ActiveControl);
|
|
|
|
if ( List == None )
|
|
{
|
|
return;
|
|
}
|
|
|
|
PRI = GRI.FindPlayerById(int(List.GetExtra()));
|
|
|
|
if ( PRI == None )
|
|
{
|
|
return;
|
|
}
|
|
|
|
if ( ClickIndex > 5 ) // Admin stuff
|
|
{
|
|
switch ( ClickIndex )
|
|
{
|
|
case 6:
|
|
case 7: PC.AdminCommand("admin kick"@List.GetExtra()); break;
|
|
case 8: PC.AdminCommand("admin kickban"@List.GetExtra()); break;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if ( ClickIndex > 3 )
|
|
{
|
|
Controller.AddBuddy(List.Get());
|
|
|
|
return;
|
|
}
|
|
|
|
Type = 1 << ClickIndex;
|
|
|
|
if ( bUndo )
|
|
{
|
|
if ( PC.ChatManager.ClearRestrictionID(PRI.PlayerID, Type) )
|
|
{
|
|
PC.ServerChatRestriction(PRI.PlayerID, PC.ChatManager.GetPlayerRestriction(PRI.PlayerID));
|
|
ModifiedChatRestriction(Self, PRI.PlayerID);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ( PC.ChatManager.AddRestrictionID(PRI.PlayerID, Type) )
|
|
{
|
|
PC.ServerChatRestriction(PRI.PlayerID, PC.ChatManager.GetPlayerRestriction(PRI.PlayerID));
|
|
ModifiedChatRestriction(Self, PRI.PlayerID);
|
|
}
|
|
}
|
|
}
|
|
|
|
DefaultProperties
|
|
{
|
|
LeaveMPButtonText="Disconnect"
|
|
LeaveSPButtonText="Forfeit"
|
|
|
|
SpectateButtonText="Spectate"
|
|
JoinGameButtonText="Join"
|
|
|
|
// OnRightClick=RightClick
|
|
|
|
ContextItems(0)="Unignore text"
|
|
ContextItems(1)="Unignore speech"
|
|
ContextItems(2)="Unignore voice chat"
|
|
ContextItems(3)="Unban from voice chat"
|
|
|
|
DefaultItems(0)="Ignore text"
|
|
DefaultItems(1)="Ignore speech"
|
|
DefaultItems(2)="Ignore voice chat"
|
|
DefaultItems(3)="Ban from voice chat"
|
|
|
|
PlayerStyleName="TextLabel"
|
|
OnPreDraw=InternalOnPreDraw
|
|
|
|
KickPlayer="Kick "
|
|
BanPlayer="Ban "
|
|
|
|
Begin Object Class=AltSectionBackground Name=PlayersBackground
|
|
Caption="Players"
|
|
LeftPadding=0.00000
|
|
RightPadding=0.00000
|
|
TopPadding=0.00000
|
|
BottomPadding=0.00000
|
|
WinWidth=0.457166
|
|
WinHeight=0.798982 //0.828982
|
|
WinLeft=0.019240
|
|
WinTop=0.029674
|
|
bBoundToParent=True
|
|
bScaleToParent=True
|
|
End Object
|
|
sb_Players=PlayersBackground
|
|
|
|
Begin Object Class=AltSectionBackground Name=SpecBackground
|
|
Caption="Spectators"
|
|
LeftPadding=0.00000
|
|
RightPadding=0.00000
|
|
TopPadding=0.00000
|
|
BottomPadding=0.00000
|
|
WinWidth=0.491566
|
|
WinHeight=0.369766
|
|
WinLeft=0.486700
|
|
WinTop=0.029674
|
|
bBoundToParent=True
|
|
bScaleToParent=True
|
|
End Object
|
|
sb_Specs=SpecBackground
|
|
|
|
Begin Object Class=AltSectionBackground Name=OptionBackground
|
|
Caption="Voice Options"
|
|
WinWidth=0.490282
|
|
WinHeight=0.415466
|
|
WinLeft=0.486700
|
|
WinTop=0.413209
|
|
TopPadding=0.04
|
|
BottomPadding=0.0
|
|
bBoundToParent=True
|
|
bScaleToParent=True
|
|
End Object
|
|
sb_Options=OptionBackground
|
|
|
|
Begin Object Class=GUIButton Name=SettingsButton
|
|
Caption="Settings"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.147268
|
|
WinHeight=0.048769
|
|
WinLeft=0.194420
|
|
WinTop=0.878657
|
|
TabOrder=0
|
|
bBoundToParent=true
|
|
bScaleToParent=true
|
|
End Object
|
|
b_Settings=SettingsButton
|
|
|
|
Begin Object Class=GUIButton Name=BrowserButton
|
|
Caption="Server Browser"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.05000
|
|
WinLeft=0.375000
|
|
WinTop=0.85000//0.675
|
|
bAutoSize=True
|
|
TabOrder=1
|
|
bBoundToParent=true
|
|
bScaleToParent=true
|
|
End Object
|
|
b_Browser=BrowserButton
|
|
|
|
Begin Object Class=GUIButton Name=LeaveMatchButton
|
|
Caption=""
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.05000
|
|
WinLeft=0.7250000
|
|
WinTop=0.87//0.750
|
|
bAutoSize=True
|
|
TabOrder=10
|
|
bBoundToParent=true
|
|
bScaleToParent=true
|
|
End Object
|
|
b_Leave=LeaveMatchButton
|
|
|
|
Begin Object Class=GUIButton Name=FavoritesButton
|
|
Caption="Add to Favs"
|
|
Hint="Add this server to your Favorites"
|
|
StyleName="SquareButton"
|
|
WinWidth=0.20000
|
|
WinHeight=0.05000
|
|
WinLeft=0.02500
|
|
WinTop=0.870
|
|
bBoundToParent=true
|
|
bScaleToParent=true
|
|
OnClick=ButtonClicked
|
|
bAutoSize=True
|
|
TabOrder=3
|
|
End Object
|
|
b_Favs=FavoritesButton
|
|
|
|
Begin Object Class=GUIButton Name=QuitGameButton
|
|
Caption="Exit Game"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.05000
|
|
WinLeft=0.725000
|
|
WinTop=0.870
|
|
bAutoSize=True
|
|
TabOrder=11
|
|
End Object
|
|
b_Quit=QuitGameButton
|
|
|
|
Begin Object Class=GUIButton Name=MapVotingButton
|
|
Caption="Map Voting"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.050000
|
|
WinLeft=0.025000
|
|
WinTop=0.890
|
|
bAutoSize=True
|
|
TabOrder=5
|
|
End Object
|
|
b_MapVote=MapVotingButton
|
|
|
|
Begin Object Class=GUIButton Name=KickVotingButton
|
|
Caption="Kick Voting"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.050000
|
|
WinLeft=0.375000
|
|
WinTop=0.890
|
|
bAutoSize=True
|
|
TabOrder=6
|
|
End Object
|
|
b_KickVote=KickVotingButton
|
|
|
|
Begin Object Class=GUIButton Name=MatchSetupButton
|
|
Caption="Match Setup"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.050000
|
|
WinLeft=0.725000
|
|
WinTop=0.890
|
|
bAutoSize=True
|
|
TabOrder=7
|
|
End Object
|
|
b_MatchSetup=MatchSetupButton
|
|
|
|
Begin Object Class=GUIButton Name=SpectateButton
|
|
Caption="Spectate"
|
|
StyleName="SquareButton"
|
|
OnClick=ButtonClicked
|
|
WinWidth=0.20000
|
|
WinHeight=0.050000
|
|
WinLeft=0.725000
|
|
WinTop=0.890
|
|
bAutoSize=True
|
|
TabOrder=9
|
|
End Object
|
|
b_Spec=SpectateButton
|
|
}
|
|
|