--- deliantra/server/common/object.C 2006/12/03 00:41:33 1.55 +++ deliantra/server/common/object.C 2006/12/03 02:46:33 1.57 @@ -921,22 +921,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 +969,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;