#pragma once
#include <string>
using std::string;
#include "C:\L\List\List.h"
#include "PathNode.h"

class MapPath
{
public:
			MapPath			();
			~MapPath		();
	void	SetName			(string Data);
	string	GetName			() const;
	int		GetLength		() const;
	void	AddNode			(int X, int Y, int Dir);

	List<PathNode>	Path;
	int		Length;

private:
	string	PathNickName;
};
/*
	Developer Notes:

	The expected use of the paths by Mobs is...
		The mob is given a destination coordinate to travel to. The mob searches the available 
	Paths available to figure out which path they eventually need to be on to arrive at the Point.
	If the path is not the same as the one that the mob is currently on, then it will have to 
	search through the Points of both paths to find a common Point that the mob has to travel to 
	get on the required Path. This search has to be repeated if there are multiple Paths on a map. 
	The process requires that all Path routes be evaluated to find which route is the shortest.
		For the first release of this product, the evaluation will be limited to when the mob finds 
	a legitimate route, without evaluating for a shorter route.
		To help bypass the shortest route issue, the current game should create Paths that have two 
	two Path types...Main Thuroughfares, and Branches ("Main" and "Branch"). Main's will usually be 
	a Path that reaches as far across a map as it can. Branch's sproute off to locations that have 
	only one in/out Point to cross to get to the end of the Path. The starting Point of a Branch 
	should therefor be the same as one of the points of one of the Main Paths (if there is more than 
	one).
*/