--- deliantra/server/common/object.C 2006/12/03 00:41:33 1.55 +++ deliantra/server/common/object.C 2006/12/04 17:48:35 1.58 @@ -841,14 +841,6 @@ delete *i; mortals.erase (i); } - - static int lastmortals = 0;//D - - if (mortals.size() != lastmortals && lastmortals > 100)//D - { - lastmortals = mortals.size ();//D - LOG (llevDebug, "%d objects in mortal queue\n", lastmortals);//D - } } object::object () @@ -921,22 +913,6 @@ SET_FLAG (this, FLAG_FREED); - // hack to ensure that freed objects still have a valid map - { - static maptile *freed_map; // freed objects are moved here to avoid crashes - - if (!freed_map) - { - freed_map = get_empty_map (3, 3); - freed_map->name = "freed objects map"; - allocate_map (freed_map); - } - - map = freed_map; - x = 1; - y = 1; - } - if (more) { more->destroy (destroy_inventory); @@ -985,6 +961,26 @@ } } + // hack to ensure that freed objects still have a valid map + { + static maptile *freed_map; // freed objects are moved here to avoid crashes + + if (!freed_map) + { + freed_map = new maptile; + + freed_map->name = "/internal/freed_objects_map"; + freed_map->width = 3; + freed_map->height = 3; + + freed_map->allocate (); + } + + map = freed_map; + x = 1; + y = 1; + } + // clear those pointers that likely might have circular references to us owner = 0; enemy = 0;