|
53 | 53 | #include "p_horde.h"
|
54 | 54 | #include "c_dispatch.h"
|
55 | 55 | #include "hu_speedometer.h"
|
| 56 | +#include "am_map.h" |
56 | 57 |
|
57 | 58 | static const char* medipatches[] = {"MEDIA0", "PSTRA0"};
|
58 | 59 | static const char* armorpatches[] = {"ARM1A0", "ARM2A0"};
|
@@ -117,6 +118,7 @@ EXTERN_CVAR(hud_targetcount)
|
117 | 118 | EXTERN_CVAR(hud_transparency)
|
118 | 119 | EXTERN_CVAR(hud_anchoring)
|
119 | 120 | EXTERN_CVAR(hud_demobar)
|
| 121 | +EXTERN_CVAR(hud_extendedinfo) |
120 | 122 | EXTERN_CVAR(sv_fraglimit)
|
121 | 123 | EXTERN_CVAR(sv_teamsinplay)
|
122 | 124 | EXTERN_CVAR(g_lives)
|
@@ -789,6 +791,42 @@ void drawNetdemo() {
|
789 | 791 | }
|
790 | 792 | }
|
791 | 793 |
|
| 794 | +static void drawLevelStats() { |
| 795 | + if (!G_IsCoopGame()) |
| 796 | + return; |
| 797 | + |
| 798 | + if (AM_ClassicAutomapVisible() || AM_OverlayAutomapVisible()) |
| 799 | + return; |
| 800 | + |
| 801 | + std::string line; |
| 802 | + |
| 803 | + if (G_IsHordeMode()) |
| 804 | + { |
| 805 | + StrFormat(line, TEXTCOLOR_RED "K" TEXTCOLOR_NORMAL " %d", |
| 806 | + level.killed_monsters); |
| 807 | + } |
| 808 | + else |
| 809 | + { |
| 810 | + StrFormat(line, TEXTCOLOR_RED "K" TEXTCOLOR_NORMAL " %d/%d " |
| 811 | + TEXTCOLOR_RED "I" TEXTCOLOR_NORMAL " %d/%d " |
| 812 | + TEXTCOLOR_RED "S" TEXTCOLOR_NORMAL " %d/%d", |
| 813 | + level.killed_monsters, |
| 814 | + (level.total_monsters + level.respawned_monsters), |
| 815 | + level.found_items, level.total_items, |
| 816 | + level.found_secrets, level.total_secrets); |
| 817 | + } |
| 818 | + |
| 819 | + int x = 2, y = R_StatusBarVisible() ? statusBarY() + 1 : 24; |
| 820 | + |
| 821 | + if (hud_extendedinfo == 1) |
| 822 | + { |
| 823 | + V_SetFont("DIGFONT"); |
| 824 | + } |
| 825 | + hud::DrawText(x, y, ::hud_scale, hud::X_LEFT, |
| 826 | + hud::Y_BOTTOM, hud::X_LEFT, hud::Y_BOTTOM, line.c_str(), CR_GREY); |
| 827 | + V_SetFont("SMALLFONT"); |
| 828 | +} |
| 829 | + |
792 | 830 | // [ML] 9/29/2011: New fullscreen HUD, based on Ralphis's work
|
793 | 831 | void OdamexHUD() {
|
794 | 832 | std::string buf;
|
@@ -968,6 +1006,10 @@ void OdamexHUD() {
|
968 | 1006 |
|
969 | 1007 | // Draw gametype scoreboard
|
970 | 1008 | hud::drawGametype();
|
| 1009 | + |
| 1010 | + // Draw level stats |
| 1011 | + if (hud_extendedinfo) |
| 1012 | + hud::drawLevelStats(); |
971 | 1013 | }
|
972 | 1014 |
|
973 | 1015 | struct drawToast_t
|
@@ -1528,6 +1570,10 @@ void DoomHUD()
|
1528 | 1570 |
|
1529 | 1571 | // Draw gametype scoreboard
|
1530 | 1572 | hud::drawGametype();
|
| 1573 | + |
| 1574 | + // Draw level stats |
| 1575 | + if (hud_extendedinfo) |
| 1576 | + hud::drawLevelStats(); |
1531 | 1577 | }
|
1532 | 1578 |
|
1533 | 1579 | }
|
|
0 commit comments