From 44a645b5e0c9613fd031db01b1fe44c150abaefe Mon Sep 17 00:00:00 2001 From: MichalZr6 Date: Fri, 13 Dec 2024 01:03:05 +0100 Subject: [PATCH] use bitset for presenceFlags and steady_clock for measurments --- AI/BattleAI/BattleEvaluator.cpp | 4 ++-- lib/battle/BattleHexArray.h | 2 +- lib/battle/Unit.cpp | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/AI/BattleAI/BattleEvaluator.cpp b/AI/BattleAI/BattleEvaluator.cpp index 408d4d96e..5ac5c5fd4 100644 --- a/AI/BattleAI/BattleEvaluator.cpp +++ b/AI/BattleAI/BattleEvaluator.cpp @@ -320,9 +320,9 @@ BattleAction BattleEvaluator::selectStackAction(const CStack * stack) return stack->waited() ? BattleAction::makeDefend(stack) : BattleAction::makeWait(stack); } -uint64_t timeElapsed(std::chrono::time_point start) +uint64_t timeElapsed(std::chrono::time_point start) { - auto end = std::chrono::high_resolution_clock::now(); + auto end = std::chrono::steady_clock::now(); return std::chrono::duration_cast(end - start).count(); } diff --git a/lib/battle/BattleHexArray.h b/lib/battle/BattleHexArray.h index 8b0a2f960..27afd1e40 100644 --- a/lib/battle/BattleHexArray.h +++ b/lib/battle/BattleHexArray.h @@ -292,7 +292,7 @@ public: private: StorageType internalStorage; - std::array presenceFlags = {}; + std::bitset presenceFlags = {}; [[nodiscard]] inline bool BattleHexArray::isNotValidForInsertion(BattleHex hex) const { diff --git a/lib/battle/Unit.cpp b/lib/battle/Unit.cpp index ba16a1af7..dd4185354 100644 --- a/lib/battle/Unit.cpp +++ b/lib/battle/Unit.cpp @@ -111,13 +111,13 @@ const BattleHexArray & Unit::getHexes(BattleHex assumedPos) const const BattleHexArray & Unit::getHexes(BattleHex assumedPos, bool twoHex, BattleSide side) { - static BattleHexArray::ArrayOfBattleHexArrays cache[4]; + static BattleHexArray::ArrayOfBattleHexArrays precomputed[4]; int index = side == BattleSide::ATTACKER ? 0 : 2; - if(!cache[index + twoHex][assumedPos].empty()) - return cache[index + twoHex][assumedPos]; + if(!precomputed[index + twoHex][assumedPos].empty()) + return precomputed[index + twoHex][assumedPos]; - // first run, initialize + // first run, compute BattleHexArray hexes; hexes.insert(assumedPos); @@ -125,9 +125,9 @@ const BattleHexArray & Unit::getHexes(BattleHex assumedPos, bool twoHex, BattleS if(twoHex) hexes.insert(occupiedHex(assumedPos, twoHex, side)); - cache[index + twoHex][assumedPos] = std::move(hexes); + precomputed[index + twoHex][assumedPos] = std::move(hexes); - return cache[index + twoHex][assumedPos]; + return precomputed[index + twoHex][assumedPos]; } BattleHex Unit::occupiedHex() const