/* * AIMemory.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 "../AIUtility.h" #include "../../../lib/mapObjects/MapObjects.h" namespace NKAI { class AIMemory { public: std::set visitableObjs; std::set alreadyVisited; std::map> knownTeleportChannels; std::map knownSubterraneanGates; void removeFromMemory(const CGObjectInstance * obj); void removeFromMemory(ObjectIdRef obj); void addSubterraneanGate(const CGObjectInstance * entrance, const CGObjectInstance * exit); void addVisitableObject(const CGObjectInstance * obj); void markObjectVisited(const CGObjectInstance * obj); void markObjectUnvisited(const CGObjectInstance * obj); bool wasVisited(const CGObjectInstance * obj) const; void removeInvisibleObjects(CCallback * cb); }; }