Move track design list window to UI module

This commit is contained in:
Marijn van der Werf 2017-10-21 16:37:30 +02:00
parent 61255e25a7
commit ee6c3cfc56
7 changed files with 42 additions and 31 deletions

View File

@ -205,6 +205,13 @@ public:
return window_ride_main_open(intent->GetSIntExtra(INTENT_EXTRA_RIDE_ID)); return window_ride_main_open(intent->GetSIntExtra(INTENT_EXTRA_RIDE_ID));
case WC_TRACK_DESIGN_PLACE: case WC_TRACK_DESIGN_PLACE:
return window_track_place_open((track_design_file_ref *) intent->GetPointerExtra(INTENT_EXTRA_TRACK_DESIGN)); return window_track_place_open((track_design_file_ref *) intent->GetPointerExtra(INTENT_EXTRA_TRACK_DESIGN));
case WC_TRACK_DESIGN_LIST:
{
ride_list_item rideItem;
rideItem.type = intent->GetUIntExtra(INTENT_EXTRA_RIDE_TYPE);
rideItem.entry_index = intent->GetUIntExtra(INTENT_EXTRA_RIDE_ENTRY_INDEX);
return window_track_list_open(rideItem);
}
case WC_SCENARIO_SELECT: case WC_SCENARIO_SELECT:
return window_scenarioselect_open((scenarioselect_callback) intent->GetPointerExtra(INTENT_EXTRA_CALLBACK)); return window_scenarioselect_open((scenarioselect_callback) intent->GetPointerExtra(INTENT_EXTRA_CALLBACK));
case WD_VEHICLE: case WD_VEHICLE:

View File

@ -34,6 +34,7 @@
#include <openrct2/ride/TrackData.h> #include <openrct2/ride/TrackData.h>
#include <openrct2/sprites.h> #include <openrct2/sprites.h>
#include <openrct2/util/util.h> #include <openrct2/util/util.h>
#include <openrct2/windows/Intent.h>
static uint8 _windowNewRideCurrentTab; static uint8 _windowNewRideCurrentTab;
static ride_list_item _windowNewRideHighlightedItem[6]; static ride_list_item _windowNewRideHighlightedItem[6];
@ -1013,7 +1014,10 @@ static void window_new_ride_select(rct_window *w)
if (allowTrackDesigns && ride_type_has_flag(item.type, RIDE_TYPE_FLAG_HAS_TRACK)) { if (allowTrackDesigns && ride_type_has_flag(item.type, RIDE_TYPE_FLAG_HAS_TRACK)) {
if (_lastTrackDesignCount > 0) { if (_lastTrackDesignCount > 0) {
window_track_list_open(item); auto intent = Intent(WC_TRACK_DESIGN_LIST);
intent.putExtra(INTENT_EXTRA_RIDE_TYPE, item.type);
intent.putExtra(INTENT_EXTRA_RIDE_ENTRY_INDEX, item.entry_index);
context_open_intent(&intent);
return; return;
} }
} }

View File

@ -229,7 +229,11 @@ static void window_track_place_mouseup(rct_window *w, rct_widgetindex widgetInde
break; break;
case WIDX_SELECT_DIFFERENT_DESIGN: case WIDX_SELECT_DIFFERENT_DESIGN:
window_close(w); window_close(w);
window_track_list_open(_window_track_list_item);
auto intent = Intent(WC_TRACK_DESIGN_LIST);
intent.putExtra(INTENT_EXTRA_RIDE_TYPE, _window_track_list_item.type);
intent.putExtra(INTENT_EXTRA_RIDE_ENTRY_INDEX, _window_track_list_item.entry_index);
context_open_intent(&intent);
break; break;
} }
} }

View File

@ -14,20 +14,21 @@
*****************************************************************************/ *****************************************************************************/
#pragma endregion #pragma endregion
#include "../Context.h" #include <openrct2-ui/windows/Window.h>
#include "../drawing/IDrawingEngine.h"
#include "../ride/TrackDesignRepository.h"
#include "../OpenRCT2.h"
#include "../core/Math.hpp"
#include "../core/Memory.hpp"
#include "../audio/audio.h" #include <openrct2/audio/audio.h>
#include "../Editor.h" #include <openrct2/Context.h>
#include "../interface/widget.h" #include <openrct2/core/Math.hpp>
#include "../localisation/localisation.h" #include <openrct2/core/Memory.hpp>
#include "../rct1.h" #include <openrct2/drawing/IDrawingEngine.h>
#include "../sprites.h" #include <openrct2/Editor.h>
#include "../windows/Intent.h" #include <openrct2/interface/widget.h>
#include <openrct2/localisation/localisation.h>
#include <openrct2/OpenRCT2.h>
#include <openrct2/rct1.h>
#include <openrct2/ride/TrackDesignRepository.h>
#include <openrct2/sprites.h>
#include <openrct2/windows/Intent.h>
enum { enum {
WIDX_BACKGROUND, WIDX_BACKGROUND,
@ -113,7 +114,7 @@ static bool track_list_load_design_for_preview(utf8 *path);
* *
* rct2: 0x006CF1A2 * rct2: 0x006CF1A2
*/ */
static void _window_track_list_open(ride_list_item item) rct_window * window_track_list_open(ride_list_item item)
{ {
window_close_construction_windows(); window_close_construction_windows();
_window_track_list_item = item; _window_track_list_item = item;
@ -155,6 +156,8 @@ static void _window_track_list_open(ride_list_item item)
_loadedTrackDesign = nullptr; _loadedTrackDesign = nullptr;
_loadedTrackDesignIndex = TRACK_DESIGN_INDEX_UNLOADED; _loadedTrackDesignIndex = TRACK_DESIGN_INDEX_UNLOADED;
return w;
} }
/** /**
@ -644,11 +647,3 @@ static bool track_list_load_design_for_preview(utf8 *path)
} }
return false; return false;
} }
extern "C"
{
void window_track_list_open(ride_list_item item)
{
_window_track_list_open(item);
}
}

View File

@ -112,3 +112,7 @@ rct_window * window_ride_main_open(sint32 rideIndex);
rct_window * window_ride_open_track(rct_tile_element * tileElement); rct_window * window_ride_open_track(rct_tile_element * tileElement);
rct_window * window_ride_open_vehicle(rct_vehicle * vehicle); rct_window * window_ride_open_vehicle(rct_vehicle * vehicle);
void window_ride_measurements_design_cancel(); void window_ride_measurements_design_cancel();
// rct2: 0x00F635EE
extern ride_list_item _window_track_list_item;
rct_window * window_track_list_open(ride_list_item item);

View File

@ -630,9 +630,6 @@ extern rct_window * gWindowFirst;
extern rct_window * gWindowNextSlot; extern rct_window * gWindowNextSlot;
extern rct_window * gWindowAudioExclusive; extern rct_window * gWindowAudioExclusive;
// rct2: 0x00F635EE
extern ride_list_item _window_track_list_item;
extern uint16 gWindowUpdateTicks; extern uint16 gWindowUpdateTicks;
extern uint8 gToolbarDirtyFlags; extern uint8 gToolbarDirtyFlags;
extern uint16 gWindowMapFlashingFlags; extern uint16 gWindowMapFlashingFlags;
@ -719,7 +716,6 @@ void window_resize_gui_scenario_editor(sint32 width, sint32 height);
void window_top_toolbar_open(); void window_top_toolbar_open();
void window_game_bottom_toolbar_open(); void window_game_bottom_toolbar_open();
void window_game_bottom_toolbar_invalidate_news_item(); void window_game_bottom_toolbar_invalidate_news_item();
void window_track_list_open(ride_list_item item);
void window_ride_construct(rct_window *w); void window_ride_construct(rct_window *w);
rct_window *window_ride_construction_open(); rct_window *window_ride_construction_open();
rct_window *window_maze_construction_open(); rct_window *window_maze_construction_open();

View File

@ -1659,9 +1659,10 @@ static void window_editor_object_selection_manage_tracks()
rct_ride_entry* ride_entry = get_ride_entry(entry_index); rct_ride_entry* ride_entry = get_ride_entry(entry_index);
uint8 ride_type = ride_entry_get_first_non_null_ride_type(ride_entry); uint8 ride_type = ride_entry_get_first_non_null_ride_type(ride_entry);
ride_list_item item = { ride_type, (uint8) entry_index }; auto intent = Intent(WC_TRACK_DESIGN_LIST);
// track_load_list(item); intent.putExtra(INTENT_EXTRA_RIDE_TYPE, ride_type);
window_track_list_open(item); intent.putExtra(INTENT_EXTRA_RIDE_ENTRY_INDEX, entry_index);
context_open_intent(&intent);
} }
/** /**