- void add_remove_listener(ObjectRemoveListener* listener)
- {
- RemoveListenerListEntry* entry = new RemoveListenerListEntry();
- entry->next = remove_listeners;
- entry->listener = listener;
-
- remove_listeners = entry;
- }
-
- // flags
- enum {
- /// the tile so you can stand on it
- FLAG_SOLID = (1 << 0),
- /// the object can be carried around (inherits from Portable)
- FLAG_PORTABLE = (1 << 1)
- };
+ void add_remove_listener(ObjectRemoveListener* listener);
+
+ /**
+ * unregisters a remove listener, so it will no longer be called if the object
+ * gets removed/destroyed
+ */
+ void del_remove_listener(ObjectRemoveListener* listener);