//============================================================================== // Created on: 01/02/2004 // Base class for all match setup panels // // Written by Ron Prestenback // © 2003, Epic Games, Inc. All Rights Reserved // TODO: CONFLICTS!!! someone updates a setting that you've already changed...their change is replicated down // what to do about this? //============================================================================== class MatchSetupPanelBase extends UT2K4TabPanel abstract; var() string Group; var() editconst noexport VotingReplicationInfo VRI; var() bool bDirty; function InitPanel() { local int i; for ( i = 0; i < Controls.Length; i++ ) Controls[i].OnChange = InternalOnChange; } function bool IsAdmin() { local PlayerController PC; PC = PlayerOwner(); return PC != None && PC.PlayerReplicationInfo != None && PC.PlayerReplicationInfo.bAdmin; } function bool IsLoggedIn() { return IsAdmin() || VRI != None && VRI.bMatchSetupPermitted; } // Called when the player logs in, or when the voting replication info requests a full refresh delegate OnLogIn(); // Called when the player logs out delegate OnLogOut(); // Called by panels to send info the server delegate SendCommand( string Cmd ); function LoggedIn() { EnableComponent(MyButton); } function LoggedOut() { DisableComponent(MyButton); } // Called on the active panel when 'Submit' is clicked function SubmitChanges() { bDirty = false; } // Called when information is received from the server function bool HandleResponse(string Type, string Info, string Data) { return false; } // Called when data transfer from the server is completed function ReceiveComplete(); // Called when something has been changed on the panel function InternalOnChange(GUIComponent Sender) { bDirty = true; OnChange(Self); } event Free() { VRI = None; Super.Free(); } DefaultProperties { OnLogin=LoggedIn OnLogout=LoggedOut }