diff options
-rw-r--r-- | bench/bench_window.cpp | 12 | ||||
-rw-r--r-- | include/lib94/lib94.hpp | 2 | ||||
-rw-r--r-- | lib94/core.cpp | 4 |
3 files changed, 17 insertions, 1 deletions
diff --git a/bench/bench_window.cpp b/bench/bench_window.cpp index 08f2236..39992eb 100644 --- a/bench/bench_window.cpp +++ b/bench/bench_window.cpp @@ -320,7 +320,17 @@ void bench_window::on_click_remove_warrior() { break; } - on_click_new_round(); + if (warriors.size()) + on_click_new_round(); + + else { + lib94::remove_all_warriors(); + lib94::clear_address_sets(); + core.mut.lock(); + core.clear_all(); + core.mut.unlock(); + update_ui(); + } delete w; diff --git a/include/lib94/lib94.hpp b/include/lib94/lib94.hpp index 40c9631..63f862e 100644 --- a/include/lib94/lib94.hpp +++ b/include/lib94/lib94.hpp @@ -108,6 +108,8 @@ namespace lib94 { //with the current time, before the first time you call this. bool init_round(const warrior *const *warriors, size_t count, const number_t *offsets, bool shuffle); + void remove_all_warriors(); + //returns the number of warriors who have at least one process size_t alive_warrior_count(); diff --git a/lib94/core.cpp b/lib94/core.cpp index cf563d8..bec793b 100644 --- a/lib94/core.cpp +++ b/lib94/core.cpp @@ -114,6 +114,10 @@ namespace lib94 { return true; } + void remove_all_warriors() { + alive_warriors.clear(); + } + size_t alive_warrior_count() { return alive_warriors.size(); } |