src/GameState.hh
changeset 393 5dd4d782cf3a
parent 274 c35307e8645c
child 408 e6cfc44266af
equal deleted inserted replaced
392:6c4dc68360eb 393:5dd4d782cf3a
    13 
    13 
    14 #include <list>
    14 #include <list>
    15 #include <stdexcept>
    15 #include <stdexcept>
    16 #include <cmath>
    16 #include <cmath>
    17 
    17 
       
    18 class GameStateEventHandler {
       
    19     friend class GameState;
       
    20 
       
    21     protected:
       
    22         virtual void on_player_joined (Player *p) = 0;
       
    23         virtual void on_player_left (Player *p) = 0;
       
    24 };
       
    25 
    18 class GameState {
    26 class GameState {
    19 public:
    27 public:
    20     std::list<Player*> player_list;
    28     std::list<Player*> player_list;
    21     std::list<Projectile*> projectiles;
    29     std::list<Projectile*> projectiles;
    22     PhysicsWorld world;
    30     PhysicsWorld world;
    24     /**
    32     /**
    25      * The one LocalPlayer that *we* control
    33      * The one LocalPlayer that *we* control
    26      */
    34      */
    27     LocalPlayer *local_player;
    35     LocalPlayer *local_player;
    28     
    36     
       
    37 protected:
       
    38     /**
       
    39      * Notify someone about events?
       
    40      */
       
    41     GameStateEventHandler *event_handler;
       
    42 
       
    43 public:    
    29     /**
    44     /**
    30      * ...
    45      * ...
    31      * 
    46      * 
    32      * This should take some arguments
    47      * This should take some arguments
    33      */
    48      */
    34     GameState (void);
    49     GameState (void);
       
    50 
       
    51     /**
       
    52      * Set event handler, only one can be set
       
    53      */
       
    54     void setEventHandler (GameStateEventHandler *handler);
    35     
    55     
    36     /**
    56     /**
    37      * Adds projectile to our list of projectiles to draw
    57      * Adds projectile to our list of projectiles to draw
    38      */
    58      */
    39     void addProjectile(Projectile *projectile);
    59     void addProjectile(Projectile *projectile);