#pragma once

#include <BWAPI.h>
#include "CBase.h"
#include "CUnit.h"
#include "Macro.h"

using namespace BWAPI;

class CBase;
class CUnit;

class CMap
{
	public:
		static TilePosition getAreaAverage(const BWEM::Area* area);
		static TilePosition getAreaAverage(const BWEM::Area area);
		static TilePosition getChokepointCenter(const BWEM::Area* area, const BWEM::Area* neighborArea);
		static std::vector<const BWEM::Area*> getPath(const BWEM::Area* a1, const BWEM::Area* a2);
		static std::vector<const BWEM::Area*> reconstructPath(std::map<const BWEM::Area*, const BWEM::Area*> cameFrom, const BWEM::Area* current);
};