From 9266d2dea2c2523f9b43a77cd71163c5bee4841f Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 23 May 2025 09:17:13 +0200 Subject: [PATCH] ru:: stats now can be fractional --- rogueviz/ru/classes.cpp | 2 +- rogueviz/ru/man.cpp | 2 +- rogueviz/ru/stats.cpp | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/rogueviz/ru/classes.cpp b/rogueviz/ru/classes.cpp index 49c2ae88..7a2e0f8e 100644 --- a/rogueviz/ru/classes.cpp +++ b/rogueviz/ru/classes.cpp @@ -261,7 +261,7 @@ struct entity { }; struct statdata { - statarray stats; + statarray stats; int jump_control, coyote_time, hallucinating; void reset(); }; diff --git a/rogueviz/ru/man.cpp b/rogueviz/ru/man.cpp index 455500a3..1c22cf0c 100644 --- a/rogueviz/ru/man.cpp +++ b/rogueviz/ru/man.cpp @@ -38,7 +38,7 @@ void check_fountains() { } void statdata::reset() { - stats = m.base_stats; + for(auto i: allstats) stats[i] = m.base_stats[i]; coyote_time = 0; jump_control = 0; } diff --git a/rogueviz/ru/stats.cpp b/rogueviz/ru/stats.cpp index ce2fbff3..2e2d62fc 100644 --- a/rogueviz/ru/stats.cpp +++ b/rogueviz/ru/stats.cpp @@ -22,8 +22,12 @@ void draw_stats() { dialog::addSelItem("free experience", its(m.experience), 'x'); for(auto st: allstats) { - string s = its(m.base_stats[st]); - if(m.current.stats[st] != m.base_stats[st]) s += " (" + its(m.current.stats[st]) + ")"; + auto bas = m.base_stats[st]; + auto cur = m.current.stats[st]; + string s = its(bas); + int curi = cur + 0.01; + if(cur != bas && abs(cur-curi) < 1e-6) s += " (" + its(curi) + ")"; + else if(cur != bas) s += " (" + format("%.2f", cur) + ")"; dialog::addSelItem(statdata[st].name, s, statdata[st].key); dialog::add_action_push([st] { render_the_map();