METHOD(XonoticLanguageList, languageParameter, string(entity, float, float))
ATTRIB(XonoticLanguageList, name, string, "languageselector") // change this to make it noninteractive (for first run dialog)
+
+ ATTRIB(XonoticLanguageList, doubleClickCommand, string, "prvm_language \"$_menu_prvm_language\"\nmenu_restart\nmenu_cmd languageselect")
ENDCLASS(XonoticLanguageList)
entity makeXonoticLanguageList();
{
string s;
float i, n;
- s = cvar_string("prvm_language");
+ s = cvar_string("_menu_prvm_language");
n = me.nItems;
// default to English
break;
}
}
+
+ // save it off (turning anything unknown into "en")
+ me.saveCvars(me);
}
void XonoticLanguageList_saveCvars(entity me)
{
- cvar_set("prvm_language", me.languageParameter(me, me.selectedItem, LANGPARM_ID));
+ cvar_set("_menu_prvm_language", me.languageParameter(me, me.selectedItem, LANGPARM_ID));
}
void XonoticLanguageList_clickListBoxItem(entity me, float i, vector where)
{
- if(me.name != "languageselector")
- return;
if(i == me.lastClickedLanguage)
if(time < me.lastClickedTime + 0.3)
{
float XonoticLanguageList_keyDown(entity me, float scan, float ascii, float shift)
{
- if(me.name != "languageselector")
- return SUPER(XonoticLanguageList).keyDown(me, scan, ascii, shift);
if(scan == K_ENTER || scan == K_KP_ENTER) {
me.setLanguage(me);
return 1;
buf = buf_create();
fh = fopen("languages.txt", FILE_READ);
+ i = 0;
while((s = fgets(fh)))
{
n = tokenize_console(s);
void XonoticLanguageList_setLanguage(entity me)
{
- if(me.name != "languageselector")
- return;
- localcmd("\nmenu_restart\ntogglemenu\ndefer 0.1 \"menu_cmd languageselect\"\n");
+ localcmd(sprintf("\n%s\n", me.doubleClickCommand));
}
string XonoticLanguageList_languageParameter(entity me, float i, float key)