void GameStateController::loadGame(flat2d::GameData *gameData)
{
	// Clean up first
	clearAllAssets(gameData);

	flat2d::EntityContainer *entityContainer = gameData->getEntityContainer();
	CustomGameData *customGameData = static_cast<CustomGameData*>(gameData->getCustomGameData());
	LayerService *layerService = customGameData->getLayerService();

	MapParser parser;
	MapData map = maps[currentMapIndex];
	parser.createMapFrom(gameData, map.path, map.file);

	// TODO(Linus): Will this layer system work? (esp the hardcoded layers)
	layerService->registerLayer(FRONT_LAYER);
	layerService->registerLayer(OVERLAY_LAYER);
	layerService->registerLayers(entityContainer);

	flat2d::Entity* soldier = new Soldier(200, 200);
	entityContainer->registerObject(soldier, layerService->getLayerIndex(FRONT_LAYER));

	ResourceLoader *rLoader = customGameData->getResourceLoader();
	rLoader->loadMusic(gameData);
	rLoader->loadSoundEffects(gameData);

#ifdef FPS_DBG
	FrameCounter *counter = new FrameCounter(10, 10);
	entityContainer->registerObject(counter, layerService->getLayerIndex(OVERLAY_LAYER));
#endif // DEBUG
}