From a65e3d4f24e7aee45bc37384f463fab41a97d78a Mon Sep 17 00:00:00 2001 From: john Date: Sun, 18 Oct 2026 13:02:29 -0400 Subject: [PATCH] ewrtgf --- Character.cpp | 7 ++----- Character.h | 3 +-- Engine.cpp | 4 +--- assets/bluetexture.png | Bin 70 -> 0 bytes shaders/default.frag | 3 +++ 5 files changed, 7 insertions(+), 10 deletions(-) delete mode 100644 assets/bluetexture.png diff --git a/Character.cpp b/Character.cpp index 8370de7..22983cf 100644 --- a/Character.cpp +++ b/Character.cpp @@ -48,11 +48,6 @@ Character::Character() { void Character::Render(Shader& shader) { if (!body || !body->rig || !body->animator) return; - if (skin) { - glActiveTexture(GL_TEXTURE1); - glBindTexture(GL_TEXTURE_2D, skin->ID); - shader.SetInt("tex", 1); - } if (body->animator->m_CurrentAnimation == nullptr) { for (int i = 0; i < 100; i++) shader.SetMat4(("finalBonesMatrices[" + std::to_string(i) + "]").c_str(), glm::mat4(1.0f)); @@ -63,7 +58,9 @@ void Character::Render(Shader& shader) { for (int i = 0; i < transforms.size(); i++) shader.SetMat4(("finalBonesMatrices[" + std::to_string(i) + "]").c_str(), transforms[i]); } + shader.Set4F("colorOverride", colorOverride); // body->t's scale is the hitbox only; the rig is drawn at visualScale so it fills that hitbox body->rig->Render(shader, body->t.GetTranslationMatrix() * body->t.GetRotationMatrix() * glm::scale(glm::mat4(1.0f), glm::vec3(visualScale))); + shader.Set4F("colorOverride", glm::vec4(0.0f)); // don't leak into other rig draws } \ No newline at end of file diff --git a/Character.h b/Character.h index 736df60..298220d 100644 --- a/Character.h +++ b/Character.h @@ -8,7 +8,6 @@ #include "Rig.h" #include "Object.h" #include "Animator.h" -#include "texture.h" class CharacterBody; class BodyComponent; @@ -117,8 +116,8 @@ class Character : public Object, public Renderable { public: CharacterMind* mind = nullptr; CharacterBody* body = nullptr; + glm::vec4 colorOverride = glm::vec4(0.0f); // rgb + strength (0 = keep the rig's own texture) float visualScale = 1.4f; // rig is ~1.8 tall natively; hitbox is 2.5 - Texture* skin = nullptr; // optional: bound while drawing the rig Character(); void Render(Shader& shader) override; diff --git a/Engine.cpp b/Engine.cpp index 52b6e90..914cb32 100644 --- a/Engine.cpp +++ b/Engine.cpp @@ -130,7 +130,6 @@ void Engine::Initiate() Texture* blanktex = new Texture("assets/blanktexture.png"); Texture* magic = new Texture("assets/itsmagicbitch.jpg"); Texture* snowflake = new Texture("assets/snowflake.png"); - Texture* bluetex = new Texture("assets/bluetexture.png"); Texture* shockwavetex = new Texture("assets/shockwave.png"); Texture* leontex = new Texture("assets/revolvertex.png"); @@ -146,7 +145,6 @@ void Engine::Initiate() // ------------------------------------------------------------------------ Character* testcharacter = new Character(); testcharacter->name = "character"; - testcharacter->skin = bluetex; testcharacter->castshadow = true; testcharacter->body->t.ScaleBy({ 0.7f, 2.5f, 0.7f }); testcharacter->body->t.TranslateTo({ 0.0f, 10.0f, 0.0f }); @@ -200,7 +198,7 @@ void Engine::Initiate() auto SpawnRemote = [&]() -> Character* { Character* c = new Character(); c->name = "remote"; - c->skin = bluetex; + c->colorOverride = glm::vec4(0.1f, 0.3f, 1.0f, 1.0f); // blue c->castshadow = true; c->body->t.ScaleBy({ 0.7f, 2.5f, 0.7f }); c->body->SetRig(testrig); diff --git a/assets/bluetexture.png b/assets/bluetexture.png deleted file mode 100644 index dbe3cfe2704436b41328e5d2ab03b2079d341248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}1TpU9x<|JR}`1N0&fn@_zW6t%R QYCs7FPgg&ebxsLQ0M< 0 float ShadowCalculation(vec4 fragposlightspace) { @@ -79,6 +80,8 @@ void main() discard; } + lightless.rgb = mix(lightless.rgb, colorOverride.rgb, colorOverride.w); + vec3 norm = normalize(normal); vec3 viewDir = normalize(viewPos - FragPos);