mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 09:34:19 +00:00
Don't render invalid laser
This commit is contained in:
parent
3aef2ebfe0
commit
896dd66dfe
|
@ -235,7 +235,16 @@ void CItems::RenderLaser(const struct CNetObj_Laser *pCurrent, bool IsPredicted)
|
||||||
ColorRGBA RGB;
|
ColorRGBA RGB;
|
||||||
vec2 Pos = vec2(pCurrent->m_X, pCurrent->m_Y);
|
vec2 Pos = vec2(pCurrent->m_X, pCurrent->m_Y);
|
||||||
vec2 From = vec2(pCurrent->m_FromX, pCurrent->m_FromY);
|
vec2 From = vec2(pCurrent->m_FromX, pCurrent->m_FromY);
|
||||||
vec2 Dir = normalize(Pos - From);
|
float Len = distance(Pos, From);
|
||||||
|
RGB = color_cast<ColorRGBA>(ColorHSLA(g_Config.m_ClLaserOutlineColor));
|
||||||
|
ColorRGBA OuterColor(RGB.r, RGB.g, RGB.b, 1.0f);
|
||||||
|
RGB = color_cast<ColorRGBA>(ColorHSLA(g_Config.m_ClLaserInnerColor));
|
||||||
|
ColorRGBA InnerColor(RGB.r, RGB.g, RGB.b, 1.0f);
|
||||||
|
|
||||||
|
vec2 Dir;
|
||||||
|
if(Len > 0)
|
||||||
|
{
|
||||||
|
Dir = normalize_pre_length(Pos - From, Len);
|
||||||
|
|
||||||
float Ticks;
|
float Ticks;
|
||||||
if(IsPredicted)
|
if(IsPredicted)
|
||||||
|
@ -253,8 +262,6 @@ void CItems::RenderLaser(const struct CNetObj_Laser *pCurrent, bool IsPredicted)
|
||||||
Graphics()->QuadsBegin();
|
Graphics()->QuadsBegin();
|
||||||
|
|
||||||
// do outline
|
// do outline
|
||||||
RGB = color_cast<ColorRGBA>(ColorHSLA(g_Config.m_ClLaserOutlineColor));
|
|
||||||
ColorRGBA OuterColor(RGB.r, RGB.g, RGB.b, 1.0f);
|
|
||||||
Graphics()->SetColor(OuterColor.r, OuterColor.g, OuterColor.b, 1.0f);
|
Graphics()->SetColor(OuterColor.r, OuterColor.g, OuterColor.b, 1.0f);
|
||||||
Out = vec2(Dir.y, -Dir.x) * (7.0f * Ia);
|
Out = vec2(Dir.y, -Dir.x) * (7.0f * Ia);
|
||||||
|
|
||||||
|
@ -266,8 +273,6 @@ void CItems::RenderLaser(const struct CNetObj_Laser *pCurrent, bool IsPredicted)
|
||||||
Graphics()->QuadsDrawFreeform(&Freeform, 1);
|
Graphics()->QuadsDrawFreeform(&Freeform, 1);
|
||||||
|
|
||||||
// do inner
|
// do inner
|
||||||
RGB = color_cast<ColorRGBA>(ColorHSLA(g_Config.m_ClLaserInnerColor));
|
|
||||||
ColorRGBA InnerColor(RGB.r, RGB.g, RGB.b, 1.0f);
|
|
||||||
Out = vec2(Dir.y, -Dir.x) * (5.0f * Ia);
|
Out = vec2(Dir.y, -Dir.x) * (5.0f * Ia);
|
||||||
Graphics()->SetColor(InnerColor.r, InnerColor.g, InnerColor.b, 1.0f); // center
|
Graphics()->SetColor(InnerColor.r, InnerColor.g, InnerColor.b, 1.0f); // center
|
||||||
|
|
||||||
|
@ -279,6 +284,7 @@ void CItems::RenderLaser(const struct CNetObj_Laser *pCurrent, bool IsPredicted)
|
||||||
Graphics()->QuadsDrawFreeform(&Freeform, 1);
|
Graphics()->QuadsDrawFreeform(&Freeform, 1);
|
||||||
|
|
||||||
Graphics()->QuadsEnd();
|
Graphics()->QuadsEnd();
|
||||||
|
}
|
||||||
|
|
||||||
// render head
|
// render head
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue