src/GameState.hh
changeset 393 5dd4d782cf3a
parent 274 c35307e8645c
child 408 e6cfc44266af
--- a/src/GameState.hh	Tue Jan 13 21:36:43 2009 +0200
+++ b/src/GameState.hh	Tue Jan 13 23:15:47 2009 +0200
@@ -15,6 +15,14 @@
 #include <stdexcept>
 #include <cmath>
 
+class GameStateEventHandler {
+    friend class GameState;
+
+    protected:
+        virtual void on_player_joined (Player *p) = 0;
+        virtual void on_player_left (Player *p) = 0;
+};
+
 class GameState {
 public:
     std::list<Player*> player_list;
@@ -26,12 +34,24 @@
      */
     LocalPlayer *local_player;
     
+protected:
+    /**
+     * Notify someone about events?
+     */
+    GameStateEventHandler *event_handler;
+
+public:    
     /**
      * ...
      * 
      * This should take some arguments
      */
     GameState (void);
+
+    /**
+     * Set event handler, only one can be set
+     */
+    void setEventHandler (GameStateEventHandler *handler);
     
     /**
      * Adds projectile to our list of projectiles to draw