diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 614ca49a..d0df4bef 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -108,8 +108,6 @@ static patch_t *crosshair[HU_CROSSHAIRS]; // 3 precached crosshair graphics // protos. // ------- static void HU_DrawRankings(void); -//static void HU_DrawCoopOverlay(void); -//static void HU_DrawNetplayCoopOverlay(void); //====================================================================== // KEYBOARD LAYOUTS FOR ENTERING TEXT @@ -2111,16 +2109,12 @@ void HU_Drawer(void) #ifdef HAVE_BLUA if (LUA_HudEnabled(hud_rankings)) #endif - HU_DrawRankings(); - //if (gametype == GT_COOP) - //HU_DrawNetplayCoopOverlay(); - } - //else - //HU_DrawCoopOverlay(); + HU_DrawRankings(); #ifdef HAVE_BLUA LUAh_ScoresHUD(); #endif - } + } + } if (gamestate != GS_LEVEL) return; @@ -2706,65 +2700,6 @@ static void HU_DrawRankings(void) HU_DrawSpectatorTicker(); } -/*static void HU_DrawCoopOverlay(void) -{ - if (token -#ifdef HAVE_BLUA - && LUA_HudEnabled(hud_tokens) -#endif - ) - { - V_DrawString(168, 176, 0, va("- %d", token)); - V_DrawSmallScaledPatch(148, 172, 0, tokenicon); - } - -#ifdef HAVE_BLUA - if (LUA_HudEnabled(hud_tabemblems)) -#endif - if (!modifiedgame || savemoddata) - { - V_DrawString(160, 144, 0, va("- %d/%d", M_CountEmblems(), numemblems+numextraemblems)); - V_DrawScaledPatch(128, 144 - SHORT(emblemicon->height)/4, 0, emblemicon); - } - -#ifdef HAVE_BLUA - if (!LUA_HudEnabled(hud_coopemeralds)) - return; -#endif - - if (emeralds & EMERALD1) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8 , (BASEVIDHEIGHT/3)-32, 0, emeraldpics[0]); - if (emeralds & EMERALD2) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8+24, (BASEVIDHEIGHT/3)-16, 0, emeraldpics[1]); - if (emeralds & EMERALD3) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8+24, (BASEVIDHEIGHT/3)+16, 0, emeraldpics[2]); - if (emeralds & EMERALD4) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8 , (BASEVIDHEIGHT/3)+32, 0, emeraldpics[3]); - if (emeralds & EMERALD5) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8-24, (BASEVIDHEIGHT/3)+16, 0, emeraldpics[4]); - if (emeralds & EMERALD6) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8-24, (BASEVIDHEIGHT/3)-16, 0, emeraldpics[5]); - if (emeralds & EMERALD7) - V_DrawScaledPatch((BASEVIDWIDTH/2)-8 , (BASEVIDHEIGHT/3) , 0, emeraldpics[6]); -} - -static void HU_DrawNetplayCoopOverlay(void) -{ - int i; - -#ifdef HAVE_BLUA - if (!LUA_HudEnabled(hud_coopemeralds)) - return; -#endif - - for (i = 0; i < 7; ++i) - { - if (emeralds & (1 << i)) - V_DrawScaledPatch(20 + (i * 20), 6, 0, emeraldpics[i]); - } -}*/ - - // Interface to CECHO settings for the outside world, avoiding the // expense (and security problems) of going via the console buffer. void HU_ClearCEcho(void) diff --git a/src/k_kart.c b/src/k_kart.c index 39ef34c0..6a7d160d 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -20,6 +20,7 @@ #include "m_cond.h" #include "k_kart.h" #include "f_finale.h" +#include "lua_hud.h" // For Lua hud checks // SOME IMPORTANT VARIABLES DEFINED IN DOOMDEF.H: // gamespeed is cc (0 for easy, 1 for normal, 2 for hard) @@ -6507,6 +6508,11 @@ static boolean K_drawKartPositionFaces(void) if (numplayersingame <= 1) return true; + +#ifdef HAVE_BLUA + if (!LUA_HudEnabled(hud_minirankings)) + return false; // Don't proceed but still return true for free play above if HUD is disabled. +#endif for (j = 0; j < numplayersingame; j++) { @@ -7732,7 +7738,12 @@ void K_drawKartHUD(void) K_drawKartFirstPerson(); if (splitscreen == 2) // Player 4 in 3P is the minimap :p + { +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_minimap)) +#endif K_drawKartMinimap(); + } // Draw full screen stuff that turns off the rest of the HUD if (mapreset && stplyr == &players[displayplayer]) @@ -7757,25 +7768,45 @@ void K_drawKartHUD(void) K_drawKartPlayerCheck(); if (splitscreen == 0 && cv_kartminimap.value) - K_drawKartMinimap(); // 3P splitscreen is handled above + { +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_minimap)) +#endif + K_drawKartMinimap(); // 3P splitscreen is handled above + + } // Draw the item window - K_drawKartItem(); +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_item)) +#endif + K_drawKartItem(); // Draw WANTED status if (G_BattleGametype()) - K_drawKartWanted(); + { +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_wanted)) +#endif + K_drawKartWanted(); + } // If not splitscreen, draw... if (!splitscreen) { // Draw the timestamp - K_drawKartTimestamp(stplyr->realtime, TIME_X, TIME_Y, gamemap, true); +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_time)) +#endif + K_drawKartTimestamp(stplyr->realtime, TIME_X, TIME_Y, gamemap, true); if (!modeattacking) { // The top-four faces on the left - isfreeplay = K_drawKartPositionFaces(); + /*#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_minirankings)) + #endif*/ + isfreeplay = K_drawKartPositionFaces(); } } @@ -7784,12 +7815,18 @@ void K_drawKartHUD(void) if (G_RaceGametype()) // Race-only elements { // Draw the lap counter - K_drawKartLaps(); +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_gametypeinfo)) +#endif + K_drawKartLaps(); if (!splitscreen) { // Draw the speedometer // TODO: Make a better speedometer. +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_speedometer)) +#endif K_drawKartSpeedometer(); } @@ -7798,18 +7835,27 @@ void K_drawKartHUD(void) else if (!modeattacking) { // Draw the numerical position - K_DrawKartPositionNum(stplyr->kartstuff[k_position]); +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_position)) +#endif + K_DrawKartPositionNum(stplyr->kartstuff[k_position]); } else //if (!(demoplayback && hu_showscores)) { // Draw the input UI - K_drawInput(); +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_position)) +#endif + K_drawInput(); } } else if (G_BattleGametype()) // Battle-only { // Draw the hits left! - K_drawKartBumpersOrKarma(); +#ifdef HAVE_BLUA + if (LUA_HudEnabled(hud_gametypeinfo)) +#endif + K_drawKartBumpersOrKarma(); } } diff --git a/src/lua_hud.h b/src/lua_hud.h index ba0a1d89..17281b4e 100644 --- a/src/lua_hud.h +++ b/src/lua_hud.h @@ -13,26 +13,17 @@ enum hud { hud_stagetitle = 0, hud_textspectator, - // Singleplayer / Co-op - hud_score, + hud_time, - hud_rings, - hud_lives, - // Match / CTF / Tag / Ringslinger - hud_weaponrings, - hud_powerstones, - // NiGHTS mode - hud_nightslink, - hud_nightsdrill, - hud_nightsrings, - hud_nightsscore, - hud_nightstime, - hud_nightsrecords, - // TAB scores overlays - hud_rankings, - hud_coopemeralds, - hud_tokens, - hud_tabemblems, + hud_gametypeinfo, + hud_minimap, + hud_item, + hud_position, + hud_minirankings, // Rankings to the left + hud_wanted, + hud_speedometer, + hud_rankings, // Tab rankings + hud_MAX }; diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c index 1d7e851d..f042e8f5 100644 --- a/src/lua_hudlib.c +++ b/src/lua_hudlib.c @@ -39,25 +39,15 @@ static const char *const hud_disable_options[] = { "stagetitle", "textspectator", - "score", "time", - "rings", - "lives", - - "weaponrings", - "powerstones", - - "nightslink", - "nightsdrill", - "nightsrings", - "nightsscore", - "nightstime", - "nightsrecords", - + "gametypeinfo", // Bumpers / Karma / Laps depending on gametype + "minimap", + "item", + "position", + "minirankings", // Gametype rankings to the left + "wanted", + "speedometer", "rankings", - "coopemeralds", - "tokens", - "tabemblems", NULL}; enum hudinfo { @@ -646,7 +636,6 @@ static int lib_hudenabled(lua_State *L) return 1; } - // add a HUD element for rendering static int lib_hudadd(lua_State *L) {