]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
HUD config exporting
authorFruitieX <rasse@rasse-lappy.localdomain>
Fri, 14 May 2010 12:16:07 +0000 (15:16 +0300)
committerFruitieX <rasse@rasse-lappy.localdomain>
Fri, 14 May 2010 12:16:07 +0000 (15:16 +0300)
qcsrc/client/Main.qc
qcsrc/client/hud.qc
qcsrc/client/hud.qh
qcsrc/common/constants.qh

index 8891586c1e781873fa063b784d44efc85c1d4d47..b1e418215c9b86278bc4803615ec7219c720e5b0 100644 (file)
@@ -82,6 +82,8 @@ void CSQC_Init(void)
        // localcmd("alias order \"cmd order $*\""); enable if ctf-command thingy is used
        //registercmd("ctf_menu");
        registercmd("ons_map");
+       registercmd("hud_configure");
+       registercmd("hud_save");
        //registercmd("menu_action");
 
        registercmd("+button3");
@@ -364,7 +366,18 @@ float CSQC_ConsoleCommand(string strMessage)
        local string strCmd;
        strCmd = argv(0);
 
-       if(strCmd == "+button4") { // zoom
+       if(strCmd == "hud_configure") { // config hud
+               cvar_set("_hud_configure", ftos(!cvar("_hud_configure")));
+               return true;
+       } else if(strCmd == "hud_save") { // save hud config
+               if(argv(1) == "" || argv(2)) {
+                       print("Usage:\n");
+                       print("hud_save configname   (saves to hud_skinname_configname.cfg)\n");
+               }
+               else
+                       HUD_Panel_ExportCfg(argv(1));
+               return true;
+       } else if(strCmd == "+button4") { // zoom
                // return false, because the message shall be sent to the server anyway (for demos/speccing)
                if(ignore_plus_zoom)
                {
index b6b71d25209c63affc2c0011d01f8cbb2b26d95b..ee8695187622d75f3ce8f43f37895152ef65c0aa 100644 (file)
@@ -555,6 +555,31 @@ string HUD_Panel_GetName(float id)
        }
 }
 
+// Save the config
+void HUD_Panel_ExportCfg(string cfgname)
+{
+       float fh;
+       fh = fopen(strcat("hud_", hud_skin, "_", cfgname, ".cfg"), FILE_WRITE);
+       if(fh >= 0)
+       {
+               float i;
+               for (i = 0; i < panel_cnt; ++i)
+               {
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), " ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i))))));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_pos \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_pos")), "\""));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_size \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_size")), "\""));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg")), "\""));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_color \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg_color")), "\""));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_alpha ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_bg_alpha")))));
+                       fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_border ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_bg_border")))));
+                       fputs(fh, "");
+               }
+
+               print("^2Successfully exported to hud_", hud_skin, "_", cfgname, ".cfg");
+       }
+       fclose(fh);
+}
+
 vector HUD_Panel_CheckLimitSize(float id, vector mySize)
 {
        switch(id) {
@@ -2846,6 +2871,10 @@ void HUD_Main (void)
        hud_fontsize = HUD_GetFontsize("hud_fontsize");
        hud_fontsize_spec = HUD_GetFontsize("hud_fontsize_spec");
 
+       //hud_configure = cvar("_hud_configure");
+       hud_skin = cvar_string("hud_skin");
+
+       // Drawing stuff
        if(cvar_string("hud_dock") != "0")
                drawpic('0 0 0', strcat("gfx/hud/", cvar_string("hud_dock")), eX * vid_conwidth + eY * vid_conheight, stov(cvar_string("hud_dock_color")), cvar("hud_dock_alpha"), DRAWFLAG_NORMAL);
 
index 5aaa750790903a3291675bad6ab10d1dbc11b671..5f911917c3b1607da40aeb49483dfec9642b44ea 100644 (file)
@@ -1,3 +1,5 @@
+float panel_cnt = 11; // NOTE: IDs start from 0!
+
 void CSQC_kh_hudreset();
 void CSQC_kh_hud();
 void CSQC_ctf_hudreset();
@@ -24,3 +26,6 @@ float hud_hudselector;
 float hud_accuracy_hud;
 float hud_border_thickness;
 float hud_accuracy_border_thickness;
+
+string hud_skin;
+string hud_configure;
index 40b3c0ad34f26ded8d49a8db6ca6bc5154a8c01f..3f15a17843dad974019b9f1ae768a82a5dc079b2 100644 (file)
@@ -509,6 +509,3 @@ float WATERLEVEL_SWIMMING = 2;
 float WATERLEVEL_SUBMERGED = 3;
 
 float MAX_SHOT_DISTANCE = 32768;
-
-// panel hud constants
-float panel_cnt = 11; // NOTE: IDs start from 0!