From 3f45576484bbc936a1aa097e8a93704aa7872632 Mon Sep 17 00:00:00 2001 From: FruitieX Date: Fri, 11 Jun 2010 18:42:42 +0300 Subject: [PATCH] working on/off switch for panels via a hud dialog --- qcsrc/common/constants.qh | 2 + qcsrc/common/util.qc | 1 - qcsrc/menu/classes.c | 1 + qcsrc/menu/gamecommand.qc | 4 +- qcsrc/menu/menu.qc | 3 ++ qcsrc/menu/menu.qh | 2 + qcsrc/menu/xonotic/dialog_hudpanel_options.c | 40 +++++++++++++++++++- qcsrc/menu/xonotic/util.qc | 8 ++++ qcsrc/menu/xonotic/util.qh | 2 + 9 files changed, 60 insertions(+), 3 deletions(-) diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index facf3bc950..b52931e60e 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -581,3 +581,5 @@ float HUD_PANEL_MODICONS = 10; float HUD_PANEL_PRESSEDKEYS = 11; float HUD_PANEL_CHAT = 12; float HUD_PANEL_NUM = 13; + +float HUD_MENU_ENABLE = 0; diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index 5329d4e0ac..b25302c703 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -1969,4 +1969,3 @@ string HUD_Panel_GetName(float id) default: return ""; } } - diff --git a/qcsrc/menu/classes.c b/qcsrc/menu/classes.c index 9131357060..0026f9fc13 100644 --- a/qcsrc/menu/classes.c +++ b/qcsrc/menu/classes.c @@ -41,6 +41,7 @@ #include "xonotic/slider.c" #include "xonotic/slider_resolution.c" #include "xonotic/checkbox.c" +#include "xonotic/checkbox_hudname.c" #include "xonotic/radiobutton.c" #include "xonotic/nexposee.c" #include "xonotic/rootdialog.c" diff --git a/qcsrc/menu/gamecommand.qc b/qcsrc/menu/gamecommand.qc index 3be1f89e36..94357b2270 100644 --- a/qcsrc/menu/gamecommand.qc +++ b/qcsrc/menu/gamecommand.qc @@ -66,7 +66,9 @@ void GameCommand(string theCommand) { // switch to a menu item m_goto("HUDOptions"); - changeXonoticHUDPanel(stof(argv(1))); + entity panelvar; + panelvar = findstring(NULL, name, "HUDOptions"); + panelvar.change(panelvar, stof(argv(1))); return; } diff --git a/qcsrc/menu/menu.qc b/qcsrc/menu/menu.qc index b8fee02a13..e7fc1665a2 100644 --- a/qcsrc/menu/menu.qc +++ b/qcsrc/menu/menu.qc @@ -270,6 +270,9 @@ void draw_Picture_Aligned(vector algn, float scalemode, string img, float a) void(string img, float a, string algn, float force1) drawBackground = { + if(main.mainNexposee.ModalController_state == 0) + return; + vector v; float i, l; string c; diff --git a/qcsrc/menu/menu.qh b/qcsrc/menu/menu.qh index 903700d5d5..de4224b934 100644 --- a/qcsrc/menu/menu.qh +++ b/qcsrc/menu/menu.qh @@ -40,3 +40,5 @@ void SUB_Null(); float preMenuInit(); // you have to define this for pre-menu initialization. Return 0 if initialization needs to be retried a frame later, 1 if it succeeded. void preMenuDraw(); // this is run before the menu is drawn. You may put some stuff there that has to be done every frame. void postMenuDraw(); // this is run just after the menu is drawn (or not). Useful to draw something over everything else. + +float highlightedPanel; diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_options.c b/qcsrc/menu/xonotic/dialog_hudpanel_options.c index 0536adede6..ee3854fcd4 100644 --- a/qcsrc/menu/xonotic/dialog_hudpanel_options.c +++ b/qcsrc/menu/xonotic/dialog_hudpanel_options.c @@ -1,6 +1,7 @@ #ifdef INTERFACE CLASS(XonoticHUDOptionsDialog) EXTENDS(XonoticRootDialog) METHOD(XonoticHUDOptionsDialog, fill, void(entity)) + METHOD(XonoticHUDOptionsDialog, change, void(entity, float)) ATTRIB(XonoticHUDOptionsDialog, title, string, "HUD Setup") ATTRIB(XonoticHUDOptionsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT) ATTRIB(XonoticHUDOptionsDialog, intendedWidth, float, 0.4) @@ -17,11 +18,48 @@ void fillXonoticHUDOptionsDialog(entity me) entity e; me.TR(me); + me.TD(me, 1, 1, e = makeXonoticCheckBoxHUDName(0, HUD_MENU_ENABLE, "Enable panel")); } -void changeXonoticHUDPanel(float id) +/* nvm these, i guess they wont be used +void saveCvarsXonoticHUDOptionsDialog(entity me) { + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel)), ftos(me.currentEnabled)); + if(me.currentPanel == HUD_PANEL_WEAPONICONS) + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_number"), ftos(me.currentNumber)); + + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg"), ftos(me.currentBg)); + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_color"), me.currentBgColor); + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_color_team"), ftos(me.currentBgColorTeam)); + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_alpha"), ftos(me.currentBgAlpha)); + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_border"), ftos(me.currentBgBorder)); + cvar_set(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_padding"), ftos(me.currentBgPadding)); +} + +void loadCvarsXonoticHUDOptionsDialog(entity me) +{ + me.currentEnabled = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel))); + if(me.currentPanel == HUD_PANEL_WEAPONICONS) + me.currentNumber = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_number")); // only weaponicons panel + + me.currentBg = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg")); + me.currentBgColor = cvar_string(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_color")); + me.currentBgColorTeam = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_color_team")); + me.currentBgAlpha = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_alpha")); + me.currentBgBorder = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_border")); + me.currentBgPadding = cvar(strcat("hud_", HUD_Panel_GetName(me.currentPanel), "_bg_padding")); + + // wtf? + me.go(me, 0); // this will set the other vars for currentSkin and currentModel +} +*/ + +void changeXonoticHUDOptionsDialog(entity me, float id) +{ + loadAllCvars(me); + highlightedPanel = id; print("Yay!", ftos(id), "\n"); } + #endif diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index 3571e1ba83..9a40ba25be 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -393,3 +393,11 @@ string resolvemod(string m) else return m; } + +string HUD_Panel_GetSettingName(float theSetting) +{ + switch(theSetting) { + case HUD_MENU_ENABLE: return ""; break; + default: return ""; + } +} diff --git a/qcsrc/menu/xonotic/util.qh b/qcsrc/menu/xonotic/util.qh index 55d9941156..78eb7c1c43 100644 --- a/qcsrc/menu/xonotic/util.qh +++ b/qcsrc/menu/xonotic/util.qh @@ -18,3 +18,5 @@ void unloadTooltips(); string getZonedTooltipForIdentifier(string s); string resolvemod(string m); + +string HUD_Panel_GetSettingName(float setting); -- 2.39.2