void destroy_map() { int i; #ifdef EXTRA_DEBUG ERR(); #endif have_a_map = 0; clear_bbox_tree(main_bbox_tree); //kill the tile and height map if(tile_map) { free (tile_map); tile_map = NULL; } memset(tile_list,0,sizeof(tile_list)); tile_map_size_x = tile_map_size_y = 0; if(height_map) { free (height_map); height_map = NULL; } #ifndef MAP_EDITOR2 ///kill the pathfinding tile map if(pf_tile_map) { free(pf_tile_map); pf_tile_map = NULL; if (pf_follow_path) pf_destroy_path(); } #endif //kill the 3d objects links destroy_all_3d_objects(); //kill the 2d objects links destroy_all_2d_objects(); //kill the lights links for(i=0;i<MAX_LIGHTS;i++) { if(lights_list[i]) { free(lights_list[i]); lights_list[i]= NULL; //kill any refference to it } } num_lights= 0; #ifdef CLUSTER_INSIDES destroy_clusters_array (); #endif }
void cleanup_mem(void) { int i; destroy_url_list(); history_destroy(); command_cleanup(); queue_destroy(buddy_request_queue); cleanup_manufacture(); cleanup_text_buffers(); cleanup_fonts(); destroy_all_actors(); end_actors_lists(); cleanup_lights(); /* 2d objects */ destroy_all_2d_objects(); destroy_all_2d_object_defs(); /* 3d objects */ destroy_all_3d_objects(); /* caches */ cache_e3d->free_item = &destroy_e3d; cache_delete(cache_e3d); cache_e3d = NULL; #ifdef NEW_TEXTURES free_texture_cache(); #endif // This should be fixed now Sir_Odie cache_delete(cache_system); cache_system = NULL; /* map location information */ for (i = 0; continent_maps[i].name; i++) { free(continent_maps[i].name); } free (continent_maps); destroy_hash_table(server_marks); for (i = 0; i < video_modes_count; i++) { if (video_modes[i].name) free(video_modes[i].name); } free_shaders(); }