--- 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