Don't render invalid laser

This commit is contained in:
Jupeyy 2020-10-17 21:34:10 +02:00
parent 3aef2ebfe0
commit 896dd66dfe

View file

@ -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
{ {