From 24b6ec80a9be1aedc34413ae272fe206cd2fecb8 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 28 Apr 2024 18:05:07 +0200 Subject: [PATCH] Codechange: use ranged for loop and vector to determine the disaster to deploy --- src/disaster_vehicle.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/disaster_vehicle.cpp b/src/disaster_vehicle.cpp index eea873ffca..69ce0319e4 100644 --- a/src/disaster_vehicle.cpp +++ b/src/disaster_vehicle.cpp @@ -925,16 +925,17 @@ static const Disaster _disasters[] = { static void DoDisaster() { - uint8_t buf[lengthof(_disasters)]; + std::vector available_disasters; - uint8_t j = 0; - for (size_t i = 0; i != lengthof(_disasters); i++) { - if (TimerGameCalendar::year >= _disasters[i].min_year && TimerGameCalendar::year < _disasters[i].max_year) buf[j++] = (uint8_t)i; + for (auto &disaster : _disasters) { + if (TimerGameCalendar::year >= disaster.min_year && TimerGameCalendar::year < disaster.max_year) { + available_disasters.push_back(disaster.init_proc); + } } - if (j == 0) return; + if (available_disasters.empty()) return; - _disasters[buf[RandomRange(j)]].init_proc(); + available_disasters[RandomRange(static_cast(available_disasters.size()))](); }