equal
deleted
inserted
replaced
2 #include "GameState.hh" |
2 #include "GameState.hh" |
3 #include "Engine.hh" |
3 #include "Engine.hh" |
4 #include "Config.hh" |
4 #include "Config.hh" |
5 |
5 |
6 GameState::GameState (void) : |
6 GameState::GameState (void) : |
7 world(Vector(0, MAP_GRAVITY), Vector(MAP_WIDTH, MAP_HEIGHT)), local_player(NULL) |
7 world(Vector(0, MAP_GRAVITY), Vector(MAP_WIDTH, MAP_HEIGHT)), local_player(NULL), event_handler(NULL) |
8 { |
8 { |
9 |
9 |
|
10 } |
|
11 |
|
12 void GameState::setEventHandler (GameStateEventHandler *handler) { |
|
13 if (handler && event_handler != NULL) |
|
14 throw Error("event_handler already set"); |
|
15 |
|
16 event_handler = handler; |
10 } |
17 } |
11 |
18 |
12 void GameState::addProjectile (Projectile *projectile) { |
19 void GameState::addProjectile (Projectile *projectile) { |
13 projectiles.push_back(projectile); |
20 projectiles.push_back(projectile); |
14 } |
21 } |
24 local_player = player; |
31 local_player = player; |
25 } |
32 } |
26 |
33 |
27 void GameState::addPlayer (Player *player) { |
34 void GameState::addPlayer (Player *player) { |
28 player_list.push_back(player); |
35 player_list.push_back(player); |
|
36 |
|
37 if (event_handler) |
|
38 event_handler->on_player_joined(player); |
29 } |
39 } |
30 |
40 |
31 void GameState::removePlayer (Player *player) { |
41 void GameState::removePlayer (Player *player) { |
32 if (player == local_player) |
42 if (player == local_player) |
33 local_player = NULL; |
43 local_player = NULL; |
34 |
44 |
35 player_list.remove(player); |
45 player_list.remove(player); |
|
46 |
|
47 if (event_handler) |
|
48 event_handler->on_player_left(player); |
36 } |
49 } |
37 |
50 |
38 void GameState::draw(Graphics *g, PixelCoordinate camera, bool displayWeapon) { |
51 void GameState::draw(Graphics *g, PixelCoordinate camera, bool displayWeapon) { |
39 // Draw world/terrain |
52 // Draw world/terrain |
40 world.draw(g, camera); |
53 world.draw(g, camera); |