diff options
Diffstat (limited to 'src/game/game.cpp')
-rw-r--r-- | src/game/game.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/game/game.cpp b/src/game/game.cpp index f0df83b..893be97 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -58,9 +58,7 @@ void Game::on_start() noexcept _status_manager->set_section_title(StatusLineSection::C, "Y: "); _status_manager->set_section_title(StatusLineSection::D, "Paused: "); _status_manager->set_section_title(StatusLineSection::E, "Generation: "); - _status_manager->set_section_title( - StatusLineSection::F, - "Minimum time since last generation: "); + _status_manager->set_section_title(StatusLineSection::F, "Generation speed: "); _status_manager->set_section_title(StatusLineSection::G, "Living cells: "); _status_manager->set_section_title(StatusLineSection::H, "Window size: "); @@ -297,14 +295,17 @@ void Game::_on_normal_mode_update() noexcept break; case '+': - if (_min_time_since_last_gen_millis > 0) + if (_generations_per_second < MAXIMUM_GENERATIONS_PER_SECOND) { - _min_time_since_last_gen_millis -= MIN_TIME_SINCE_LAST_GEN_INCREMENT; + _generations_per_second++; } break; case '-': - _min_time_since_last_gen_millis += MIN_TIME_SINCE_LAST_GEN_DECREMENT; + if (_generations_per_second > 1) + { + _generations_per_second--; + } break; default: @@ -326,7 +327,7 @@ void Game::_on_normal_mode_update() noexcept _status_manager->set_section_body( StatusLineSection::F, - fmt::format("{} milliseconds", _min_time_since_last_gen_millis)); + fmt::format("{}/s", _generations_per_second)); _status_manager->set_section_body( StatusLineSection::G, @@ -343,7 +344,7 @@ void Game::_on_normal_mode_update() noexcept std::chrono::duration_cast<std::chrono::milliseconds>( time_now - _last_gen_update_time); - if (time_since_last_gen.count() <= _min_time_since_last_gen_millis) + if (time_since_last_gen.count() <= MILLIS_IN_SECOND / _generations_per_second) { return; } |