RMenu
Class RuneMenuCustomizeClientWindow

source: c:\runehov\RMenu\Classes\RuneMenuCustomizeClientWindow.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowClientWindow
            |
            +--UWindow.UWindowDialogClientWindow
               |
               +--UWindow.UWindowPageWindow
                  |
                  +--RMenu.RuneMenuPageWindow
                     |
                     +--RMenu.RuneMenuCustomizeClientWindow
Direct Known Subclasses:None

class RuneMenuCustomizeClientWindow
extends RMenu.RuneMenuPageWindow


Variables
 int AliasCount
 string AliasNames[70]
 int BoundKey1[70]
 int BoundKey2[70]
 string CustomizeHelp
 UWindowSmallButton DefaultsButton
 string DefaultsHelp
 string DefaultsText
 string JoyXBinding[2]
 UWindowComboControl JoyXCombo
 string JoyXHelp
 string JoyXOptions[2]
 string JoyXText
 string JoyYBinding[2]
 UWindowComboControl JoyYCombo
 string JoyYHelp
 string JoyYOptions[2]
 string JoyYText
 RuneMenuLabelControl JoystickHeading
 string JoystickText
 RuneMenuRaisedButton KeyButtons[70]
 RuneMenuLabelControl KeyNames[70]
 string LabelList[70]
 string LocalizedKeyName[255]
 JoyDesiredHeight, NoJoyDesiredHeight
 string OrString
 string RealKeyName[255]
 RuneMenuRaisedButton SelectedButton
 int Selection
 bool bJoystick
 bool bLoadedExisting
 bool bPolling


Function Summary
 void BeforePaint(Canvas C, float X, float Y)
 void Created()
 void GetDesiredDimensions(out float, out float)
 void KeyDown(int Key, float X, float Y)
 void LoadExistingKeys()
 void Notify(UWindowDialogControl C, byte E)
 void ProcessMenuKey(int KeyNo, string KeyName)
 void RemoveExistingKey(int KeyNo, string KeyName)
 void SetKey(int KeyNo, string KeyName)
 void WindowShown()



Source Code


00001	class RuneMenuCustomizeClientWindow extends RuneMenuPageWindow;
00002	
00003	var localized string LocalizedKeyName[255];
00004	var string RealKeyName[255];
00005	var int BoundKey1[70];
00006	var int BoundKey2[70];
00007	var RuneMenuLabelControl KeyNames[70];
00008	var RuneMenuRaisedButton KeyButtons[70];
00009	var RuneMenuRaisedButton SelectedButton;
00010	var localized string LabelList[70];
00011	var string AliasNames[70];
00012	var int Selection;
00013	var bool bPolling;
00014	var localized string OrString;
00015	var localized string CustomizeHelp;
00016	
00017	var UWindowSmallButton DefaultsButton;
00018	var localized string DefaultsText;
00019	var localized string DefaultsHelp;
00020	
00021	var RuneMenuLabelControl JoystickHeading;
00022	var localized string JoystickText;
00023	
00024	var UWindowComboControl JoyXCombo;
00025	var localized string JoyXText;
00026	var localized string JoyXHelp;
00027	var localized string JoyXOptions[2];
00028	var string JoyXBinding[2];
00029	
00030	var UWindowComboControl JoyYCombo;
00031	var localized string JoyYText;
00032	var localized string JoyYHelp;
00033	var localized string JoyYOptions[2];
00034	var string JoyYBinding[2];
00035	
00036	var int AliasCount;
00037	var bool bLoadedExisting;
00038	var bool bJoystick;
00039	var float JoyDesiredHeight, NoJoyDesiredHeight;
00040	
00041	function Created()
00042	{
00043		local int ButtonWidth, ButtonLeft, ButtonTop, I, J, pos;
00044		local int LabelWidth, LabelLeft;
00045		local RuneMenuLabelControl Heading;
00046		local bool bTop;
00047	
00048		bIgnoreLDoubleClick = True;
00049		bIgnoreMDoubleClick = True;
00050		bIgnoreRDoubleClick = True;
00051	
00052		bJoystick =	bool(GetPlayerOwner().ConsoleCommand("get windrv.windowsclient usejoystick"));
00053	
00054		Super.Created();
00055	
00056		SetAcceptsFocus();
00057	
00058		ButtonWidth = WinWidth - 140;
00059		ButtonLeft = WinWidth - ButtonWidth - 40;
00060	
00061		LabelWidth = WinWidth - 100;
00062		LabelLeft = 20;
00063	
00064		// Defaults Button
00065		DefaultsButton = UWindowSmallButton(CreateControl(class'UWindowSmallButton', 30, 10, 48, 16));
00066		DefaultsButton.SetText(DefaultsText);
00067		DefaultsButton.SetFont(F_Normal);
00068		DefaultsButton.SetHelpText(DefaultsHelp);
00069		
00070		ButtonTop = 25;
00071		bTop = True;
00072		for (I=0; I<ArrayCount(AliasNames); I++)
00073		{
00074			if(AliasNames[I] == "")
00075				break;
00076	
00077			j = InStr(LabelList[I], ",");
00078			if(j != -1)
00079			{
00080				if(!bTop)
00081					ButtonTop += 10;
00082				Heading = RuneMenuLabelControl(CreateControl(class'RuneMenuLabelControl', LabelLeft-10, ButtonTop+3, WinWidth, 1));
00083				Heading.SetText(Left(LabelList[I], j));
00084				Heading.SetFont(F_Bold);
00085				LabelList[I] = Mid(LabelList[I], j+1);
00086				ButtonTop += 19;
00087			}
00088			bTop = False;
00089	
00090			KeyNames[I] = RuneMenuLabelControl(CreateControl(class'RuneMenuLabelControl', LabelLeft, ButtonTop+3, LabelWidth, 1));
00091			KeyNames[I].SetText(LabelList[I]);
00092			KeyNames[I].SetHelpText(CustomizeHelp);
00093			KeyNames[I].SetFont(F_Normal);
00094			KeyButtons[I] = RuneMenuRaisedButton(CreateControl(class'RuneMenuRaisedButton', ButtonLeft, ButtonTop, ButtonWidth, 1));
00095			KeyButtons[I].SetHelpText(CustomizeHelp);
00096			KeyButtons[I].bAcceptsFocus = False;
00097			KeyButtons[I].bIgnoreLDoubleClick = True;
00098			KeyButtons[I].bIgnoreMDoubleClick = True;
00099			KeyButtons[I].bIgnoreRDoubleClick = True;
00100			ButtonTop += 19;
00101		}
00102		AliasCount = I;
00103	
00104		NoJoyDesiredHeight = ButtonTop + 10;
00105	
00106		// Joystick
00107		ButtonTop += 10;
00108		JoystickHeading = RuneMenuLabelControl(CreateControl(class'RuneMenuLabelControl', LabelLeft-10, ButtonTop+3, WinWidth, 1));
00109		JoystickHeading.SetText(JoystickText);
00110		JoystickHeading.SetFont(F_Bold);
00111		LabelList[I] = Mid(LabelList[I], j+1);
00112		ButtonTop += 19;
00113	
00114		JoyXCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', 20, ButtonTop, WinWidth - 40, 1));
00115		JoyXCombo.CancelAcceptsFocus();
00116		JoyXCombo.SetText(JoyXText);
00117		JoyXCombo.SetHelpText(JoyXHelp);
00118		JoyXCombo.SetFont(F_Normal);
00119		JoyXCombo.SetEditable(False);
00120		JoyXCombo.AddItem(JoyXOptions[0]);
00121		JoyXCombo.AddItem(JoyXOptions[1]);
00122		JoyXCombo.EditBoxWidth = ButtonWidth;
00123		ButtonTop += 20;
00124	
00125		JoyYCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', 20, ButtonTop, WinWidth - 40, 1));
00126		JoyYCombo.CancelAcceptsFocus();
00127		JoyYCombo.SetText(JoyYText);
00128		JoyYCombo.SetHelpText(JoyYHelp);
00129		JoyYCombo.SetFont(F_Normal);
00130		JoyYCombo.SetEditable(False);
00131		JoyYCombo.AddItem(JoyYOptions[0]);
00132		JoyYCombo.AddItem(JoyYOptions[1]);
00133		JoyYCombo.EditBoxWidth = ButtonWidth;
00134		ButtonTop += 20;
00135	
00136		LoadExistingKeys();
00137	
00138		DesiredWidth = 220;
00139		JoyDesiredHeight = ButtonTop + 10;
00140		DesiredHeight = JoyDesiredHeight;
00141	}
00142	
00143	function WindowShown()
00144	{
00145		Super.WindowShown();
00146		bJoystick =	bool(GetPlayerOwner().ConsoleCommand("get windrv.windowsclient usejoystick"));
00147	}
00148	
00149	function LoadExistingKeys()
00150	{
00151		local int I, J, pos;
00152		local string KeyName;
00153		local string Alias;
00154	
00155		for (I=0; I<AliasCount; I++)
00156		{
00157			BoundKey1[I] = 0;
00158			BoundKey2[I] = 0;
00159		}
00160	
00161		for (I=0; I<255; I++)
00162		{
00163			KeyName = GetPlayerOwner().ConsoleCommand( "KEYNAME "$i );
00164			RealKeyName[i] = KeyName;
00165			if ( KeyName != "" )
00166			{
00167				Alias = GetPlayerOwner().ConsoleCommand( "KEYBINDING "$KeyName );
00168				if ( Alias != "" )
00169				{
00170					pos = InStr(Alias, " ");
00171					if ( pos != -1 )
00172					{
00173						if( !(Left(Alias, pos) ~= "taunt") &&
00174							!(Left(Alias, pos) ~= "getweapon") &&
00175							!(Left(Alias, pos) ~= "switchweapon") &&
00176							!(Left(Alias, pos) ~= "viewplayernum"))
00177							Alias = Left(Alias, pos);
00178					}
00179					for (J=0; J<AliasCount; J++)
00180					{
00181						if ( AliasNames[J] ~= Alias && AliasNames[J] != "None" )
00182						{
00183							if ( BoundKey1[J] == 0 )
00184								BoundKey1[J] = i;
00185							else
00186							if ( BoundKey2[J] == 0)
00187								BoundKey2[J] = i;
00188						}
00189					}
00190				}
00191			}
00192		}
00193	
00194		bLoadedExisting = False;
00195		Alias = GetPlayerOwner().ConsoleCommand( "KEYBINDING JoyX" );
00196		if(Alias ~= JoyXBinding[0])
00197			JoyXCombo.SetSelectedIndex(0);
00198		if(Alias ~= JoyXBinding[1])
00199			JoyXCombo.SetSelectedIndex(1);
00200	
00201		Alias = GetPlayerOwner().ConsoleCommand( "KEYBINDING JoyY" );
00202		if(Alias ~= JoyYBinding[0])
00203			JoyYCombo.SetSelectedIndex(0);
00204		if(Alias ~= JoyYBinding[1])
00205			JoyYCombo.SetSelectedIndex(1);
00206		bLoadedExisting = True;
00207	}
00208	
00209	function BeforePaint(Canvas C, float X, float Y)
00210	{
00211		local int ButtonWidth, ButtonLeft, I;
00212		local int LabelWidth, LabelLeft;
00213	
00214		ButtonWidth = WinWidth - 135;
00215		ButtonLeft = WinWidth - ButtonWidth - 20;
00216	
00217		DefaultsButton.AutoWidth(C);
00218		DefaultsButton.WinLeft = ButtonLeft + ButtonWidth - DefaultsButton.WinWidth;
00219	
00220		LabelWidth = WinWidth - 100;
00221		LabelLeft = 20;
00222	
00223		if(bJoystick)
00224		{
00225			DesiredHeight = JoyDesiredHeight;
00226	
00227			JoystickHeading.ShowWindow();
00228			JoyXCombo.ShowWindow();
00229			JoyYCombo.ShowWindow();
00230	
00231			JoyXCombo.SetSize(WinWidth - 40, 1);
00232			JoyXCombo.EditBoxWidth = ButtonWidth;
00233	
00234			JoyYCombo.SetSize(WinWidth - 40, 1);
00235			JoyYCombo.EditBoxWidth = ButtonWidth;
00236		}
00237		else
00238		{
00239			DesiredHeight = NoJoyDesiredHeight;
00240	
00241			JoystickHeading.HideWindow();
00242			JoyXCombo.HideWindow();
00243			JoyYCombo.HideWindow();
00244		}
00245	
00246		for (I=0; I<AliasCount; I++)
00247		{
00248			KeyButtons[I].SetSize(ButtonWidth, 1);
00249			KeyButtons[I].WinLeft = ButtonLeft;
00250	
00251			KeyNames[I].SetSize(LabelWidth, 1);
00252			KeyNames[I].WinLeft = LabelLeft;
00253		}
00254	
00255		for (I=0; I<AliasCount; I++ )
00256		{
00257			if ( BoundKey1[I] == 0 )
00258				KeyButtons[I].SetText("");
00259			else
00260			if ( BoundKey2[I] == 0 )
00261				KeyButtons[I].SetText(LocalizedKeyName[BoundKey1[I]]);
00262			else
00263				KeyButtons[I].SetText(LocalizedKeyName[BoundKey1[I]]$OrString$LocalizedKeyName[BoundKey2[I]]);
00264		}
00265	}
00266	
00267	function KeyDown( int Key, float X, float Y )
00268	{
00269		if (bPolling)
00270		{
00271			ProcessMenuKey(Key, RealKeyName[Key]);
00272			bPolling = False;
00273			SelectedButton.bDisabled = False;
00274		}
00275	}
00276	
00277	function RemoveExistingKey(int KeyNo, string KeyName)
00278	{
00279		local int I;
00280	
00281		// Remove this key from any existing binding display
00282		for ( I=0; I<AliasCount; I++ )
00283		{
00284			if(I != Selection)
00285			{
00286				if ( BoundKey2[I] == KeyNo )
00287					BoundKey2[I] = 0;
00288	
00289				if ( BoundKey1[I] == KeyNo )
00290				{
00291					BoundKey1[I] = BoundKey2[I];
00292					BoundKey2[I] = 0;
00293				}
00294			}
00295		}
00296	}
00297	
00298	function SetKey(int KeyNo, string KeyName)
00299	{
00300		if ( BoundKey1[Selection] != 0 )
00301		{
00302	
00303			// if this key is already chosen, just clear out other slot
00304			if(KeyNo == BoundKey1[Selection])
00305			{
00306				// if 2 exists, remove it it.
00307				if(BoundKey2[Selection] != 0)
00308				{
00309					GetPlayerOwner().ConsoleCommand("SET Input "$RealKeyName[BoundKey2[Selection]]);
00310					BoundKey2[Selection] = 0;
00311				}
00312			}
00313			else 
00314			if(KeyNo == BoundKey2[Selection])
00315			{
00316				// Remove slot 1
00317				GetPlayerOwner().ConsoleCommand("SET Input "$RealKeyName[BoundKey1[Selection]]);
00318				BoundKey1[Selection] = BoundKey2[Selection];
00319				BoundKey2[Selection] = 0;
00320			}
00321			else
00322			{
00323				// Clear out old slot 2 if it exists
00324				if(BoundKey2[Selection] != 0)
00325				{
00326					GetPlayerOwner().ConsoleCommand("SET Input "$RealKeyName[BoundKey2[Selection]]);
00327					BoundKey2[Selection] = 0;
00328				}
00329	
00330				// move key 1 to key 2, and set ourselves in 1.
00331				BoundKey2[Selection] = BoundKey1[Selection];
00332				BoundKey1[Selection] = KeyNo;
00333				GetPlayerOwner().ConsoleCommand("SET Input"@KeyName@AliasNames[Selection]);		
00334			}
00335		}
00336		else
00337		{
00338			BoundKey1[Selection] = KeyNo;
00339			GetPlayerOwner().ConsoleCommand("SET Input"@KeyName@AliasNames[Selection]);		
00340		}
00341	}
00342	
00343	function ProcessMenuKey( int KeyNo, string KeyName )
00344	{
00345		if ( (KeyName == "") || (KeyName == "Escape")  
00346			/*|| ((KeyNo >= 0x70 ) && (KeyNo <= 0x79))*/ // function keys
00347			/*|| ((KeyNo >= 0x30 ) && (KeyNo <= 0x39))*/) // number keys
00348			return;
00349	
00350		RemoveExistingKey(KeyNo, KeyName);
00351		SetKey(KeyNo, KeyName);
00352	}
00353	
00354	function Notify(UWindowDialogControl C, byte E)
00355	{
00356		local int I;
00357	
00358		Super.Notify(C, E);
00359	
00360		if(C == DefaultsButton && E == DE_Click)
00361		{
00362			GetPlayerOwner().ResetKeyboard();
00363			LoadExistingKeys();
00364			return;
00365		} 
00366	
00367		switch(E)
00368		{
00369		case DE_Change:
00370			switch(C)
00371			{
00372			case JoyXCombo:
00373				if(bLoadedExisting)
00374					GetPlayerOwner().ConsoleCommand("SET Input JoyX "$JoyXBinding[JoyXCombo.GetSelectedIndex()]);
00375				break;
00376			case JoyYCombo:
00377				if(bLoadedExisting)
00378					GetPlayerOwner().ConsoleCommand("SET Input JoyY "$JoyYBinding[JoyYCombo.GetSelectedIndex()]);
00379				break;
00380			}
00381			break;
00382		case DE_Click:
00383			if (bPolling)
00384			{
00385				bPolling = False;
00386				SelectedButton.bDisabled = False;
00387	
00388				if(C == SelectedButton)
00389				{
00390					ProcessMenuKey(1, RealKeyName[1]);
00391					return;
00392				}
00393			}
00394	
00395			if (RuneMenuRaisedButton(C) != None)
00396			{
00397				SelectedButton = RuneMenuRaisedButton(C);
00398				for ( I=0; I<AliasCount; I++ )
00399				{
00400					if (KeyButtons[I] == C)
00401						Selection = I;
00402				}
00403				bPolling = True;
00404				SelectedButton.bDisabled = True;
00405			}
00406			break;
00407		case DE_RClick:
00408			if (bPolling)
00409				{
00410					bPolling = False;
00411					SelectedButton.bDisabled = False;
00412	
00413					if(C == SelectedButton)
00414					{
00415						ProcessMenuKey(2, RealKeyName[2]);
00416						return;
00417					}
00418				}
00419			break;
00420		case DE_MClick:
00421			if (bPolling)
00422				{
00423					bPolling = False;
00424					SelectedButton.bDisabled = False;
00425	
00426					if(C == SelectedButton)
00427					{
00428						ProcessMenuKey(4, RealKeyName[4]);
00429						return;
00430					}			
00431				}
00432			break;
00433		}
00434	}
00435	
00436	function GetDesiredDimensions(out float W, out float H)
00437	{	
00438		Super.GetDesiredDimensions(W, H);
00439		H = 200;
00440	}
00441	
00442	defaultproperties
00443	{
00444	     LocalizedKeyName(1)="LeftMouse"
00445	     LocalizedKeyName(2)="RightMouse"
00446	     LocalizedKeyName(3)="Cancel"
00447	     LocalizedKeyName(4)="MiddleMouse"
00448	     LocalizedKeyName(5)="Unknown05"
00449	     LocalizedKeyName(6)="Unknown06"
00450	     LocalizedKeyName(7)="Unknown07"
00451	     LocalizedKeyName(8)="Backspace"
00452	     LocalizedKeyName(9)="Tab"
00453	     LocalizedKeyName(10)="Unknown0A"
00454	     LocalizedKeyName(11)="Unknown0B"
00455	     LocalizedKeyName(12)="Unknown0C"
00456	     LocalizedKeyName(13)="Enter"
00457	     LocalizedKeyName(14)="Unknown0E"
00458	     LocalizedKeyName(15)="Unknown0F"
00459	     LocalizedKeyName(16)="Shift"
00460	     LocalizedKeyName(17)="Ctrl"
00461	     LocalizedKeyName(18)="Alt"
00462	     LocalizedKeyName(19)="Pause"
00463	     LocalizedKeyName(20)="CapsLock"
00464	     LocalizedKeyName(21)="Unknown15"
00465	     LocalizedKeyName(22)="Unknown16"
00466	     LocalizedKeyName(23)="Unknown17"
00467	     LocalizedKeyName(24)="Unknown18"
00468	     LocalizedKeyName(25)="Unknown19"
00469	     LocalizedKeyName(26)="Unknown1A"
00470	     LocalizedKeyName(27)="Escape"
00471	     LocalizedKeyName(28)="Unknown1C"
00472	     LocalizedKeyName(29)="Unknown1D"
00473	     LocalizedKeyName(30)="Unknown1E"
00474	     LocalizedKeyName(31)="Unknown1F"
00475	     LocalizedKeyName(32)="Space"
00476	     LocalizedKeyName(33)="PageUp"
00477	     LocalizedKeyName(34)="PageDown"
00478	     LocalizedKeyName(35)="End"
00479	     LocalizedKeyName(36)="Home"
00480	     LocalizedKeyName(37)="Left"
00481	     LocalizedKeyName(38)="Up"
00482	     LocalizedKeyName(39)="Right"
00483	     LocalizedKeyName(40)="Down"
00484	     LocalizedKeyName(41)="Select"
00485	     LocalizedKeyName(42)="Print"
00486	     LocalizedKeyName(43)="Execute"
00487	     LocalizedKeyName(44)="PrintScrn"
00488	     LocalizedKeyName(45)="Insert"
00489	     LocalizedKeyName(46)="Delete"
00490	     LocalizedKeyName(47)="Help"
00491	     LocalizedKeyName(48)="0"
00492	     LocalizedKeyName(49)="1"
00493	     LocalizedKeyName(50)="2"
00494	     LocalizedKeyName(51)="3"
00495	     LocalizedKeyName(52)="4"
00496	     LocalizedKeyName(53)="5"
00497	     LocalizedKeyName(54)="6"
00498	     LocalizedKeyName(55)="7"
00499	     LocalizedKeyName(56)="8"
00500	     LocalizedKeyName(57)="9"
00501	     LocalizedKeyName(58)="Unknown3A"
00502	     LocalizedKeyName(59)="Unknown3B"
00503	     LocalizedKeyName(60)="Unknown3C"
00504	     LocalizedKeyName(61)="Unknown3D"
00505	     LocalizedKeyName(62)="Unknown3E"
00506	     LocalizedKeyName(63)="Unknown3F"
00507	     LocalizedKeyName(64)="Unknown40"
00508	     LocalizedKeyName(65)="A"
00509	     LocalizedKeyName(66)="B"
00510	     LocalizedKeyName(67)="C"
00511	     LocalizedKeyName(68)="D"
00512	     LocalizedKeyName(69)="E"
00513	     LocalizedKeyName(70)="F"
00514	     LocalizedKeyName(71)="G"
00515	     LocalizedKeyName(72)="H"
00516	     LocalizedKeyName(73)="I"
00517	     LocalizedKeyName(74)="J"
00518	     LocalizedKeyName(75)="K"
00519	     LocalizedKeyName(76)="L"
00520	     LocalizedKeyName(77)="M"
00521	     LocalizedKeyName(78)="N"
00522	     LocalizedKeyName(79)="O"
00523	     LocalizedKeyName(80)="P"
00524	     LocalizedKeyName(81)="Q"
00525	     LocalizedKeyName(82)="R"
00526	     LocalizedKeyName(83)="S"
00527	     LocalizedKeyName(84)="T"
00528	     LocalizedKeyName(85)="U"
00529	     LocalizedKeyName(86)="V"
00530	     LocalizedKeyName(87)="W"
00531	     LocalizedKeyName(88)="X"
00532	     LocalizedKeyName(89)="Y"
00533	     LocalizedKeyName(90)="Z"
00534	     LocalizedKeyName(91)="Unknown5B"
00535	     LocalizedKeyName(92)="Unknown5C"
00536	     LocalizedKeyName(93)="Unknown5D"
00537	     LocalizedKeyName(94)="Unknown5E"
00538	     LocalizedKeyName(95)="Unknown5F"
00539	     LocalizedKeyName(96)="NumPad0"
00540	     LocalizedKeyName(97)="NumPad1"
00541	     LocalizedKeyName(98)="NumPad2"
00542	     LocalizedKeyName(99)="NumPad3"
00543	     LocalizedKeyName(100)="NumPad4"
00544	     LocalizedKeyName(101)="NumPad5"
00545	     LocalizedKeyName(102)="NumPad6"
00546	     LocalizedKeyName(103)="NumPad7"
00547	     LocalizedKeyName(104)="NumPad8"
00548	     LocalizedKeyName(105)="NumPad9"
00549	     LocalizedKeyName(106)="GreyStar"
00550	     LocalizedKeyName(107)="GreyPlus"
00551	     LocalizedKeyName(108)="Separator"
00552	     LocalizedKeyName(109)="GreyMinus"
00553	     LocalizedKeyName(110)="NumPadPeriod"
00554	     LocalizedKeyName(111)="GreySlash"
00555	     LocalizedKeyName(112)="F1"
00556	     LocalizedKeyName(113)="F2"
00557	     LocalizedKeyName(114)="F3"
00558	     LocalizedKeyName(115)="F4"
00559	     LocalizedKeyName(116)="F5"
00560	     LocalizedKeyName(117)="F6"
00561	     LocalizedKeyName(118)="F7"
00562	     LocalizedKeyName(119)="F8"
00563	     LocalizedKeyName(120)="F9"
00564	     LocalizedKeyName(121)="F10"
00565	     LocalizedKeyName(122)="F11"
00566	     LocalizedKeyName(123)="F12"
00567	     LocalizedKeyName(124)="F13"
00568	     LocalizedKeyName(125)="F14"
00569	     LocalizedKeyName(126)="F15"
00570	     LocalizedKeyName(127)="F16"
00571	     LocalizedKeyName(128)="F17"
00572	     LocalizedKeyName(129)="F18"
00573	     LocalizedKeyName(130)="F19"
00574	     LocalizedKeyName(131)="F20"
00575	     LocalizedKeyName(132)="F21"
00576	     LocalizedKeyName(133)="F22"
00577	     LocalizedKeyName(134)="F23"
00578	     LocalizedKeyName(135)="F24"
00579	     LocalizedKeyName(136)="Unknown88"
00580	     LocalizedKeyName(137)="Unknown89"
00581	     LocalizedKeyName(138)="Unknown8A"
00582	     LocalizedKeyName(139)="Unknown8B"
00583	     LocalizedKeyName(140)="Unknown8C"
00584	     LocalizedKeyName(141)="Unknown8D"
00585	     LocalizedKeyName(142)="Unknown8E"
00586	     LocalizedKeyName(143)="Unknown8F"
00587	     LocalizedKeyName(144)="NumLock"
00588	     LocalizedKeyName(145)="ScrollLock"
00589	     LocalizedKeyName(146)="Unknown92"
00590	     LocalizedKeyName(147)="Unknown93"
00591	     LocalizedKeyName(148)="Unknown94"
00592	     LocalizedKeyName(149)="Unknown95"
00593	     LocalizedKeyName(150)="Unknown96"
00594	     LocalizedKeyName(151)="Unknown97"
00595	     LocalizedKeyName(152)="Unknown98"
00596	     LocalizedKeyName(153)="Unknown99"
00597	     LocalizedKeyName(154)="Unknown9A"
00598	     LocalizedKeyName(155)="Unknown9B"
00599	     LocalizedKeyName(156)="Unknown9C"
00600	     LocalizedKeyName(157)="Unknown9D"
00601	     LocalizedKeyName(158)="Unknown9E"
00602	     LocalizedKeyName(159)="Unknown9F"
00603	     LocalizedKeyName(160)="LShift"
00604	     LocalizedKeyName(161)="RShift"
00605	     LocalizedKeyName(162)="LControl"
00606	     LocalizedKeyName(163)="RControl"
00607	     LocalizedKeyName(164)="UnknownA4"
00608	     LocalizedKeyName(165)="UnknownA5"
00609	     LocalizedKeyName(166)="UnknownA6"
00610	     LocalizedKeyName(167)="UnknownA7"
00611	     LocalizedKeyName(168)="UnknownA8"
00612	     LocalizedKeyName(169)="UnknownA9"
00613	     LocalizedKeyName(170)="UnknownAA"
00614	     LocalizedKeyName(171)="UnknownAB"
00615	     LocalizedKeyName(172)="UnknownAC"
00616	     LocalizedKeyName(173)="UnknownAD"
00617	     LocalizedKeyName(174)="UnknownAE"
00618	     LocalizedKeyName(175)="UnknownAF"
00619	     LocalizedKeyName(176)="UnknownB0"
00620	     LocalizedKeyName(177)="UnknownB1"
00621	     LocalizedKeyName(178)="UnknownB2"
00622	     LocalizedKeyName(179)="UnknownB3"
00623	     LocalizedKeyName(180)="UnknownB4"
00624	     LocalizedKeyName(181)="UnknownB5"
00625	     LocalizedKeyName(182)="UnknownB6"
00626	     LocalizedKeyName(183)="UnknownB7"
00627	     LocalizedKeyName(184)="UnknownB8"
00628	     LocalizedKeyName(185)="UnknownB9"
00629	     LocalizedKeyName(186)="Semicolon"
00630	     LocalizedKeyName(187)="Equals"
00631	     LocalizedKeyName(188)="Comma"
00632	     LocalizedKeyName(189)="Minus"
00633	     LocalizedKeyName(190)="Period"
00634	     LocalizedKeyName(191)="Slash"
00635	     LocalizedKeyName(192)="Tilde"
00636	     LocalizedKeyName(193)="UnknownC1"
00637	     LocalizedKeyName(194)="UnknownC2"
00638	     LocalizedKeyName(195)="UnknownC3"
00639	     LocalizedKeyName(196)="UnknownC4"
00640	     LocalizedKeyName(197)="UnknownC5"
00641	     LocalizedKeyName(198)="UnknownC6"
00642	     LocalizedKeyName(199)="UnknownC7"
00643	     LocalizedKeyName(200)="Joy1"
00644	     LocalizedKeyName(201)="Joy2"
00645	     LocalizedKeyName(202)="Joy3"
00646	     LocalizedKeyName(203)="Joy4"
00647	     LocalizedKeyName(204)="Joy5"
00648	     LocalizedKeyName(205)="Joy6"
00649	     LocalizedKeyName(206)="Joy7"
00650	     LocalizedKeyName(207)="Joy8"
00651	     LocalizedKeyName(208)="Joy9"
00652	     LocalizedKeyName(209)="Joy10"
00653	     LocalizedKeyName(210)="Joy11"
00654	     LocalizedKeyName(211)="Joy12"
00655	     LocalizedKeyName(212)="Joy13"
00656	     LocalizedKeyName(213)="Joy14"
00657	     LocalizedKeyName(214)="Joy15"
00658	     LocalizedKeyName(215)="Joy16"
00659	     LocalizedKeyName(216)="UnknownD8"
00660	     LocalizedKeyName(217)="UnknownD9"
00661	     LocalizedKeyName(218)="UnknownDA"
00662	     LocalizedKeyName(219)="LeftBracket"
00663	     LocalizedKeyName(220)="Backslash"
00664	     LocalizedKeyName(221)="RightBracket"
00665	     LocalizedKeyName(222)="SingleQuote"
00666	     LocalizedKeyName(223)="UnknownDF"
00667	     LocalizedKeyName(224)="JoyX"
00668	     LocalizedKeyName(225)="JoyY"
00669	     LocalizedKeyName(226)="JoyZ"
00670	     LocalizedKeyName(227)="JoyR"
00671	     LocalizedKeyName(228)="MouseX"
00672	     LocalizedKeyName(229)="MouseY"
00673	     LocalizedKeyName(230)="MouseZ"
00674	     LocalizedKeyName(231)="MouseW"
00675	     LocalizedKeyName(232)="JoyU"
00676	     LocalizedKeyName(233)="JoyV"
00677	     LocalizedKeyName(234)="UnknownEA"
00678	     LocalizedKeyName(235)="UnknownEB"
00679	     LocalizedKeyName(236)="MouseWheelUp"
00680	     LocalizedKeyName(237)="MouseWheelDown"
00681	     LocalizedKeyName(238)="Unknown10E"
00682	     LocalizedKeyName(239)="Unknown10F"
00683	     LocalizedKeyName(240)="JoyPovUp"
00684	     LocalizedKeyName(241)="JoyPovDown"
00685	     LocalizedKeyName(242)="JoyPovLeft"
00686	     LocalizedKeyName(243)="JoyPovRight"
00687	     LocalizedKeyName(244)="UnknownF4"
00688	     LocalizedKeyName(245)="UnknownF5"
00689	     LocalizedKeyName(246)="Attn"
00690	     LocalizedKeyName(247)="CrSel"
00691	     LocalizedKeyName(248)="ExSel"
00692	     LocalizedKeyName(249)="ErEof"
00693	     LocalizedKeyName(250)="Play"
00694	     LocalizedKeyName(251)="Zoom"
00695	     LocalizedKeyName(252)="NoName"
00696	     LocalizedKeyName(253)="PA1"
00697	     LocalizedKeyName(254)="OEMClear"
00698	     LabelList(0)="Move Forward"
00699	     LabelList(1)="Move Backward"
00700	     LabelList(2)="Move Left"
00701	     LabelList(3)="Move Right"
00702	     LabelList(4)="Strafe"
00703	     LabelList(5)="Turn Left"
00704	     LabelList(6)="Turn Right"
00705	     LabelList(7)="Jump/Up"
00706	     LabelList(8)="Crouch/Down"
00707	     LabelList(9)="Mouse Look"
00708	     LabelList(10)="Look Up"
00709	     LabelList(11)="Look Down"
00710	     LabelList(12)="Center View"
00711	     LabelList(13)="Zoom In"
00712	     LabelList(14)="Zoom Out"
00713	     LabelList(15)="Use"
00714	     LabelList(16)="Attack"
00715	     LabelList(17)="Defend"
00716	     LabelList(18)="Throw Weapon"
00717	     LabelList(19)="RUNE Power"
00718	     LabelList(20)="Stow Weapon"
00719	     LabelList(21)="Select Next Sword"
00720	     LabelList(22)="Select Next Hammer"
00721	     LabelList(23)="Select Next Axe"
00722	     LabelList(24)="Send Message"
00723	     LabelList(25)="Send Team Message"
00724	     LabelList(26)="Taunt"
00725	     LabelList(27)="Toggle Scoreboard"
00726	     LabelList(28)="Toggle TargetStrafe"
00727	     LabelList(29)="Quick Save"
00728	     LabelList(30)="Quick Load"
00729	     AliasNames(0)="MoveForward"
00730	     AliasNames(1)="MoveBackward"
00731	     AliasNames(2)="StrafeLeft"
00732	     AliasNames(3)="StrafeRight"
00733	     AliasNames(4)="Strafe"
00734	     AliasNames(5)="TurnLeft"
00735	     AliasNames(6)="TurnRight"
00736	     AliasNames(7)="Jump"
00737	     AliasNames(8)="Duck"
00738	     AliasNames(9)="Look"
00739	     AliasNames(10)="LookUp"
00740	     AliasNames(11)="LookDown"
00741	     AliasNames(12)="CenterView"
00742	     AliasNames(13)="camerain"
00743	     AliasNames(14)="cameraout"
00744	     AliasNames(15)="Use"
00745	     AliasNames(16)="Fire"
00746	     AliasNames(17)="AltFire"
00747	     AliasNames(18)="Throw"
00748	     AliasNames(19)="Powerup"
00749	     AliasNames(20)="SwitchWeapon 1"
00750	     AliasNames(21)="SwitchWeapon 2"
00751	     AliasNames(22)="SwitchWeapon 3"
00752	     AliasNames(23)="SwitchWeapon 4"
00753	     AliasNames(24)="Talk"
00754	     AliasNames(25)="TeamTalk"
00755	     AliasNames(26)="Taunt"
00756	     AliasNames(27)="Showscores"
00757	     AliasNames(28)="ZTargetToggle"
00758	     AliasNames(29)="QuickSave"
00759	     AliasNames(30)="QuickLoad"
00760	     OrString=" or "
00761	     CustomizeHelp="Click the rectangle on the right and then press a key to bind to this control."
00762	     DefaultsText="Reset"
00763	     DefaultsHelp="Reset all controls to their default settings."
00764	     JoystickText="Joystick"
00765	     JoyXText="X Axis"
00766	     JoyXHelp="Select the behavior for the left-right axis of your joystick."
00767	     JoyXOptions(0)="Strafe Left/Right"
00768	     JoyXOptions(1)="Turn Left/Right"
00769	     JoyXBinding(0)="Axis aStrafe speed=2"
00770	     JoyXBinding(1)="Axis aBaseX speed=0.7"
00771	     JoyYText="Y Axis"
00772	     JoyYHelp="Select the behavior for the up-down axis of your joystick."
00773	     JoyYOptions(0)="Move Forward/Back"
00774	     JoyYOptions(1)="Look Up/Down"
00775	     JoyYBinding(0)="Axis aBaseY speed=2"
00776	     JoyYBinding(1)="Axis aLookup speed=-0.4"
00777	}

End Source Code