91 |
91 |
92 void NetworkServerPlayer::handleCreateProjectile (Weapon *weapon, Vector position, Vector velocity) { |
92 void NetworkServerPlayer::handleCreateProjectile (Weapon *weapon, Vector position, Vector velocity) { |
93 Engine::log(INFO, "server_player.create_projectile") << "weapon='" << weapon->getName() << "', position=" << position << ", velocity=" << velocity; |
93 Engine::log(INFO, "server_player.create_projectile") << "weapon='" << weapon->getName() << "', position=" << position << ", velocity=" << velocity; |
94 |
94 |
95 // create new NetworkServerProjectile object |
95 // create new NetworkServerProjectile object |
96 new NetworkServerProjectile(server, position, velocity, weapon->getExplosionRadius(), weapon->getExpireTicks()); |
96 new NetworkServerProjectile(server, position, velocity, weapon->getExplosionRadius(), weapon->getRadius(), weapon->getExpireTicks()); |
97 } |
97 } |
98 |
98 |
99 void NetworkServerPlayer::handleChangeWeapon (unsigned int weaponIndex) { |
99 void NetworkServerPlayer::handleChangeWeapon (unsigned int weaponIndex) { |
100 NetworkPacket pkt; |
100 NetworkPacket pkt; |
101 |
101 |
227 |
227 |
228 /* |
228 /* |
229 * NetworkServerProjectile |
229 * NetworkServerProjectile |
230 */ |
230 */ |
231 NetworkServerProjectile::NetworkServerProjectile (NetworkServer &server, Vector position, Vector velocity, |
231 NetworkServerProjectile::NetworkServerProjectile (NetworkServer &server, Vector position, Vector velocity, |
232 float explosionRadius, TickCount age) : |
232 float explosionRadius, float radius, TickCount age) : |
233 Projectile(server.state, position, velocity, true, explosionRadius, age), server(server), obj(server.netobjs) |
233 Projectile(server.state, position, velocity, true, explosionRadius, radius, age), server(server), obj(server.netobjs) |
234 { |
234 { |
235 NetworkPacket pkt; |
235 NetworkPacket pkt; |
236 |
236 |
237 pkt.write_vector(position); |
237 pkt.write_vector(position); |
238 pkt.write_vector(velocity); |
238 pkt.write_vector(velocity); |
239 pkt.write_float32(explosionRadius); |
239 pkt.write_float32(explosionRadius); |
|
240 pkt.write_float32(radius); |
240 |
241 |
241 obj.send_all(NETMSG_PROJECTILE_CREATE, pkt, true); |
242 obj.send_all(NETMSG_PROJECTILE_CREATE, pkt, true); |
242 } |
243 } |
243 |
244 |
244 void NetworkServerProjectile::onDestroy (Vector position, bool removeGround) { |
245 void NetworkServerProjectile::onDestroy (Vector position, bool removeGround) { |