YAPOG  0.0.1
Yet Another Pokemon Online Game
IGameScreen.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_IGAMESCREEN_HPP
2 # define YAPOG_IGAMESCREEN_HPP
3 
4 # include "YAPOG/Macros.hpp"
5 # include "YAPOG/System/String.hpp"
8 
9 namespace yap
10 {
11  typedef String ScreenType;
12 
13  class Time;
14  struct IDrawingContext;
15  class GuiManager;
16 
19  {
20  virtual ~IGameScreen () {}
21 
23  virtual void Init () = 0;
25  virtual void Activate () = 0;
27  virtual void Deactivate () = 0;
28 
29  virtual void NextFrame () = 0;
30 
36  virtual const ScreenType& Run (
37  const Time& dt,
38  IDrawingContext& context) = 0;
39 
42  virtual const GuiManager& GetGuiManager () const = 0;
45  virtual GuiManager& GetGuiManager () = 0;
46 
48  virtual const ScreenType& GetType () const = 0;
49 
50  virtual Event<IGameScreen&>& OnGameExitedEvent () = 0;
51  };
52 } // namespace yap
53 
54 #endif // YAPOG_IGAMESCREEN_HPP