private void UpdateChoicesAndValues()
{
idToken token;
string str2 = string.Empty;
if(_latchedChoices.Equals(_choicesStr.ToString(), StringComparison.OrdinalIgnoreCase) == true)
{
_choices.Clear();
idLexer lexer = new idLexer(LexerOptions.NoFatalErrors | LexerOptions.AllowPathNames | LexerOptions.AllowMultiCharacterLiterals | LexerOptions.AllowBackslashStringConcatination);
if(lexer.LoadMemory(_choicesStr.ToString(), "<ChoiceList>") == true)
{
while((token = lexer.ReadToken()) != null)
{
if(token.ToString() == ";")
{
if(str2.Length > 0)
{
str2 = idE.Language.Get(str2.TrimEnd());
_choices.Add(str2);
str2 = string.Empty;
}
continue;
}
str2 += token.ToString();
str2 += " ";
}
if(str2.Length > 0)
{
_choices.Add(str2.TrimEnd());
}
}
_latchedChoices = _choicesStr.ToString();
}
if((_choiceValues.ToString() != string.Empty) && (_latchedChoices.Equals(_choiceValues.ToString(), StringComparison.OrdinalIgnoreCase) == false))
{
_values.Clear();
str2 = string.Empty;
bool negNum = false;
idLexer lexer = new idLexer(LexerOptions.AllowPathNames | LexerOptions.AllowMultiCharacterLiterals | LexerOptions.AllowBackslashStringConcatination);
if(lexer.LoadMemory(_choiceValues.ToString(), "<ChoiceVals>") == true)
{
while((token = lexer.ReadToken()) != null)
{
if(token.ToString() == "-")
{
negNum = true;
}
else if(token.ToString() == ";")
{
if(str2.Length > 0)
{
_values.Add(str2.TrimEnd());
str2 = string.Empty;
}
}
else if(negNum == true)
{
str2 += "-";
negNum = false;
}
else
{
str2 += token.ToString();
str2 += " ";
}
}
if(str2.Length > 0)
{
_values.Add(str2.TrimEnd());
}
}
if(_choices.Count != _values.Count)
{
idConsole.Warning("idChoiceWindow:: gui '{0}' window '{1}' has value count unequal to choices count", this.UserInterface.SourceFile, this.Name);
}
_latchedChoices = _choiceValues.ToString();
}
}