move initial projectile sync message to NetworkServerProjectile::send_info
authorTero Marttila <terom@fixme.fi>
Tue, 27 Jan 2009 00:16:17 +0200
changeset 436 49f94c4bdf0d
parent 435 7bad24ab668e
child 437 5c03b194e082
move initial projectile sync message to NetworkServerProjectile::send_info
src/Network/Server.cc
src/Network/Server.hh
--- 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<const NetworkServerPlayer*>(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<const NetworkServerPlayer*>(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);
+
+}
--- 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