Files
vcmi/AI/Nullkiller2/Pathfinding/AIPathfinderConfig.h
T
Ivan Savenko 861a4be471 Deterministic AI - do not rely on pointer ordering
This replaces std::maps that use hero instance pointer as key with
std::maps with custom comparator that guarantees same element order

Should prevent potential non-reproducible behavior in AI
2026-05-24 21:11:36 +03:00

38 lines
847 B
C++

/*
* AIPathfinderConfig.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
#include "AINodeStorage.h"
#include "../../../lib/pathfinder/PathfinderOptions.h"
namespace NK2AI
{
class Nullkiller;
namespace AIPathfinding
{
class AIPathfinderConfig : public PathfinderConfig
{
private:
HeroMap<std::unique_ptr<CPathfinderHelper>> pathfindingHelpers;
std::shared_ptr<AINodeStorage> aiNodeStorage;
public:
AIPathfinderConfig(Nullkiller * aiNk, std::shared_ptr<AINodeStorage> nodeStorage, bool allowBypassObjects);
~AIPathfinderConfig();
CPathfinderHelper * getOrCreatePathfinderHelper(const PathNodeInfo & source, const IGameInfoCallback & gameInfo) override;
};
}
}