diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 8eb6b33a..93637c95 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -1413,8 +1413,7 @@ boolean HU_DemoProgressBar(boolean force) } // [FG] level stats and level time widgets -int map_player_coords, map_level_stats, map_level_time; -int hud_level_stats, hud_level_time; +int hud_player_coords, hud_level_stats, hud_level_time; // // HU_Drawer() @@ -1469,7 +1468,7 @@ void WI_DrawTimeWidget(void) { const hu_widget_t w = {&w_sttime, align_left, align_top}; - if (hud_level_time) + if (hud_level_time == 2) { HUlib_reset_align_offsets(); // leveltime is already added to totalleveltimes before WI_Start() @@ -1628,15 +1627,17 @@ void HU_Ticker(void) // draw the automap widgets if automap is displayed - if (automapactive) + if (automap_on) { - HU_cond_build_widget(&w_monsec, map_level_stats); - HU_cond_build_widget(&w_sttime, map_level_time); - HU_cond_build_widget(&w_coord, STRICTMODE(map_player_coords)); + HU_cond_build_widget(&w_monsec, hud_level_stats); + HU_cond_build_widget(&w_sttime, hud_level_time); + HU_cond_build_widget(&w_coord, STRICTMODE(hud_player_coords)); } else { - HU_cond_build_widget(&w_coord, STRICTMODE(map_player_coords) == 2); + HU_cond_build_widget(&w_monsec, hud_level_stats == 2); + HU_cond_build_widget(&w_sttime, hud_level_time == 2); + HU_cond_build_widget(&w_coord, STRICTMODE(hud_player_coords) == 2); } HU_cond_build_widget(&w_fps, plr->cheats & CF_SHOWFPS); @@ -1659,16 +1660,6 @@ void HU_Ticker(void) HU_cond_build_widget(&w_ammo, true); HU_cond_build_widget(&w_keys, true); } - - HU_cond_build_widget(&w_monsec, hud_level_stats); - HU_cond_build_widget(&w_sttime, hud_level_time); - } - else if (scaledviewheight && - scaledviewheight < SCREENHEIGHT && - automap_off) - { - HU_cond_build_widget(&w_monsec, hud_level_stats); - HU_cond_build_widget(&w_sttime, hud_level_time); } // update crosshair properties diff --git a/src/hu_stuff.h b/src/hu_stuff.h index 4fb35933..cdb69a02 100644 --- a/src/hu_stuff.h +++ b/src/hu_stuff.h @@ -69,8 +69,7 @@ extern int hud_displayed; // hud is displayed //jff 2/18/98 hud/status control extern int hud_active; // hud mode 0=off, 1=small, 2=full extern int hud_secret_message; // "A secret is revealed!" message -extern int map_player_coords, map_level_stats, map_level_time; // [FG] level stats and level time widgets -extern int hud_level_stats, hud_level_time; +extern int hud_player_coords, hud_level_stats, hud_level_time; extern int hud_widget_font; extern int hud_widescreen_widgets; extern int hud_draw_bargraphs; diff --git a/src/m_menu.c b/src/m_menu.c index 7317da39..7dab9546 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3305,13 +3305,12 @@ void M_DrawWeapons(void) // Screen table definitions -setup_menu_t stat_settings1[], stat_settings2[], stat_settings3[]; +setup_menu_t stat_settings1[], stat_settings2[]; setup_menu_t* stat_settings[] = { stat_settings1, stat_settings2, - stat_settings3, NULL }; @@ -3319,44 +3318,45 @@ enum { stat1_title1, stat1_rednum, stat1_graypcnt, - stat1_keys, stat1_stub1, stat1_title2, + stat1_coords, stat1_stats, stat1_time, - stat1_healthr, - stat1_healthy, - stat1_healthg, - stat1_armorr, - stat1_armory, - stat1_armorg, - stat1_ammor, - stat1_ammoy, + stat1_stub2, + stat1_title3, + stat1_backpack, + stat1_armortype, + stat1_smooth, }; -setup_menu_t stat_settings1[] = // Status Bar and HUD Settings screen +static const char *show_widgets_strings[] = { + "OFF", "ON AUTOMAP", "ALWAYS", NULL +}; + +setup_menu_t stat_settings1[] = // Status Bar and HUD Settings screen { - {"STATUS BAR" ,S_SKIP|S_TITLE,m_null,M_X,M_Y}, + {"STATUS BAR" ,S_SKIP|S_TITLE,m_null,M_X,M_Y+stat1_title1*M_SPC}, {"USE STANDARD COLORS",S_YESNO|S_COSMETIC,m_null,M_X,M_Y+stat1_rednum*M_SPC, {"sts_always_red"}}, {"GRAY %" ,S_YESNO|S_COSMETIC,m_null,M_X,M_Y+stat1_graypcnt*M_SPC, {"sts_pct_always_gray"}}, - {"SINGLE KEY DISPLAY",S_YESNO|S_COSMETIC,m_null,M_X,M_Y+stat1_keys*M_SPC, {"sts_traditional_keys"}}, {"",S_SKIP,m_null,M_X,M_Y+stat1_stub1*M_SPC}, {"HEADS-UP DISPLAY" ,S_SKIP|S_TITLE,m_null,M_X,M_Y+stat1_title2*M_SPC}, - {"SHOW LEVEL STATS" ,S_YESNO|S_COSMETIC,m_null,M_X,M_Y+stat1_stats*M_SPC, {"hud_level_stats"}}, - {"SHOW LEVEL TIME" ,S_YESNO|S_COSMETIC,m_null,M_X,M_Y+stat1_time*M_SPC, {"hud_level_time"}}, - {"HEALTH LOW/OK" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_healthr*M_SPC, {"health_red"}}, - {"HEALTH OK/GOOD" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_healthy*M_SPC, {"health_yellow"}}, - {"HEALTH GOOD/EXTRA" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_healthg*M_SPC, {"health_green"}}, - {"ARMOR LOW/OK" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_armorr*M_SPC, {"armor_red"}}, - {"ARMOR OK/GOOD" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_armory*M_SPC, {"armor_yellow"}}, - {"ARMOR GOOD/EXTRA" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_armorg*M_SPC, {"armor_green"}}, - {"AMMO LOW/OK" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_ammor*M_SPC, {"ammo_red"}}, - {"AMMO OK/GOOD" ,S_NUM|S_COSMETIC,m_null,M_X,M_Y+stat1_ammoy*M_SPC, {"ammo_yellow"}}, - + {"SHOW PLAYER COORDS",S_CHOICE|S_STRICT,m_null,M_X,M_Y+stat1_coords*M_SPC, {"hud_player_coords"},0,NULL,show_widgets_strings}, + {"SHOW LEVEL STATS" ,S_CHOICE,m_null,M_X,M_Y+stat1_stats*M_SPC, {"hud_level_stats"},0,NULL,show_widgets_strings}, + {"SHOW LEVEL TIME" ,S_CHOICE,m_null,M_X,M_Y+stat1_time*M_SPC, {"hud_level_time"},0,NULL,show_widgets_strings}, + + {"",S_SKIP,m_null,M_X,M_Y+stat1_stub2*M_SPC}, + + {"WIDGET APPEARANCE",S_SKIP|S_TITLE,m_null,M_X,M_Y+stat1_title3*M_SPC}, + + {"BACKPACK SHIFTS AMMO COLORS" ,S_YESNO,m_null,M_X,M_Y+stat1_backpack*M_SPC, {"hud_backpack_thresholds"}}, + {"ARMOR COLOR DEPENDS ON TYPE" ,S_YESNO,m_null,M_X,M_Y+stat1_armortype*M_SPC, {"hud_armor_type"}}, + {"SMOOTH HEALTH/ARMOR COUNT" ,S_YESNO,m_null,M_X,M_Y+stat1_smooth*M_SPC, {"smooth_counts"}}, + // Button for resetting to defaults {0,S_RESET,m_null,X_BUTTON,Y_BUTTON}, @@ -3368,42 +3368,31 @@ setup_menu_t stat_settings1[] = // Status Bar and HUD Settings screen enum { stat2_title1, - stat2_backpack, - stat2_armortype, - stat2_smooth, - stat2_stub1, - stat2_title2, stat2_crispyhud, stat2_hudfont, stat2_widescreen, stat2_threelined, stat2_bargraphs, -}; - -enum { - stat3_title1, - stat3_xhair, - stat3_xhairhealth, - stat3_xhairtarget, - stat3_xhairlockon, - stat3_xhaircolor, - stat3_xhairtcolor, + stat2_stub1, + stat2_title2, + stat2_xhair, + stat2_xhairhealth, + stat2_xhairtarget, + stat2_xhairlockon, + stat2_xhaircolor, + stat2_xhairtcolor, }; static void M_UpdateCrosshairItems (void) { - DISABLE_ITEM(!hud_crosshair, stat_settings3[stat3_xhairhealth]); - DISABLE_ITEM(!hud_crosshair, stat_settings3[stat3_xhairtarget]); - DISABLE_ITEM(!hud_crosshair, stat_settings3[stat3_xhairlockon]); - DISABLE_ITEM(!hud_crosshair, stat_settings3[stat3_xhaircolor]); + DISABLE_ITEM(!hud_crosshair, stat_settings2[stat2_xhairhealth]); + DISABLE_ITEM(!hud_crosshair, stat_settings2[stat2_xhairtarget]); + DISABLE_ITEM(!hud_crosshair, stat_settings2[stat2_xhairlockon]); + DISABLE_ITEM(!hud_crosshair, stat_settings2[stat2_xhaircolor]); DISABLE_ITEM(!(hud_crosshair && hud_crosshair_target == crosstarget_highlight), - stat_settings3[stat3_xhairtcolor]); + stat_settings2[stat2_xhairtcolor]); } -static const char *show_widgets_strings[] = { - "OFF", "ON AUTOMAP", "ALWAYS", NULL -}; - static const char *crosshair_target_str[] = { "OFF", "HIGHLIGHT", "HEALTH", NULL }; @@ -3415,15 +3404,7 @@ static const char *hudcolor_str[] = { setup_menu_t stat_settings2[] = { - {"WIDGET APPEARANCE",S_SKIP|S_TITLE,m_null,M_X,M_Y}, - - {"BACKPACK CHANGES THRESHOLDS" ,S_YESNO,m_null,M_X,M_Y+stat2_backpack*M_SPC, {"hud_backpack_thresholds"}}, - {"COLOR OF ARMOR DEPENDS ON TYPE" ,S_YESNO,m_null,M_X,M_Y+stat2_armortype*M_SPC, {"hud_armor_type"}}, - {"SMOOTH HEALTH/ARMOR COUNT" ,S_YESNO,m_null,M_X,M_Y+stat2_smooth*M_SPC, {"smooth_counts"}}, - - {"",S_SKIP,m_null,M_X,M_Y+stat2_stub1*M_SPC}, - - {"EXTENDED HUD",S_SKIP|S_TITLE,m_null,M_X,M_Y+stat2_title2*M_SPC }, + {"EXTENDED HUD",S_SKIP|S_TITLE,m_null,M_X,M_Y+stat2_title1*M_SPC }, {"PREFER CRISPY HUD OVER BOOM HUD" ,S_YESNO ,m_null,M_X,M_Y+stat2_crispyhud*M_SPC, {"crispy_hud"}}, {"USE STANDARD DOOM FONT FOR WIDGETS", S_CHOICE,m_null,M_X,M_Y+stat2_hudfont*M_SPC, {"hud_widget_font"}, 0, NULL, show_widgets_strings}, @@ -3431,25 +3412,18 @@ setup_menu_t stat_settings2[] = {"3-LINED COORDS/STATS WIDGETS", S_YESNO,m_null,M_X,M_Y+stat2_threelined*M_SPC, {"hud_threelined_widgets"}}, {"DRAW BAR GRAPHS IN WIDGETS", S_YESNO,m_null,M_X,M_Y+stat2_bargraphs*M_SPC, {"hud_draw_bargraphs"}}, + {"",S_SKIP,m_null,M_X,M_Y+stat2_stub1*M_SPC}, + + {"CROSSHAIR",S_SKIP|S_TITLE,m_null,M_X,M_Y+stat2_title2*M_SPC }, + + {"ENABLE CROSSHAIR", S_CHOICE,m_null,M_X,M_Y+stat2_xhair*M_SPC, {"hud_crosshair"}, 0, M_UpdateCrosshairItems, crosshair_str}, + {"COLOR BY PLAYER HEALTH",S_YESNO|S_STRICT,m_null,M_X,M_Y+stat2_xhairhealth*M_SPC, {"hud_crosshair_health"}}, + {"COLOR BY TARGET", S_CHOICE|S_STRICT,m_null,M_X,M_Y+stat2_xhairtarget*M_SPC, {"hud_crosshair_target"}, 0, M_UpdateCrosshairItems, crosshair_target_str}, + {"LOCK ON TARGET", S_YESNO|S_STRICT,m_null,M_X,M_Y+stat2_xhairlockon*M_SPC, {"hud_crosshair_lockon"}}, + {"DEFAULT COLOR", S_CRITEM,m_null,M_X,M_Y+stat2_xhaircolor*M_SPC, {"hud_crosshair_color"}, 0, NULL, hudcolor_str}, + {"HIGHLIGHT COLOR", S_CRITEM|S_STRICT,m_null,M_X,M_Y+stat2_xhairtcolor*M_SPC, {"hud_crosshair_target_color"}, 0, NULL, hudcolor_str}, + {"<- PREV" ,S_SKIP|S_PREV,m_null,M_X_PREV,M_Y_PREVNEXT, {stat_settings1}}, - {"NEXT ->", S_SKIP|S_NEXT,m_null,M_X_NEXT,M_Y_PREVNEXT, {stat_settings3}}, - - // Final entry - {0,S_SKIP|S_END,m_null} -}; - -setup_menu_t stat_settings3[] = -{ - {"CROSSHAIR",S_SKIP|S_TITLE,m_null,M_X,M_Y+stat3_title1*M_SPC }, - - {"ENABLE CROSSHAIR", S_CHOICE,m_null,M_X,M_Y+stat3_xhair*M_SPC, {"hud_crosshair"}, 0, M_UpdateCrosshairItems, crosshair_str}, - {"COLOR BY PLAYER HEALTH",S_YESNO|S_STRICT,m_null,M_X,M_Y+stat3_xhairhealth*M_SPC, {"hud_crosshair_health"}}, - {"COLOR BY TARGET", S_CHOICE|S_STRICT,m_null,M_X,M_Y+stat3_xhairtarget*M_SPC, {"hud_crosshair_target"}, 0, M_UpdateCrosshairItems, crosshair_target_str}, - {"LOCK ON TARGET", S_YESNO|S_STRICT,m_null,M_X,M_Y+stat3_xhairlockon*M_SPC, {"hud_crosshair_lockon"}}, - {"DEFAULT COLOR", S_CRITEM,m_null,M_X,M_Y+stat3_xhaircolor*M_SPC, {"hud_crosshair_color"}, 0, NULL, hudcolor_str}, - {"HIGHLIGHT COLOR", S_CRITEM|S_STRICT,m_null,M_X,M_Y+stat3_xhairtcolor*M_SPC, {"hud_crosshair_target_color"}, 0, NULL, hudcolor_str}, - - {"<- PREV" ,S_SKIP|S_PREV,m_null,M_X_PREV,M_Y_PREVNEXT, {stat_settings2}}, // Final entry {0,S_SKIP|S_END,m_null} @@ -3516,14 +3490,9 @@ enum { auto1_follow, auto1_rotate, auto1_overlay, + auto1_pointer, auto1_stub1, auto1_title2, - auto1_coords, - auto1_pointer, - auto1_stats, - auto1_time, - auto1_stub2, - auto1_title3, auto1_smooth, auto1_secrets, auto1_flash, @@ -3547,19 +3516,11 @@ setup_menu_t auto_settings1[] = // 1st AutoMap Settings screen {"Follow Player" ,S_YESNO ,m_null,M_X,M_Y+auto1_follow*M_SPC, {"followplayer"}}, {"Rotate Automap" ,S_YESNO ,m_null,M_X,M_Y+auto1_rotate*M_SPC, {"automaprotate"}}, {"Overlay Automap" ,S_CHOICE,m_null,M_X,M_Y+auto1_overlay*M_SPC, {"automapoverlay"}, 0, NULL, overlay_strings}, + {"Coords follow pointer",S_YESNO ,m_null,M_X,M_Y+auto1_pointer*M_SPC, {"map_point_coord"}}, // killough 10/98 {"",S_SKIP,m_null,M_X,M_Y+auto1_stub1*M_SPC}, - {"Widgets",S_SKIP|S_TITLE,m_null,M_X,M_Y+auto1_title2*M_SPC}, - // [FG] show level statistics and level time widgets - {"Show player coords" ,S_CHOICE|S_STRICT,m_null,M_X,M_Y+auto1_coords*M_SPC, {"map_player_coords"},0,NULL,show_widgets_strings}, - {"Coords follow pointer",S_YESNO ,m_null,M_X,M_Y+auto1_pointer*M_SPC, {"map_point_coord"}}, // killough 10/98 - {"Show level stats" ,S_YESNO ,m_null,M_X,M_Y+auto1_stats*M_SPC, {"map_level_stats"}}, - {"Show level time" ,S_YESNO ,m_null,M_X,M_Y+auto1_time*M_SPC, {"map_level_time"}}, - - {"",S_SKIP,m_null,M_X,M_Y+auto1_stub2*M_SPC}, - - {"Miscellaneous",S_SKIP|S_TITLE,m_null,M_X,M_Y+auto1_title3*M_SPC}, + {"Miscellaneous",S_SKIP|S_TITLE,m_null,M_X,M_Y+auto1_title2*M_SPC}, {"Smooth automap lines" ,S_YESNO,m_null,M_X,M_Y+auto1_smooth*M_SPC, {"map_smooth_lines"},0,AM_enableSmoothLines}, {"Show Secrets only after entering",S_YESNO,m_null,M_X,M_Y+auto1_secrets*M_SPC, {"map_secret_after"}}, {"Keyed doors are flashing" ,S_YESNO,m_null,M_X,M_Y+auto1_flash*M_SPC, {"map_keyed_door_flash"}}, diff --git a/src/m_misc.c b/src/m_misc.c index 92a18e9f..f71832fb 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -2397,30 +2397,6 @@ default_t defaults[] = { "1 to enable smooth automap lines" }, - // [FG] player coords widget - { - "map_player_coords", - (config_t *) &map_player_coords, NULL, - {1}, {0,2}, number, ss_auto, wad_yes, - "1 to show player coords widget" - }, - - // [FG] level stats widget - { - "map_level_stats", - (config_t *) &map_level_stats, NULL, - {0}, {0,2}, number, ss_auto, wad_yes, - "1 to show level stats (kill, items and secrets) widget" - }, - - // [FG] level time widget - { - "map_level_time", - (config_t *) &map_level_time, NULL, - {0}, {0,2}, number, ss_auto, wad_yes, - "1 to show level time widget" - }, - { "followplayer", (config_t *) &followplayer, NULL, @@ -2672,18 +2648,28 @@ default_t defaults[] = { "1 to enable display of HUD" }, - { // no secrets/items/kills HUD line - "hud_level_stats", - (config_t *) &hud_level_stats, NULL, - {0}, {0,1}, number, ss_stat, wad_yes, - "1 to show kills/items/secrets on HUD" + // [FG] player coords widget + { + "hud_player_coords", + (config_t *) &hud_player_coords, NULL, + {1}, {0,2}, number, ss_stat, wad_no, + "show player coords widget (1 = on Automap, 2 = always)" }, - { // no secrets/items/kills HUD line + // [FG] level stats widget + { + "hud_level_stats", + (config_t *) &hud_level_stats, NULL, + {0}, {0,2}, number, ss_stat, wad_no, + "show level stats (kill, items and secrets) widget (1 = on Automap, 2 = always)" + }, + + // [FG] level time widget + { "hud_level_time", (config_t *) &hud_level_time, NULL, - {0}, {0,1}, number, ss_stat, wad_yes, - "1 to show level time on HUD" + {0}, {0,2}, number, ss_stat, wad_no, + "show level time widget (1 = on Automap, 2 = always)" }, // prefer Crispy HUD over Boom HUD