XIDInterf
Class XIIIMenuMultiLANHost

source: C:\XIII\XIDInterf\Classes\XIIIMenuMultiLANHost.uc
Core.Object
   |
   +--GUI.GUI
      |
      +--GUI.GUIComponent
         |
         +--GUI.GUIMultiComponent
            |
            +--GUI.GUIPage
               |
               +--XIDInterf.XIIIWindow
                  |
                  +--XIDInterf.XIIIWindowMainMenu
                     |
                     +--XIDInterf.XIIIMenuMultiBase
                        |
                        +--XIDInterf.XIIIMenuMultiLANHost
Direct Known Subclasses:None

class XIIIMenuMultiLANHost
extends XIDInterf.XIIIMenuMultiBase

//============================================================================ // Host LAN game menu (XBOX) // //============================================================================
Variables
 XIIICheckBoxControl FriendlyCheck
 int GameTypeIndex
 bool Initialized
 string Map
 GameCombo, MapCombo
 Array MapsUNRList
 OnTime, MaxPlayerValue
 XIIIEditCtrl ServerNameEdit
 StartText, ServerNameText
 XIIIButton StartGame
 FragEdit, TimeEdit
 FragLimit, TimeLimit
 string URL
 bool bMsgDisconnectedDisplayed
 XIIIMsgBox msgbox
 string networkcableDisconnectedString
 sBackground[7], sHighlight
 tBackGround[7], tHighlight


Function Summary
 void AfterCreate()
 void Created()
     
//============================================================================
 void FragChanged()
 void GameChanged()
 string GenerateAdminPassword()
 string GetPageParameters()
     
// if subclassed, this parent function must always be called first
 bool InternalOnKeyEvent(out byte, out byte, float delta)
 void IterateGames()
 void IterateMaps()
 void MapChanged()
 void MsgBoxBtnClicked(byte bButton)
 void Paint(Canvas C, float X, float Y)
 void SaveConfigs()
 void SetPageParameters(string PageParameters)
     
// if GetPageParameters() is subclassed, you'd better have this one too !
 void StartPressed()
 void TimeChanged()



Source Code


00001	//============================================================================
00002	// Host LAN game menu (XBOX)
00003	//
00004	//============================================================================
00005	class XIIIMenuMultiLANHost extends XIIIMenuMultiBase;
00006	
00007	
00008	var config string Map;
00009	var config int GameTypeIndex;
00010	
00011	var XIIIComboControl GameCombo, MapCombo;
00012	var XIIICheckboxControl FriendlyCheck;
00013	var XIIIValueControl PlayerCombo, FragEdit, TimeEdit;
00014	var XIIIButton StartGame;
00015	VAR XIIIEditCtrl ServerNameEdit;
00016	
00017	var Array<string> MapsUNRList;
00018	var XIIIMsgBox msgbox;
00019	
00020	var localized string networkcableDisconnectedString;
00021	
00022	var bool bMsgDisconnectedDisplayed;
00023	
00024	var localized string TitleText, GameText, MapText, PlayerText, FriendlyText, FragText, TimeText, StartText, ServerNameText;
00025	
00026	var texture tBackGround[7], tHighlight;
00027	var string sBackground[7], sHighlight;
00028	
00029	var bool Initialized;
00030	
00031	var int OnPlayer, OnGame, OnMap, OnFrag, OnTime, MaxPlayerValue;
00032	
00033	var int MaxPlayers, WinningScore, MaxTime, NbBots, IdealPC, N, FriendlyFire, FragLimit, TimeLimit;
00034	
00035	var string URL;
00036	
00037	
00038	
00039	//============================================================================
00040	function Created()
00041	{
00042	    local int i,y;
00043	
00044	    Super.Created();
00045	    
00046	    bMsgDisconnectedDisplayed = false;
00047	
00048		AllowedGameTypeIndex[0]=DeathmatchIndex;
00049		AllowedGameTypeIndex[1]=TeamDeathmatchIndex;
00050		AllowedGameTypeIndex[2]=CaptureTheFlagIndex;
00051		AllowedGameTypeIndex[3]=SabotageIndex;
00052	
00053	    bShowBCK = true;
00054	    bShowSEL = true;
00055	
00056		for (i=0; i<7; i++)
00057			tBackGround[i] = texture(DynamicLoadObject(sBackGround[i], class'Texture'));
00058	
00059		tHighlight = texture(DynamicLoadObject(sHighlight, class'Texture'));
00060	
00061		y=70;
00062		// ServerName
00063		ServerNameEdit = XIIIEditCtrl(CreateControl(class'XIIIEditCtrl', 288, y*fScaleTo, 300, 28));
00064		ServerNameEdit.TitleText= ServerNameText;
00065		ServerNameEdit.Text = "XIIIServer";
00066		ServerNameEdit.bCalculateSize = false;
00067		ServerNameEdit.FirstBoxWidth = 160;
00068	
00069		y+=45;
00070	
00071		// Players
00072		PlayerCombo = XIIIValueControl(CreateControl(class'XIIIValueControl', 288, y*fScaleTo, 300, 32));
00073		PlayerCombo.Text = PlayerText;
00074		PlayerCombo.bCalculateSize = false;
00075		PlayerCombo.FirstBoxWidth = 200;
00076		y+=45;
00077	
00078		// Game Type
00079		GameCombo = XIIIComboControl(CreateControl(class'XIIIComboControl', 288, y*fScaleTo, 300, 32));
00080		GameCombo.Text = GameText;
00081		//GameCombo.bSmallFont = true;
00082		GameCombo.bArrows = true;
00083		y+=45;
00084		
00085		// Map
00086		MapCombo = XIIIComboControl(CreateControl(class'XIIIComboControl', 288, y*fScaleTo, 300, 32));
00087		MapCombo.Text = MapText;
00088		MapCombo.bArrows = true;
00089		MapCombo.bCalculateSize = false;
00090		MapCombo.FirstBoxWidth = 160;
00091		y+=45;
00092	
00093		// Frag Limit
00094		FragEdit = XIIIValueControl(CreateControl(class'XIIIValueControl', 288, y*fScaleTo, 300, 32));
00095		FragEdit.Text = FragText;
00096		FragEdit.bCalculateSize = false;
00097		FragEdit.FirstBoxWidth = 200;
00098		FragEdit.SetRange(0,500);
00099		y+=45;
00100	
00101		// Time Limit
00102		TimeEdit = XIIIValueControl(CreateControl(class'XIIIValueControl', 288, y*fScaleTo, 300, 32));
00103		TimeEdit.Text = TimeText;
00104		TimeEdit.bCalculateSize = false;
00105		TimeEdit.FirstBoxWidth = 175;
00106		TimeEdit.SetRange(0,60);
00107		y+=45;
00108	
00109		// friendly fire
00110		FriendlyCheck = XIIICheckboxControl(CreateControl(class'XIIICheckboxControl', 288, y*fScaleTo, 300, 29));
00111		FriendlyCheck.Text = FriendlyText;
00112		FriendlyCheck.bWhiteColorOnlyWhenFocused = true;
00113	y+=45;
00114	
00115		// start game button
00116		StartGame = XIIIButton(CreateControl(class'XIIIButton', 360, y*fScaleTo, 140, 32));
00117		StartGame.Text = StartText;
00118	
00119	Controls[0] = ServerNameEdit;
00120		Controls[1] = PlayerCombo;
00121		Controls[2] = GameCombo;
00122		Controls[3] = MapCombo;
00123		Controls[4] = FragEdit;
00124		Controls[5] = TimeEdit;
00125		Controls[6] = FriendlyCheck;
00126		Controls[7] = StartGame;
00127	
00128		IterateGames();
00129	
00130		AfterCreate();
00131	
00132		GotoState('ReinitMusic');
00133	}
00134	
00135	FUNCTION IterateGames()
00136	{
00137		local int i;
00138		
00139		for (i=0;i<AllowedGameTypeIndex.Length;i++)
00140		{
00141			GameCombo.AddItem(GetGameTypeText(i));
00142		}
00143	
00144		OnGame = 0;
00145		GameCombo.SetSelectedIndex(0);
00146		
00147		Initialized = true;
00148		GameChanged();
00149	}
00150	
00151	FUNCTION IterateMaps()
00152	{
00153		LOCAL Array<string> MapDescList;
00154		LOCAL int i;
00155	
00156		GetMapArray( OnGame, MapDescList, MapsUNRList );
00157	
00158		MapCombo.Clear();
00159		for( i=0; i<MapDescList.Length; i++ )
00160			MapCombo.AddItem( MapDescList[i] );
00161	
00162		OnMap = 0;
00163		MapCombo.SetSelectedIndex(0);
00164	}
00165	
00166	function AfterCreate()
00167	{
00168		OnMenu = 0;
00169		
00170		IdealPC = int( Mid( MapCombo.GetValue(), 1 ) );
00171		PlayerCombo.SetRange(1,int(Mid(MapCombo.GetValue(),1)));
00172		
00173		OnPlayer = Max(1,IdealPC);
00174		PlayerCombo.SetValue(OnPlayer);
00175		
00176		OnFrag = WinningScore;
00177		FragEdit.SetValue(OnFrag);
00178		if (OnFrag == 0)
00179			FragEdit.sValue ="-";
00180		
00181		OnTime = MaxTime;
00182		TimeEdit.SetValue(OnTime);
00183		if (OnTime == 0)
00184			TimeEdit.sValue ="-";
00185		else
00186			TimeEdit.sValue = TimeEdit.sValue@"Min.";
00187	}
00188	
00189	function MsgBoxBtnClicked(byte bButton)
00190	{
00191	    if ((bButton & QBTN_Ok) != 0)       // ok to overwrite
00192	    {
00193	        bMsgDisconnectedDisplayed = false;
00194	        myRoot.CloseMenu();
00195	    }
00196	}
00197	
00198	function Paint(Canvas C, float X, float Y)
00199	{
00200	    local float fScale, fHeight, W, H;
00201	    local int i;
00202	
00203	    Super.Paint(C,X,Y);
00204	    
00205	   	if (myRoot.CableDisconnected && !bMsgDisconnectedDisplayed)
00206		{
00207	        Controller.OpenMenu("XIDInterf.XIIIMsgBox",false);
00208	        msgbox = XIIIMsgBox(myRoot.ActivePage);
00209	        msgbox.SetupQuestion(networkcableDisconnectedString, QBTN_Ok, QBTN_Ok);
00210	        msgbox.OnButtonClick=MsgBoxBtnClicked;
00211	        msgbox.InitBox(120, 130, 10, 10, 400, 230);
00212	        
00213	        bMsgDisconnectedDisplayed = true;
00214		}
00215	
00216	
00217		DrawStretchedTexture(C, 253*fRatioX, 54*fRatioY, 353*fRatioX, 377*fScaleTo*fRatioY, myRoot.tFondNoir);
00218	
00219		fHeight = (373 / 192) * 64 * fScaleTo; // (sum_back.height/sum_tex.height) * tex_height
00220		DrawStretchedTexture(C, 255*fRatioX, 56*fRatioY, 349*fRatioX, fHeight*fRatioY, tBackGround[0]);
00221		DrawStretchedTexture(C, 255*fRatioX, (56+fHeight)*fRatioY, 349*fRatioX, fHeight*fRatioY, tBackGround[1]);
00222		DrawStretchedTexture(C, 255*fRatioX, (56+2*fHeight)*fRatioY, 349*fRatioX, fHeight*fRatioY, tBackGround[2]);
00223	
00224		OnMenu = FindComponentIndex(FocusedControl);
00225		C.Style = 5;
00226		C.DrawColor.A = 180;
00227		DrawStretchedTexture(C, 255*fRatioX, ((65+OnMenu*45)*fScaleTo)*fRatioY, 349*fRatioX, 40*fRatioY, tHighlight);//OnMenu]);
00228		C.DrawColor.A = 255;
00229		DrawStretchedTexture(C, 41*fRatioX, 88*fRatioY, 242*fRatioX, 170*fScaleTo*fRatioY, tBackGround[5]);
00230		DrawStretchedTexture(C, 41*fRatioX, (88+170*fScaleTo)*fRatioY, 242*fRatioX, 170*fScaleTo*fRatioY, tBackGround[6]);
00231		C.Style = 1;
00232	
00233		C.bUseBorder = true;
00234		C.TextSize(TitleText, W, H);
00235		DrawStretchedTexture(C, (155-W*0.5-5)*fRatioX, 40*fRatioY, (W+10)*fRatioX, 40*fRatioY, myRoot.FondMenu);
00236		C.DrawColor = BlackColor;
00237		C.SetPos( 155-W*0.5*fRatioX, (60-H/2)*fRatioY);
00238		C.DrawText( TitleText, false);
00239		C.bUseBorder = false;
00240		C.DrawColor = WhiteColor;
00241	}
00242	
00243	
00244	function bool InternalOnKeyEvent(out byte Key, out byte State, float delta)
00245	{
00246		local int OldOnGame;
00247		
00248		if ((State==1) || (state==2))// IST_Press // to avoid auto-repeat
00249		{
00250			if (Key==0x0D/*IK_Enter*/)
00251			{
00252				if (FocusedControl == StartGame && Len(ServerNameEdit.Text)>=1)// at least one letter
00253					StartPressed();
00254				return true;
00255			}
00256			if ((Key==0x08/*IK_Backspace*/)|| (Key==0x1B))
00257			{
00258				myRoot.CloseMenu(true);
00259				return true;
00260			}
00261			if (Key==0x26/*IK_Up*/)
00262			{
00263				PrevControl(FocusedControl);
00264				return true;
00265			}
00266			if (Key==0x28/*IK_Down*/)
00267			{
00268				NextControl(FocusedControl);
00269				return true;
00270			}
00271			if ((Key==0x25) || (Key==0x27))
00272			{
00273				OnMenu = FindComponentIndex(FocusedControl);
00274				if (FocusedControl==PlayerCombo)
00275				{
00276					if (Key==0x25) OnPlayer--;
00277					if (Key==0x27) OnPlayer++;
00278					OnPlayer = Clamp(OnPlayer,1,int(Mid(MapCombo.GetValue(),1)));
00279					PlayerCombo.SetValue(OnPlayer);
00280				}
00281				else if (FocusedControl==GameCombo)
00282				{
00283					OldOnGame = OnGame;
00284					if (Key==0x25) OnGame--;
00285					if (Key==0x27) OnGame++;
00286					OnGame = Clamp(OnGame,0,AllowedGameTypeIndex.Length - 1);
00287					if ( OldOnGame != OnGame )
00288					{
00289						GameCombo.SetSelectedIndex(OnGame);
00290						GameChanged();
00291						OnPlayer = Clamp(OnPlayer,1,int(Mid(MapCombo.GetValue(),1)));
00292						PlayerCombo.SetRange(1,int(Mid(MapCombo.GetValue(),1)));
00293						PlayerCombo.SetValue(OnPlayer);
00294					}
00295				}
00296				else if (FocusedControl == MapCombo )
00297				{
00298					if (Key==0x25) OnMap--;
00299					if (Key==0x27) OnMap++;
00300					OnMap = Clamp(OnMap,0,MapsUNRList.Length - 1);
00301					MapCombo.SetSelectedIndex(OnMap);
00302					OnPlayer = Clamp(OnPlayer,1,int(Mid(MapCombo.GetValue(),1)));
00303					PlayerCombo.SetRange(1,int(Mid(MapCombo.GetValue(),1)));
00304					PlayerCombo.SetValue(OnPlayer);
00305				}
00306				if (FocusedControl == FragEdit )
00307				{
00308					if (Key==0x25)
00309						if ( OnFrag <= 100 )
00310							OnFrag -= 10;
00311						else
00312							OnFrag -= 50;
00313					if (Key==0x27)
00314						if ( OnFrag >= 100 )
00315							OnFrag += 50;
00316						else
00317							OnFrag += 10;
00318					OnFrag = Clamp(OnFrag,0,500);
00319					FragEdit.SetValue(OnFrag);
00320					if (OnFrag == 0) FragEdit.sValue ="-";
00321				}
00322				else if (FocusedControl == TimeEdit )
00323				{
00324					if (Key==0x25) OnTime-=5;
00325					if (Key==0x27) OnTime+=5;
00326					OnTime = Clamp(OnTime,0,60);
00327					TimeEdit.SetValue(OnTime);
00328					if (OnTime == 0)
00329						TimeEdit.sValue ="-";
00330					else
00331						TimeEdit.sValue = TimeEdit.sValue@"Min.";
00332				}
00333				else if (FocusedControl == FriendlyCheck )
00334				{
00335					if (Key==0x25)
00336						FriendlyCheck.bChecked = true;
00337					else
00338						if (Key==0x27)
00339							FriendlyCheck.bChecked = false;
00340				}
00341				return true;
00342			}
00343		}
00344		return super.InternalOnKeyEvent(Key, state, delta);
00345	}
00346	
00347	
00348	function GameChanged()
00349	{
00350		local int CurrentGame, i;
00351	
00352		if (Initialized)
00353		{
00354			OnMap = 0;
00355			Initialized=false;
00356	
00357			CurrentGame = GameCombo.GetSelectedIndex();
00358	
00359			if (MapCombo != None)
00360				IterateMaps();
00361	
00362			// friendly fire is visible in Team Deathmatch, Capture The Flag and Sabotage modes
00363			if ( HasFriendlyFire( OnGame ) )
00364			{
00365				FriendlyCheck.bNeverFocus = false;
00366				FriendlyCheck.bVisible = true;
00367			}
00368			else
00369			{
00370				FriendlyCheck.bNeverFocus = true;
00371				FriendlyCheck.bVisible = false;
00372			}
00373	
00374			// time limit and points limit are not visible in Sabotage mode
00375			if ( HasTimeAndFragLimits( OnGame ) )
00376			{
00377				TimeEdit.bNeverFocus = false;
00378				TimeEdit.bVisible = true;
00379				FragEdit.bNeverFocus = false;
00380				FragEdit.bVisible = true;
00381			}
00382			else
00383			{
00384				TimeEdit.bNeverFocus = true;
00385				TimeEdit.bVisible = false;			
00386				FragEdit.bNeverFocus = true;
00387				FragEdit.bVisible = false;
00388			}
00389			Initialized = true;
00390		}
00391	}
00392	
00393	
00394	function MapChanged()
00395	{
00396	     if (Initialized)
00397	     {
00398			 Map = MapsUNRList[OnMap];
00399	     }
00400	}
00401	
00402	
00403	function FragChanged()
00404	{
00405	     if (Initialized)
00406	     {
00407	          FragEdit.SetValue(OnFrag);
00408			  if (OnFrag == 0)
00409				  FragEdit.sValue ="-";	
00410	     }
00411	}
00412	
00413	
00414	function TimeChanged()
00415	{
00416	     if (Initialized)
00417	     {
00418	          TimeEdit.SetValue(OnTime);
00419			  if (OnTime == 0)
00420				  TimeEdit.sValue ="-";
00421			  else
00422				  TimeEdit.sValue = TimeEdit.sValue@"Min.";
00423	     }
00424	}
00425	
00426	
00427	
00428	function StartPressed()
00429	{
00430		local int i, N, IdealPC, FriendlyFire;
00431		local string MyClass, SkinCode, AdminPassword, MyName, Mutator, MyTeam;
00432	
00433	    N = PlayerCombo.GetValue();
00434	
00435		IdealPC = int( Mid( MapCombo.GetValue(), 1 ) );
00436	
00437		FriendlyFire = int(FriendlyCheck.bChecked);
00438	
00439		// one viewport only
00440	    GetPlayerOwner().ConsoleCommand("SetViewPortNumberForNextMap "$1);
00441	
00442		// skin
00443		MyClass = GetPlayerOwner().GetDefaultURL("MySkin");
00444		SkinCode = class'MeshSkinList'.default.MeshSkinListInfo[0].SkinCode;
00445		for (i=0;i<class'MeshSkinList'.default.MeshSkinListInfo.Length;i++)
00446		{
00447			if ( MyClass == class'MeshSkinList'.default.MeshSkinListInfo[i].SkinName )
00448			{
00449				SkinCode = class'MeshSkinList'.default.MeshSkinListInfo[i].SkinCode;
00450				break;
00451			}
00452		}
00453	
00454		MapChanged();
00455		TimeChanged();
00456		FragChanged();
00457	
00458		URL =
00459			Map$
00460			"?listen"$
00461			"?LAN"$
00462			"?SN="$ServerNameEdit.Text$
00463			"?Game="$GetGameInfoText(OnGame)$
00464			"?GameIdx="$OnGame$
00465			"?MapIdx="$GameMapsIndex[OnMap]$
00466			"?IP="$IdealPC$
00467			"?NP="$N$
00468			"?FF="$FriendlyFire$
00469			"?FR="$OnFrag$
00470			"?TI="$OnTime$
00471			"?SK="$SkinCode;
00472		Mutator = GetMutatorText( OnGame );
00473		if ( Mutator!="" )
00474			URL = URL$"?Mutator="$Mutator;
00475	
00476		// name selection
00477		MyName = GetPlayerOwner().GetDefaultURL("MyName");
00478		if (MyName == "")
00479			MyName = GetPlayerOwner().GetDefaultURL("Name");
00480		URL = URL$"?Name="$MyName;
00481	
00482		// team selection
00483		MyTeam = GetPlayerOwner().GetDefaultURL("MyTeam");
00484		if (MyTeam == "")
00485			MyTeam = GetPlayerOwner().GetDefaultURL("Team");
00486		URL = URL$"?team="$MyTeam;
00487	
00488	    SaveConfigs();
00489	
00490	    AdminPassword = GenerateAdminPassword();        // one shot password
00491	    URL = URL$"?AdminPassword="$AdminPassword$"?Password="$AdminPassword;
00492	
00493		// launch the server !!
00494		myRoot.bProfileMenu = false;
00495		myRoot.CloseAll(true);
00496		myRoot.GotoState('');
00497		GetPlayerOwner().AttribPadToViewport();
00498		log("TRAVELLING w/URL: "$URL);
00499		GetPlayerOwner().ClientTravel(URL, TRAVEL_Absolute, false);
00500	}
00501	
00502	
00503	
00504	function string GenerateAdminPassword()
00505	{
00506	    local int i;
00507	    local string Source, Result;
00508	
00509	    Source = "0123456789abcdefghijklmnopqrstuvwxyz";
00510	
00511	    for (i=Rand(20)+10; i>0; i--)
00512	    {
00513	        Result = Result$Mid(Source, Rand(Len(Source)-1), 1);
00514	    }
00515	
00516	    return Result;
00517	}
00518	
00519	
00520	
00521	function SaveConfigs()
00522	{
00523	     SaveConfig();
00524	     GetPlayerOwner().SaveConfig();
00525	     GetPlayerOwner().PlayerReplicationInfo.SaveConfig();
00526	}
00527	
00528	
00529	
00530	// if subclassed, this parent function must always be called first
00531	function string GetPageParameters()
00532	{
00533	    return Super.GetPageParameters()$"?NbOfPlayers="$PlayerCombo.GetValue()$"?GameType="$GameCombo.GetSelectedIndex()$"?MapName="$MapCombo.GetSelectedIndex()$"?FragLimit="$FragEdit.GetValue()$"?TimeLimit="$TimeEdit.GetValue()$"?Friendly="$FriendlyCheck.bChecked$"?ServerName="$ServerNameEdit.Text;
00534	}
00535	
00536	// if GetPageParameters() is subclassed, you'd better have this one too !
00537	function SetPageParameters(string PageParameters)
00538	{
00539	    log("SetPageParameters("$PageParameters$") called for "$self);
00540	
00541	    OnGame = int(localParseOption(PageParameters, "GameType", "0"));
00542	    GameCombo.SetSelectedIndex(OnGame);
00543	    GameChanged();
00544	
00545	    OnMap = int(localParseOption(PageParameters, "MapName", "0"));
00546	    MapCombo.SetSelectedIndex(OnMap);
00547	    MapChanged();
00548		PlayerCombo.SetRange(1,int(Mid(MapCombo.GetValue(),1)));
00549	
00550	    OnPlayer = int(localParseOption(PageParameters, "NbOfPlayers", "1"));
00551	    PlayerCombo.SetValue(OnPlayer);
00552	
00553	    OnFrag = int(localParseOption(PageParameters, "FragLimit", "0"));
00554	    //FragEdit.SetValue(OnFrag);
00555	    FragChanged();
00556	
00557	    OnTime = int(localParseOption(PageParameters, "TimeLimit", "0"));
00558	    //TimeEdit.SetValue(OnTime);
00559	    TimeChanged();
00560	
00561	    FriendlyCheck.bChecked = (Caps(localParseOption(PageParameters, "Friendly", "")) == "TRUE");
00562	
00563	    ServerNameEdit.SetText( localParseOption( PageParameters, "ServerName", "XIIIServer") );
00564	}
00565	
00566	
00567	
00568	
00569	
00570	
00571	
00572	
00573	defaultproperties
00574	{
00575	     TitlePCText="LAN Host"
00576	     GameText="Game Type"
00577	     MapText="Map Name"
00578	     PlayerText="Number of Player(s)"
00579	     FriendlyText="Friendly Fire"
00580	     FragText="Points Limit"
00581	     TimeText="Time Limit"
00582	     OKText="Create"
00583	     ServerNameText="Server Name"
00584	     sBackground(0)="XIIIMenuStart.multi_Bg01"
00585	     sBackground(1)="XIIIMenuStart.multi_Bg02"
00586	     sBackground(2)="XIIIMenuStart.multi_Bg03"
00587	     sBackground(5)="XIIIMenuStart.Characters01"
00588	     sBackground(6)="XIIIMenuStart.Characters02"
00589	     sHighlight="XIIIMenuStart.barreselectmenuoptadv"
00590	     WinningScore=10
00591	     MaxTime=5
00592	     MaxScore=10
00593	     bUseDefaultBackground=False
00594	     hSoundMenu2=Sound'XIIIsound.Interface__AmbianceMenu.AmbianceMenu__hMulti2'
00595	     bForceHelp=True
00596	}

End Source Code