]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
latch prvm_language changes from menu
authorRudolf Polzer <divverent@alientrap.org>
Mon, 30 Jan 2012 15:54:42 +0000 (16:54 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Mon, 30 Jan 2012 15:54:42 +0000 (16:54 +0100)
defaultXonotic.cfg
qcsrc/menu/menu.qc
qcsrc/menu/xonotic/dialog_firstrun.c
qcsrc/menu/xonotic/languagelist.c

index 06ddd852aee06d6fc8adfc0329137e773aa3a8bc..cb5be08778c7fd2a022cf80849d2514854558685 100644 (file)
@@ -86,6 +86,7 @@ vid_fullscreen 1
 vid_width 1024
 vid_height 768
 vid_pixelheight 1
+set _menu_prvm_language ""
 set _menu_vid_width "$vid_width"
 set _menu_vid_height "$vid_height"
 set _menu_vid_pixelheight "$vid_pixelheight"
index baa0bb90f877f8f638ef746c1f240e8cc25d54fc..e80247338eadb152219e65fef80090ce381df325 100644 (file)
@@ -30,6 +30,7 @@ void m_init()
 {
        cvar_set("_menu_alpha", "0");
        prvm_language = strzone(cvar_string("prvm_language"));
+       cvar_set("_menu_prvm_language", prvm_language);
 
        check_unacceptable_compiler_bugs();
 
index 95273901a264349f6ccc043eeef1ad1da8821739..67b886ec933c754897a03a3ba845abf1ce279458 100644 (file)
@@ -69,7 +69,7 @@ void XonoticFirstRunDialog_fill(entity me)
        me.TR(me);
                me.TD(me, 6, 2, e = makeXonoticLanguageList());
                        e.name = "languageselector_firstrun";
-                       e.doubleClickCommand = "saveconfig; menu_restart; togglemenu";
+                       e.doubleClickCommand = "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart; togglemenu";
        me.TR(me);
        me.TR(me);
 
@@ -84,7 +84,7 @@ void XonoticFirstRunDialog_fill(entity me)
 
        // because of the language selector, this is a menu_restart!
        me.gotoRC(me, me.rows - 1, 0);
-       me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "saveconfig; menu_restart; togglemenu", COMMANDBUTTON_APPLY));
+       me.TD(me, 1, me.columns, e = makeXonoticCommandButton(_("Save settings"), '0 0 0', "prvm_language \"$_menu_prvm_language\"; saveconfig; menu_restart; togglemenu", COMMANDBUTTON_APPLY));
                setDependentWeird(e, CheckFirstRunButton);
 }
 #endif
index 0ea54dbcaffa1cb2fc29fae26a229095df2298c7..c4b2122b621cff319e2654c01f50b85ef767d466 100644 (file)
@@ -27,7 +27,7 @@ CLASS(XonoticLanguageList) EXTENDS(XonoticListBox)
 
        ATTRIB(XonoticLanguageList, name, string, "languageselector") // change this to make it noninteractive (for first run dialog)
 
-       ATTRIB(XonoticLanguageList, doubleClickCommand, string, "menu_restart\ntogglemenu\ndefer 0.1 \"menu_cmd languageselect\"")
+       ATTRIB(XonoticLanguageList, doubleClickCommand, string, "prvm_language \"$_menu_prvm_language\"\nmenu_restart\ntogglemenu\ndefer 0.1 \"menu_cmd languageselect\"")
 ENDCLASS(XonoticLanguageList)
 
 entity makeXonoticLanguageList();
@@ -85,7 +85,7 @@ void XonoticLanguageList_loadCvars(entity me)
 {
        string s;
        float i, n;
-       s = cvar_string("prvm_language");
+       s = cvar_string("_menu_prvm_language");
        n = me.nItems;
 
        // default to English
@@ -107,11 +107,14 @@ void XonoticLanguageList_loadCvars(entity me)
                        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)