/** * * rct2: 0x006CFA31 */ static void window_track_list_mouseup(rct_window *w, int widgetIndex) { switch (widgetIndex) { case WIDX_CLOSE: window_close(w); if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_TRACK_MANAGER) { window_close_by_number(WC_MANAGE_TRACK_DESIGN, w->number); window_close_by_number(WC_TRACK_DELETE_PROMPT, w->number); trackmanager_load(); } break; case WIDX_ROTATE: RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_ROTATION, uint8)++; RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_ROTATION, uint8) %= 4; window_invalidate(w); break; case WIDX_TOGGLE_SCENERY: RCT2_GLOBAL(RCT2_ADDRESS_TRACK_DESIGN_SCENERY_TOGGLE, uint8) ^= 1; reset_track_list_cache(); window_invalidate(w); break; case WIDX_BACK: window_close(w); if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_TRACK_MANAGER) { window_close_by_number(WC_MANAGE_TRACK_DESIGN, w->number); window_close_by_number(WC_TRACK_DELETE_PROMPT, w->number); trackmanager_load(); } else { window_new_ride_open(); } break; } }
/** * * 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: 0x0066FA38 */ void window_editor_top_toolbar_dropdown() { short widgetIndex, dropdownIndex; rct_window* w; window_dropdown_get_registers(w, widgetIndex, dropdownIndex); if (widgetIndex == WIDX_FILE_MENU) { if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & (SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER)) { if (dropdownIndex == DDIDX_TD_ABOUT) { window_about_open(); } else if (dropdownIndex == DDIDX_TD_OPTIONS) { window_options_open(); } else if (dropdownIndex == DDIDX_TD_SCREENSHOT) { RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, sint8) = 10; } else if (dropdownIndex == DDIDX_TD_QUIT_GAME) { window_close_by_number(WC_47, w->number); window_close_by_number(WC_48, w->number); game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 1, 0); } } else { if (dropdownIndex == DDIDX_SE_LOAD_LANDSCAPE) { game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 0, 0); } else if (dropdownIndex == DDIDX_SE_SAVE_LANDSCAPE) { RCT2_CALLPROC(0x0066FE2A); } else if (dropdownIndex == DDIDX_SE_ABOUT) { window_about_open(); } else if (dropdownIndex == DDIDX_SE_OPTIONS) { window_options_open(); } else if (dropdownIndex == DDIDX_SE_SCREENSHOT) { RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, sint8) = 10; } else if (dropdownIndex == DDIDX_SE_QUIT_GAME) { window_close_by_number(WC_47, w->number); window_close_by_number(WC_48, w->number); game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 1, 0); } } } else if (widgetIndex == WIDX_VIEW_MENU) { top_toolbar_view_menu_dropdown(dropdownIndex); } }