Umieszczałem tu parę dni temu ten sam problem bez kodu, teraz udostępniam cały projekt:
http://www.speedyshare.com/Xe5Wa/RPG.rar
Kompilowany na VS 2012

Błąd występuję podczas wczytywania mapy. Gdy jest mało elementów do wczytania, program działa poprawnie, natomiast przy większej liczbie elementów mapy do wczytania, program ma problem z wczytaniem pliku Player.txt, gdzie umieszczona jest np. ścieżka do grafiki, no i program crashuje bo nie może wyświetlić grafiki, której nie wczytał. Nie mam pojęcia co może powodować te zamazywanie ścieżek.

Metoda klasy layer, każdy kafelek jest wysyłany tutaj tiles[tiles.size()-1].SetContent(tileImage, tempState, position);

void Layer::LoadContent(std::string layerID, std::string mapID)
{
	std::string filename = "Load/Maps/"+mapID+".txt";
	fileManager.LoadContent(filename.c_str(),attributes, contents, layerID);
	int indexY = 0;

	for(int i =0; i < attributes.size(); i++)
	{
		for(int j =0; j < attributes[i].size(); j++)
		{
			if(attributes[i][j] == "SolidTiles")
			solidTiles.push_back(SetTiles(contents[i][j]));
			else if(attributes[i][j] == "TileSheet")
				tileSheet = al_load_bitmap(contents[i][j].c_str());
			else if(attributes[i][j] == "StartLayer")
			{
				for(int k = 0; k < contents[i].size(); k++)
				{
					if(contents[i][k] != "---")
					{
						ALLEGRO_BITMAP *tileImage;
						Tile::State tempState = Tile::State::Passive;
						std::pair<int,int> tile = SetTiles(contents[i][k]);
						if(std::find(solidTiles.begin(), solidTiles.end(), tile)
							!= solidTiles.end())
						{
							tempState = Tile::State::Solid;
						}
						tileImage = al_create_sub_bitmap(tileSheet, tile.first * 32, tile.second * 32,
							32,32);

						std::pair<float,float> position(k*32, indexY * 32);

						Tile tileInstance;
						tiles.push_back(tileInstance);
						tiles[tiles.size()-1].SetContent(tileImage, tempState, position);
					}
				}
				indexY++;
			}
		}
	}
}

Przechodzi wtedy do metody klasy Tile, po usunięciu linijki tileAnimation.LoadContent(tileImage, "", position);
Program nie crashuje.

void Tile::SetContent(ALLEGRO_BITMAP *tileImage, State state, std::pair<float,float> position)
{
	image = tileImage;
	this->state = state;
	tileAnimation.LoadContent(tileImage, "", position);
}

No a tak wygląda ta metoda klasy Animation

void Animation::LoadContent(ALLEGRO_BITMAP *image,std::string text, std::pair<float, float> position)
{
    this->image = image;
    this->text = text;
    this->position = position;

    alpha = 255;
    font = al_load_font("font1.ttf", 30, NULL);
    sourceRect = image;
    isActive = false;
	ammountOfFrames = std::pair<int,int>(3,4);
	currentFrame = std::pair<int,int>(1,0);
}

Przypominam że program działa poprawnie gdy wczytuje się mniejszą ilość danych. Ścieżki zamazuje jak wczytał z 480 elementów mapy.

dodanie znaczników '____' oraz załącznika do posta - furious programming