2017-08-06 05:22:00 +02:00
|
|
|
/*****************************************************************************
|
2022-10-01 09:42:14 +02:00
|
|
|
* Copyright (c) 2014-2022 OpenRCT2 developers
|
2017-08-06 05:22:00 +02:00
|
|
|
*
|
2018-06-15 14:07:34 +02:00
|
|
|
* For a complete list of all authors, please refer to contributors.md
|
|
|
|
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
2017-08-06 05:22:00 +02:00
|
|
|
*
|
2018-06-15 14:07:34 +02:00
|
|
|
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
2017-08-06 05:22:00 +02:00
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2018-01-03 00:13:37 +01:00
|
|
|
#include <openrct2-ui/interface/Window.h>
|
2022-03-11 21:26:29 +01:00
|
|
|
#include <openrct2/Identifiers.h>
|
2018-06-22 23:21:44 +02:00
|
|
|
#include <openrct2/common.h>
|
2018-03-19 23:28:40 +01:00
|
|
|
#include <openrct2/ride/Ride.h>
|
2018-06-22 23:21:44 +02:00
|
|
|
#include <openrct2/windows/tile_inspector.h>
|
2020-03-03 22:11:26 +01:00
|
|
|
#include <string_view>
|
2017-08-06 05:22:00 +02:00
|
|
|
|
2018-06-22 23:21:44 +02:00
|
|
|
using loadsave_callback = void (*)(int32_t result, const utf8* path);
|
|
|
|
using scenarioselect_callback = void (*)(const utf8* path);
|
2019-02-28 20:28:58 +01:00
|
|
|
struct Peep;
|
2018-11-01 13:53:50 +01:00
|
|
|
struct TileElement;
|
2020-01-19 16:53:17 +01:00
|
|
|
struct Vehicle;
|
2020-09-02 17:50:16 +02:00
|
|
|
enum class GuestListFilterType : int32_t;
|
2020-02-19 14:05:36 +01:00
|
|
|
enum class ScatterToolDensity : uint8_t;
|
2017-09-12 00:04:03 +02:00
|
|
|
|
2020-02-20 15:00:13 +01:00
|
|
|
extern bool gWindowSceneryScatterEnabled;
|
2019-12-12 16:42:19 +01:00
|
|
|
extern uint16_t gWindowSceneryScatterSize;
|
2020-02-19 14:05:36 +01:00
|
|
|
extern ScatterToolDensity gWindowSceneryScatterDensity;
|
2020-02-13 21:24:37 +01:00
|
|
|
extern uint8_t gWindowSceneryPaintEnabled;
|
|
|
|
extern uint8_t gWindowSceneryRotation;
|
|
|
|
extern colour_t gWindowSceneryPrimaryColour;
|
|
|
|
extern colour_t gWindowScenerySecondaryColour;
|
|
|
|
extern colour_t gWindowSceneryTertiaryColour;
|
|
|
|
extern bool gWindowSceneryEyedropperEnabled;
|
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowAboutOpen();
|
2020-04-18 16:15:04 +02:00
|
|
|
void WindowCampaignRefreshRides();
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowChangelogOpen(int personality);
|
|
|
|
rct_window* WindowCheatsOpen();
|
|
|
|
rct_window* WindowClearSceneryOpen();
|
|
|
|
rct_window* CustomCurrencyWindowOpen();
|
|
|
|
rct_window* WindowDebugPaintOpen();
|
|
|
|
rct_window* WindowEditorInventionsListOpen();
|
|
|
|
rct_window* WindowEditorMainOpen();
|
|
|
|
rct_window* WindowEditorObjectiveOptionsOpen();
|
|
|
|
rct_window* WindowEditorScenarioOptionsOpen();
|
|
|
|
rct_window* WindowFootpathOpen();
|
2021-09-08 22:21:49 +02:00
|
|
|
void WindowFootpathResetSelectedPath();
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowGuestOpen(Peep* peep);
|
|
|
|
rct_window* WindowLandOpen();
|
|
|
|
rct_window* WindowLandRightsOpen();
|
|
|
|
rct_window* WindowMainOpen();
|
|
|
|
rct_window* WindowMapgenOpen();
|
|
|
|
rct_window* WindowMultiplayerOpen();
|
|
|
|
rct_window* WindowNewsOpen();
|
|
|
|
rct_window* WindowNewsOptionsOpen();
|
|
|
|
rct_window* WindowOptionsOpen();
|
|
|
|
rct_window* WindowSavePromptOpen();
|
2019-05-06 13:19:35 +02:00
|
|
|
#ifndef DISABLE_NETWORK
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowServerListOpen();
|
|
|
|
rct_window* WindowServerStartOpen();
|
2019-05-06 13:19:35 +02:00
|
|
|
#endif
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowShortcutKeysOpen();
|
|
|
|
rct_window* WindowStaffListOpen();
|
|
|
|
rct_window* WindowStaffOpen(Peep* peep);
|
2020-03-28 13:12:53 +01:00
|
|
|
void WindowStaffListRefresh();
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowThemesOpen();
|
|
|
|
rct_window* WindowTitleExitOpen();
|
|
|
|
rct_window* WindowTitleLogoOpen();
|
|
|
|
rct_window* WindowTitleMenuOpen();
|
|
|
|
rct_window* WindowTitleOptionsOpen();
|
|
|
|
rct_window* WindowViewportOpen();
|
|
|
|
rct_window* WindowWaterOpen();
|
|
|
|
rct_window* WindowViewClippingOpen();
|
2021-08-07 20:21:05 +02:00
|
|
|
rct_window* WindowTransparencyOpen();
|
2022-09-18 17:15:42 +02:00
|
|
|
rct_window* WindowAssetPacksOpen();
|
2017-09-05 20:55:18 +02:00
|
|
|
|
|
|
|
// WC_FINANCES
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowFinancesOpen();
|
|
|
|
rct_window* WindowFinancesResearchOpen();
|
2017-09-05 20:55:18 +02:00
|
|
|
|
|
|
|
// WC_PARK_INFORMATION
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowParkAwardsOpen();
|
|
|
|
rct_window* WindowParkEntranceOpen();
|
|
|
|
rct_window* WindowParkGuestsOpen();
|
|
|
|
rct_window* WindowParkObjectiveOpen();
|
|
|
|
rct_window* WindowParkRatingOpen();
|
|
|
|
|
|
|
|
rct_window* WindowBannerOpen(rct_windownumber number);
|
|
|
|
rct_window* WindowRideDemolishPromptOpen(Ride* ride);
|
|
|
|
rct_window* WindowRideRefurbishPromptOpen(Ride* ride);
|
|
|
|
rct_window* WindowSignOpen(rct_windownumber number);
|
|
|
|
rct_window* WindowSignSmallOpen(rct_windownumber number);
|
|
|
|
rct_window* WindowPlayerOpen(uint8_t id);
|
|
|
|
rct_window* WindowNewCampaignOpen(int16_t campaignType);
|
|
|
|
|
|
|
|
rct_window* WindowInstallTrackOpen(const utf8* path);
|
|
|
|
void WindowGuestListRefreshList();
|
|
|
|
rct_window* WindowGuestListOpen();
|
|
|
|
rct_window* WindowGuestListOpenWithFilter(GuestListFilterType type, int32_t index);
|
|
|
|
rct_window* WindowStaffFirePromptOpen(Peep* peep);
|
|
|
|
rct_window* WindowScenarioselectOpen(scenarioselect_callback callback, bool titleEditor);
|
|
|
|
rct_window* WindowScenarioselectOpen(std::function<void(std::string_view)> callback, bool titleEditor, bool disableLocking);
|
|
|
|
|
2022-07-31 14:22:58 +02:00
|
|
|
rct_window* WindowErrorOpen(StringId title, StringId message, const class Formatter& formatter);
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowErrorOpen(std::string_view title, std::string_view message);
|
2019-06-30 12:23:06 +02:00
|
|
|
struct TrackDesign;
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowLoadsaveOpen(
|
2021-01-25 23:53:12 +01:00
|
|
|
int32_t type, std::string_view defaultPath, std::function<void(int32_t result, std::string_view)> callback,
|
|
|
|
TrackDesign* trackDesign);
|
2022-07-26 18:12:46 +02:00
|
|
|
rct_window* WindowTrackPlaceOpen(const struct TrackDesignFileRef* tdFileRef);
|
|
|
|
rct_window* WindowTrackManageOpen(struct TrackDesignFileRef* tdFileRef);
|
2017-10-06 23:03:48 +02:00
|
|
|
|
2019-12-11 17:13:40 +01:00
|
|
|
void TrackPlaceClearProvisionalTemporarily();
|
|
|
|
void TrackPlaceRestoreProvisional();
|
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowMapOpen();
|
|
|
|
void WindowMapReset();
|
2017-10-07 01:28:00 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowResearchOpen();
|
2022-08-21 18:49:23 +02:00
|
|
|
void WindowResearchDevelopmentPagePaint(rct_window* w, rct_drawpixelinfo* dpi, WidgetIndex baseWidgetIndex);
|
|
|
|
void WindowResearchFundingPagePaint(rct_window* w, rct_drawpixelinfo* dpi, WidgetIndex baseWidgetIndex);
|
2017-10-07 01:28:00 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowNewRideOpen();
|
|
|
|
rct_window* WindowNewRideOpenResearch();
|
|
|
|
void WindowNewRideInitVars();
|
|
|
|
void WindowNewRideFocus(RideSelection rideItem);
|
2017-10-08 22:15:41 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowRideListOpen();
|
|
|
|
void WindowRideListRefreshList(rct_window* w);
|
2017-10-21 16:03:33 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowRideMainOpen(Ride* ride);
|
|
|
|
rct_window* WindowRideOpenTrack(TileElement* tileElement);
|
|
|
|
rct_window* WindowRideOpenVehicle(Vehicle* vehicle);
|
|
|
|
void WindowRideMeasurementsDesignCancel();
|
2017-10-21 16:37:30 +02:00
|
|
|
|
|
|
|
// rct2: 0x00F635EE
|
2020-04-27 16:26:35 +02:00
|
|
|
extern RideSelection _window_track_list_item;
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowTrackListOpen(RideSelection item);
|
2017-10-21 17:57:37 +02:00
|
|
|
|
2020-09-29 02:45:28 +02:00
|
|
|
void SetMapTooltip(Formatter& ft);
|
|
|
|
const Formatter& GetMapTooltip();
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowMapTooltipUpdateVisibility();
|
2017-10-21 18:12:15 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowMazeConstructionOpen();
|
|
|
|
void WindowMazeConstructionUpdatePressedWidgets();
|
2017-10-21 19:30:03 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowNetworkStatusOpen(const char* text, close_callback onClose);
|
|
|
|
rct_window* WindowNetworkStatusOpenPassword();
|
|
|
|
void WindowNetworkStatusClose();
|
2017-10-23 00:36:59 +02:00
|
|
|
|
2022-09-25 20:33:02 +02:00
|
|
|
void WindowTextInputKey(rct_window* w, uint32_t keycode);
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowTextInputOpen(
|
2022-08-21 18:49:23 +02:00
|
|
|
rct_window* call_w, WidgetIndex call_widget, StringId title, StringId description, const Formatter& descriptionArgs,
|
2022-07-31 14:22:58 +02:00
|
|
|
StringId existing_text, uintptr_t existing_args, int32_t maxLength);
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowTextInputRawOpen(
|
2022-08-21 18:49:23 +02:00
|
|
|
rct_window* call_w, WidgetIndex call_widget, StringId title, StringId description, const Formatter& descriptionArgs,
|
2022-07-31 14:22:58 +02:00
|
|
|
const_utf8string existing_text, int32_t maxLength);
|
2018-06-22 23:21:44 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowTextInputOpen(
|
2021-01-06 17:22:22 +01:00
|
|
|
std::string_view title, std::string_view description, std::string_view initialValue, size_t maxLength,
|
|
|
|
std::function<void(std::string_view)> okCallback, std::function<void()> cancelCallback);
|
2020-05-09 15:18:50 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowObjectLoadErrorOpen(utf8* path, size_t numMissingObjects, const ObjectEntryDescriptor* missingObjects);
|
2018-06-22 23:21:44 +02:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowRideConstructionOpen();
|
|
|
|
void WindowRideConstructionUpdateActiveElementsImpl();
|
|
|
|
void WindowRideConstructionUpdateEnabledTrackPieces();
|
2017-11-06 00:31:16 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowTopToolbarOpen();
|
|
|
|
bool LandToolIsActive();
|
|
|
|
bool ClearSceneryToolIsActive();
|
|
|
|
bool WaterToolIsActive();
|
2017-11-12 02:32:11 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowSceneryOpen();
|
2022-03-04 08:17:20 +01:00
|
|
|
void WindowScenerySetSelectedItem(
|
|
|
|
const ScenerySelection& sceneryconst, std::optional<colour_t> primary, const std::optional<colour_t> secondary,
|
|
|
|
const std::optional<colour_t> tertiary, const std::optional<colour_t> rotation);
|
2022-02-03 22:10:21 +01:00
|
|
|
void WindowScenerySetSelectedTab(const ObjectEntryIndex sceneryGroupIndex);
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowScenerySetDefaultPlacementConfiguration();
|
|
|
|
void WindowSceneryInit();
|
|
|
|
void WindowSceneryResetSelectedSceneryItems();
|
2022-04-14 21:36:04 +02:00
|
|
|
const ScenerySelection WindowSceneryGetTabSelection();
|
2017-11-15 02:11:25 +01:00
|
|
|
|
2018-06-20 17:28:51 +02:00
|
|
|
extern uint8_t gToolbarDirtyFlags;
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowGameBottomToolbarOpen();
|
|
|
|
void WindowGameBottomToolbarInvalidateNewsItem();
|
2017-11-15 02:29:34 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowEditorBottomToolbarOpen();
|
2017-11-23 00:42:12 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowTileInspectorOpen();
|
|
|
|
void WindowTileInspectorClearClipboard();
|
2017-11-23 09:03:56 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowEditorObjectSelectionOpen();
|
2017-12-07 22:26:52 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowTooltipReset(const ScreenCoordsXY& screenCoords);
|
|
|
|
void WindowTooltipShow(const OpenRCT2String& message, ScreenCoordsXY screenCoords);
|
2022-08-21 18:49:23 +02:00
|
|
|
void WindowTooltipOpen(rct_window* widgetWindow, WidgetIndex widgetIndex, const ScreenCoordsXY& screenCoords);
|
2021-11-23 14:18:07 +01:00
|
|
|
void WindowTooltipClose();
|
2019-12-12 16:42:19 +01:00
|
|
|
|
2021-11-23 14:18:07 +01:00
|
|
|
rct_window* WindowSceneryScatterOpen();
|
2022-03-11 21:26:29 +01:00
|
|
|
rct_window* WindowPatrolAreaOpen(EntityId staffId);
|
|
|
|
EntityId WindowPatrolAreaGetCurrentStaffId();
|
2019-10-19 04:02:31 +02:00
|
|
|
|
2020-05-05 22:11:10 +02:00
|
|
|
// clang-format off
|
2020-05-09 16:44:21 +02:00
|
|
|
#define WINDOW_SHIM_RAW(TITLE, WIDTH, HEIGHT, CLOSE_STR) \
|
2020-11-27 04:14:20 +01:00
|
|
|
{ WindowWidgetType::Frame, 0, 0, WIDTH - 1, 0, HEIGHT - 1, 0xFFFFFFFF, STR_NONE }, \
|
|
|
|
{ WindowWidgetType::Caption, 0, 1, WIDTH - 2, 1, 14, TITLE, STR_WINDOW_TITLE_TIP }, \
|
|
|
|
{ WindowWidgetType::CloseBox, 0, WIDTH - 13, WIDTH - 3, 2, 13, CLOSE_STR, STR_CLOSE_WINDOW_TIP }
|
2020-05-09 16:44:21 +02:00
|
|
|
|
|
|
|
#define WINDOW_SHIM(TITLE, WIDTH, HEIGHT) WINDOW_SHIM_RAW(TITLE, WIDTH, HEIGHT, STR_CLOSE_X)
|
|
|
|
#define WINDOW_SHIM_WHITE(TITLE, WIDTH, HEIGHT) WINDOW_SHIM_RAW(TITLE, WIDTH, HEIGHT, STR_CLOSE_X_WHITE)
|
|
|
|
|
2020-05-05 22:11:10 +02:00
|
|
|
// clang-format on
|