UnrealShare
Class UnrealListenMenu

source: e:\games\UnrealTournament\UnrealShare\Classes\UnrealListenMenu.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Menu
         |
         +--UnrealShare.UnrealMenu
            |
            +--UnrealShare.UnrealLongMenu
               |
               +--UnrealShare.UnrealListenMenu
Direct Known Subclasses:None

class UnrealListenMenu
extends UnrealShare.UnrealLongMenu

//============================================================================= // UnrealListenMenu //=============================================================================
Variables
 string LastServer
 float ListenTimer
 InternetInfo receiver


Function Summary
 void Destroyed()
 void DrawMenu(Canvas Canvas)
 void PostBeginPlay()
 bool ProcessSelection()



Source Code


00001	//=============================================================================
00002	// UnrealListenMenu
00003	//=============================================================================
00004	class UnrealListenMenu extends UnrealLongMenu;
00005	
00006	var string LastServer;
00007	var InternetInfo receiver;
00008	var float ListenTimer;
00009	
00010	function PostBeginPlay()
00011	{
00012		local class<InternetInfo> C;
00013	
00014		Super.PostBeginPlay();
00015		C = class<InternetInfo>(DynamicLoadObject("IpDrv.ClientBeaconReceiver", class'Class'));
00016		receiver = spawn(C);
00017	}
00018	
00019	function Destroyed()
00020	{
00021		Super.Destroyed();
00022		if ( receiver != None )
00023			receiver.Destroy();
00024	}
00025	
00026	function bool ProcessSelection()
00027	{
00028		local Menu ChildMenu;
00029	
00030		if ( MenuLength == 0 )
00031			return false;
00032	
00033		if ( MenuList[Selection] == "" )
00034			return false;
00035	
00036		ChildMenu = spawn(class'UnrealMeshMenu', owner);
00037		UnrealMeshMenu(ChildMenu).StartMap = Receiver.GetBeaconAddress(Selection - 1)$"?LAN";
00038	
00039		if ( ChildMenu != None )
00040		{
00041			HUD(Owner).MainMenu = ChildMenu;
00042			ChildMenu.ParentMenu = self;
00043			ChildMenu.PlayerOwner = PlayerOwner;
00044		}
00045		return true;
00046	}
00047	
00048	function DrawMenu(canvas Canvas)
00049	{
00050		local int StartX, StartY, Spacing, i;
00051		
00052		DrawBackGround(Canvas, false);	
00053		DrawTitle(Canvas);
00054	
00055		MenuLength = 0;
00056		for( i=0; i<16; i++ )
00057		{
00058			if( Receiver.GetBeaconAddress(i) != "" )
00059			{
00060				MenuLength++;
00061				MenuList[i+1] = Receiver.GetBeaconText(i);
00062			}
00063		}
00064	
00065		if ( MenuLength == 0 )	
00066			return;
00067		else if ( Selection == 0 )
00068			Selection = 1;
00069	
00070		Spacing = Clamp(0.08 * Canvas.ClipY, 12, 32);
00071		StartX = Max(20, 0.5 * Canvas.ClipX - 124);
00072		StartY = Max(40, 0.5 * (Canvas.ClipY - 3 * Spacing - 128));
00073	
00074		DrawList(Canvas, false, Spacing, StartX, StartY); 
00075	
00076		DrawHelpPanel(Canvas, StartY + MenuLength * Spacing + 8, 228);
00077	}
00078	
00079	defaultproperties
00080	{
00081	     HelpMessage(1)="Hit Enter to select this server."
00082	     HelpMessage(2)="Hit Enter to select this server."
00083	     HelpMessage(3)="Hit Enter to select this server."
00084	     HelpMessage(4)="Hit Enter to select this server."
00085	     HelpMessage(5)="Hit Enter to select this server."
00086	     HelpMessage(6)="Hit Enter to select this server."
00087	     HelpMessage(7)="Hit Enter to select this server."
00088	     HelpMessage(8)="Hit Enter to select this server."
00089	     HelpMessage(9)="Hit Enter to select this server."
00090	     HelpMessage(10)="Hit Enter to select this server."
00091	     HelpMessage(11)="Hit Enter to select this server."
00092	     HelpMessage(12)="Hit Enter to select this server."
00093	     HelpMessage(13)="Hit Enter to select this server."
00094	     HelpMessage(14)="Hit Enter to select this server."
00095	     HelpMessage(15)="Hit Enter to select this server."
00096	     HelpMessage(16)="Hit Enter to select this server."
00097	     HelpMessage(17)="Hit Enter to select this server."
00098	     HelpMessage(18)="Hit Enter to select this server."
00099	     HelpMessage(19)="Hit Enter to select this server."
00100	     MenuTitle="LOCAL SERVERS"
00101	}

End Source Code