PathfindingApp::PathfindingApp()
{
	// Initialise SDL
	if (SDL_Init(SDL_INIT_VIDEO) < 0)
	{
		freopen("CON", "w", stdout);
		freopen("CON", "w", stderr);
		showSdlError("SDL_Init failed");
		return;
	}
	freopen("CON", "w", stdout);
	freopen("CON", "w", stderr);

	// Load map
	map = new Map(MAP_NAME);

	// Calculate tile size, based on window height of 800 pixels
	tileSize = 800 / map->getHeight();

	// Create a window and renderer
	window = SDL_CreateWindow("Pathfinding",
		SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
		map->getWidth() * tileSize, map->getHeight() * tileSize,
		SDL_WINDOW_SHOWN);
	renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC);

	// Load sprites
	spriteWall = IMG_LoadTexture(renderer, "Sprites\\brickGrey.png");
	spriteMouse = IMG_LoadTexture(renderer, "Sprites\\mouse.png");
	spriteExit = IMG_LoadTexture(renderer, "Sprites\\signExit.png");

	// Check for errors in loading sprites
	if (!spriteWall || !spriteMouse || !spriteExit)
	{
		showSdlError("IMG_LoadTexture failed");
		return;
	}

	// Find the path
	Pathfinder pathfinder;
	path = pathfinder.findPath(*map, map->getStartPoint(), map->getEndPoint());
}