R-Type
R-Type project
MenuCampaignSelector.hpp
1 #pragma once
2 
3 #include "KapEngine.hpp"
4 #include "KapEngineDebug.hpp"
5 #include "KapEngineUi.hpp"
6 #include "KapUI/KapUI.hpp"
7 #include "GameManager.hpp"
8 
9 namespace RType {
11  private:
12  struct Campaign {
13  std::string name;
14  std::string description;
15  std::string scriptPath;
16  std::string author;
17  std::string image;
18  };
19 
20  private:
21  GameManager &gameManager;
22 
23  std::size_t _currentMap = 0;
24  std::size_t _nbMaps = 0;
25  std::vector<Campaign> _campaigns;
26 
27  std::shared_ptr<KapEngine::GameObject> _buttonLevel1;
28  std::shared_ptr<KapEngine::GameObject> _buttonLevel2;
29  std::shared_ptr<KapEngine::GameObject> _buttonLeft;
30  std::shared_ptr<KapEngine::GameObject> _buttonRight;
31 
32  public:
33  explicit MenuCampaignSelector(std::shared_ptr<KapEngine::GameObject> go, GameManager &_gameManager);
34  ~MenuCampaignSelector() = default;
35 
36  void onAwake() override;
37 
38  void buttonNextMaps();
39  void buttonPreviousMaps();
40  void buttonPlayFirst();
41  void buttonPlaySecond();
42 
43  void setButtonLevel1(const std::shared_ptr<KapEngine::GameObject> &btn);
44  void setButtonLevel2(const std::shared_ptr<KapEngine::GameObject> &btn);
45  void setButtonLeft(const std::shared_ptr<KapEngine::GameObject> &btn);
46  void setButtonRight(const std::shared_ptr<KapEngine::GameObject> &btn);
47 
48  private:
49  void getLuaInformation();
50  void openFolderLua();
51 
52  void updateButtons();
53  std::string formatText(const std::string &text);
54  };
55 } // namespace RType
RType::MenuCampaignSelector
Definition: MenuCampaignSelector.hpp:10
RType::GameManager
Definition: GameManager.hpp:11
KapEngine::Component
Definition: Component.hpp:38
RType::MenuCampaignSelector::onAwake
void onAwake() override
call component awake
Definition: MenuCampaignSelector.cpp:43