--- a/src/Network/Object.cc Tue Dec 09 00:45:18 2008 +0000
+++ b/src/Network/Object.cc Tue Dec 09 00:45:41 2008 +0000
@@ -89,13 +89,17 @@
* NetworkObject
*/
NetworkObject::NetworkObject (NetworkObjectController &controller, NetworkObjectID obj_id) :
- obj_id(obj_id) {
+ controller(controller), obj_id(obj_id) {
assert(obj_id);
controller.objects[obj_id] = this;
}
+NetworkObject::~NetworkObject (void) {
+ controller.objects.erase(obj_id);
+}
+
void NetworkObject::buildPacket (NetworkPacketOutput &pkt, NetworkMessageID msg_id, const NetworkPacketBuffer &payload) {
pkt.write_uint32(obj_id);
pkt.write_uint16(msg_id);
--- a/src/Network/Object.hh Tue Dec 09 00:45:18 2008 +0000
+++ b/src/Network/Object.hh Tue Dec 09 00:45:41 2008 +0000
@@ -186,6 +186,11 @@
protected:
/**
+ * Generic controller
+ */
+ NetworkObjectController &controller;
+
+ /**
* This object's object id
*/
NetworkObjectID obj_id;
@@ -200,6 +205,11 @@
NetworkObject (NetworkObjectController &controller, NetworkObjectID obj_id);
/**
+ * Removes this object from the controller's objects list
+ */
+ ~NetworkObject (void);
+
+ /**
* Abstract method to handle packets sent to this object
*
* @param node the NetworkNode that sent this packet to us
--- a/src/Weapons.cc Tue Dec 09 00:45:18 2008 +0000
+++ b/src/Weapons.cc Tue Dec 09 00:45:41 2008 +0000
@@ -18,7 +18,7 @@
{ 10000, 3 * 80 + 50, 3 * 5 + 5, 3, 2 * 6 + 5, 3, 2 * 100 + 50, 0.00, "Weapon 3" },
{ 10000, 2 * 80 + 50, 4 * 5 + 5, 5, 3 * 6 + 5, 4, 3 * 100 + 50, 0.00, "Weapon 4" },
{ 10000, 1 * 80 + 50, 5 * 5 + 5, 8, 4 * 6 + 5, 5, 4 * 100 + 50, 0.00, "Weapon 5" },
- { 1000, 600, 50000, 13, 100, 10, 1000, 1.05, "BounceBounce" },
+ { 1000, 600, 999000, 13, 100, 10, 1000, 1.05, "BounceBounce" },
{ 0, 0, 0, 0, 0, 0, 0, 0.00, "" }
};