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();