idTech4.UI.idWindow.ParseRegisterEntry C# (CSharp) Method

ParseRegisterEntry() private method

private ParseRegisterEntry ( string name, idScriptParser parser ) : bool
name string
parser idTech4.Text.idScriptParser
return bool
		private bool ParseRegisterEntry(string name, idScriptParser parser)
		{
			string work = name.ToLower();
			idWindowVariable var = GetVariableByName(work, false);

			if(var != null)
			{
				RegisterType regType;

				// check builtins first
				if(_builtInVariables.TryGetValue(work, out regType) == true)
				{
					_regList.AddRegister(work, regType, parser, this, var);

					return true;
				}
			}

			// not predefined so just read the next token and add it to the state
			idToken token;

			if((token = parser.ReadToken()) != null)
			{
				if(var != null)
				{
					var.Set(token.ToString());
					return true;
				}

				switch(token.Type)
				{
					case TokenType.Number:
						if((token.SubType & TokenSubType.Integer) == TokenSubType.Integer)
						{
							var = new idWinInteger(work);
							var.Set(token.ToString());
						}
						else if((token.SubType & TokenSubType.Float) == TokenSubType.Float)
						{
							var = new idWinFloat(work);
							var.Set(token.ToString());
						}
						else
						{
							var = new idWinString(work);
							var.Set(token.ToString());
						}

						_definedVariables.Add(var);
						break;

					default:
						var = new idWinString(work);
						var.Set(token.ToString());

						_definedVariables.Add(var);
						break;
				}
			}

			return true;
		}