--- deliantra/server/common/object.C 2007/01/21 21:28:27 1.120 +++ deliantra/server/common/object.C 2007/01/26 20:59:56 1.123 @@ -672,8 +672,7 @@ object::~object () { - if (index) - unlink (); + unlink (); free_key_values (this); } @@ -692,7 +691,9 @@ void object::unlink () { - assert (index);//D + if (!index) + return; + objects.erase (this); refcnt_dec (); } @@ -776,6 +777,7 @@ if (!drop_to_ground || !map || map->in_memory != MAP_IN_MEMORY + || map->nodrop || ms ().move_block == MOVE_ALL) { while (inv) @@ -901,7 +903,6 @@ * object will have no environment. If the object previously had an * environment, the x and y coordinates will be updated to * the previous environment. - * Beware: This function is called from the editor as well! */ void object::remove_slow ()