]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
get rid of defer use for menu_restarts
authorRudolf Polzer <divverent@xonotic.org>
Thu, 9 Feb 2012 14:59:40 +0000 (15:59 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Thu, 9 Feb 2012 14:59:40 +0000 (15:59 +0100)
qcsrc/menu/command/menu_cmd.qc
qcsrc/menu/menu.qc
qcsrc/menu/menu.qh
qcsrc/menu/xonotic/dialog_settings_video.c
qcsrc/menu/xonotic/languagelist.c
qcsrc/menu/xonotic/skinlist.c

index 0e0df058942eb2f7e2e011490f1a2193c1a9dc0e..f6312931f6a11c4117c159433c2361c949ec22c0 100644 (file)
@@ -65,19 +65,19 @@ void GameCommand(string theCommand)
 
        if(argv(0) == "skinselect")
        {
-               m_goto_skin_selector();
+               m_goto("skinselector");
                return;
        }
 
        if(argv(0) == "languageselect")
        {
-               m_goto_language_selector();
+               m_goto("languageselector");
                return;
        }
 
        if(argv(0) == "videosettings")
        {
-               m_goto_video_settings();
+               m_goto("videosettings");
                return;
        }
 
index 45f3f14b6b084d3d61c02c2a4a7e658a5a4ef65b..42b40568b8f4bbfbc8eaad7462f60cb4ecf2913a 100644 (file)
@@ -124,6 +124,7 @@ void UpdateConWidthHeight()
        }
 }
 
+string m_goto_buffer;
 void m_init_delayed()
 {
        float fh, glob, n, i;
@@ -197,6 +198,13 @@ void m_init_delayed()
 
        m_sync();
 
+       if(m_goto_buffer)
+       {
+               m_goto(m_goto_buffer);
+               strunzone(m_goto_buffer);
+               m_goto_buffer = string_null;
+       }
+
        if(Menu_Active)
                m_display(); // delayed menu display
 }
@@ -926,11 +934,18 @@ void m_goto(string itemname)
 {
        entity e;
        if(!menuInitialized)
+       {
+               if(m_goto_buffer)
+                       strunzone(m_goto_buffer);
+               m_goto_buffer = strzone(itemname);
                return;
+       }
        if(itemname == "") // this can be called by GameCommand
        {
                if(gamestatus & (GAME_ISSERVER | GAME_CONNECTED))
+               {
                        m_hide();
+               }
                else
                {
                        m_activate_window(main.mainNexposee);
@@ -951,27 +966,3 @@ void m_goto(string itemname)
                }
        }
 }
-
-void m_goto_skin_selector()
-{
-       if(!menuInitialized)
-               return;
-       // TODO add code to switch back to the skin selector (no idea how to do it now)
-       m_goto("skinselector");
-}
-
-void m_goto_language_selector()
-{
-       if(!menuInitialized)
-               return;
-       // TODO add code to switch back to the language selector (no idea how to do it now)
-       m_goto("languageselector");
-}
-
-void m_goto_video_settings()
-{
-       if(!menuInitialized)
-               return;
-       // TODO add code to switch back to the video settings (no idea how to do it now)
-       m_goto("videosettings");
-}
index ab812437a00eba147f08570ca81e8541ea739249..641ddf7d19df20db49ad73d707a74197cf427ad5 100644 (file)
@@ -26,9 +26,6 @@ entity main;
 void m_hide();
 void m_display();
 void m_goto(string name);
-void m_goto_skin_selector();
-void m_goto_language_selector();
-void m_goto_video_settings();
 .string name;
 
 entity keyGrabber;
index c0fddcc5b7d004e1df823a503a42fef06a34c6f2..57bbc3cd21ecb93def8f27455bc01636e7905a29 100644 (file)
@@ -140,6 +140,6 @@ void XonoticVideoSettingsTab_fill(entity me)
        }
 
        me.gotoRC(me, me.rows - 1, 0);
-               me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "menu_cmd sync; vid_restart; menu_restart; defer 0.1 \"menu_cmd videosettings\"", COMMANDBUTTON_APPLY));
+               me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "menu_cmd sync; vid_restart; menu_restart; menu_cmd videosettings", COMMANDBUTTON_APPLY));
 }
 #endif
index 9b9a148cce4852c606b29b49a8c7f4ee865b050a..5f6226f493fbee1ec5c5d1214cdf6aae16f62b1e 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, "prvm_language \"$_menu_prvm_language\"\nmenu_restart\ndefer 0.1 \"menu_cmd languageselect\"")
+       ATTRIB(XonoticLanguageList, doubleClickCommand, string, "prvm_language \"$_menu_prvm_language\"\nmenu_restart\nmenu_cmd languageselect")
 ENDCLASS(XonoticLanguageList)
 
 entity makeXonoticLanguageList();
index b636336b1de825ac4f0a8ba1930a2296cb533190..fdb07870a411f12b8b068eaf1601437d966ba7ab 100644 (file)
@@ -175,7 +175,7 @@ void XonoticSkinList_drawListBoxItem(entity me, float i, vector absSize, float i
 void XonoticSkinList_setSkin(entity me)
 {
        me.saveCvars(me);
-       localcmd("\nmenu_restart\ndefer 0.1 \"menu_cmd skinselect\"\n");
+       localcmd("\nmenu_restart\nmenu_cmd skinselect\n");
 }
 
 void SetSkin_Click(entity btn, entity me)