64 lines
1.4 KiB
C++
Raw Normal View History

2022-11-07 13:23:24 -06:00
#include "backend/looped/looped.hpp"
#include "core/data/hud_component_names.hpp"
#include "natives.hpp"
2022-11-07 13:23:24 -06:00
namespace big
{
static bool bLastHideRadar = false;
static bool bHasHUDBeenHidden = false;
2022-11-07 13:23:24 -06:00
void looped::self_hud()
{
const bool bHideRadar = g.self.hide_radar;
const bool bHideAmmo = g.self.hide_ammo;
const bool bForceShowElement = g.self.force_show_hud_element;
const bool bForceShowHUD = g.self.force_show_hud;
auto& bHudComponents = g.self.hud_components_states;
2022-11-07 13:23:24 -06:00
if (bHideRadar)
{
HUD::DISPLAY_RADAR(false);
}
else if (bHideRadar != bLastHideRadar)
{
HUD::DISPLAY_RADAR(true);
}
bLastHideRadar = bHideRadar;
if (bHideAmmo)
{
HUD::DISPLAY_AMMO_THIS_FRAME(false);
}
if (bForceShowHUD)
{
HUD::DISPLAY_HUD_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME();
HUD::DISPLAY_HUD_WHEN_PAUSED_THIS_FRAME();
}
if (std::all_of(std::begin(bHudComponents), std::end(bHudComponents), [](bool i) {
return i;
}))
{
2022-11-07 13:23:24 -06:00
HUD::DISPLAY_HUD(false);
bHasHUDBeenHidden = true;
2022-11-07 13:23:24 -06:00
}
else
{
HUD::DISPLAY_HUD(true);
bHasHUDBeenHidden = false;
}
if (!bHasHUDBeenHidden)
{
for (int i = 0; i < static_cast<int>(HudComponents::HUD_WEAPONS); i++)
2022-11-07 13:23:24 -06:00
{
if (bHudComponents[i])
HUD::HIDE_HUD_COMPONENT_THIS_FRAME(i + 1);
else if (!bHudComponents[i] && bForceShowElement)
HUD::SHOW_HUD_COMPONENT_THIS_FRAME(i + 1);
2022-11-07 13:23:24 -06:00
}
}
}
}