From 2ed5b79cfca4f3e82939d1b83df5819b89d723d8 Mon Sep 17 00:00:00 2001 From: EternalRat <44569175+EternalRat@users.noreply.github.com> Date: Wed, 16 Jun 2021 11:47:46 +0200 Subject: [PATCH] added speed to the save --- assets/buttons/button_resume_game.png | Bin 0 -> 6319 bytes assets/buttons/button_resume_game_hovered.png | Bin 0 -> 7304 bytes assets/buttons/button_save.png | Bin 0 -> 6138 bytes assets/buttons/button_save_hovered.png | Bin 0 -> 5949 bytes sources/Parser/ParserYaml.cpp | 14 +++++++- sources/Parser/ParserYaml.hpp | 7 +++- sources/Runner/MainMenuScene.cpp | 12 +++---- sources/Runner/PauseMenuScene.cpp | 30 +++++++++++++++--- sources/Runner/Runner.cpp | 1 - sources/System/Lobby/LobbySystem.cpp | 4 ++- 10 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 assets/buttons/button_resume_game.png create mode 100644 assets/buttons/button_resume_game_hovered.png create mode 100644 assets/buttons/button_save.png create mode 100644 assets/buttons/button_save_hovered.png diff --git a/assets/buttons/button_resume_game.png b/assets/buttons/button_resume_game.png new file mode 100644 index 0000000000000000000000000000000000000000..20cec8d29f9b68dfd0837440b3f49a5903ec5b59 GIT binary patch literal 6319 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 EFBQ=MOaK4? literal 0 HcmV?d00001 diff --git a/assets/buttons/button_resume_game_hovered.png b/assets/buttons/button_resume_game_hovered.png new file mode 100644 index 0000000000000000000000000000000000000000..427198159058c7c889cafef6d07b580ffc33aeec GIT binary patch literal 7304 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 Nwz`4Z3l;nD{{Z(V6x{#- literal 0 HcmV?d00001 diff --git a/assets/buttons/button_save.png b/assets/buttons/button_save.png new file mode 100644 index 0000000000000000000000000000000000000000..0372a9b34fd38ee579fbd4d930afc8b427a750e9 GIT binary patch literal 6138 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 literal 0 HcmV?d00001 diff --git a/assets/buttons/button_save_hovered.png b/assets/buttons/button_save_hovered.png new file mode 100644 index 0000000000000000000000000000000000000000..d66bc2247d8b71e0cb3568030d906f8c846a07a7 GIT binary patch literal 5949 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 Q`GZ?m(?FwC%|7hE00II+PXGV_ literal 0 HcmV?d00001 diff --git a/sources/Parser/ParserYaml.cpp b/sources/Parser/ParserYaml.cpp index 493a939d..38fea6c9 100644 --- a/sources/Parser/ParserYaml.cpp +++ b/sources/Parser/ParserYaml.cpp @@ -42,6 +42,7 @@ namespace BBM { std::vector ParserYAML::playerPosition = {}; std::vector ParserYAML::playerBombCount = {}; std::vector ParserYAML::playerExplosionRange = {}; + std::vector ParserYAML::playerSpeed = {}; std::vector ParserYAML::playerAssets = {}; std::string ParserYAML::_getBlockType(std::string blockName) @@ -86,15 +87,17 @@ namespace BBM { auto *position = entity.tryGetComponent(); auto *bombHolder = entity.tryGetComponent(); auto *model = entity.tryGetComponent(); + auto *controllable = entity.tryGetComponent(); auto name = entity.getName(); - if (!position || !bombHolder || !model) + if (!position || !bombHolder || !model || !controllable) return; std::replace(name.begin(), name.end(), ' ', '_'); _player << std::endl << " " << name << ":" << std::endl << " "; _player << "texture_path: " << dynamic_cast(model->drawable.get())->getTextureByMaterial(MAP_DIFFUSE).getResourcePath() << std::endl << " "; _player << "max_bomb: " << std::to_string(bombHolder->maxBombCount) << std::endl << " "; _player << "explosion_radius: " << std::to_string(bombHolder->explosionRadius) << std::endl << " "; + _player << "speed: " << std::to_string(controllable->speed) << std::endl << " "; _player << "position: [" << std::to_string(position->getX()) << " " << std::to_string(position->getY()) << " " << std::to_string(position->getZ()) << "]"; } @@ -162,6 +165,8 @@ namespace BBM { } else if (lines[index].find("texture_path") != std::string::npos && !name.empty()) { playerAssets.push_back(_parseAssets(lines[index])); tmpAssets = _parseAssets(lines[index]); + } else if (lines[index].find("speed") != std::string::npos && !name.empty()) { + playerSpeed.push_back(_parseSpeed(lines[index])); } else { if (!name.empty()) { break; @@ -366,6 +371,13 @@ namespace BBM { return (std::atof(line.substr(line.find(": ") + 2).c_str())); } + float ParserYAML::_parseSpeed(std::string &line) + { + if (line.find(": ") == std::string::npos || !_isFloat(line.substr(line.find(": ") + 2))) + throw (ParserError("Error with saved map: Couldn't parse speed.\n Loading default maps...")); + return (std::atof(line.substr(line.find(": ") + 2).c_str())); + } + MapGenerator::BlockType ParserYAML::_parseBlockType(std::string &blockType) { if (blockType.find(": ") == std::string::npos || !_isInteger(blockType.substr(blockType.find(": ") + 2))) diff --git a/sources/Parser/ParserYaml.hpp b/sources/Parser/ParserYaml.hpp index 9a29d564..2e41c176 100644 --- a/sources/Parser/ParserYaml.hpp +++ b/sources/Parser/ParserYaml.hpp @@ -47,6 +47,9 @@ namespace BBM { //!@brief return explosion radius parsed static float _parseExplosionRadius(std::string &line); //!@param line to parse + //!@brief return speed parsed + static float _parseSpeed(std::string &line); + //!@param line to parse //!@brief return vector3f of position parsed static Vector3f _parsePosition(std::string &line); //!@param blockType to parse @@ -97,8 +100,10 @@ namespace BBM { static std::vector playerPosition; //! @brief The amount of bomb a player had static std::vector playerBombCount; - //! @brief The explosion range per player + //! @brief The explosion range of a player static std::vector playerExplosionRange; + //! @brief The speed of a player + static std::vector playerSpeed; //! @brief The assets of the player static std::vector playerAssets; diff --git a/sources/Runner/MainMenuScene.cpp b/sources/Runner/MainMenuScene.cpp index f784e185..646a6389 100644 --- a/sources/Runner/MainMenuScene.cpp +++ b/sources/Runner/MainMenuScene.cpp @@ -36,7 +36,7 @@ namespace BBM .addComponent(1920 / 3, 180, 0) .addComponent("assets/logo_small.png"); auto &play = scene->addEntity("play button") - .addComponent(1920 / 2.5, 1080 - 720, 0) + .addComponent(1920 / 2.5, 1080 - 650, 0) .addComponent("assets/buttons/button_new_game.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) { @@ -56,18 +56,18 @@ namespace BBM }); auto &resume = scene->addEntity("resume button") .addComponent(1920 / 2.5, 1080 - 540, 0) - .addComponent("assets/buttons/button_new_game.png") + .addComponent("assets/buttons/button_resume_game.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) { RAY::Texture *texture = dynamic_cast(entity.getComponent().drawable.get()); - texture->use("assets/buttons/button_new_game.png"); + texture->use("assets/buttons/button_resume_game.png"); }) .addComponent([](WAL::Entity &entity, WAL::Wal &) { RAY::Texture *texture = dynamic_cast(entity.getComponent().drawable.get()); - texture->use("assets/buttons/button_new_game_hovered.png"); + texture->use("assets/buttons/button_resume_game_hovered.png"); }) .addComponent([](WAL::Entity &entity, WAL::Wal &) { @@ -88,7 +88,7 @@ namespace BBM Runner::gameState._loadedScenes[GameState::SceneID::GameScene] = scene; }); auto &settings = scene->addEntity("settings button") - .addComponent(1920 / 2.5, 1080 - 360, 0) + .addComponent(1920 / 2.5, 1080 - 430, 0) .addComponent("assets/buttons/button_settings.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) { @@ -107,7 +107,7 @@ namespace BBM gameState.nextScene = BBM::GameState::SceneID::SettingsScene; }); auto &exit = scene->addEntity("exit button") - .addComponent(1920 / 2.5, 1080 - 180, 0) + .addComponent(1920 / 2.5, 1080 - 320, 0) .addComponent("assets/buttons/button_exit.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) { diff --git a/sources/Runner/PauseMenuScene.cpp b/sources/Runner/PauseMenuScene.cpp index cf7d66c6..294dd860 100644 --- a/sources/Runner/PauseMenuScene.cpp +++ b/sources/Runner/PauseMenuScene.cpp @@ -3,6 +3,7 @@ #include #include "Runner.hpp" #include +#include #include "Component/Music/MusicComponent.hpp" #include "Component/Sound/SoundComponent.hpp" #include "Component/Controllable/ControllableComponent.hpp" @@ -52,6 +53,26 @@ namespace BBM { gameState.nextScene = BBM::GameState::SceneID::GameScene; }); + auto &save = scene->addEntity("save & quit button") + .addComponent(1920 / 2.5, 1080 - 240, 0) + .addComponent("assets/buttons/button_save.png") + .addComponent([](WAL::Entity &entity, WAL::Wal &) + { + RAY::Texture *texture = dynamic_cast(entity.getComponent().drawable.get()); + + texture->use("assets/buttons/button_save.png"); + }) + .addComponent([](WAL::Entity &entity, WAL::Wal &) + { + RAY::Texture *texture = dynamic_cast(entity.getComponent().drawable.get()); + + texture->use("assets/buttons/button_save_hovered.png"); + }) + .addComponent([](WAL::Entity &entity, WAL::Wal &) + { + ParserYAML::save(Runner::gameState._loadedScenes[GameState::SceneID::GameScene]); + gameState.nextScene = BBM::GameState::SceneID::MainMenuScene; + }); auto &settings = scene->addEntity("settings button") .addComponent(1920 / 2.5, 1080 - 360, 0) .addComponent("assets/buttons/button_settings.png") @@ -72,7 +93,7 @@ namespace BBM gameState.nextScene = BBM::GameState::SceneID::SettingsScene; }); auto &exit = scene->addEntity("exit button") - .addComponent(1920 / 1.5, 1080 - 360, 0) + .addComponent(1920 / 1.55, 1080 - 360, 0) .addComponent("assets/buttons/button_exit.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) { @@ -92,9 +113,10 @@ namespace BBM }); //needed material //music - play.getComponent().setButtonLinks(nullptr, nullptr, nullptr, &settings); - settings.getComponent().setButtonLinks(nullptr, nullptr, &play, &exit); - exit.getComponent().setButtonLinks(nullptr, nullptr, &settings, nullptr); + save.getComponent().setButtonLinks(&play); + play.getComponent().setButtonLinks(nullptr, &save, nullptr, &settings); + settings.getComponent().setButtonLinks(nullptr, &save, &play, &exit); + exit.getComponent().setButtonLinks(nullptr, &save, &settings, nullptr); return scene; } } \ No newline at end of file diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index e5a65e37..2a395fbd 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -53,7 +53,6 @@ namespace BBM if (gameState.currentScene == GameState::SceneID::GameScene || gameState.currentScene == GameState::SceneID::SplashScreen) { for (auto &[_, component]: engine.getScene()->view()) { if (component.pause && gameState.currentScene == GameState::SceneID::GameScene) { - ParserYAML::save(engine.getScene()); gameState.nextScene = GameState::SceneID::PauseMenuScene; break; } else if (gameState.currentScene == GameState::SceneID::SplashScreen && component.jump) { diff --git a/sources/System/Lobby/LobbySystem.cpp b/sources/System/Lobby/LobbySystem.cpp index 2d4a3ed7..463e68ab 100644 --- a/sources/System/Lobby/LobbySystem.cpp +++ b/sources/System/Lobby/LobbySystem.cpp @@ -188,12 +188,14 @@ namespace BBM auto *position = player.tryGetComponent(); auto *bombHolder = player.tryGetComponent(); auto *model = player.tryGetComponent(); - if (position && bombHolder && model) { + auto *controllable = player.tryGetComponent(); + if (position && bombHolder && model && controllable) { dynamic_cast(model->drawable.get())->setTextureToMaterial(MAP_DIFFUSE, ParserYAML::playerAssets[countPlayer]); position->position = ParserYAML::playerPosition[countPlayer]; bombHolder->explosionRadius = ParserYAML::playerExplosionRange[countPlayer]; bombHolder->maxBombCount = ParserYAML::playerBombCount[countPlayer]; + controllable->speed = ParserYAML::playerSpeed[countPlayer]; } addController(player, lobby.layout); countPlayer++;