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 }