equal
deleted
inserted
replaced
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); |