X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fhud_config.qc;h=4897ba55176d6e4e47fa8ec5b9e508467c0199d3;hp=6b05078d51e0800eb0a359e04603c46f1ef67aab;hb=63de1215428d078d5fb2021c49edf59a7900cef9;hpb=935976d2b23b527a6dda9f8309972f0334bfc829 diff --git a/qcsrc/client/hud/hud_config.qc b/qcsrc/client/hud/hud_config.qc index 6b05078d5..4897ba551 100644 --- a/qcsrc/client/hud/hud_config.qc +++ b/qcsrc/client/hud/hud_config.qc @@ -1,13 +1,11 @@ #include "hud_config.qh" #include "hud.qh" +#include "panel/scoreboard.qh" #define HUD_Write(s) fputs(fh, s) -// q: quoted, n: not quoted -#define HUD_Write_Cvar_n(cvar) HUD_Write(strcat("seta ", cvar, " ", cvar_string(cvar), "\n")) -#define HUD_Write_Cvar_q(cvar) HUD_Write(strcat("seta ", cvar, " \"", cvar_string(cvar), "\"\n")) -#define HUD_Write_PanelCvar_n(cvar_suf) HUD_Write_Cvar_n(strcat("hud_panel_", panel.panel_name, cvar_suf)) -#define HUD_Write_PanelCvar_q(cvar_suf) HUD_Write_Cvar_q(strcat("hud_panel_", panel.panel_name, cvar_suf)) +#define HUD_Write_Cvar(cvar) HUD_Write(strcat("seta ", cvar, " \"", cvar_string(cvar), "\"\n")) +#define HUD_Write_PanelCvar(cvar_suf) HUD_Write_Cvar(strcat("hud_panel_", panel.panel_name, cvar_suf)) // Save the config void HUD_Panel_ExportCfg(string cfgname) { @@ -16,40 +14,46 @@ void HUD_Panel_ExportCfg(string cfgname) fh = fopen(filename, FILE_WRITE); if(fh >= 0) { - HUD_Write_Cvar_q("hud_skin"); - HUD_Write_Cvar_q("hud_panel_bg"); - HUD_Write_Cvar_q("hud_panel_bg_color"); - HUD_Write_Cvar_q("hud_panel_bg_color_team"); - HUD_Write_Cvar_q("hud_panel_bg_alpha"); - HUD_Write_Cvar_q("hud_panel_bg_border"); - HUD_Write_Cvar_q("hud_panel_bg_padding"); - HUD_Write_Cvar_q("hud_panel_fg_alpha"); + HUD_Write("//title \n"); + HUD_Write("//author \n"); + HUD_Write("\n"); + HUD_Write_Cvar("hud_skin"); + HUD_Write_Cvar("hud_panel_bg"); + HUD_Write_Cvar("hud_panel_bg_color"); + HUD_Write_Cvar("hud_panel_bg_color_team"); + HUD_Write_Cvar("hud_panel_bg_alpha"); + HUD_Write_Cvar("hud_panel_bg_border"); + HUD_Write_Cvar("hud_panel_bg_padding"); + HUD_Write_Cvar("hud_panel_fg_alpha"); HUD_Write("\n"); - HUD_Write_Cvar_q("hud_dock"); - HUD_Write_Cvar_q("hud_dock_color"); - HUD_Write_Cvar_q("hud_dock_color_team"); - HUD_Write_Cvar_q("hud_dock_alpha"); + HUD_Write_Cvar("hud_dock"); + HUD_Write_Cvar("hud_dock_color"); + HUD_Write_Cvar("hud_dock_color_team"); + HUD_Write_Cvar("hud_dock_alpha"); HUD_Write("\n"); - HUD_Write_Cvar_q("hud_progressbar_alpha"); - HUD_Write_Cvar_q("hud_progressbar_strength_color"); - HUD_Write_Cvar_q("hud_progressbar_shield_color"); - HUD_Write_Cvar_q("hud_progressbar_health_color"); - HUD_Write_Cvar_q("hud_progressbar_armor_color"); - HUD_Write_Cvar_q("hud_progressbar_fuel_color"); - HUD_Write_Cvar_q("hud_progressbar_nexball_color"); - HUD_Write_Cvar_q("hud_progressbar_speed_color"); - HUD_Write_Cvar_q("hud_progressbar_acceleration_color"); - HUD_Write_Cvar_q("hud_progressbar_acceleration_neg_color"); + HUD_Write_Cvar("hud_progressbar_alpha"); + HUD_Write_Cvar("hud_progressbar_strength_color"); + HUD_Write_Cvar("hud_progressbar_superweapons_color"); + HUD_Write_Cvar("hud_progressbar_shield_color"); + HUD_Write_Cvar("hud_progressbar_health_color"); + HUD_Write_Cvar("hud_progressbar_armor_color"); + HUD_Write_Cvar("hud_progressbar_fuel_color"); + HUD_Write_Cvar("hud_progressbar_nexball_color"); + HUD_Write_Cvar("hud_progressbar_speed_color"); + HUD_Write_Cvar("hud_progressbar_acceleration_color"); + HUD_Write_Cvar("hud_progressbar_acceleration_neg_color"); + HUD_Write_Cvar("hud_progressbar_vehicles_ammo1_color"); + HUD_Write_Cvar("hud_progressbar_vehicles_ammo2_color"); HUD_Write("\n"); - HUD_Write_Cvar_q("_hud_panelorder"); + HUD_Write_Cvar("_hud_panelorder"); HUD_Write("\n"); - HUD_Write_Cvar_q("hud_configure_grid"); - HUD_Write_Cvar_q("hud_configure_grid_xsize"); - HUD_Write_Cvar_q("hud_configure_grid_ysize"); + HUD_Write_Cvar("hud_configure_grid"); + HUD_Write_Cvar("hud_configure_grid_xsize"); + HUD_Write_Cvar("hud_configure_grid_ysize"); HUD_Write("\n"); // common cvars for all panels @@ -57,157 +61,173 @@ void HUD_Panel_ExportCfg(string cfgname) { panel = hud_panels_from(i); - HUD_Write_PanelCvar_n(""); - HUD_Write_PanelCvar_q("_pos"); - HUD_Write_PanelCvar_q("_size"); - HUD_Write_PanelCvar_q("_bg"); - HUD_Write_PanelCvar_q("_bg_color"); - HUD_Write_PanelCvar_q("_bg_color_team"); - HUD_Write_PanelCvar_q("_bg_alpha"); - HUD_Write_PanelCvar_q("_bg_border"); - HUD_Write_PanelCvar_q("_bg_padding"); + HUD_Write_PanelCvar("_pos"); + HUD_Write_PanelCvar("_size"); + HUD_Write_PanelCvar("_bg"); + HUD_Write_PanelCvar("_bg_color"); + HUD_Write_PanelCvar("_bg_color_team"); + HUD_Write_PanelCvar("_bg_alpha"); + HUD_Write_PanelCvar("_bg_border"); + HUD_Write_PanelCvar("_bg_padding"); switch(panel) { case HUD_PANEL_WEAPONS: - HUD_Write_PanelCvar_q("_accuracy"); - HUD_Write_PanelCvar_q("_label"); - HUD_Write_PanelCvar_q("_label_scale"); - HUD_Write_PanelCvar_q("_complainbubble"); - HUD_Write_PanelCvar_q("_complainbubble_padding"); - HUD_Write_PanelCvar_q("_complainbubble_time"); - HUD_Write_PanelCvar_q("_complainbubble_fadetime"); - HUD_Write_PanelCvar_q("_complainbubble_color_outofammo"); - HUD_Write_PanelCvar_q("_complainbubble_color_donthave"); - HUD_Write_PanelCvar_q("_complainbubble_color_unavailable"); - HUD_Write_PanelCvar_q("_ammo"); - HUD_Write_PanelCvar_q("_ammo_color"); - HUD_Write_PanelCvar_q("_ammo_alpha"); - HUD_Write_PanelCvar_q("_aspect"); - HUD_Write_PanelCvar_q("_timeout"); - HUD_Write_PanelCvar_q("_timeout_effect"); - HUD_Write_PanelCvar_q("_timeout_fadebgmin"); - HUD_Write_PanelCvar_q("_timeout_fadefgmin"); - HUD_Write_PanelCvar_q("_timeout_speed_in"); - HUD_Write_PanelCvar_q("_timeout_speed_out"); - HUD_Write_PanelCvar_q("_onlyowned"); - HUD_Write_PanelCvar_q("_noncurrent_alpha"); - HUD_Write_PanelCvar_q("_noncurrent_scale"); + HUD_Write_PanelCvar("_accuracy"); + HUD_Write_PanelCvar("_label"); + HUD_Write_PanelCvar("_label_scale"); + HUD_Write_PanelCvar("_complainbubble"); + HUD_Write_PanelCvar("_complainbubble_padding"); + HUD_Write_PanelCvar("_complainbubble_time"); + HUD_Write_PanelCvar("_complainbubble_fadetime"); + HUD_Write_PanelCvar("_complainbubble_color_outofammo"); + HUD_Write_PanelCvar("_complainbubble_color_donthave"); + HUD_Write_PanelCvar("_complainbubble_color_unavailable"); + HUD_Write_PanelCvar("_ammo"); + HUD_Write_PanelCvar("_ammo_color"); + HUD_Write_PanelCvar("_ammo_alpha"); + HUD_Write_PanelCvar("_aspect"); + HUD_Write_PanelCvar("_timeout"); + HUD_Write_PanelCvar("_timeout_effect"); + HUD_Write_PanelCvar("_timeout_fadebgmin"); + HUD_Write_PanelCvar("_timeout_fadefgmin"); + HUD_Write_PanelCvar("_timeout_speed_in"); + HUD_Write_PanelCvar("_timeout_speed_out"); + HUD_Write_PanelCvar("_onlyowned"); + HUD_Write_PanelCvar("_noncurrent_alpha"); + HUD_Write_PanelCvar("_noncurrent_scale"); break; case HUD_PANEL_AMMO: - HUD_Write_PanelCvar_q("_onlycurrent"); - HUD_Write_PanelCvar_q("_noncurrent_alpha"); - HUD_Write_PanelCvar_q("_noncurrent_scale"); - HUD_Write_PanelCvar_q("_iconalign"); - HUD_Write_PanelCvar_q("_progressbar"); - HUD_Write_PanelCvar_q("_progressbar_name"); - HUD_Write_PanelCvar_q("_progressbar_xoffset"); - HUD_Write_PanelCvar_q("_text"); + HUD_Write_PanelCvar("_onlycurrent"); + HUD_Write_PanelCvar("_noncurrent_alpha"); + HUD_Write_PanelCvar("_noncurrent_scale"); + HUD_Write_PanelCvar("_iconalign"); + HUD_Write_PanelCvar("_progressbar"); + HUD_Write_PanelCvar("_progressbar_name"); + HUD_Write_PanelCvar("_progressbar_xoffset"); + HUD_Write_PanelCvar("_text"); break; case HUD_PANEL_POWERUPS: - HUD_Write_PanelCvar_q("_iconalign"); - HUD_Write_PanelCvar_q("_baralign"); - HUD_Write_PanelCvar_q("_progressbar"); - HUD_Write_PanelCvar_q("_text"); + HUD_Write_PanelCvar("_iconalign"); + HUD_Write_PanelCvar("_baralign"); + HUD_Write_PanelCvar("_progressbar"); + HUD_Write_PanelCvar("_text"); break; case HUD_PANEL_HEALTHARMOR: - HUD_Write_PanelCvar_q("_flip"); - HUD_Write_PanelCvar_q("_iconalign"); - HUD_Write_PanelCvar_q("_baralign"); - HUD_Write_PanelCvar_q("_progressbar"); - HUD_Write_PanelCvar_q("_progressbar_health"); - HUD_Write_PanelCvar_q("_progressbar_armor"); - HUD_Write_PanelCvar_q("_progressbar_gfx"); - HUD_Write_PanelCvar_q("_progressbar_gfx_smooth"); - HUD_Write_PanelCvar_q("_text"); + HUD_Write_PanelCvar("_flip"); + HUD_Write_PanelCvar("_iconalign"); + HUD_Write_PanelCvar("_baralign"); + HUD_Write_PanelCvar("_progressbar"); + HUD_Write_PanelCvar("_progressbar_health"); + HUD_Write_PanelCvar("_progressbar_armor"); + HUD_Write_PanelCvar("_progressbar_gfx"); + HUD_Write_PanelCvar("_progressbar_gfx_smooth"); + HUD_Write_PanelCvar("_combined"); + HUD_Write_PanelCvar("_text"); break; case HUD_PANEL_NOTIFY: - HUD_Write_PanelCvar_q("_flip"); - HUD_Write_PanelCvar_q("_fontsize"); - HUD_Write_PanelCvar_q("_time"); - HUD_Write_PanelCvar_q("_fadetime"); - HUD_Write_PanelCvar_q("_icon_aspect"); + HUD_Write_PanelCvar("_flip"); + HUD_Write_PanelCvar("_fontsize"); + HUD_Write_PanelCvar("_time"); + HUD_Write_PanelCvar("_fadetime"); + HUD_Write_PanelCvar("_icon_aspect"); break; case HUD_PANEL_TIMER: - HUD_Write_PanelCvar_q("_increment"); break; case HUD_PANEL_RADAR: - HUD_Write_PanelCvar_q("_foreground_alpha"); - HUD_Write_PanelCvar_q("_rotation"); - HUD_Write_PanelCvar_q("_zoommode"); - HUD_Write_PanelCvar_q("_scale"); - HUD_Write_PanelCvar_q("_maximized_scale"); - HUD_Write_PanelCvar_q("_maximized_size"); - HUD_Write_PanelCvar_q("_maximized_rotation"); - HUD_Write_PanelCvar_q("_maximized_zoommode"); + HUD_Write_PanelCvar("_foreground_alpha"); + HUD_Write_PanelCvar("_rotation"); + HUD_Write_PanelCvar("_zoommode"); + HUD_Write_PanelCvar("_scale"); + HUD_Write_PanelCvar("_maximized_scale"); + HUD_Write_PanelCvar("_maximized_size"); + HUD_Write_PanelCvar("_maximized_rotation"); + HUD_Write_PanelCvar("_maximized_zoommode"); break; case HUD_PANEL_SCORE: - HUD_Write_PanelCvar_q("_rankings"); + HUD_Write_PanelCvar("_rankings"); break; case HUD_PANEL_VOTE: - HUD_Write_PanelCvar_q("_alreadyvoted_alpha"); + HUD_Write_PanelCvar("_alreadyvoted_alpha"); break; case HUD_PANEL_MODICONS: - HUD_Write_PanelCvar_q("_ca_layout"); - HUD_Write_PanelCvar_q("_dom_layout"); - HUD_Write_PanelCvar_q("_freezetag_layout"); + HUD_Write_PanelCvar("_ca_layout"); + HUD_Write_PanelCvar("_dom_layout"); + HUD_Write_PanelCvar("_freezetag_layout"); break; case HUD_PANEL_PRESSEDKEYS: - HUD_Write_PanelCvar_q("_aspect"); - HUD_Write_PanelCvar_q("_attack"); + HUD_Write_PanelCvar("_aspect"); + HUD_Write_PanelCvar("_attack"); break; case HUD_PANEL_ENGINEINFO: - HUD_Write_PanelCvar_q("_framecounter_time"); - HUD_Write_PanelCvar_q("_framecounter_decimals"); + HUD_Write_PanelCvar("_framecounter_time"); + HUD_Write_PanelCvar("_framecounter_decimals"); break; case HUD_PANEL_INFOMESSAGES: - HUD_Write_PanelCvar_q("_flip"); + HUD_Write_PanelCvar("_flip"); break; case HUD_PANEL_PHYSICS: - HUD_Write_PanelCvar_q("_speed_unit"); - HUD_Write_PanelCvar_q("_speed_unit_show"); - HUD_Write_PanelCvar_q("_speed_max"); - HUD_Write_PanelCvar_q("_speed_vertical"); - HUD_Write_PanelCvar_q("_topspeed"); - HUD_Write_PanelCvar_q("_topspeed_time"); - HUD_Write_PanelCvar_q("_acceleration_max"); - HUD_Write_PanelCvar_q("_acceleration_vertical"); - HUD_Write_PanelCvar_q("_flip"); - HUD_Write_PanelCvar_q("_baralign"); - HUD_Write_PanelCvar_q("_progressbar"); - HUD_Write_PanelCvar_q("_progressbar_acceleration_mode"); - HUD_Write_PanelCvar_q("_progressbar_acceleration_scale"); - HUD_Write_PanelCvar_q("_progressbar_acceleration_nonlinear"); - HUD_Write_PanelCvar_q("_text"); - HUD_Write_PanelCvar_q("_text_scale"); + HUD_Write_PanelCvar("_speed_unit_show"); + HUD_Write_PanelCvar("_speed_max"); + HUD_Write_PanelCvar("_speed_vertical"); + HUD_Write_PanelCvar("_topspeed"); + HUD_Write_PanelCvar("_topspeed_time"); + HUD_Write_PanelCvar("_acceleration_max"); + HUD_Write_PanelCvar("_acceleration_vertical"); + HUD_Write_PanelCvar("_flip"); + HUD_Write_PanelCvar("_baralign"); + HUD_Write_PanelCvar("_progressbar"); + HUD_Write_PanelCvar("_acceleration_progressbar_mode"); + HUD_Write_PanelCvar("_acceleration_progressbar_scale"); + HUD_Write_PanelCvar("_acceleration_progressbar_nonlinear"); + HUD_Write_PanelCvar("_text"); + HUD_Write_PanelCvar("_text_scale"); break; case HUD_PANEL_CENTERPRINT: - HUD_Write_PanelCvar_q("_align"); - HUD_Write_PanelCvar_q("_flip"); - HUD_Write_PanelCvar_q("_fontscale"); - HUD_Write_PanelCvar_q("_time"); - HUD_Write_PanelCvar_q("_fade_in"); - HUD_Write_PanelCvar_q("_fade_out"); - HUD_Write_PanelCvar_q("_fade_subsequent"); - HUD_Write_PanelCvar_q("_fade_subsequent_passone"); - HUD_Write_PanelCvar_q("_fade_subsequent_passone_minalpha"); - HUD_Write_PanelCvar_q("_fade_subsequent_passtwo"); - HUD_Write_PanelCvar_q("_fade_subsequent_passtwo_minalpha"); - HUD_Write_PanelCvar_q("_fade_subsequent_minfontsize"); - HUD_Write_PanelCvar_q("_fade_minfontsize"); + HUD_Write_PanelCvar("_align"); + HUD_Write_PanelCvar("_flip"); + HUD_Write_PanelCvar("_fontscale"); + HUD_Write_PanelCvar("_time"); + HUD_Write_PanelCvar("_fade_in"); + HUD_Write_PanelCvar("_fade_out"); + HUD_Write_PanelCvar("_fade_subsequent"); + HUD_Write_PanelCvar("_fade_subsequent_passone"); + HUD_Write_PanelCvar("_fade_subsequent_passone_minalpha"); + HUD_Write_PanelCvar("_fade_subsequent_passtwo"); + HUD_Write_PanelCvar("_fade_subsequent_passtwo_minalpha"); + HUD_Write_PanelCvar("_fade_subsequent_minfontsize"); + HUD_Write_PanelCvar("_fade_minfontsize"); break; case HUD_PANEL_ITEMSTIME: - HUD_Write_PanelCvar_q("_iconalign"); - HUD_Write_PanelCvar_q("_progressbar"); - HUD_Write_PanelCvar_q("_progressbar_name"); - HUD_Write_PanelCvar_q("_progressbar_reduced"); - HUD_Write_PanelCvar_q("_text"); - HUD_Write_PanelCvar_q("_ratio"); - HUD_Write_PanelCvar_q("_dynamicsize"); + HUD_Write_PanelCvar("_iconalign"); + HUD_Write_PanelCvar("_progressbar"); + HUD_Write_PanelCvar("_progressbar_name"); + HUD_Write_PanelCvar("_progressbar_reduced"); + HUD_Write_PanelCvar("_text"); + HUD_Write_PanelCvar("_ratio"); + HUD_Write_PanelCvar("_dynamicsize"); + break; case HUD_PANEL_QUICKMENU: - HUD_Write_PanelCvar_q("_align"); + HUD_Write_PanelCvar("_align"); + break; + case HUD_PANEL_SCOREBOARD: + HUD_Write_PanelCvar("_fadeinspeed"); + HUD_Write_PanelCvar("_fadeoutspeed"); + HUD_Write_PanelCvar("_respawntime_decimals"); + HUD_Write_PanelCvar("_table_bg_alpha"); + HUD_Write_PanelCvar("_table_bg_scale"); + HUD_Write_PanelCvar("_table_fg_alpha"); + HUD_Write_PanelCvar("_table_fg_alpha_self"); + HUD_Write_PanelCvar("_table_highlight"); + HUD_Write_PanelCvar("_table_highlight_alpha"); + HUD_Write_PanelCvar("_table_highlight_alpha_self"); + HUD_Write_PanelCvar("_bg_teams_color_team"); + HUD_Write_PanelCvar("_accuracy_doublerows"); + HUD_Write_PanelCvar("_accuracy_nocolors"); break; } HUD_Write("\n"); } + MUTATOR_CALLHOOK(HUD_WriteCvars, fh); + HUD_Write("menu_sync\n"); // force the menu to reread the cvars, so that the dialogs are updated LOG_INFOF(_("^2Successfully exported to %s! (Note: It's saved in data/data/)\n"), filename); @@ -219,9 +239,9 @@ void HUD_Panel_ExportCfg(string cfgname) void HUD_Configure_Exit_Force() { - if (menu_enabled) + if (hud_configure_menu_open) { - menu_enabled = 0; + hud_configure_menu_open = 0; localcmd("togglemenu\n"); } cvar_set("_hud_configure", "0"); @@ -639,9 +659,8 @@ float tab_backward; void HUD_Panel_FirstInDrawQ(float id); void reset_tab_panels() { - int i; - for(i = 0; i < hud_panels_COUNT; ++i) - tab_panels[i] = world; + for (int i = 0; i < hud_panels_COUNT; ++i) + tab_panels[i] = NULL; } float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) { @@ -670,10 +689,8 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) } // allow console bind to work - string con_keys; - float keys; - con_keys = findkeysforcommand("toggleconsole", 0); - keys = tokenize(con_keys); // findkeysforcommand returns data for this + string con_keys = findkeysforcommand("toggleconsole", 0); + int keys = tokenize(con_keys); // findkeysforcommand returns data for this bool hit_con_bind = false; int i; @@ -705,7 +722,7 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) highlightedAction = 0; HUD_Panel_FirstInDrawQ(highlightedPanel.panel_id); } - tab_panel = world; + tab_panel = NULL; reset_tab_panels(); } } @@ -728,14 +745,14 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) { if (bInputType == 1) return true; - menu_enabled = 1; + hud_configure_menu_open = 1; localcmd("menu_showhudexit\n"); } else if(nPrimary == K_BACKSPACE && hudShiftState & S_CTRL) { if (bInputType == 1) return true; - if (!menu_enabled) + if (!hud_configure_menu_open) cvar_set("_hud_configure", "0"); } else if(nPrimary == K_TAB && hudShiftState & S_CTRL) // switch panel @@ -773,11 +790,11 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) vector candidate_pos = '0 0 0'; const float LEVELS_NUM = 4; float level_height = vid_conheight / LEVELS_NUM; -:find_tab_panel +LABEL(find_tab_panel) level = floor(tab_panel_pos.y / level_height) * level_height; //starting level candidate_pos.x = (!tab_backward) ? vid_conwidth : 0; start_posX = tab_panel_pos.x; - tab_panel = world; + tab_panel = NULL; k=0; while(++k) { @@ -804,11 +821,11 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) reset_tab_panels(); if (!old_tab_panel) { - tab_panel = world; + tab_panel = NULL; return true; } starting_panel = old_tab_panel; - old_tab_panel = world; + old_tab_panel = NULL; goto find_tab_panel; //u must find tab_panel! } if (!tab_backward) @@ -833,7 +850,10 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) return true; if (highlightedPanel) - cvar_set(strcat("hud_panel_", highlightedPanel.panel_name), ftos(!cvar(strcat("hud_panel_", highlightedPanel.panel_name)))); + { + if(panel.panel_configflags & PANEL_CONFIG_CANBEOFF) + cvar_set(strcat("hud_panel_", highlightedPanel.panel_name), ftos(!cvar(strcat("hud_panel_", highlightedPanel.panel_name)))); + } else cvar_set(strcat("hud_dock"), (autocvar_hud_dock == "") ? "dock" : ""); } @@ -889,7 +909,7 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) cvar_set(strcat("hud_panel_", highlightedPanel_backup.panel_name, "_pos"), s); s = strcat(ftos(panel_size_backup.x/vid_conwidth), " ", ftos(panel_size_backup.y/vid_conheight)); cvar_set(strcat("hud_panel_", highlightedPanel_backup.panel_name, "_size"), s); - highlightedPanel_backup = world; + highlightedPanel_backup = NULL; } } else if(nPrimary == 's' && hudShiftState & S_CTRL) // save config @@ -1077,13 +1097,13 @@ void HUD_Panel_Highlight(float allow_move) return; } } - highlightedPanel = world; + highlightedPanel = NULL; highlightedAction = 0; } void HUD_Panel_EnableMenu() { - menu_enabled = 2; + hud_configure_menu_open = 2; localcmd("menu_showhudoptions ", highlightedPanel.panel_name, "\n"); } float mouse_over_panel; @@ -1093,12 +1113,7 @@ void HUD_Panel_Mouse() return; if (!autocvar_hud_cursormode) - { - mousepos = mousepos + getmousepos() * autocvar_menu_mouse_speed; - - mousepos.x = bound(0, mousepos.x, vid_conwidth); - mousepos.y = bound(0, mousepos.y, vid_conheight); - } + update_mousepos(); if(mouseClicked) { @@ -1107,7 +1122,7 @@ void HUD_Panel_Mouse() if (tab_panel) { //stop ctrl-tab selection - tab_panel = world; + tab_panel = NULL; reset_tab_panels(); } HUD_Panel_Highlight(mouseClicked & S_MOUSE1); // sets highlightedPanel, highlightedAction, panel_click_distance, panel_click_resizeorigin @@ -1182,7 +1197,7 @@ void HUD_Panel_Mouse() { if(prevMouseClicked) highlightedAction = 0; - if(menu_enabled == 2) + if(hud_configure_menu_open == 2) mouse_over_panel = 0; else mouse_over_panel = HUD_Panel_Check_Mouse_Pos(true); @@ -1190,17 +1205,16 @@ void HUD_Panel_Mouse() drawfill(panel_pos - '1 1 0' * panel_bg_border, panel_size + '2 2 0' * panel_bg_border, '1 1 1', .1, DRAWFLAG_NORMAL); } // draw cursor after performing move/resize to have the panel pos/size updated before mouse_over_panel - const vector cursorsize = '32 32 0'; float cursor_alpha = 1 - autocvar__menu_alpha; if(!mouse_over_panel) - drawpic(mousepos, strcat("gfx/menu/", autocvar_menu_skin, "/cursor.tga"), cursorsize, '1 1 1', cursor_alpha, DRAWFLAG_NORMAL); + draw_cursor_normal(mousepos, '1 1 1', cursor_alpha); else if(mouse_over_panel == 1) - drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_move.tga"), cursorsize, '1 1 1', cursor_alpha, DRAWFLAG_NORMAL); + draw_cursor(mousepos, '0.5 0.5 0', "/cursor_move", '1 1 1', cursor_alpha); else if(mouse_over_panel == 2) - drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_resize.tga"), cursorsize, '1 1 1', cursor_alpha, DRAWFLAG_NORMAL); + draw_cursor(mousepos, '0.5 0.5 0', "/cursor_resize", '1 1 1', cursor_alpha); else - drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", autocvar_menu_skin, "/cursor_resize2.tga"), cursorsize, '1 1 1', cursor_alpha, DRAWFLAG_NORMAL); + draw_cursor(mousepos, '0.5 0.5 0', "/cursor_resize2", '1 1 1', cursor_alpha); prevMouseClicked = mouseClicked; } @@ -1231,7 +1245,7 @@ void HUD_Configure_Frame() int i; if(autocvar__hud_configure) { - if(isdemo() || intermission == 2) + if(isdemo() || intermission == 2 || scoreboard_active) { HUD_Configure_Exit_Force(); return; @@ -1250,7 +1264,7 @@ void HUD_Configure_Frame() if(autocvar__menu_alpha != _menu_alpha_prev) { if(autocvar__menu_alpha == 0) - menu_enabled = 0; + hud_configure_menu_open = 0; _menu_alpha_prev = autocvar__menu_alpha; } @@ -1258,10 +1272,11 @@ void HUD_Configure_Frame() } else if(hud_configure_prev) { - if(menu_enabled) - menu_enabled = 0; + if(hud_configure_menu_open) + hud_configure_menu_open = 0; if(autocvar_hud_cursormode) setcursormode(0); + hud_dynamic_shake_factor = -1; } }