Final cleanup pass

This commit is contained in:
Sezz 2023-05-30 01:10:13 +10:00
parent 5a38dc465d
commit d3c6659331
2 changed files with 31 additions and 32 deletions

View file

@ -15,16 +15,6 @@ using TEN::Renderer::g_Renderer;
namespace TEN::Hud namespace TEN::Hud
{ {
static float GetCrosshairSize(float cameraDist)
{
constexpr auto RANGE = BLOCK(10);
constexpr auto CROSSHAIR_SIZE_MAX = SCREEN_SPACE_RES.y * 0.15f;
constexpr auto CROSSHAIR_SIZE_MIN = CROSSHAIR_SIZE_MAX / 5;
auto alpha = cameraDist / RANGE;
return Lerp(CROSSHAIR_SIZE_MAX, CROSSHAIR_SIZE_MIN, alpha);
}
Vector2 CrosshairData::Get2DPositionOffset(short segmentOrient2D) const Vector2 CrosshairData::Get2DPositionOffset(short segmentOrient2D) const
{ {
float offsetDist = (Size / 2) * RadiusScalar; float offsetDist = (Size / 2) * RadiusScalar;
@ -44,6 +34,16 @@ namespace TEN::Hud
Position2D.y >= (SCREEN_SPACE_RES.y + screenEdgeThreshold)); Position2D.y >= (SCREEN_SPACE_RES.y + screenEdgeThreshold));
} }
static float GetCrosshairSize(float cameraDist)
{
constexpr auto RANGE = BLOCK(10);
constexpr auto CROSSHAIR_SIZE_MAX = SCREEN_SPACE_RES.y * 0.15f;
constexpr auto CROSSHAIR_SIZE_MIN = CROSSHAIR_SIZE_MAX / 5;
auto alpha = cameraDist / RANGE;
return Lerp(CROSSHAIR_SIZE_MAX, CROSSHAIR_SIZE_MIN, alpha);
}
void CrosshairData::Update(const Vector3& cameraPos, bool doPulse, bool isActive) void CrosshairData::Update(const Vector3& cameraPos, bool doPulse, bool isActive)
{ {
constexpr auto INVALID_2D_POS = Vector2(FLT_MAX); constexpr auto INVALID_2D_POS = Vector2(FLT_MAX);
@ -116,24 +116,24 @@ namespace TEN::Hud
void TargetHighlighterController::SetPrimary(int entityID) void TargetHighlighterController::SetPrimary(int entityID)
{ {
auto it = Crosshairs.find(entityID); auto it = Crosshairs.find(entityID);
if (it != Crosshairs.end()) if (it == Crosshairs.end())
{ return;
auto& crosshair = it->second; auto& crosshair = it->second;
crosshair.IsPrimary = true; crosshair.IsPrimary = true;
crosshair.ColorTarget = CrosshairData::COLOR_GREEN; crosshair.ColorTarget = CrosshairData::COLOR_GREEN;
} }
}
void TargetHighlighterController::SetPeripheral(int entityID) void TargetHighlighterController::SetPeripheral(int entityID)
{ {
auto it = Crosshairs.find(entityID); auto it = Crosshairs.find(entityID);
if (it != Crosshairs.end()) if (it == Crosshairs.end())
{ return;
auto& crosshair = it->second; auto& crosshair = it->second;
crosshair.IsPrimary = false; crosshair.IsPrimary = false;
crosshair.ColorTarget = CrosshairData::COLOR_GRAY; crosshair.ColorTarget = CrosshairData::COLOR_GRAY;
} }
}
void TargetHighlighterController::Update(std::vector<int> entityIds) void TargetHighlighterController::Update(std::vector<int> entityIds)
{ {
@ -149,22 +149,22 @@ namespace TEN::Hud
const auto& item = g_Level.Items[entityID]; const auto& item = g_Level.Items[entityID];
auto pos = GetJointPosition(item, TARGET_BONE_ID).ToVector3(); auto pos = GetJointPosition(item, TARGET_BONE_ID).ToVector3();
// Find crosshair at entity ID key.
auto it = Crosshairs.find(entityID);
// Update existing active crosshair. // Update existing active crosshair.
if (it != Crosshairs.end() && it->second.IsActive) auto it = Crosshairs.find(entityID);
if (it != Crosshairs.end())
{ {
auto& crosshair = it->second; auto& crosshair = it->second;
crosshair.Update(pos, item.HitStatus, true); if (crosshair.IsActive)
}
// Add new active crosshair.
else
{ {
AddCrosshair(entityID, pos); crosshair.Update(pos, item.HitStatus, true);
continue;
} }
} }
// Add new active crosshair.
AddCrosshair(entityID, pos);
}
// Update inactive crosshairs. // Update inactive crosshairs.
for (auto& [entityID, crosshair] : Crosshairs) for (auto& [entityID, crosshair] : Crosshairs)
{ {

View file

@ -56,7 +56,6 @@ namespace TEN::Hud
private: private:
// Helpers // Helpers
std::optional<CrosshairData&> GetCrosshair(int entityID);
CrosshairData& GetNewCrosshair(int entityID); CrosshairData& GetNewCrosshair(int entityID);
void AddCrosshair(int entityID, const Vector3& pos); void AddCrosshair(int entityID, const Vector3& pos);
void ClearInactiveCrosshairs(); void ClearInactiveCrosshairs();