11 if (options.Count() == 0)
13 Error(
"Invalid OptionSelectorMultistate options");
16 if (current_index < 0 || current_index >= m_Options.Count())
18 m_SelectedOptionIndex = 0;
22 m_SelectedOptionIndex = current_index;
25 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
28 static OptionSelectorMultistate
NewFromAccess(Widget parent, ListOptionsAccess optionAccess, ScriptedWidgetEventHandler parent_c,
bool disabled)
31 optionAccess.GetAllItemsText(items);
43 int idx = m_SelectedOptionIndex;
45 if (idx >= m_Options.Count())
50 m_AttemptOptionChange.Invoke(idx);
59 int idx = m_SelectedOptionIndex;
63 idx = m_Options.Count() - 1;
66 m_AttemptOptionChange.Invoke(idx);
75 m_SelectedOptionIndex = index;
76 m_SelectedOption.SetText(m_Options.Get(index));
77 m_OptionChanged.Invoke(index);
90 void SetValue(
int value,
bool fire_event =
true)
92 if (value < m_Options.Count() && value >= 0)
94 m_SelectedOptionIndex = value;
95 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
97 m_OptionChanged.Invoke(m_SelectedOptionIndex);
101 void SetValue(
string value,
bool fire_event =
true)
103 int index = m_Options.Find(value);
106 m_SelectedOptionIndex = index;
107 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
109 m_OptionChanged.Invoke(m_SelectedOptionIndex);
115 m_SelectedOptionIndex =
Math.RandomInt(0, m_Options.Count());
116 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
117 m_OptionChanged.Invoke(m_SelectedOptionIndex);
122 return m_SelectedOptionIndex;
127 int index = m_Options.Find(option);
130 m_SelectedOptionIndex = index;
131 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
134 m_OptionChanged.Invoke(m_SelectedOptionIndex);
156 m_SelectedOption.SetText(
"#str_cfgvehicles_survivorM0");
158 else if (value ==
"Female")
160 m_SelectedOption.SetText(
"#str_cfgvehicles_survivorF0");
162 else if (appendix !=
"")
165 m_SelectedOption.SetText(
"NO ITEM - localization needed!");
167 m_SelectedOption.SetText(
"" +
displayname +
" " + appendix);
177 if (value ==
"Male" || value ==
"Female")
184 int index = m_Options.Find(value);
208 string child = value;
210 while (
GetGame().ConfigGetBaseName(
"cfgVehicles " + child, parent))
212 if (parent == baseclass)
223 super.SetNextOption();
229 super.SetPrevOption();
233 override void SetValue(
int value,
bool fire_event =
true)
235 super.SetValue(value,fire_event);
239 override void SetValue(
string value,
bool fire_event =
true)
241 super.SetValue(value,fire_event);
247 super.SetRandomValue();
253 super.SetStringOption(option, fire_event);
override void SetNextOption()
override void SetStringOption(string option, bool fire_event=true)
void SetCanSwitch(bool value)
void LoadNewValues(notnull array< string > options, int current_index)
void SetValue(int value, bool fire_event=true)
override void SetPrevOption()
void SetValue(string value, bool fire_event=true)
void PerformSetOption(int index)
static OptionSelectorMultistate NewFromAccess(Widget parent, ListOptionsAccess optionAccess, ScriptedWidgetEventHandler parent_c, bool disabled)
void OptionSelectorMultistate(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled, notnull array< string > options)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
void SetTextSmart(string value)
override void SetValue(int value, bool fire_event=true)
bool InheritsFrom(string value, string baseclass)
void OptionSelectorMultistateCharacterMenu(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled, notnull array< string > options)
class OptionSelectorMultistate extends OptionSelector class_name
override void SetStringOption(string option, bool fire_event=true)
override void SetNextOption()
void SetDisplayNameText(string value, string appendix)
override void SetPrevOption()
override void SetRandomValue()