# HG changeset patch # User Tero Marttila # Date 1233008177 -7200 # Node ID 49f94c4bdf0d9ce0327aaf0a68e0b572e315e6a0 # Parent 7bad24ab668ee87f6ce2de31d530ebb9452c3f30 move initial projectile sync message to NetworkServerProjectile::send_info diff -r 7bad24ab668e -r 49f94c4bdf0d src/Network/Server.cc --- a/src/Network/Server.cc Tue Jan 27 00:12:07 2009 +0200 +++ b/src/Network/Server.cc Tue Jan 27 00:16:17 2009 +0200 @@ -120,23 +120,9 @@ // all projectiles should be under the control of the server assert(proj); - - const NetworkServerPlayer *player = dynamic_cast(proj->getOwner()); - - // as should players - assert(player); // send info - NetworkMessage proj_msg(*proj, NETMSG_PROJECTILE_INFO); - - // write out packet - proj_msg.write_object(player); - proj_msg.write_vector(proj->getPosition()); - proj_msg.write_vector(proj->getVelocity()); - proj_msg.write_uint8(proj->getWeapon()->getID()); - - // send to given target - node.send(proj_msg); + proj->send_info(node); } // broadcast NETMSG_PLAYER_JOIN to all clients except current @@ -397,3 +383,23 @@ Projectile::onHitPlayer(player_ptr); } +void NetworkServerProjectile::send_info (NetworkNode &node) { + // get our NetworkServerPlayer via getOwner() + const NetworkServerPlayer *player = dynamic_cast(getOwner()); + + // as should players + assert(player); + + // send info + NetworkMessage msg(*this, NETMSG_PROJECTILE_INFO); + + // write out packet + msg.write_object(player); + msg.write_vector(getPosition()); + msg.write_vector(getVelocity()); + msg.write_uint8(getWeapon()->getID()); + + // send to given target + node.send(msg); + +} diff -r 7bad24ab668e -r 49f94c4bdf0d src/Network/Server.hh --- a/src/Network/Server.hh Tue Jan 27 00:12:07 2009 +0200 +++ b/src/Network/Server.hh Tue Jan 27 00:16:17 2009 +0200 @@ -194,6 +194,12 @@ * @param player the NetworkServerPlayer that got hit */ virtual void onHitPlayer (Player *player_ptr); + + public: + /** + * Send initial info to the given node + */ + void send_info (NetworkNode &node); }; #endif