From bb6959b0fad76ea9b37d584bc7e5199308237791 Mon Sep 17 00:00:00 2001 From: XProger Date: Sun, 10 Sep 2017 03:00:35 +0300 Subject: [PATCH] #23 fix sprites color and alpha; #22 fix waterfalls --- src/sprite.h | 9 +++++++++ src/trigger.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/sprite.h b/src/sprite.h index 74d75a2..d8d2250 100644 --- a/src/sprite.h +++ b/src/sprite.h @@ -67,8 +67,17 @@ struct Sprite : Controller { } virtual void render(Frustum *frustum, MeshBuilder *mesh, Shader::Type type, bool caustics) { + Core::setBlending(bmAlpha); + + TR::Entity::Type eType = getEntity().type; + if (eType == TR::Entity::SMOKE || eType == TR::Entity::WATER_SPLASH) + Core::active.shader->setParam(uMaterial, vec4(0.5f, 1.0f, 0.0f, 0.75f)); + else + Core::active.shader->setParam(uMaterial, vec4(0.5f, 1.0f, 0.0f, 1.0f)); + Core::active.shader->setParam(uBasis, Basis(Core::mViewInv.getRot(), pos)); mesh->renderSprite(-(getEntity().modelIndex + 1), frame); + Core::setBlending(bmNone); } }; diff --git a/src/trigger.h b/src/trigger.h index fcf3e2f..b89f2d7 100644 --- a/src/trigger.h +++ b/src/trigger.h @@ -608,7 +608,7 @@ struct Waterfall : Controller { virtual void update() { updateAnimation(true); - vec3 delta = (((Controller*)level->cameraController)->pos - pos) * (1.0f / 1024.0f); + vec3 delta = (((ICamera*)level->cameraController)->pos - pos) * (1.0f / 1024.0f); if (delta.length2() > 100.0f) return;