UTServerAdmin
Class UTServerAdminSpectator

source: e:\games\UnrealTournament\UTServerAdmin\Classes\UTServerAdminSpectator.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Pawn
         |
         +--Engine.PlayerPawn
            |
            +--Engine.Spectator
               |
               +--Engine.MessagingSpectator
                  |
                  +--UTServerAdmin.UTServerAdminSpectator
Direct Known Subclasses:None

class UTServerAdminSpectator
extends Engine.MessagingSpectator


Variables
 ListItem MessageList
 byte ReceivedMsgMax
 byte ReceivedMsgNum
 bool bClientMessages
 bool bLocalizedMessages
 bool bTeamMessages
 bool bVoiceMessages


Function Summary
 void AddMessage(PlayerReplicationInfo PRI, String S, name Type)
 void ClientMessage(string S, optional name, optional bool)
 void ClientVoiceMessage(PlayerReplicationInfo Sender, PlayerReplicationInfo Recipient, name messagetype, byte messageID)
 String FormatMessage(PlayerReplicationInfo PRI, String Text, name Type)
 void TeamMessage(PlayerReplicationInfo PRI, string S, name Type, optional bool)



Source Code


00001	class UTServerAdminSpectator extends MessagingSpectator
00002		config;
00003	
00004	struct PlayerMessage
00005	{
00006		var PlayerReplicationInfo 	PRI;
00007		var String					Text;
00008		var Name					Type;
00009		var PlayerMessage 			Next;	// pointer to next message
00010	};
00011	
00012	var ListItem MessageList;
00013	
00014	var byte ReceivedMsgNum;
00015	var config byte ReceivedMsgMax;
00016	
00017	var config bool bClientMessages;
00018	var config bool bTeamMessages;
00019	var config bool bVoiceMessages;
00020	var config bool bLocalizedMessages;
00021	
00022	function AddMessage(PlayerReplicationInfo PRI, String S, name Type)
00023	{
00024		local ListItem TempMsg;
00025		
00026		TempMsg = new(None) class'ListItem';
00027		TempMsg.Data = FormatMessage(PRI, S, Type);
00028		
00029		if (MessageList == None)
00030			MessageList = TempMsg;
00031		else
00032			MessageList.AddElement(TempMsg);
00033			
00034		if ((ReceivedMsgNum++) >= ReceivedMsgMax)
00035			MessageList.DeleteElement(MessageList); // delete the first element
00036	}
00037	
00038		
00039	function String FormatMessage(PlayerReplicationInfo PRI, String Text, name Type)
00040	{
00041		local String Message;
00042		
00043		// format Say and TeamSay messages
00044		if (PRI != None) {
00045			if (Type == 'Say')
00046				Message = PRI.PlayerName$": "$Text;
00047			else if (Type == 'TeamSay')
00048				Message = "["$PRI.PlayerName$"]: "$Text;
00049			else
00050				Message = "("$Type$") "$Text;
00051		}
00052		else if (Type == 'Console')
00053			Message = Text;
00054		else
00055			Message = "("$Type$") "$Text;
00056			
00057		return Message;
00058	}
00059	
00060	function ClientMessage( coerce string S, optional name Type, optional bool bBeep )
00061	{
00062		if (bClientMessages)
00063			AddMessage(None, S, Type); 
00064	}
00065	
00066	function TeamMessage( PlayerReplicationInfo PRI, coerce string S, name Type, optional bool bBeep )
00067	{
00068		if (bTeamMessages)
00069			AddMessage(PRI, S, Type);
00070	}
00071	
00072	function ClientVoiceMessage(PlayerReplicationInfo Sender, PlayerReplicationInfo Recipient, name messagetype, byte messageID)
00073	{
00074		// do nothing?
00075	}
00076	
00077	function ReceiveLocalizedMessage( class<LocalMessage> Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject )
00078	{
00079		// do nothing?
00080	}
00081	
00082	defaultproperties
00083	{
00084	     ReceivedMsgMax=32
00085	     bClientMessages=True
00086	     bTeamMessages=True
00087	     bLocalizedMessages=True
00088	}

End Source Code