From 52fe2e697eb9738b72f790be9ecca37fcf9d96b3 Mon Sep 17 00:00:00 2001 From: tleety Date: Thu, 15 Oct 2015 12:15:53 +0200 Subject: [PATCH] Added a config file and implemented code for it --- assets/Config.ini | 2 ++ include/Core/ConfigFile.h | 35 +++++++++++++++++++++++++++++++++++ include/Core/Engine.h | 11 ++++++++++- src/game/Core/ConfigFile.cpp | 7 +++++++ src/game/Game/BallSystem.cpp | 2 +- 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100755 assets/Config.ini create mode 100755 include/Core/ConfigFile.h create mode 100755 src/game/Core/ConfigFile.cpp diff --git a/assets/Config.ini b/assets/Config.ini new file mode 100755 index 0000000..90fb983 --- /dev/null +++ b/assets/Config.ini @@ -0,0 +1,2 @@ +[Debug] +SkipStory=0 \ No newline at end of file diff --git a/include/Core/ConfigFile.h b/include/Core/ConfigFile.h new file mode 100755 index 0000000..04c0051 --- /dev/null +++ b/include/Core/ConfigFile.h @@ -0,0 +1,35 @@ +#ifndef ConfigFile_h__ +#define ConfigFile_h__ + +#include +#include +#include + +#include "ResourceManager.h" + + +namespace dd +{ + +class ConfigFile : public Resource +{ + friend class ResourceManager; + +private: + ConfigFile(std::string path); + +public: + template + T GetValue(std::string key) + { + std::cout << m_ptree.get(key) << std::endl; + return m_ptree.get(key); + } + +private: + boost::property_tree::ptree m_ptree; + +}; + +}; +#endif // ConfigFile_h__ diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 905eea4..a2985bc 100755 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -32,6 +32,7 @@ #include "World.h" #include "CTransform.h" #include "CTemplate.h" +#include "Core/ConfigFile.h" #include "Core/EventBroker.h" #include "Rendering/CModel.h" #include "Rendering/CSprite.h" @@ -94,7 +95,15 @@ public: m_FrameStack = new GUI::Frame(m_EventBroker.get()); m_FrameStack->Width = 675; m_FrameStack->Height = 1080; - auto menu = new GUI::MainMenu(m_FrameStack, "MainMenu"); + + if (ResourceManager::Load("Config.ini")->GetValue("Story.Skip") == 1) { + Events::GameStart e; + m_EventBroker->Publish(e); + auto hud = new GUI::HUD(m_FrameStack, "HUD"); + } + else { + auto menu = new GUI::MainMenu(m_FrameStack, "MainMenu"); + } m_InputManager = std::make_shared(m_Renderer->Window(), m_EventBroker); diff --git a/src/game/Core/ConfigFile.cpp b/src/game/Core/ConfigFile.cpp new file mode 100755 index 0000000..6a9abeb --- /dev/null +++ b/src/game/Core/ConfigFile.cpp @@ -0,0 +1,7 @@ +#include "PrecompiledHeader.h" +#include "Core/ConfigFile.h" + +dd::ConfigFile::ConfigFile(std::string path) +{ + boost::property_tree::ini_parser::read_ini(path, m_ptree); +} \ No newline at end of file diff --git a/src/game/Game/BallSystem.cpp b/src/game/Game/BallSystem.cpp index b2a0301..3377212 100644 --- a/src/game/Game/BallSystem.cpp +++ b/src/game/Game/BallSystem.cpp @@ -322,7 +322,7 @@ bool dd::Systems::BallSystem::Contact(const Events::Contact &event) - ballComponent->Combo = 56; + ballComponent->Combo = 0; if (!ballComponent->Waiting) { if (m_InkBlaster) { if (!m_InkAttached) {