/** * * rct2: 0x006CFD76 */ static void window_track_list_close(rct_window *w) { // Dispose track design and preview track_design_dispose(_loadedTrackDesign); _loadedTrackDesign = NULL; SafeFree(_trackDesignPreviewPixels); // Dispose track list for (size_t i = 0; i < _trackDesignsCount; i++) { free(_trackDesigns[i].name); free(_trackDesigns[i].path); } SafeFree(_trackDesigns); _trackDesignsCount = 0; // If gScreenAge is zero, we're already in the process // of loading the track manager, so we shouldn't try // to do it again. Otherwise, this window will get // another close signal from the track manager load function, // try to load the track manager again, and an infinite loop will result. if ((gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER) && gScreenAge != 0){ window_close_by_number(WC_MANAGE_TRACK_DESIGN, w->number); window_close_by_number(WC_TRACK_DELETE_PROMPT, w->number); trackmanager_load(); } }
/** * * rct2: 0x006D41DC */ static void window_install_track_close(rct_window* w) { _trackPath.clear(); _trackName.clear(); _trackDesignPreviewPixels.clear(); _trackDesignPreviewPixels.shrink_to_fit(); track_design_dispose(_trackDesign); _trackDesign = nullptr; }
/** * * rct2: 0x006D0119 */ static void window_track_place_close(rct_window *w) { window_track_place_clear_provisional(); viewport_set_visibility(0); map_invalidate_map_selection_tiles(); gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_ARROW; hide_gridlines(); _window_track_place_mini_preview.clear(); _window_track_place_mini_preview.shrink_to_fit(); track_design_dispose(_trackDesign); _trackDesign = nullptr; }