min fov and line thickness

This commit is contained in:
TotallyNotElite 2019-03-10 22:04:35 +01:00
parent 36d2874ca1
commit fb3c8acb5c
2 changed files with 16 additions and 7 deletions

View File

@ -1,11 +1,14 @@
<Tab name="Tracers" padding="4 4 4 4">
<Box padding="12 6 6 6" width="content" height="content">
<List width="200">
<List width="250">
<AutoVariable width="fill" target="tracers.enabled" label="Enabled"/>
<AutoVariable width="fill" target="tracers.green-distance" label="Green distance"/>
<AutoVariable width="fill" target="tracers.max_dist" label="Max distance"/>
<AutoVariable width="fill" target="tracers.line-thickness" label="Line thickness"/>
<AutoVariable width="fill" target="tracers.line-opaqueness" label="Line opaqueness"/>
<AutoVariable width="fill" target="tracers.min-fov" label="Min fov"/>
<AutoVariable width="fill" target="tracers.max-dist" label="Max distance"/>
<LabeledObject width="fill" label="Show friends">
<Select target="tracers.draw-friends">
<Select width="150" target="tracers.draw-friends">
<Option name="Don't show friends" value="0"/>
<Option name="Show friends in enemy team" value="1"/>
<Option name="Always show friends" value="2"/>

View File

@ -4,9 +4,12 @@
namespace hacks::shared::tracers
{
settings::Bool enabled("tracers.enabled", "false");
settings::Float green_dist("tracers.green-distance", "1500");
settings::Float max_dist("tracers.max_dist", "0");
static settings::Bool enabled("tracers.enabled", "false");
static settings::Float green_dist("tracers.green-distance", "1500");
static settings::Float max_dist("tracers.max-dist", "0");
static settings::Float min_fov("tracers.min-fov", "0");
static settings::Float line_thickness("tracers.line-thickness", "2");
static settings::Float opaque("tracers.line-opaqueness", "255");
// 0 = don't, 1 = yes but only in enemy team, 2 = always
settings::Int draw_friendlies("tracers.draw-friends", "1");
@ -50,6 +53,8 @@ inline std::optional<rgba_t> getColor(CachedEntity *ent)
float dist = ent->m_vecOrigin().DistTo(LOCAL_E->m_vecOrigin());
if (*max_dist && dist > *max_dist)
return std::nullopt;
if (GetFov(g_pLocalPlayer->v_OrigViewangles, g_pLocalPlayer->v_Eye, ent->m_vecOrigin()) < *min_fov)
return std::nullopt;
return colors::Health(std::min(dist, *green_dist), *green_dist);
}
if (!player_tools::shouldTargetSteamId(ent->player_info.friendsID))
@ -84,6 +89,7 @@ void draw()
auto color = getColor(ent);
if (!color)
continue;
color->a = *opaque;
Vector out;
if (!draw::WorldToScreen(ent->m_vecOrigin(), out))
@ -96,7 +102,7 @@ void draw()
out.x = extended.x;
out.y = extended.y;
}
draw::Line(draw::width / 2, draw::height / 2, out.x - draw::width / 2, out.y - draw::height / 2, *color, 2);
draw::Line(draw::width / 2, draw::height / 2, out.x - draw::width / 2, out.y - draw::height / 2, *color, *line_thickness);
}
}