--- deliantra/server/common/object.C 2007/01/19 18:06:51 1.119 +++ deliantra/server/common/object.C 2007/01/24 22:42:48 1.122 @@ -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) @@ -1751,7 +1753,7 @@ { float - diff = tmp->move_slow_penalty * FABS (op->speed); + diff = tmp->move_slow_penalty * fabs (op->speed); if (op->type == PLAYER) if ((QUERY_FLAG (tmp, FLAG_IS_HILLY) && find_skill_by_number (op, SK_CLIMBING)) ||