idTech4.idCvarSystem.Cmd_Toggle C# (CSharp) Method

Cmd_Toggle() private method

private Cmd_Toggle ( object sender, CommandEventArgs e ) : void
sender object
e CommandEventArgs
return void
		private void Cmd_Toggle(object sender, CommandEventArgs e)
		{
			int argCount = e.Args.Length;

			if(argCount < 2)
			{
				idConsole.WriteLine("usage:");
				idConsole.WriteLine("    toggle <variable> - toggles between 0 and 1");
				idConsole.WriteLine("    toggle <variable> <value> - toggles between 0 and <value>");
				idConsole.WriteLine("    toggle <variable [string 1] [string 2]...[string n] - cycles through all strings");
			}
			else
			{
				idInternalCvar cvar = idE.CvarSystem.FindInternal(e.Args.Get(1));

				if(cvar == null)
				{
					idConsole.WriteLine("toggle: cvar \"{0}\" not found", e.Args.Get(1));
				}
				else if(argCount > 3)
				{
					// cycle through multiple values
					string text = cvar.ToString();
					int i = 0;


					for(i = 2; i < argCount; i++)
					{
						if(StringComparer.CurrentCultureIgnoreCase.Compare(text, e.Args.Get(i)) == 0)
						{
							i++;
							break;
						}
					}

					if(i >= argCount)
					{
						i = 2;
					}

					idConsole.WriteLine("set {0} = {1}", e.Args.Get(1), e.Args.Get(i));
					cvar.Set(e.Args.Get(i), false, false);
				}
				else
				{
					// toggle between 0 and 1
					float current = cvar.ToFloat();
					float set = 0;

					if(e.Args.Length == 3)
					{
						float.TryParse(e.Args.Get(2), out set);
					}
					else
					{
						set = 1.0f;
					}

					if(current == 0.0f)
					{
						current = set;
					}
					else
					{
						current = 0.0f;
					}

					idConsole.WriteLine("set {0} = {1}", e.Args.Get(1), current);
					cvar.Set(current.ToString(), false, false);
				}
			}
		}