179 |
179 |
180 NetworkClientProjectile::NetworkClientProjectile (NetworkClient &client, NetworkObject_Client *obj, Vector position, |
180 NetworkClientProjectile::NetworkClientProjectile (NetworkClient &client, NetworkObject_Client *obj, Vector position, |
181 Vector velocity, float explosionRadius) : |
181 Vector velocity, float explosionRadius) : |
182 NetworkClientObjectHelper(client, obj), Projectile(client.state, position, velocity, true, explosionRadius) |
182 NetworkClientObjectHelper(client, obj), Projectile(client.state, position, velocity, true, explosionRadius) |
183 { |
183 { |
184 // XXX: register messages |
184 // hook up signals |
185 } |
185 slots.connect(obj->sig_message(NETMSG_PROJECTILE_DESTROY), this, &NetworkClientProjectile::on_destroy); |
186 |
186 } |
|
187 |
|
188 void NetworkClientProjectile::onDestroy (Vector position, bool removeGround) { |
|
189 // ignore :> |
|
190 } |
|
191 |
|
192 void NetworkClientProjectile::on_destroy (NetworkPacketInput &pkt) { |
|
193 Vector position = pkt.read_vector(); |
|
194 uint8_t flags = pkt.read_uint8(); |
|
195 |
|
196 Engine::log(INFO, "client_projectile.on_destroy") << "obj=" << obj << ", position=" << position << ", flags=" << flags; |
|
197 |
|
198 // XXX: leak obj, not yet implemented: obj.destory(); |
|
199 |
|
200 // pass on to super |
|
201 Projectile::onDestroy(position, flags & NETWORK_PROJECTILE_REMOVE_GROUND); |
|
202 } |