YAPOG  0.0.1
Yet Another Pokemon Online Game
GameplayScreen.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_CLIENT_GAMEPLAYSCREEN_HPP
2 # define YAPOG_CLIENT_GAMEPLAYSCREEN_HPP
3 
4 # include "YAPOG/Macros.hpp"
8 
10 # include "World/World.hpp"
11 
12 namespace yap
13 {
14  struct IWorldDrawingPolicy;
15 
16  class GameWorldGuiManager;
17 } // namespace yap
18 
19 namespace ycl
20 {
21  class Player;
22  class GameGuiManager;
23  class GameMainMenu;
24  class PokedexCompositeWidget;
25  class PokedexWidget;
26  class PokemonTeamWidget;
27  class ChatWidget;
28  class MapRootWidget;
29  class TrainerCardWidget;
30 
31  class GameplayScreen : public BaseScreen
32  {
34 
35  public:
36 
37  explicit GameplayScreen (yap::IDrawingContext& context);
38  virtual ~GameplayScreen ();
39 
40  protected:
41 
42  virtual void HandleInit ();
43 
44  virtual void HandleRun (
45  const yap::Time& dt,
46  yap::IDrawingContext& context);
47 
48  virtual bool HandleOnEvent (const yap::GuiEvent& guiEvent);
49  virtual void HandleActivate ();
50  virtual void HandleDeactivate ();
51 
52  private:
53 
54  Map& GetCurrentMap ();
55  void SetCurrentMap (Map& map);
56  void SetPlayer (Player* player);
57 
58  void SetPlayerName ();
59 
60  void UpdatePlayer (const yap::Time& dt);
61  void HandleOnPlayerWarped ();
62 
63  void ResetMoveController ();
64 
65  void SendApplyForce (const yap::Vector2& force);
66  void SendGameInput (yap::GameInputType gameInputType, bool state);
67 
69 
70  virtual void CreateGuiManager ();
71 
73 
75 
78 
80 
84 
86 
90 
93 
95 
98 
100 
102 
105  };
106 } // namespace ycl
107 
108 #endif // YAPOG_CLIENT_GAMEPLAYSCREEN_HPP