src/Network/Client.cc
changeset 239 550397d9d479
parent 224 e6faefba2ec1
child 241 e95b1602d836
equal deleted inserted replaced
238:15193c2bbe2f 239:550397d9d479
   120     NetworkClientObjectHelper(client, obj), Player(client.state, position, true) 
   120     NetworkClientObjectHelper(client, obj), Player(client.state, position, true) 
   121 {
   121 {
   122     // receive position updates
   122     // receive position updates
   123     slots.connect(obj->sig_message(NETMSG_PLAYER_POSITION), this, &NetworkClientPlayerHelper::on_position);
   123     slots.connect(obj->sig_message(NETMSG_PLAYER_POSITION), this, &NetworkClientPlayerHelper::on_position);
   124     slots.connect(obj->sig_message(NETMSG_PLAYER_DIG), this, &NetworkClientPlayerHelper::on_dig);
   124     slots.connect(obj->sig_message(NETMSG_PLAYER_DIG), this, &NetworkClientPlayerHelper::on_dig);
       
   125     slots.connect(obj->sig_message(NETMSG_PLAYER_WEAPON_CHANGE), this, &NetworkClientPlayerHelper::on_weapon_change);
   125 }
   126 }
   126 
   127 
   127 void NetworkClientPlayerHelper::on_position (NetworkPacketInput &pkt) {
   128 void NetworkClientPlayerHelper::on_position (NetworkPacketInput &pkt) {
   128     Vector position = pkt.read_vector();
   129     Vector position = pkt.read_vector();
   129     Vector velocity = pkt.read_vector();
   130     Vector velocity = pkt.read_vector();
   142 
   143 
   143     Engine::log(INFO, "client_player.on_dig") << "obj=" << obj << ", position=" << position << ", radius=" << radius;
   144     Engine::log(INFO, "client_player.on_dig") << "obj=" << obj << ", position=" << position << ", radius=" << radius;
   144     
   145     
   145     // just update... 
   146     // just update... 
   146     handleDig(position, radius);
   147     handleDig(position, radius);
       
   148 }
       
   149         
       
   150 void NetworkClientPlayerHelper::on_weapon_change (NetworkPacketInput &pkt) {
       
   151     uint8_t weapon_index = pkt.read_uint8();
       
   152 
       
   153     Engine::log(INFO, "client_player.on_weapon_change") << "obj=" << obj << ", weapon_index=" << weapon_index;
       
   154 
       
   155     handleChangeWeapon(weapon_index);
   147 }
   156 }
   148 
   157 
   149 NetworkClientLocalPlayer::NetworkClientLocalPlayer (NetworkClient &client, NetworkObject_Client *obj, Vector position) :
   158 NetworkClientLocalPlayer::NetworkClientLocalPlayer (NetworkClient &client, NetworkObject_Client *obj, Vector position) :
   150     Player(client.state, position, true), NetworkClientPlayerHelper(client, position, obj) {
   159     Player(client.state, position, true), NetworkClientPlayerHelper(client, position, obj) {
   151     
   160