From c390ca5616fe2afdf81791144d43a80bdd392915 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Sun, 19 Apr 2026 18:03:33 -0400 Subject: [PATCH] Make a update_percent function for meter. --- demos/meters.cpp | 2 +- include/guecs/sfml/components.hpp | 1 + src/guecs/sfml/components.cpp | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/demos/meters.cpp b/demos/meters.cpp index 22a9911..56ee58a 100644 --- a/demos/meters.cpp +++ b/demos/meters.cpp @@ -27,7 +27,7 @@ struct TestMeters { $gui.set(gui_id, { [&, gui_id, name](auto) { auto& meter = $gui.get(gui_id); - meter.percent = meter.percent - 0.1f; + meter.update_percent(meter.percent - 0.1f); if(meter.percent < 0.0f) { meter.percent = 1.0f; } diff --git a/include/guecs/sfml/components.hpp b/include/guecs/sfml/components.hpp index 234f1b4..86f59f8 100644 --- a/include/guecs/sfml/components.hpp +++ b/include/guecs/sfml/components.hpp @@ -79,6 +79,7 @@ namespace guecs { void init(lel::Cell& cell, guecs::Rectangle &bg); void init(lel::Cell& cell); void render(sf::RenderTarget& window, sf::Shader *shader_ptr); + void update_percent(float pct); }; struct Effect { diff --git a/src/guecs/sfml/components.cpp b/src/guecs/sfml/components.cpp index 6c1fadb..c437b36 100644 --- a/src/guecs/sfml/components.cpp +++ b/src/guecs/sfml/components.cpp @@ -116,12 +116,17 @@ namespace guecs { $cell_w = cell.w; $cell_h = cell.h; bar.init(cell); + update_percent(percent); } void Meter::render(sf::RenderTarget& window, sf::Shader *shader_ptr) { + bar.render(window, shader_ptr); + } + + void Meter::update_percent(float pct) { + percent = pct; float level = std::clamp(percent, 0.0f, 1.0f) * float($cell_w); bar.shape->setSize({std::max(level, 0.0f) - padding * 2, float($cell_h) - padding * 2}); - bar.render(window, shader_ptr); } void Sound::play(bool hover) {