void Tracer::Render3D() { float startDist = curDistance; float endDist = curDistance + visibleLength; startDist = std::max(startDist, 8.f); endDist = std::min(endDist, length); if (startDist >= endDist || length < 8) { return; } Vector3 pos1 = startPos + dir * startDist; Vector3 pos2 = startPos + dir * endDist; IRenderer *r = client->GetRenderer(); Vector4 col = { colour.x, colour.y, colour.z, 0.01f }; r->SetColorAlphaPremultiplied(col*0.5f); float sizeScale = 1.f; if (player) { sizeScale = sizeScale*sqrt((pos1 - player->GetPosition()).GetLength()); } if (EqualsIgnoringCase(r_renderer, "sw") && (int)opt_tracers == 1) { r->AddSprite(image, pos1, .025f, 0); r->AddSprite(image, (pos1+pos1+pos2)/3.f, .05f, 0); r->AddSprite(image, (pos1+pos2)/2.f, .05f, 0); r->AddSprite(image, (pos1+pos2+pos2)/3.f, .075f, 0); r->AddSprite(image, pos2, .1f, 0); } else if ((int)opt_tracers == 1) { r->AddLongSprite(image, pos1, pos2, 0.005f*sizeScale); } else if ((int)opt_tracers == 2) { ModelRenderParam param; param.matrix = matrix * Matrix4::Scale(0.01f*sizeScale); param.customColor = colour; r->RenderModel(model, param); } //r->AddSprite(image2, pos2, .2f, 0); if (dlight) { DynamicLightParam l; l.origin = (pos1 + pos2)*0.5f; l.radius = 2.f; l.type = DynamicLightTypePoint; l.color = colour; client->flashDlights.push_back(l); } }
bool ClientUI::isIgnored(const std::string& key) { return !ignoreInput.empty() && EqualsIgnoringCase(ignoreInput, key ); }