コード例 #1
0
		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);
			}
		}
コード例 #2
0
ファイル: ClientUI.cpp プロジェクト: ArionWT/openspades
		bool ClientUI::isIgnored(const std::string& key)
		{

			return !ignoreInput.empty() && EqualsIgnoringCase(ignoreInput, key );
		}