diff --git a/sources/Parser/ParserYaml.cpp b/sources/Parser/ParserYaml.cpp index 5026c3d9..3b83203b 100644 --- a/sources/Parser/ParserYaml.cpp +++ b/sources/Parser/ParserYaml.cpp @@ -28,6 +28,7 @@ #include #include #include +#include namespace RAY3D = RAY::Drawables::Drawables3D; namespace RAY2D = RAY::Drawables::Drawables2D; @@ -178,6 +179,11 @@ namespace BBM { playerName.push_back(name); } } + if ((tmpAssets.find("red.png") == std::string::npos && tmpAssets.find("blue.png") == std::string::npos && + tmpAssets.find("green.png") == std::string::npos && tmpAssets.find("yellow.png") == std::string::npos && + tmpAssets.find("ai.png") == std::string::npos) || !std::filesystem::exists(tmpAssets)) { + throw (ParserError("Error with saved map: One asset is invalid.\n Loading default maps...")); + } auto resumeScene = Runner::gameState._loadedScenes[GameState::SceneID::ResumeLobbyScene]; auto &playerTile = resumeScene->addEntity("player tile") .addComponent(224 * (countPlayer + 1) + 200 * countPlayer, 1080 / 3, 0) diff --git a/sources/Runner/MainMenuScene.cpp b/sources/Runner/MainMenuScene.cpp index 646a6389..329e6129 100644 --- a/sources/Runner/MainMenuScene.cpp +++ b/sources/Runner/MainMenuScene.cpp @@ -76,7 +76,7 @@ namespace BBM try { ParserYAML::load(scene); } catch (std::exception const &err) { - scene->addEntity("Error message parser") + Runner::gameState._loadedScenes[GameState::SceneID::LobbyScene]->addEntity("Error message parser") .addComponent(1920 / 5, 2 * 1080 / 4.25, 0) .addComponent(err.what(), 50, RAY::Vector2(), RED) .addComponent(3s, [](WAL::Entity &entity, WAL::Wal &wal) {