Ver Fonte

use bitset for presenceFlags and steady_clock for measurments

MichalZr6 há 10 meses atrás
pai
commit
44a645b5e0
3 ficheiros alterados com 9 adições e 9 exclusões
  1. 2 2
      AI/BattleAI/BattleEvaluator.cpp
  2. 1 1
      lib/battle/BattleHexArray.h
  3. 6 6
      lib/battle/Unit.cpp

+ 2 - 2
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<std::chrono::high_resolution_clock> start)
+uint64_t timeElapsed(std::chrono::time_point<std::chrono::steady_clock> start)
 {
-	auto end = std::chrono::high_resolution_clock::now();
+	auto end = std::chrono::steady_clock::now();
 
 	return std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
 }

+ 1 - 1
lib/battle/BattleHexArray.h

@@ -292,7 +292,7 @@ public:
 
 private:
 	StorageType internalStorage;
-	std::array<uint8_t, totalSize> presenceFlags = {};
+	std::bitset<totalSize> presenceFlags = {};
 
 	[[nodiscard]] inline bool BattleHexArray::isNotValidForInsertion(BattleHex hex) const
 	{

+ 6 - 6
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