## 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