src/GameState.cc
changeset 393 5dd4d782cf3a
parent 282 e0e4dfc3e528
child 408 e6cfc44266af
equal deleted inserted replaced
392:6c4dc68360eb 393:5dd4d782cf3a
     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);