Improve array formatting

For most of these cases, adding a trailing comma to the array block makes clang-format put each item on a new line, and clang-format exception blocks could be reduced where clang-format does not handle them properly.
This commit is contained in:
Hielke Morsink 2021-10-17 15:31:56 +02:00
parent fe46a2cf09
commit 9dd20ec619
No known key found for this signature in database
GPG Key ID: FE0B343DF883E7F2
95 changed files with 4968 additions and 3709 deletions

View File

@ -172,7 +172,11 @@ public:
void SetFullscreenMode(FULLSCREEN_MODE mode) override
{
static constexpr const int32_t SDLFSFlags[] = { 0, SDL_WINDOW_FULLSCREEN, SDL_WINDOW_FULLSCREEN_DESKTOP };
static constexpr const int32_t SDLFSFlags[] = {
0,
SDL_WINDOW_FULLSCREEN,
SDL_WINDOW_FULLSCREEN_DESKTOP,
};
uint32_t windowFlags = SDLFSFlags[static_cast<int32_t>(mode)];
// HACK Changing window size when in fullscreen usually has no effect

View File

@ -213,23 +213,20 @@ static constexpr const UIThemeWindowEntry PredefinedThemeRCT1_Entries[] =
{ WC_MAP, COLOURS_RCT1(COLOUR_DARK_BROWN, COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK, COLOUR_BLACK, COLOUR_BLACK) },
{ WC_ABOUT, COLOURS_RCT1(COLOUR_GREY, COLOUR_DARK_BROWN, COLOUR_WHITE, COLOUR_BLACK, COLOUR_BLACK, COLOUR_BLACK) },
{ WC_CHANGELOG, COLOURS_RCT1(COLOUR_DARK_BROWN, COLOUR_DARK_BROWN, COLOUR_WHITE, COLOUR_BLACK, COLOUR_BLACK, COLOUR_BLACK) },
THEME_DEF_END
THEME_DEF_END,
};
// clang-format on
static constexpr const UIThemeWindowEntry PredefinedThemeRCT2_Entries[] =
{
THEME_DEF_END
static constexpr const UIThemeWindowEntry PredefinedThemeRCT2_Entries[] = {
THEME_DEF_END,
};
const UITheme PredefinedThemeRCT1 = UITheme::CreatePredefined(
"*RCT1", PredefinedThemeRCT1_Entries, UITHEME_FLAG_USE_LIGHTS_RIDE |
UITHEME_FLAG_USE_LIGHTS_PARK |
UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT |
UITHEME_FLAG_USE_FULL_BOTTOM_TOOLBAR);
"*RCT1", PredefinedThemeRCT1_Entries,
UITHEME_FLAG_USE_LIGHTS_RIDE | UITHEME_FLAG_USE_LIGHTS_PARK | UITHEME_FLAG_USE_ALTERNATIVE_SCENARIO_SELECT_FONT
| UITHEME_FLAG_USE_FULL_BOTTOM_TOOLBAR);
const UITheme PredefinedThemeRCT2 = UITheme::CreatePredefined(
"*RCT2", PredefinedThemeRCT2_Entries, 0);
const UITheme PredefinedThemeRCT2 = UITheme::CreatePredefined("*RCT2", PredefinedThemeRCT2_Entries, 0);
struct PredefinedTheme
{
@ -239,9 +236,8 @@ struct PredefinedTheme
static constexpr const PredefinedTheme PredefinedThemes[] = {
{ &PredefinedThemeRCT1, STR_TITLE_SEQUENCE_RCT1 },
{ &PredefinedThemeRCT2, STR_TITLE_SEQUENCE_RCT2 }
{ &PredefinedThemeRCT2, STR_TITLE_SEQUENCE_RCT2 },
};
// clang-format on
#pragma endregion

View File

@ -113,10 +113,10 @@ static ScreenCoordsXY GetAutoPositionForNewWindow(int32_t width, int32_t height)
// Place window in an empty corner of the screen
const ScreenCoordsXY cornerPositions[] = {
{ 0, 30 }, // topLeft
{ screenWidth - width, 30 }, // topRight
{ 0, screenHeight - 34 - height }, // bottomLeft
{ screenWidth - width, screenHeight - 34 - height } // bottomRight
{ 0, 30 }, // topLeft
{ screenWidth - width, 30 }, // topRight
{ 0, screenHeight - 34 - height }, // bottomLeft
{ screenWidth - width, screenHeight - 34 - height }, // bottomRight
};
for (const auto& cornerPos : cornerPositions)
@ -133,14 +133,16 @@ static ScreenCoordsXY GetAutoPositionForNewWindow(int32_t width, int32_t height)
if (w->flags & WF_STICK_TO_BACK)
continue;
const ScreenCoordsXY offsets[] = { { w->width + 2, 0 },
{ -w->width - 2, 0 },
{ 0, w->height + 2 },
{ 0, -w->height - 2 },
{ w->width + 2, -w->height - 2 },
{ -w->width - 2, -w->height - 2 },
{ w->width + 2, w->height + 2 },
{ -w->width - 2, w->height + 2 } };
const ScreenCoordsXY offsets[] = {
{ w->width + 2, 0 },
{ -w->width - 2, 0 },
{ 0, w->height + 2 },
{ 0, -w->height - 2 },
{ w->width + 2, -w->height - 2 },
{ -w->width - 2, -w->height - 2 },
{ w->width + 2, w->height + 2 },
{ -w->width - 2, w->height + 2 },
};
for (const auto& offset : offsets)
{
@ -158,14 +160,12 @@ static ScreenCoordsXY GetAutoPositionForNewWindow(int32_t width, int32_t height)
if (w->flags & WF_STICK_TO_BACK)
continue;
// clang-format off
const ScreenCoordsXY offsets[] = {
{ w->width + 2, 0 },
{ -w->width - 2, 0 },
{ 0, w->height + 2 },
{ 0, -w->height - 2 }
{ 0, -w->height - 2 },
};
// clang-format on
for (const auto& offset : offsets)
{

View File

@ -413,7 +413,7 @@ static uint64_t window_cheats_page_enabled_widgets[] = {
(1ULL << WIDX_DISABLE_RIDE_VALUE_AGING) |
(1ULL << WIDX_IGNORE_RESEARCH_STATUS) |
(1ULL << WIDX_ENABLE_ALL_DRAWABLE_TRACK_PIECES) |
(1ULL << WIDX_ALLOW_TRACK_PLACE_INVALID_HEIGHTS)
(1ULL << WIDX_ALLOW_TRACK_PLACE_INVALID_HEIGHTS),
};
static uint64_t window_cheats_page_hold_down_widgets[] = {
@ -432,7 +432,7 @@ static uint64_t window_cheats_page_hold_down_widgets[] = {
(1ULL << WIDX_INCREASE_PARK_RATING) |
(1ULL << WIDX_DECREASE_PARK_RATING),
0
0,
};
static rct_string_id window_cheats_page_titles[] = {

View File

@ -73,7 +73,7 @@ static EMPTY_ARGS_VOID_POINTER *previous_button_mouseup_events[] = {
window_editor_bottom_toolbar_jump_back_to_options_selection,
nullptr,
window_editor_bottom_toolbar_jump_back_to_object_selection,
nullptr
nullptr,
};
static EMPTY_ARGS_VOID_POINTER *next_button_mouseup_events[] = {
@ -84,7 +84,7 @@ static EMPTY_ARGS_VOID_POINTER *next_button_mouseup_events[] = {
window_editor_bottom_toolbar_jump_forward_to_save_scenario,
nullptr,
nullptr,
nullptr
nullptr,
};
static constexpr const rct_string_id EditorStepNames[] = {

View File

@ -213,8 +213,12 @@ static rct_window_event_list window_editor_object_selection_events([](auto& even
#pragma endregion
static constexpr const int32_t window_editor_object_selection_animation_loops[] = { 20, 32, 10, 72, 24, 28, 16 };
static constexpr const int32_t window_editor_object_selection_animation_divisor[] = { 4, 8, 2, 4, 4, 4, 2 };
static constexpr const int32_t window_editor_object_selection_animation_loops[] = {
20, 32, 10, 72, 24, 28, 16,
};
static constexpr const int32_t window_editor_object_selection_animation_divisor[] = {
4, 8, 2, 4, 4, 4, 2,
};
static void window_editor_object_set_page(rct_window* w, int32_t page);
static void window_editor_object_selection_set_pressed_tab(rct_window* w);
@ -1089,11 +1093,15 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
}
}
const int32_t ride_tabs[] = { SPR_TAB_RIDE_16, IMAGE_TYPE_REMAP | SPR_TAB_RIDES_TRANSPORT_0,
SPR_TAB_RIDES_GENTLE_0, IMAGE_TYPE_REMAP | SPR_TAB_RIDES_ROLLER_COASTERS_0,
SPR_TAB_RIDES_THRILL_0, SPR_TAB_RIDES_WATER_0,
SPR_TAB_RIDES_SHOP_0, SPR_TAB_FINANCES_RESEARCH_0 };
const int32_t ThrillRidesTabAnimationSequence[] = { 5, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0 };
const int32_t ride_tabs[] = {
SPR_TAB_RIDE_16, IMAGE_TYPE_REMAP | SPR_TAB_RIDES_TRANSPORT_0,
SPR_TAB_RIDES_GENTLE_0, IMAGE_TYPE_REMAP | SPR_TAB_RIDES_ROLLER_COASTERS_0,
SPR_TAB_RIDES_THRILL_0, SPR_TAB_RIDES_WATER_0,
SPR_TAB_RIDES_SHOP_0, SPR_TAB_FINANCES_RESEARCH_0,
};
const int32_t ThrillRidesTabAnimationSequence[] = {
5, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0,
};
// Draw ride tabs
if (get_selected_object_type(w) == ObjectType::Ride)

View File

@ -113,7 +113,7 @@ static rct_widget window_editor_objective_options_rides_widgets[] = {
static rct_widget *window_editor_objective_options_widgets[] = {
window_editor_objective_options_main_widgets,
window_editor_objective_options_rides_widgets
window_editor_objective_options_rides_widgets,
};
#pragma endregion
@ -168,7 +168,7 @@ static rct_window_event_list window_objective_options_rides_events([](auto& even
static rct_window_event_list *window_editor_objective_options_page_events[] = {
&window_objective_options_main_events,
&window_objective_options_rides_events
&window_objective_options_rides_events,
};
#pragma endregion
@ -193,7 +193,7 @@ static uint64_t window_editor_objective_options_page_enabled_widgets[] = {
(1ULL << WIDX_CLOSE) |
(1ULL << WIDX_TAB_1) |
(1ULL << WIDX_TAB_2)
(1ULL << WIDX_TAB_2),
};
static uint64_t window_editor_objective_options_page_hold_down_widgets[] = {
@ -202,7 +202,7 @@ static uint64_t window_editor_objective_options_page_hold_down_widgets[] = {
(1ULL << WIDX_OBJECTIVE_ARG_2_INCREASE) |
(1ULL << WIDX_OBJECTIVE_ARG_2_DECREASE),
0
0,
};
// clang-format on

View File

@ -171,7 +171,7 @@ static rct_widget window_editor_scenario_options_park_widgets[] = {
static rct_widget *window_editor_scenario_options_widgets[] = {
window_editor_scenario_options_financial_widgets,
window_editor_scenario_options_guests_widgets,
window_editor_scenario_options_park_widgets
window_editor_scenario_options_park_widgets,
};
#pragma endregion
@ -237,7 +237,7 @@ static rct_window_event_list window_scenario_options_park_events([](auto& events
static rct_window_event_list *window_editor_scenario_options_page_events[] = {
&window_scenario_options_financial_events,
&window_scenario_options_guests_events,
&window_scenario_options_park_events
&window_scenario_options_park_events,
};
#pragma endregion
@ -288,7 +288,7 @@ static uint64_t window_editor_scenario_options_page_enabled_widgets[] = {
(1ULL << WIDX_FORBID_LANDSCAPE_CHANGES) |
(1ULL << WIDX_FORBID_HIGH_CONSTRUCTION) |
(1ULL << WIDX_HARD_PARK_RATING) |
(1ULL << WIDX_HARD_GUEST_GENERATION)
(1ULL << WIDX_HARD_GUEST_GENERATION),
};
static uint32_t window_editor_scenario_options_page_hold_down_widgets[] = {
@ -313,7 +313,7 @@ static uint32_t window_editor_scenario_options_page_hold_down_widgets[] = {
(1ULL << WIDX_CONSTRUCTION_RIGHTS_COST_INCREASE) |
(1ULL << WIDX_CONSTRUCTION_RIGHTS_COST_DECREASE) |
(1ULL << WIDX_ENTRY_PRICE_INCREASE) |
(1ULL << WIDX_ENTRY_PRICE_DECREASE)
(1ULL << WIDX_ENTRY_PRICE_DECREASE),
};
// clang-format on

View File

@ -36,8 +36,8 @@ static constexpr const rct_string_id WINDOW_TITLE = STR_STRINGID;
static constexpr const int32_t WH = 157;
static constexpr const int32_t WW = 192;
// clang-format off
enum WINDOW_GUEST_PAGE {
enum WINDOW_GUEST_PAGE
{
WINDOW_GUEST_OVERVIEW,
WINDOW_GUEST_STATS,
WINDOW_GUEST_RIDES,
@ -47,7 +47,8 @@ enum WINDOW_GUEST_PAGE {
WINDOW_GUEST_DEBUG
};
enum WINDOW_GUEST_WIDGET_IDX {
enum WINDOW_GUEST_WIDGET_IDX
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -75,17 +76,18 @@ validate_global_widx(WC_PEEP, WIDX_PICKUP);
static constexpr int32_t TabWidth = 30;
#define MAIN_GUEST_WIDGETS \
WINDOW_SHIM(WINDOW_TITLE, WW, WH), \
MakeWidget({ 0, 43}, {192, 114}, WindowWidgetType::Resize, WindowColour::Secondary), /* Resize */ \
MakeTab ({ 3, 17}, STR_SHOW_GUEST_VIEW_TIP ), /* Tab 1 */ \
MakeTab ({ 34, 17}, STR_SHOW_GUEST_NEEDS_TIP ), /* Tab 2 */ \
MakeTab ({ 65, 17}, STR_SHOW_GUEST_VISITED_RIDES_TIP ), /* Tab 3 */ \
MakeTab ({ 96, 17}, STR_SHOW_GUEST_FINANCE_TIP ), /* Tab 4 */ \
MakeTab ({127, 17}, STR_SHOW_GUEST_THOUGHTS_TIP ), /* Tab 5 */ \
MakeTab ({158, 17}, STR_SHOW_GUEST_ITEMS_TIP ), /* Tab 6 */ \
MakeTab ({189, 17}, STR_DEBUG_TIP ) /* Tab 7 */
#define MAIN_GUEST_WIDGETS \
WINDOW_SHIM(WINDOW_TITLE, WW, WH), \
MakeWidget({ 0, 43 }, { 192, 114 }, WindowWidgetType::Resize, WindowColour::Secondary), /* Resize */ \
MakeTab({ 3, 17 }, STR_SHOW_GUEST_VIEW_TIP), /* Tab 1 */ \
MakeTab({ 34, 17 }, STR_SHOW_GUEST_NEEDS_TIP), /* Tab 2 */ \
MakeTab({ 65, 17 }, STR_SHOW_GUEST_VISITED_RIDES_TIP), /* Tab 3 */ \
MakeTab({ 96, 17 }, STR_SHOW_GUEST_FINANCE_TIP), /* Tab 4 */ \
MakeTab({ 127, 17 }, STR_SHOW_GUEST_THOUGHTS_TIP), /* Tab 5 */ \
MakeTab({ 158, 17 }, STR_SHOW_GUEST_ITEMS_TIP), /* Tab 6 */ \
MakeTab({ 189, 17 }, STR_DEBUG_TIP) /* Tab 7 */
// clang-format off
static rct_widget window_guest_overview_widgets[] = {
MAIN_GUEST_WIDGETS,
MakeWidget({ 3, 45}, {164, 12}, WindowWidgetType::LabelCentred, WindowColour::Secondary ), // Label Thought marquee
@ -97,6 +99,7 @@ static rct_widget window_guest_overview_widgets[] = {
MakeWidget({167, 117}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_TRACK_PEEP, STR_TOGGLE_GUEST_TRACKING_TIP), // Track Button
WIDGETS_END,
};
// clang-format on
static rct_widget window_guest_stats_widgets[] = {
MAIN_GUEST_WIDGETS,
@ -105,7 +108,7 @@ static rct_widget window_guest_stats_widgets[] = {
static rct_widget window_guest_rides_widgets[] = {
MAIN_GUEST_WIDGETS,
MakeWidget({3, 57}, {186, 87}, WindowWidgetType::Scroll, WindowColour::Secondary, SCROLL_VERTICAL),
MakeWidget({ 3, 57 }, { 186, 87 }, WindowWidgetType::Scroll, WindowColour::Secondary, SCROLL_VERTICAL),
WIDGETS_END,
};
@ -130,15 +133,17 @@ static rct_widget window_guest_debug_widgets[] = {
};
// 0x981D0C
static rct_widget *window_guest_page_widgets[] = {
// clang-format off
static rct_widget* window_guest_page_widgets[] = {
window_guest_overview_widgets,
window_guest_stats_widgets,
window_guest_rides_widgets,
window_guest_finance_widgets,
window_guest_thoughts_widgets,
window_guest_inventory_widgets,
window_guest_debug_widgets
window_guest_debug_widgets,
};
// clang-format on
static void window_guest_set_page(rct_window* w, int32_t page);
static void window_guest_disable_widgets(rct_window* w);
@ -146,49 +151,48 @@ static void window_guest_viewport_init(rct_window* w);
static void window_guest_common_resize(rct_window* w);
static void window_guest_common_invalidate(rct_window* w);
static void window_guest_overview_close(rct_window *w);
static void window_guest_overview_resize(rct_window *w);
static void window_guest_overview_mouse_up(rct_window *w, rct_widgetindex widgetIndex);
static void window_guest_overview_mouse_down(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_guest_overview_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_guest_overview_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_guest_overview_invalidate(rct_window *w);
static void window_guest_overview_viewport_rotate(rct_window *w);
static void window_guest_overview_close(rct_window* w);
static void window_guest_overview_resize(rct_window* w);
static void window_guest_overview_mouse_up(rct_window* w, rct_widgetindex widgetIndex);
static void window_guest_overview_mouse_down(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_guest_overview_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_guest_overview_invalidate(rct_window* w);
static void window_guest_overview_viewport_rotate(rct_window* w);
static void window_guest_overview_update(rct_window* w);
static void window_guest_overview_text_input(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_guest_overview_text_input(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_guest_overview_tool_update(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_guest_overview_tool_down(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_guest_overview_tool_abort(rct_window *w, rct_widgetindex widgetIndex);
static void window_guest_follow(rct_window *w);
static void window_guest_overview_tool_abort(rct_window* w, rct_widgetindex widgetIndex);
static void window_guest_follow(rct_window* w);
static void window_guest_show_locate_dropdown(rct_window* w, rct_widget* widget);
static void window_guest_mouse_up(rct_window *w, rct_widgetindex widgetIndex);
static void window_guest_mouse_up(rct_window* w, rct_widgetindex widgetIndex);
static void window_guest_stats_update(rct_window *w);
static void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_guest_stats_update(rct_window* w);
static void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_guest_rides_update(rct_window *w);
static void window_guest_rides_scroll_get_size(rct_window *w, int32_t scrollIndex, int32_t *width, int32_t *height);
static void window_guest_rides_scroll_mouse_down(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_guest_rides_scroll_mouse_over(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_guest_rides_invalidate(rct_window *w);
static void window_guest_rides_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_guest_rides_scroll_paint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_guest_rides_update(rct_window* w);
static void window_guest_rides_scroll_get_size(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void window_guest_rides_scroll_mouse_down(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_guest_rides_scroll_mouse_over(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_guest_rides_invalidate(rct_window* w);
static void window_guest_rides_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_guest_rides_scroll_paint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static void window_guest_finance_update(rct_window *w);
static void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_guest_finance_update(rct_window* w);
static void window_guest_finance_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_guest_thoughts_update(rct_window *w);
static void window_guest_thoughts_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_guest_thoughts_update(rct_window* w);
static void window_guest_thoughts_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_guest_inventory_update(rct_window *w);
static void window_guest_inventory_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_guest_inventory_update(rct_window* w);
static void window_guest_inventory_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_guest_debug_update(rct_window *w);
static void window_guest_debug_paint(rct_window *w, rct_drawpixelinfo* dpi);
static void window_guest_debug_update(rct_window* w);
static void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi);
static rct_window_event_list window_guest_overview_events([](auto& events)
{
static rct_window_event_list window_guest_overview_events([](auto& events) {
events.close = &window_guest_overview_close;
events.mouse_up = &window_guest_overview_mouse_up;
events.mouse_down = &window_guest_overview_mouse_down;
@ -204,8 +208,7 @@ static rct_window_event_list window_guest_overview_events([](auto& events)
events.paint = &window_guest_overview_paint;
});
static rct_window_event_list window_guest_stats_events([](auto& events)
{
static rct_window_event_list window_guest_stats_events([](auto& events) {
events.mouse_up = &window_guest_mouse_up;
events.resize = &window_guest_common_resize;
events.update = &window_guest_stats_update;
@ -213,8 +216,7 @@ static rct_window_event_list window_guest_stats_events([](auto& events)
events.paint = &window_guest_stats_paint;
});
static rct_window_event_list window_guest_rides_events([](auto& events)
{
static rct_window_event_list window_guest_rides_events([](auto& events) {
events.mouse_up = &window_guest_mouse_up;
events.resize = &window_guest_common_resize;
events.update = &window_guest_rides_update;
@ -226,8 +228,7 @@ static rct_window_event_list window_guest_rides_events([](auto& events)
events.scroll_paint = &window_guest_rides_scroll_paint;
});
static rct_window_event_list window_guest_finance_events([](auto& events)
{
static rct_window_event_list window_guest_finance_events([](auto& events) {
events.mouse_up = &window_guest_mouse_up;
events.resize = &window_guest_common_resize;
events.update = &window_guest_finance_update;
@ -235,8 +236,7 @@ static rct_window_event_list window_guest_finance_events([](auto& events)
events.paint = &window_guest_finance_paint;
});
static rct_window_event_list window_guest_thoughts_events([](auto& events)
{
static rct_window_event_list window_guest_thoughts_events([](auto& events) {
events.mouse_up = &window_guest_mouse_up;
events.resize = &window_guest_common_resize;
events.update = &window_guest_thoughts_update;
@ -244,8 +244,7 @@ static rct_window_event_list window_guest_thoughts_events([](auto& events)
events.paint = &window_guest_thoughts_paint;
});
static rct_window_event_list window_guest_inventory_events([](auto& events)
{
static rct_window_event_list window_guest_inventory_events([](auto& events) {
events.mouse_up = &window_guest_mouse_up;
events.resize = &window_guest_common_resize;
events.update = &window_guest_inventory_update;
@ -253,8 +252,7 @@ static rct_window_event_list window_guest_inventory_events([](auto& events)
events.paint = &window_guest_inventory_paint;
});
static rct_window_event_list window_guest_debug_events([](auto& events)
{
static rct_window_event_list window_guest_debug_events([](auto& events) {
events.mouse_up = &window_guest_mouse_up;
events.resize = &window_guest_common_resize;
events.update = &window_guest_debug_update;
@ -263,14 +261,15 @@ static rct_window_event_list window_guest_debug_events([](auto& events)
});
// 0x981D24
static rct_window_event_list *window_guest_page_events[] = {
// clang-format off
static rct_window_event_list* window_guest_page_events[] = {
&window_guest_overview_events,
&window_guest_stats_events,
&window_guest_rides_events,
&window_guest_finance_events,
&window_guest_thoughts_events,
&window_guest_inventory_events,
&window_guest_debug_events
&window_guest_debug_events,
};
void window_guest_set_colours();
@ -343,20 +342,20 @@ static constexpr const uint32_t window_guest_page_enabled_widgets[] = {
(1ULL << WIDX_TAB_4) |
(1ULL << WIDX_TAB_5) |
(1ULL << WIDX_TAB_6) |
(1ULL << WIDX_TAB_7)
};
static constexpr const rct_size16 window_guest_page_sizes[][2] = {
{ 192, 159, 500, 450 }, // WINDOW_GUEST_OVERVIEW
{ 192, 180, 192, 180 }, // WINDOW_GUEST_STATS
{ 192, 180, 500, 400 }, // WINDOW_GUEST_RIDES
{ 210, 148, 210, 148 }, // WINDOW_GUEST_FINANCE
{ 192, 159, 500, 450 }, // WINDOW_GUEST_THOUGHTS
{ 192, 159, 500, 450 }, // WINDOW_GUEST_INVENTORY
{ 192, 171, 192, 171 } // WINDOW_GUEST_DEBUG
(1ULL << WIDX_TAB_7),
};
// clang-format on
static constexpr const rct_size16 window_guest_page_sizes[][2] = {
{ 192, 159, 500, 450 }, // WINDOW_GUEST_OVERVIEW
{ 192, 180, 192, 180 }, // WINDOW_GUEST_STATS
{ 192, 180, 500, 400 }, // WINDOW_GUEST_RIDES
{ 210, 148, 210, 148 }, // WINDOW_GUEST_FINANCE
{ 192, 159, 500, 450 }, // WINDOW_GUEST_THOUGHTS
{ 192, 159, 500, 450 }, // WINDOW_GUEST_INVENTORY
{ 192, 171, 192, 171 }, // WINDOW_GUEST_DEBUG
};
static Guest* GetGuest(rct_window* w)
{
auto guest = GetEntity<Guest>(w->number);

View File

@ -66,13 +66,14 @@ constexpr uint8_t StaffMapColourAlternate = PALETTE_INDEX_10;
// minimap. In order to distinguish those from actual coordinates, we use a separate name.
using MapCoordsXY = TileCoordsXY;
// clang-format off
enum {
enum
{
PAGE_PEEPS,
PAGE_RIDES
};
enum WINDOW_MAP_WIDGET_IDX {
enum WINDOW_MAP_WIDGET_IDX
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -99,6 +100,7 @@ enum WINDOW_MAP_WIDGET_IDX {
validate_global_widx(WC_MAP, WIDX_ROTATE_90);
// clang-format off
static rct_widget window_map_widgets[] = {
WINDOW_SHIM(WINDOW_TITLE, WW, WH),
MakeWidget ({ 0, 43}, {245, 215}, WindowWidgetType::Resize, WindowColour::Secondary ),
@ -127,39 +129,39 @@ static constexpr const ScreenCoordsXY MiniMapOffsets[] = {
{ MAXIMUM_MAP_SIZE_TECHNICAL - 8, 0 },
{ 2 * MAXIMUM_MAP_SIZE_TECHNICAL - 8, MAXIMUM_MAP_SIZE_TECHNICAL },
{ MAXIMUM_MAP_SIZE_TECHNICAL - 8, 2 * MAXIMUM_MAP_SIZE_TECHNICAL },
{ 0 - 8, MAXIMUM_MAP_SIZE_TECHNICAL }
{ 0 - 8, MAXIMUM_MAP_SIZE_TECHNICAL },
};
// clang-format on
/** rct2: 0x00981BCC */
static constexpr const uint16_t RideKeyColours[] = {
MapColour(PALETTE_INDEX_61), // COLOUR_KEY_RIDE
MapColour(PALETTE_INDEX_42), // COLOUR_KEY_FOOD
MapColour(PALETTE_INDEX_20), // COLOUR_KEY_DRINK
MapColour(PALETTE_INDEX_209), // COLOUR_KEY_SOUVENIR
MapColour(PALETTE_INDEX_136), // COLOUR_KEY_KIOSK
MapColour(PALETTE_INDEX_102), // COLOUR_KEY_FIRST_AID
MapColour(PALETTE_INDEX_55), // COLOUR_KEY_CASH_MACHINE
MapColour(PALETTE_INDEX_161), // COLOUR_KEY_TOILETS
MapColour(PALETTE_INDEX_61), // COLOUR_KEY_RIDE
MapColour(PALETTE_INDEX_42), // COLOUR_KEY_FOOD
MapColour(PALETTE_INDEX_20), // COLOUR_KEY_DRINK
MapColour(PALETTE_INDEX_209), // COLOUR_KEY_SOUVENIR
MapColour(PALETTE_INDEX_136), // COLOUR_KEY_KIOSK
MapColour(PALETTE_INDEX_102), // COLOUR_KEY_FIRST_AID
MapColour(PALETTE_INDEX_55), // COLOUR_KEY_CASH_MACHINE
MapColour(PALETTE_INDEX_161), // COLOUR_KEY_TOILETS
};
static void window_map_close(rct_window *w);
static void window_map_resize(rct_window *w);
static void window_map_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_map_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_map_update(rct_window *w);
static void window_map_close(rct_window* w);
static void window_map_resize(rct_window* w);
static void window_map_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_map_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_map_update(rct_window* w);
static void window_map_toolupdate(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_map_tooldown(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_map_tooldrag(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_map_toolabort(rct_window *w, rct_widgetindex widgetIndex);
static void window_map_scrollgetsize(rct_window *w, int32_t scrollIndex, int32_t *width, int32_t *height);
static void window_map_scrollmousedown(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_map_textinput(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_map_invalidate(rct_window *w);
static void window_map_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_map_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_map_toolabort(rct_window* w, rct_widgetindex widgetIndex);
static void window_map_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void window_map_scrollmousedown(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_map_textinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_map_invalidate(rct_window* w);
static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_map_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static rct_window_event_list window_map_events([](auto& events)
{
static rct_window_event_list window_map_events([](auto& events) {
events.close = &window_map_close;
events.mouse_up = &window_map_mouseup;
events.resize = &window_map_resize;
@ -177,7 +179,6 @@ static rct_window_event_list window_map_events([](auto& events)
events.paint = &window_map_paint;
events.scroll_paint = &window_map_scrollpaint;
});
// clang-format on
/** rct2: 0x00F1AD61 */
static uint8_t _activeTool;

View File

@ -26,8 +26,8 @@
using namespace OpenRCT2;
// clang-format off
enum {
enum
{
WINDOW_MAPGEN_PAGE_BASE,
WINDOW_MAPGEN_PAGE_RANDOM,
WINDOW_MAPGEN_PAGE_SIMPLEX,
@ -35,7 +35,8 @@ enum {
WINDOW_MAPGEN_PAGE_COUNT
};
enum {
enum
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -113,6 +114,7 @@ static constexpr const rct_string_id WINDOW_TITLE = STR_MAPGEN_WINDOW_TITLE;
static constexpr const int32_t WW = 250;
static constexpr const int32_t WH = 273;
// clang-format off
#define SHARED_WIDGETS \
WINDOW_SHIM(WINDOW_TITLE, WW, WH), /* WIDX_BACKGROUND, WIDX_TITLE, WIDX_CLOSE */ \
MakeWidget({ 0, 43}, {WW, 229}, WindowWidgetType::Resize, WindowColour::Secondary), /* WIDX_PAGE_BACKGROUND */ \
@ -169,49 +171,49 @@ static rct_widget HeightmapWidgets[] = {
MakeSpinnerWidgets({104, 160}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_HEIGHTMAP_WATER_LEVEL{,_UP,_DOWN}
WIDGETS_END,
};
// clang-format on
static rct_widget *PageWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
static rct_widget* PageWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
MapWidgets,
RandomWidgets,
SimplexWidgets,
HeightmapWidgets
HeightmapWidgets,
};
#pragma endregion
#pragma region Events
static void window_mapgen_shared_close(rct_window *w);
static void window_mapgen_shared_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_mapgen_shared_close(rct_window* w);
static void window_mapgen_shared_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_mapgen_base_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_mapgen_base_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_base_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_mapgen_base_update(rct_window *w);
static void window_mapgen_textinput(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_mapgen_base_invalidate(rct_window *w);
static void window_mapgen_base_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_mapgen_base_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_mapgen_base_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_base_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_mapgen_base_update(rct_window* w);
static void window_mapgen_textinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_mapgen_base_invalidate(rct_window* w);
static void window_mapgen_base_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_mapgen_random_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_mapgen_random_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_random_update(rct_window *w);
static void window_mapgen_random_invalidate(rct_window *w);
static void window_mapgen_random_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_mapgen_random_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_mapgen_random_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_random_update(rct_window* w);
static void window_mapgen_random_invalidate(rct_window* w);
static void window_mapgen_random_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_mapgen_simplex_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_mapgen_simplex_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_simplex_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_mapgen_simplex_update(rct_window *w);
static void window_mapgen_simplex_invalidate(rct_window *w);
static void window_mapgen_simplex_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_mapgen_simplex_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_mapgen_simplex_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_simplex_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_mapgen_simplex_update(rct_window* w);
static void window_mapgen_simplex_invalidate(rct_window* w);
static void window_mapgen_simplex_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_mapgen_heightmap_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_mapgen_heightmap_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_heightmap_invalidate(rct_window *w);
static void window_mapgen_heightmap_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_mapgen_heightmap_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_mapgen_heightmap_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_mapgen_heightmap_invalidate(rct_window* w);
static void window_mapgen_heightmap_paint(rct_window* w, rct_drawpixelinfo* dpi);
static rct_window_event_list BaseEvents([](auto& events)
{
static rct_window_event_list BaseEvents([](auto& events) {
events.close = &window_mapgen_shared_close;
events.mouse_up = &window_mapgen_base_mouseup;
events.mouse_down = &window_mapgen_base_mousedown;
@ -222,8 +224,7 @@ static rct_window_event_list BaseEvents([](auto& events)
events.paint = &window_mapgen_base_paint;
});
static rct_window_event_list RandomEvents([](auto& events)
{
static rct_window_event_list RandomEvents([](auto& events) {
events.close = &window_mapgen_shared_close;
events.mouse_up = &window_mapgen_random_mouseup;
events.mouse_down = &window_mapgen_random_mousedown;
@ -232,8 +233,7 @@ static rct_window_event_list RandomEvents([](auto& events)
events.paint = &window_mapgen_random_paint;
});
static rct_window_event_list SimplexEvents([](auto& events)
{
static rct_window_event_list SimplexEvents([](auto& events) {
events.close = &window_mapgen_shared_close;
events.mouse_up = &window_mapgen_simplex_mouseup;
events.mouse_down = &window_mapgen_simplex_mousedown;
@ -244,8 +244,7 @@ static rct_window_event_list SimplexEvents([](auto& events)
events.paint = &window_mapgen_simplex_paint;
});
static rct_window_event_list HeightmapEvents([](auto& events)
{
static rct_window_event_list HeightmapEvents([](auto& events) {
events.close = &window_mapgen_shared_close;
events.mouse_up = &window_mapgen_heightmap_mouseup;
events.mouse_down = &window_mapgen_heightmap_mousedown;
@ -253,17 +252,18 @@ static rct_window_event_list HeightmapEvents([](auto& events)
events.paint = &window_mapgen_heightmap_paint;
});
static rct_window_event_list *PageEvents[] = {
static rct_window_event_list* PageEvents[] = {
&BaseEvents,
&RandomEvents,
&SimplexEvents,
&HeightmapEvents
&HeightmapEvents,
};
#pragma endregion
#pragma region Enabled widgets
// clang-format off
static uint64_t PageEnabledWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
(1ULL << WIDX_CLOSE) |
(1ULL << WIDX_TAB_1) |
@ -393,17 +393,27 @@ static uint64_t PressedWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
0,
(1ULL << WIDX_HEIGHTMAP_SMOOTH_TILES)
};
// clang-format on
#pragma endregion
static constexpr const int32_t TabAnimationDivisor[WINDOW_MAPGEN_PAGE_COUNT] = {
1, 1, 1, 1
1,
1,
1,
1,
};
static constexpr const int32_t TabAnimationFrames[WINDOW_MAPGEN_PAGE_COUNT] = {
1, 1, 1, 1
1,
1,
1,
1,
};
static constexpr const int32_t TabAnimationLoops[WINDOW_MAPGEN_PAGE_COUNT] = {
16, 16, 16, 0
16,
16,
16,
0,
};
// clang-format on

View File

@ -107,7 +107,7 @@ static rct_widget *window_multiplayer_page_widgets[] = {
window_multiplayer_information_widgets,
window_multiplayer_players_widgets,
window_multiplayer_groups_widgets,
window_multiplayer_options_widgets
window_multiplayer_options_widgets,
};
static constexpr const uint64_t window_multiplayer_page_enabled_widgets[] = {
@ -212,12 +212,22 @@ static rct_window_event_list *window_multiplayer_page_events[] = {
&window_multiplayer_information_events,
&window_multiplayer_players_events,
&window_multiplayer_groups_events,
&window_multiplayer_options_events
&window_multiplayer_options_events,
};
// clang-format on
static constexpr const int32_t window_multiplayer_animation_divisor[] = { 4, 4, 2, 2 };
static constexpr const int32_t window_multiplayer_animation_frames[] = { 8, 8, 7, 4 };
static constexpr const int32_t window_multiplayer_animation_divisor[] = {
4,
4,
2,
2,
};
static constexpr const int32_t window_multiplayer_animation_frames[] = {
8,
8,
7,
4,
};
static void window_multiplayer_draw_tab_images(rct_window* w, rct_drawpixelinfo* dpi);
static void window_multiplayer_set_page(rct_window* w, int32_t page);

View File

@ -151,7 +151,7 @@ static constexpr const char RideTypeViewOrder[] = {
RIDE_TYPE_INFORMATION_KIOSK,
RIDE_TYPE_FIRST_AID,
RIDE_TYPE_CASH_MACHINE,
RIDE_TYPE_TOILETS
RIDE_TYPE_TOILETS,
};
#pragma endregion
@ -164,7 +164,7 @@ enum {
WINDOW_NEW_RIDE_PAGE_WATER,
WINDOW_NEW_RIDE_PAGE_SHOP,
WINDOW_NEW_RIDE_PAGE_RESEARCH,
WINDOW_NEW_RIDE_PAGE_COUNT
WINDOW_NEW_RIDE_PAGE_COUNT,
};
#pragma region Widgets
@ -247,11 +247,15 @@ static constexpr const rct_string_id window_new_ride_titles[WINDOW_NEW_RIDE_PAGE
STR_NEW_SHOPS_STALLS,
STR_RESEARCH_AND_DEVELOPMENT,
};
static constexpr const int32_t window_new_ride_tab_animation_loops[] = { 20, 32, 10, 72, 24, 28, 16 };
static constexpr const int32_t window_new_ride_tab_animation_divisor[] = { 4, 8, 2, 4, 4, 4, 2 };
// clang-format on
static constexpr const int32_t window_new_ride_tab_animation_loops[] = {
20, 32, 10, 72, 24, 28, 16,
};
static constexpr const int32_t window_new_ride_tab_animation_divisor[] = {
4, 8, 2, 4, 4, 4, 2,
};
static void window_new_ride_set_page(rct_window* w, int32_t page);
static void window_new_ride_refresh_widget_sizing(rct_window* w);
static RideSelection window_new_ride_scroll_get_ride_list_item_at(rct_window* w, const ScreenCoordsXY& screenCoords);
@ -600,8 +604,9 @@ static void window_new_ride_set_pressed_tab(rct_window* w)
w->pressed_widgets |= 1LL << (WIDX_TAB_1 + _windowNewRideCurrentTab);
}
static constexpr const int32_t ThrillRidesTabAnimationSequence[] = { 5, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0,
0, 0, 0, 1, 2, 3, 4, 0, 0, 0 };
static constexpr const int32_t ThrillRidesTabAnimationSequence[] = {
5, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0,
};
static void window_new_ride_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w, int32_t page, int32_t spriteIndex)
{

View File

@ -247,8 +247,16 @@ static void window_news_options_set_page(rct_window* w, int32_t page)
}
}
const int32_t window_news_option_tab_animation_divisor[] = { 1, 4, 4 };
const int32_t window_news_option_tab_animation_frames[] = { 1, 16, 8 };
const int32_t window_news_option_tab_animation_divisor[] = {
1,
4,
4,
};
const int32_t window_news_option_tab_animation_frames[] = {
1,
16,
8,
};
static void window_news_options_draw_tab_image(rct_window* w, rct_drawpixelinfo* dpi, int32_t page, int32_t spriteIndex)
{

View File

@ -392,7 +392,7 @@ static constexpr const rct_string_id window_options_title_music_names[] = {
static constexpr const rct_string_id window_options_scale_quality_names[] = {
STR_SCALING_QUALITY_LINEAR,
STR_SCALING_QUALITY_SMOOTH_NN
STR_SCALING_QUALITY_SMOOTH_NN,
};
static constexpr const rct_string_id window_options_fullscreen_mode_names[] = {
@ -1240,8 +1240,11 @@ private:
WidgetSetCheckboxValue(this, WIDX_TRANSPARENT_SCREENSHOTS_CHECKBOX, gConfigGeneral.transparent_screenshot);
WidgetSetCheckboxValue(this, WIDX_UPPER_CASE_BANNERS_CHECKBOX, gConfigGeneral.upper_case_banners);
rct_string_id VirtualFloorStyleStrings[] = { STR_VIRTUAL_FLOOR_STYLE_DISABLED, STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT,
STR_VIRTUAL_FLOOR_STYLE_GLASSY };
static constexpr rct_string_id VirtualFloorStyleStrings[] = {
STR_VIRTUAL_FLOOR_STYLE_DISABLED,
STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT,
STR_VIRTUAL_FLOOR_STYLE_GLASSY,
};
this->widgets[WIDX_VIRTUAL_FLOOR].text = VirtualFloorStyleStrings[static_cast<int32_t>(
gConfigGeneral.virtual_floor_style)];

View File

@ -142,7 +142,7 @@ static rct_widget *window_park_page_widgets[] = {
window_park_price_widgets,
window_park_stats_widgets,
window_park_objective_widgets,
window_park_awards_widgets
window_park_awards_widgets,
};
#pragma endregion
@ -273,7 +273,7 @@ static rct_window_event_list *window_park_page_events[] = {
&window_park_price_events,
&window_park_stats_events,
&window_park_objective_events,
&window_park_awards_events
&window_park_awards_events,
};
#pragma endregion
@ -351,7 +351,7 @@ static uint32_t window_park_page_enabled_widgets[] = {
(1ULL << WIDX_TAB_4) |
(1ULL << WIDX_TAB_5) |
(1ULL << WIDX_TAB_6) |
(1ULL << WIDX_TAB_7)
(1ULL << WIDX_TAB_7),
};
static uint32_t window_park_page_hold_down_widgets[] = {
@ -364,7 +364,7 @@ static uint32_t window_park_page_hold_down_widgets[] = {
0,
0,
0
0,
};
#pragma endregion

View File

@ -73,7 +73,7 @@ static rct_widget window_player_statistics_widgets[] = {
static rct_widget *window_player_page_widgets[] = {
window_player_overview_widgets,
window_player_statistics_widgets
window_player_statistics_widgets,
};
#pragma endregion
@ -120,7 +120,7 @@ static rct_window_event_list window_player_statistics_events([](auto& events)
static rct_window_event_list *window_player_page_events[] = {
&window_player_overview_events,
&window_player_statistics_events
&window_player_statistics_events,
};
#pragma endregion
@ -141,7 +141,7 @@ static uint32_t window_player_page_enabled_widgets[] = {
(1ULL << WIDX_CLOSE) |
(1ULL << WIDX_TAB_1) |
(1ULL << WIDX_TAB_2)
(1ULL << WIDX_TAB_2),
};
// clang-format on

View File

@ -92,7 +92,7 @@ static rct_widget window_research_funding_widgets[] = {
static rct_widget *window_research_page_widgets[] = {
window_research_development_widgets,
window_research_funding_widgets
window_research_funding_widgets,
};
#pragma endregion
@ -133,7 +133,7 @@ static rct_window_event_list window_research_funding_events([](auto& events)
static rct_window_event_list *window_research_page_events[] = {
&window_research_development_events,
&window_research_funding_events
&window_research_funding_events,
};
#pragma endregion
@ -157,12 +157,16 @@ static uint32_t window_research_page_enabled_widgets[] = {
(1ULL << WIDX_THRILL_RIDES) |
(1ULL << WIDX_WATER_RIDES) |
(1ULL << WIDX_SHOPS_AND_STALLS) |
(1ULL << WIDX_SCENERY_AND_THEMING)
(1ULL << WIDX_SCENERY_AND_THEMING),
};
// clang-format on
#pragma endregion
const int32_t window_research_tab_animation_loops[] = { 16, 16 };
const int32_t window_research_tab_animation_loops[] = {
16,
16,
};
static constexpr const rct_string_id ResearchStageNames[] = {
STR_RESEARCH_STAGE_INITIAL_RESEARCH,
@ -170,7 +174,6 @@ static constexpr const rct_string_id ResearchStageNames[] = {
STR_RESEARCH_STAGE_COMPLETING_DESIGN,
STR_RESEARCH_STAGE_UNKNOWN,
};
// clang-format on
static void window_research_set_page(rct_window* w, int32_t page);
static void window_research_set_pressed_tab(rct_window* w);

View File

@ -382,7 +382,7 @@ static rct_widget *window_ride_page_widgets[] = {
window_ride_measurements_widgets,
window_ride_graphs_widgets,
window_ride_income_widgets,
window_ride_customer_widgets
window_ride_customer_widgets,
};
#define MAIN_RIDE_ENABLED_WIDGETS \
@ -519,115 +519,117 @@ static constexpr const uint64_t window_ride_page_hold_down_widgets[] = {
(1ULL << WIDX_PRIMARY_PRICE_DECREASE) |
(1ULL << WIDX_SECONDARY_PRICE_INCREASE) |
(1ULL << WIDX_SECONDARY_PRICE_DECREASE),
0
0,
};
// clang-format on
#pragma endregion
#pragma region Events
static void window_ride_init_viewport(rct_window *w);
static void window_ride_init_viewport(rct_window* w);
static void window_ride_main_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_main_resize(rct_window *w);
static void window_ride_main_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_main_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_main_update(rct_window *w);
static void window_ride_main_textinput(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_ride_main_viewport_rotate(rct_window *w);
static void window_ride_main_invalidate(rct_window *w);
static void window_ride_main_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_main_follow_ride(rct_window *w);
static void window_ride_main_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_main_resize(rct_window* w);
static void window_ride_main_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_main_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_main_update(rct_window* w);
static void window_ride_main_textinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_ride_main_viewport_rotate(rct_window* w);
static void window_ride_main_invalidate(rct_window* w);
static void window_ride_main_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_main_follow_ride(rct_window* w);
static void window_ride_vehicle_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_vehicle_resize(rct_window *w);
static void window_ride_vehicle_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_vehicle_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_vehicle_update(rct_window *w);
static OpenRCT2String window_ride_vehicle_tooltip(rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback);
static void window_ride_vehicle_invalidate(rct_window *w);
static void window_ride_vehicle_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_vehicle_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_ride_vehicle_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_vehicle_resize(rct_window* w);
static void window_ride_vehicle_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_vehicle_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_vehicle_update(rct_window* w);
static OpenRCT2String window_ride_vehicle_tooltip(
rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback);
static void window_ride_vehicle_invalidate(rct_window* w);
static void window_ride_vehicle_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_vehicle_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static void window_ride_operating_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_operating_resize(rct_window *w);
static void window_ride_operating_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_operating_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_operating_update(rct_window *w);
static void window_ride_operating_invalidate(rct_window *w);
static void window_ride_operating_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_operating_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_operating_resize(rct_window* w);
static void window_ride_operating_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_operating_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_operating_update(rct_window* w);
static void window_ride_operating_invalidate(rct_window* w);
static void window_ride_operating_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_maintenance_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_maintenance_resize(rct_window *w);
static void window_ride_maintenance_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_maintenance_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_maintenance_update(rct_window *w);
static void window_ride_maintenance_invalidate(rct_window *w);
static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_maintenance_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_maintenance_resize(rct_window* w);
static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_maintenance_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_maintenance_update(rct_window* w);
static void window_ride_maintenance_invalidate(rct_window* w);
static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_colour_close(rct_window *w);
static void window_ride_colour_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_colour_resize(rct_window *w);
static void window_ride_colour_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_colour_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_colour_update(rct_window *w);
static void window_ride_colour_tooldown(rct_window *w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_colour_tooldrag(rct_window *w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_colour_invalidate(rct_window *w);
static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_colour_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_ride_colour_close(rct_window* w);
static void window_ride_colour_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_colour_resize(rct_window* w);
static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_colour_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_colour_update(rct_window* w);
static void window_ride_colour_tooldown(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_colour_tooldrag(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_colour_invalidate(rct_window* w);
static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static void window_ride_music_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_music_resize(rct_window *w);
static void window_ride_music_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_music_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_music_update(rct_window *w);
static void window_ride_music_invalidate(rct_window *w);
static void window_ride_music_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_music_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_music_resize(rct_window* w);
static void window_ride_music_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_music_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_music_update(rct_window* w);
static void window_ride_music_invalidate(rct_window* w);
static void window_ride_music_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_measurements_close(rct_window *w);
static void window_ride_measurements_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_measurements_resize(rct_window *w);
static void window_ride_measurements_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_measurements_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_measurements_update(rct_window *w);
static void window_ride_measurements_tooldown(rct_window *w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_measurements_tooldrag(rct_window *w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_measurements_toolabort(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_measurements_invalidate(rct_window *w);
static void window_ride_measurements_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_measurements_close(rct_window* w);
static void window_ride_measurements_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_measurements_resize(rct_window* w);
static void window_ride_measurements_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_measurements_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_measurements_update(rct_window* w);
static void window_ride_measurements_tooldown(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_measurements_tooldrag(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_measurements_toolabort(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_measurements_invalidate(rct_window* w);
static void window_ride_measurements_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_graphs_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_graphs_resize(rct_window *w);
static void window_ride_graphs_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_graphs_update(rct_window *w);
static void window_ride_graphs_scrollgetheight(rct_window *w, int32_t scrollIndex, int32_t *width, int32_t *height);
static void window_ride_graphs_15(rct_window *w, int32_t scrollIndex, int32_t scrollAreaType);
static OpenRCT2String window_ride_graphs_tooltip(rct_window* w, const rct_widgetindex widgetIndex, const rct_string_id fallback);
static void window_ride_graphs_invalidate(rct_window *w);
static void window_ride_graphs_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_graphs_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_ride_graphs_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_graphs_resize(rct_window* w);
static void window_ride_graphs_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_graphs_update(rct_window* w);
static void window_ride_graphs_scrollgetheight(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void window_ride_graphs_15(rct_window* w, int32_t scrollIndex, int32_t scrollAreaType);
static OpenRCT2String window_ride_graphs_tooltip(
rct_window* w, const rct_widgetindex widgetIndex, const rct_string_id fallback);
static void window_ride_graphs_invalidate(rct_window* w);
static void window_ride_graphs_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static void window_ride_income_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_income_resize(rct_window *w);
static void window_ride_income_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_income_update(rct_window *w);
static void window_ride_income_textinput(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_ride_income_invalidate(rct_window *w);
static void window_ride_income_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_income_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_income_resize(rct_window* w);
static void window_ride_income_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_income_update(rct_window* w);
static void window_ride_income_textinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_ride_income_invalidate(rct_window* w);
static void window_ride_income_paint(rct_window* w, rct_drawpixelinfo* dpi);
static bool window_ride_income_can_modify_primary_price(rct_window* w);
static void window_ride_customer_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_customer_resize(rct_window *w);
static void window_ride_customer_update(rct_window *w);
static void window_ride_customer_invalidate(rct_window *w);
static void window_ride_customer_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_customer_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_customer_resize(rct_window* w);
static void window_ride_customer_update(rct_window* w);
static void window_ride_customer_invalidate(rct_window* w);
static void window_ride_customer_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_set_page(rct_window *w, int32_t page);
static void window_ride_set_page(rct_window* w, int32_t page);
// 0x0098DFD4
static rct_window_event_list window_ride_main_events([](auto& events)
{
static rct_window_event_list window_ride_main_events([](auto& events) {
events.mouse_up = &window_ride_main_mouseup;
events.resize = &window_ride_main_resize;
events.mouse_down = &window_ride_main_mousedown;
@ -640,8 +642,7 @@ static rct_window_event_list window_ride_main_events([](auto& events)
});
// 0x0098E204
static rct_window_event_list window_ride_vehicle_events([](auto& events)
{
static rct_window_event_list window_ride_vehicle_events([](auto& events) {
events.mouse_up = &window_ride_vehicle_mouseup;
events.resize = &window_ride_vehicle_resize;
events.mouse_down = &window_ride_vehicle_mousedown;
@ -654,8 +655,7 @@ static rct_window_event_list window_ride_vehicle_events([](auto& events)
});
// 0x0098E0B4
static rct_window_event_list window_ride_operating_events([](auto& events)
{
static rct_window_event_list window_ride_operating_events([](auto& events) {
events.mouse_up = &window_ride_operating_mouseup;
events.resize = &window_ride_operating_resize;
events.mouse_down = &window_ride_operating_mousedown;
@ -666,8 +666,7 @@ static rct_window_event_list window_ride_operating_events([](auto& events)
});
// 0x0098E124
static rct_window_event_list window_ride_maintenance_events([](auto& events)
{
static rct_window_event_list window_ride_maintenance_events([](auto& events) {
events.mouse_up = &window_ride_maintenance_mouseup;
events.resize = &window_ride_maintenance_resize;
events.mouse_down = &window_ride_maintenance_mousedown;
@ -678,8 +677,7 @@ static rct_window_event_list window_ride_maintenance_events([](auto& events)
});
// 0x0098E044
static rct_window_event_list window_ride_colour_events([](auto& events)
{
static rct_window_event_list window_ride_colour_events([](auto& events) {
events.close = &window_ride_colour_close;
events.mouse_up = &window_ride_colour_mouseup;
events.resize = &window_ride_colour_resize;
@ -694,8 +692,7 @@ static rct_window_event_list window_ride_colour_events([](auto& events)
});
// 0x0098E194
static rct_window_event_list window_ride_music_events([](auto& events)
{
static rct_window_event_list window_ride_music_events([](auto& events) {
events.mouse_up = &window_ride_music_mouseup;
events.resize = &window_ride_music_resize;
events.mouse_down = &window_ride_music_mousedown;
@ -706,8 +703,7 @@ static rct_window_event_list window_ride_music_events([](auto& events)
});
// 0x0098DE14
static rct_window_event_list window_ride_measurements_events([](auto& events)
{
static rct_window_event_list window_ride_measurements_events([](auto& events) {
events.close = &window_ride_measurements_close;
events.mouse_up = &window_ride_measurements_mouseup;
events.resize = &window_ride_measurements_resize;
@ -722,8 +718,7 @@ static rct_window_event_list window_ride_measurements_events([](auto& events)
});
// 0x0098DF64
static rct_window_event_list window_ride_graphs_events([](auto& events)
{
static rct_window_event_list window_ride_graphs_events([](auto& events) {
events.mouse_up = &window_ride_graphs_mouseup;
events.resize = &window_ride_graphs_resize;
events.mouse_down = &window_ride_graphs_mousedown;
@ -737,8 +732,7 @@ static rct_window_event_list window_ride_graphs_events([](auto& events)
});
// 0x0098DEF4
static rct_window_event_list window_ride_income_events([](auto& events)
{
static rct_window_event_list window_ride_income_events([](auto& events) {
events.mouse_up = &window_ride_income_mouseup;
events.resize = &window_ride_income_resize;
events.mouse_down = &window_ride_income_mousedown;
@ -749,8 +743,7 @@ static rct_window_event_list window_ride_income_events([](auto& events)
});
// 0x0098DE84
static rct_window_event_list window_ride_customer_events([](auto& events)
{
static rct_window_event_list window_ride_customer_events([](auto& events) {
events.mouse_up = &window_ride_customer_mouseup;
events.resize = &window_ride_customer_resize;
events.update = &window_ride_customer_update;
@ -758,6 +751,7 @@ static rct_window_event_list window_ride_customer_events([](auto& events)
events.paint = &window_ride_customer_paint;
});
// clang-format off
static rct_window_event_list *window_ride_page_events[] = {
&window_ride_main_events,
&window_ride_vehicle_events,
@ -768,8 +762,9 @@ static rct_window_event_list *window_ride_page_events[] = {
&window_ride_measurements_events,
&window_ride_graphs_events,
&window_ride_income_events,
&window_ride_customer_events
&window_ride_customer_events,
};
// clang-format on
#pragma endregion
@ -780,16 +775,22 @@ static std::unique_ptr<TrackDesign> _trackDesign;
// Cached overall view for each ride
// (Re)calculated when the ride window is opened
struct ride_overall_view {
struct ride_overall_view
{
CoordsXYZ loc;
uint8_t zoom;
};
static std::vector<ride_overall_view> ride_overall_views = {};
static constexpr const int32_t window_ride_tab_animation_divisor[] = { 0, 0, 2, 2, 4, 2, 8, 8, 2, 0 };
static constexpr const int32_t window_ride_tab_animation_frames[] = { 0, 0, 4, 16, 8, 16, 8, 8, 8, 0 };
static constexpr const int32_t window_ride_tab_animation_divisor[] = {
0, 0, 2, 2, 4, 2, 8, 8, 2, 0,
};
static constexpr const int32_t window_ride_tab_animation_frames[] = {
0, 0, 4, 16, 8, 16, 8, 8, 8, 0,
};
// clang-format off
static constexpr const rct_string_id RatingNames[] = {
STR_RATING_LOW,
STR_RATING_MEDIUM,
@ -807,7 +808,7 @@ static constexpr const rct_string_id RideBreakdownReasonNames[] = {
STR_RIDE_BREAKDOWN_DOORS_STUCK_OPEN,
STR_RIDE_BREAKDOWN_VEHICLE_MALFUNCTION,
STR_RIDE_BREAKDOWN_BRAKES_FAILURE,
STR_RIDE_BREAKDOWN_CONTROL_FAILURE
STR_RIDE_BREAKDOWN_CONTROL_FAILURE,
};
const rct_string_id ColourSchemeNames[4] = {
@ -874,19 +875,20 @@ static constexpr const rct_string_id SingleSessionVehicleStatusNames[] = {
STR_STOPPING_1, // Vehicle::Status::Arriving
STR_UNLOADING_PASSENGERS, // Vehicle::Status::UnloadingPassengers
};
// clang-format on
struct window_ride_maze_design_option {
struct window_ride_maze_design_option
{
rct_string_id text;
uint32_t sprite;
};
static constexpr const window_ride_maze_design_option MazeOptions[] = {
{ STR_RIDE_DESIGN_MAZE_BRICK_WALLS, SPR_RIDE_DESIGN_PREVIEW_MAZE_BRICK_WALLS },
{ STR_RIDE_DESIGN_MAZE_HEDGES, SPR_RIDE_DESIGN_PREVIEW_MAZE_HEDGES },
{ STR_RIDE_DESIGN_MAZE_ICE_BLOCKS, SPR_RIDE_DESIGN_PREVIEW_MAZE_ICE_BLOCKS },
{ STR_RIDE_DESIGN_MAZE_WOODEN_FENCES, SPR_RIDE_DESIGN_PREVIEW_MAZE_WOODEN_FENCES },
{ STR_RIDE_DESIGN_MAZE_BRICK_WALLS, SPR_RIDE_DESIGN_PREVIEW_MAZE_BRICK_WALLS },
{ STR_RIDE_DESIGN_MAZE_HEDGES, SPR_RIDE_DESIGN_PREVIEW_MAZE_HEDGES },
{ STR_RIDE_DESIGN_MAZE_ICE_BLOCKS, SPR_RIDE_DESIGN_PREVIEW_MAZE_ICE_BLOCKS },
{ STR_RIDE_DESIGN_MAZE_WOODEN_FENCES, SPR_RIDE_DESIGN_PREVIEW_MAZE_WOODEN_FENCES },
};
// clang-format on
struct rct_window_graphs_y_axis
{
@ -4951,17 +4953,17 @@ static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi
#pragma region Music
static constexpr const uint8_t MusicStyleOrder[] = {
MUSIC_STYLE_GENTLE, MUSIC_STYLE_SUMMER, MUSIC_STYLE_WATER,
MUSIC_STYLE_RAGTIME, MUSIC_STYLE_TECHNO, MUSIC_STYLE_MECHANICAL,
MUSIC_STYLE_MODERN, MUSIC_STYLE_WILD_WEST, MUSIC_STYLE_PIRATES,
MUSIC_STYLE_ROCK, MUSIC_STYLE_ROCK_STYLE_2, MUSIC_STYLE_ROCK_STYLE_3,
MUSIC_STYLE_FANTASY, MUSIC_STYLE_HORROR, MUSIC_STYLE_TOYLAND,
MUSIC_STYLE_CANDY_STYLE, MUSIC_STYLE_ROMAN_FANFARE, MUSIC_STYLE_ORIENTAL,
MUSIC_STYLE_MARTIAN, MUSIC_STYLE_SPACE, MUSIC_STYLE_JUNGLE_DRUMS,
MUSIC_STYLE_JURASSIC, MUSIC_STYLE_EGYPTIAN, MUSIC_STYLE_DODGEMS_BEAT,
MUSIC_STYLE_SNOW, MUSIC_STYLE_ICE, MUSIC_STYLE_MEDIEVAL,
MUSIC_STYLE_URBAN, MUSIC_STYLE_ORGAN, MUSIC_STYLE_CUSTOM_MUSIC_1,
MUSIC_STYLE_CUSTOM_MUSIC_2
MUSIC_STYLE_GENTLE, MUSIC_STYLE_SUMMER, MUSIC_STYLE_WATER,
MUSIC_STYLE_RAGTIME, MUSIC_STYLE_TECHNO, MUSIC_STYLE_MECHANICAL,
MUSIC_STYLE_MODERN, MUSIC_STYLE_WILD_WEST, MUSIC_STYLE_PIRATES,
MUSIC_STYLE_ROCK, MUSIC_STYLE_ROCK_STYLE_2, MUSIC_STYLE_ROCK_STYLE_3,
MUSIC_STYLE_FANTASY, MUSIC_STYLE_HORROR, MUSIC_STYLE_TOYLAND,
MUSIC_STYLE_CANDY_STYLE, MUSIC_STYLE_ROMAN_FANFARE, MUSIC_STYLE_ORIENTAL,
MUSIC_STYLE_MARTIAN, MUSIC_STYLE_SPACE, MUSIC_STYLE_JUNGLE_DRUMS,
MUSIC_STYLE_JURASSIC, MUSIC_STYLE_EGYPTIAN, MUSIC_STYLE_DODGEMS_BEAT,
MUSIC_STYLE_SNOW, MUSIC_STYLE_ICE, MUSIC_STYLE_MEDIEVAL,
MUSIC_STYLE_URBAN, MUSIC_STYLE_ORGAN, MUSIC_STYLE_CUSTOM_MUSIC_1,
MUSIC_STYLE_CUSTOM_MUSIC_2,
};
static std::vector<ObjectEntryIndex> window_ride_current_music_style_order;

View File

@ -47,8 +47,8 @@ using namespace OpenRCT2::TrackMetaData;
#pragma region Widgets
// clang-format off
enum {
enum
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -96,6 +96,7 @@ validate_global_widx(WC_RIDE_CONSTRUCTION, WIDX_ENTRANCE);
validate_global_widx(WC_RIDE_CONSTRUCTION, WIDX_EXIT);
validate_global_widx(WC_RIDE_CONSTRUCTION, WIDX_ROTATE);
// clang-format off
static rct_widget window_ride_construction_widgets[] = {
WINDOW_SHIM(WINDOW_TITLE, WW, WH),
MakeWidget ({ 3, 17}, {160, 57}, WindowWidgetType::Groupbox, WindowColour::Primary , STR_RIDE_CONSTRUCTION_DIRECTION ),
@ -135,26 +136,26 @@ static rct_widget window_ride_construction_widgets[] = {
MakeWidget ({139, 338}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_SIMULATE, STR_SIMULATE_RIDE_TIP ),
WIDGETS_END,
};
// clang-format on
#pragma endregion
#pragma region Events
static void window_ride_construction_close(rct_window *w);
static void window_ride_construction_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_construction_resize(rct_window *w);
static void window_ride_construction_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget);
static void window_ride_construction_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_construction_update(rct_window *w);
static void window_ride_construction_close(rct_window* w);
static void window_ride_construction_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_construction_resize(rct_window* w);
static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_construction_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_construction_update(rct_window* w);
static void window_ride_construction_toolupdate(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_construction_tooldown(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_construction_invalidate(rct_window *w);
static void window_ride_construction_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_construction_invalidate(rct_window* w);
static void window_ride_construction_paint(rct_window* w, rct_drawpixelinfo* dpi);
static bool track_piece_direction_is_diagonal(const uint8_t direction);
//0x993EEC
static rct_window_event_list window_ride_construction_events([](auto& events)
{
// 0x993EEC
static rct_window_event_list window_ride_construction_events([](auto& events) {
events.close = &window_ride_construction_close;
events.mouse_up = &window_ride_construction_mouseup;
events.resize = &window_ride_construction_resize;
@ -173,265 +174,264 @@ static rct_window_event_list window_ride_construction_events([](auto& events)
// rct2: 0x00999492
static constexpr const rct_string_id RideConfigurationStringIds[] = {
0, // 0
STR_STATION_PLATFORM, // 1
0, // 2
0, // 3
0, // 4
0, // 5
0, // 6
0, // 7
0, // 8
0, // 9
0, // 10
0, // 11
0, // 12
0, // 13
0, // 14
0, // 15
0, // 16
0, // 17
0, // 18
0, // 19
0, // 20
0, // 21
0, // 22
0, // 23
0, // 24
0, // 25
0, // 26
0, // 27
0, // 28
0, // 29
0, // 30
0, // 31
0, // 32
0, // 33
0, // 34
0, // 35
0, // 36
0, // 37
STR_S_BEND_LEFT, // 38
STR_S_BEND_RIGHT, // 39
STR_VERTICAL_LOOP_LEFT, // 40
STR_VERTICAL_LOOP_RIGHT, // 41
0, // 42
0, // 43
0, // 44
0, // 45
0, // 46
0, // 47
0, // 48
0, // 49
0, // 50
0, // 51
STR_IN_LINE_TWIST_LEFT, // 52
STR_IN_LINE_TWIST_RIGHT, // 53
STR_IN_LINE_TWIST_LEFT, // 54
STR_IN_LINE_TWIST_RIGHT, // 55
STR_HALF_LOOP, // 56
STR_HALF_LOOP, // 57
STR_HALF_CORKSCREW_LEFT, // 58
STR_HALF_CORKSCREW_RIGHT, // 59
STR_HALF_CORKSCREW_LEFT, // 60
STR_HALF_CORKSCREW_RIGHT, // 61
0, // 62
0, // 63
0, // 64
0, // 65
STR_ENTRY_EXIT_PLATFORM, // 66
STR_VERTICAL_TOWER, // 67
0, // 68
0, // 69
0, // 70
0, // 71
0, // 72
0, // 73
0, // 74
0, // 75
0, // 76
0, // 77
0, // 78
0, // 79
0, // 80
0, // 81
0, // 82
STR_S_BEND_LEFT, // 83
STR_S_BEND_RIGHT, // 84
0, // 85
0, // 86
STR_HELIX_UP_SMALL, // 87
STR_HELIX_UP_SMALL, // 88
STR_HELIX_DOWN_SMALL, // 89
STR_HELIX_DOWN_SMALL, // 90
STR_HELIX_UP_LARGE, // 91
STR_HELIX_UP_LARGE, // 92
STR_HELIX_DOWN_LARGE, // 93
STR_HELIX_DOWN_LARGE, // 94
0, // 95
0, // 96
0, // 97
0, // 98
STR_BRAKES, // 99
STR_BOOSTER, // 100
0, // 101
STR_HELIX_UP_LARGE, // 102
STR_HELIX_UP_LARGE, // 103
STR_HELIX_DOWN_LARGE, // 104
STR_HELIX_DOWN_LARGE, // 105
STR_HELIX_UP_LEFT, // 106
STR_HELIX_UP_RIGHT, // 107
STR_HELIX_DOWN_LEFT, // 108
STR_HELIX_DOWN_RIGHT, // 109
STR_BASE_SIZE_2_X_2, // 110
STR_BASE_SIZE_4_X_4, // 111
STR_WATERFALLS, // 112
STR_RAPIDS, // 113
STR_ON_RIDE_PHOTO_SECTION, // 114
STR_BASE_SIZE_2_X_4, // 115
STR_BASE_SIZE_5_X_1, // 116
STR_WATER_SPLASH, // 117
0, // 118
0, // 119
STR_WHIRLPOOL, // 120
0, // 121
0, // 122
STR_CABLE_LIFT_HILL, // 123
STR_SLOPE_UP_TO_VERTICAL, // 124
STR_VERTICAL_TRACK, // 125
0, // 126
0, // 127
0, // 128
0, // 129
0, // 130
0, // 131
STR_HOLDING_BRAKE_FOR_DROP, // 132
0, // 133
0, // 134
0, // 135
0, // 136
0, // 137
0, // 138
0, // 139
0, // 140
0, // 141
0, // 142
0, // 143
0, // 144
0, // 145
0, // 146
0, // 147
0, // 148
0, // 149
0, // 150
0, // 151
0, // 152
0, // 153
0, // 154
0, // 155
0, // 156
0, // 157
0, // 158
0, // 159
0, // 160
0, // 161
0, // 162
0, // 163
0, // 164
0, // 165
0, // 166
0, // 167
0, // 168
0, // 169
0, // 170
0, // 171
STR_REVERSER_TURNTABLE, // 172
STR_SPINNING_TUNNEL, // 173
STR_BARREL_ROLL_LEFT, // 174
STR_BARREL_ROLL_RIGHT, // 175
STR_BARREL_ROLL_LEFT, // 176
STR_BARREL_ROLL_RIGHT, // 177
0, // 178
0, // 179
0, // 180
0, // 181
STR_LAUNCHED_LIFT_HILL, // 182
STR_LARGE_HALF_LOOP_LEFT, // 183
STR_LARGE_HALF_LOOP_RIGHT, // 184
STR_LARGE_HALF_LOOP_LEFT, // 185
STR_LARGE_HALF_LOOP_RIGHT, // 186
STR_IN_LINE_TWIST_LEFT, // 187
STR_IN_LINE_TWIST_RIGHT, // 188
STR_IN_LINE_TWIST_LEFT, // 189
STR_IN_LINE_TWIST_RIGHT, // 190
STR_HALF_LOOP, // 191
STR_HALF_LOOP, // 192
STR_HALF_CORKSCREW_LEFT, // 193
STR_HALF_CORKSCREW_RIGHT, // 194
STR_HALF_CORKSCREW_LEFT, // 195
STR_HALF_CORKSCREW_RIGHT, // 196
STR_UPPER_TRANSFER, // 197
STR_LOWER_TRANSFER, // 198
STR_HEARTLINE_ROLL_LEFT, // 199
STR_HEARTLINE_ROLL_RIGHT, // 200
STR_GOLF_HOLE_A, // 201
STR_GOLF_HOLE_B, // 202
STR_GOLF_HOLE_C, // 203
STR_GOLF_HOLE_D, // 204
STR_GOLF_HOLE_E, // 205
STR_QUARTER_LOOP, // 206
STR_QUARTER_LOOP, // 207
STR_QUARTER_LOOP, // 208
STR_CURVED_LIFT_HILL_LEFT, // 209
STR_CURVED_LIFT_HILL_RIGHT, // 210
STR_REVERSER_LEFT, // 211
STR_REVERSER_RIGHT, // 212
STR_TOP_SECTION, // 213
STR_VERTICAL_TRACK, // 214
STR_SLOPE_TO_LEVEL, // 215
STR_BLOCK_BRAKES, // 216
0, // 217
0, // 218
0, // 219
0, // 220
0, // 221
0, // 222
0, // 223
0, // 224
0, // 225
0, // 226
0, // 227
0, // 228
0, // 229
0, // 230
0, // 231
0, // 232
0, // 233
0, // 234
0, // 235
0, // 236
0, // 237
0, // 238
0, // 239
0, // 240
0, // 241
0, // 242
0, // 243
0, // 244
0, // 245
0, // 246
0, // 247
0, // 248
0, // 249
0, // 250
0, // 251
0, // 252
STR_QUARTER_LOOP, // 253
STR_QUARTER_LOOP, // 254
STR_QUARTER_LOOP, // 255
STR_SPINNING_CONTROL_TOGGLE_TRACK, // 256
0, // 0
STR_STATION_PLATFORM, // 1
0, // 2
0, // 3
0, // 4
0, // 5
0, // 6
0, // 7
0, // 8
0, // 9
0, // 10
0, // 11
0, // 12
0, // 13
0, // 14
0, // 15
0, // 16
0, // 17
0, // 18
0, // 19
0, // 20
0, // 21
0, // 22
0, // 23
0, // 24
0, // 25
0, // 26
0, // 27
0, // 28
0, // 29
0, // 30
0, // 31
0, // 32
0, // 33
0, // 34
0, // 35
0, // 36
0, // 37
STR_S_BEND_LEFT, // 38
STR_S_BEND_RIGHT, // 39
STR_VERTICAL_LOOP_LEFT, // 40
STR_VERTICAL_LOOP_RIGHT, // 41
0, // 42
0, // 43
0, // 44
0, // 45
0, // 46
0, // 47
0, // 48
0, // 49
0, // 50
0, // 51
STR_IN_LINE_TWIST_LEFT, // 52
STR_IN_LINE_TWIST_RIGHT, // 53
STR_IN_LINE_TWIST_LEFT, // 54
STR_IN_LINE_TWIST_RIGHT, // 55
STR_HALF_LOOP, // 56
STR_HALF_LOOP, // 57
STR_HALF_CORKSCREW_LEFT, // 58
STR_HALF_CORKSCREW_RIGHT, // 59
STR_HALF_CORKSCREW_LEFT, // 60
STR_HALF_CORKSCREW_RIGHT, // 61
0, // 62
0, // 63
0, // 64
0, // 65
STR_ENTRY_EXIT_PLATFORM, // 66
STR_VERTICAL_TOWER, // 67
0, // 68
0, // 69
0, // 70
0, // 71
0, // 72
0, // 73
0, // 74
0, // 75
0, // 76
0, // 77
0, // 78
0, // 79
0, // 80
0, // 81
0, // 82
STR_S_BEND_LEFT, // 83
STR_S_BEND_RIGHT, // 84
0, // 85
0, // 86
STR_HELIX_UP_SMALL, // 87
STR_HELIX_UP_SMALL, // 88
STR_HELIX_DOWN_SMALL, // 89
STR_HELIX_DOWN_SMALL, // 90
STR_HELIX_UP_LARGE, // 91
STR_HELIX_UP_LARGE, // 92
STR_HELIX_DOWN_LARGE, // 93
STR_HELIX_DOWN_LARGE, // 94
0, // 95
0, // 96
0, // 97
0, // 98
STR_BRAKES, // 99
STR_BOOSTER, // 100
0, // 101
STR_HELIX_UP_LARGE, // 102
STR_HELIX_UP_LARGE, // 103
STR_HELIX_DOWN_LARGE, // 104
STR_HELIX_DOWN_LARGE, // 105
STR_HELIX_UP_LEFT, // 106
STR_HELIX_UP_RIGHT, // 107
STR_HELIX_DOWN_LEFT, // 108
STR_HELIX_DOWN_RIGHT, // 109
STR_BASE_SIZE_2_X_2, // 110
STR_BASE_SIZE_4_X_4, // 111
STR_WATERFALLS, // 112
STR_RAPIDS, // 113
STR_ON_RIDE_PHOTO_SECTION, // 114
STR_BASE_SIZE_2_X_4, // 115
STR_BASE_SIZE_5_X_1, // 116
STR_WATER_SPLASH, // 117
0, // 118
0, // 119
STR_WHIRLPOOL, // 120
0, // 121
0, // 122
STR_CABLE_LIFT_HILL, // 123
STR_SLOPE_UP_TO_VERTICAL, // 124
STR_VERTICAL_TRACK, // 125
0, // 126
0, // 127
0, // 128
0, // 129
0, // 130
0, // 131
STR_HOLDING_BRAKE_FOR_DROP, // 132
0, // 133
0, // 134
0, // 135
0, // 136
0, // 137
0, // 138
0, // 139
0, // 140
0, // 141
0, // 142
0, // 143
0, // 144
0, // 145
0, // 146
0, // 147
0, // 148
0, // 149
0, // 150
0, // 151
0, // 152
0, // 153
0, // 154
0, // 155
0, // 156
0, // 157
0, // 158
0, // 159
0, // 160
0, // 161
0, // 162
0, // 163
0, // 164
0, // 165
0, // 166
0, // 167
0, // 168
0, // 169
0, // 170
0, // 171
STR_REVERSER_TURNTABLE, // 172
STR_SPINNING_TUNNEL, // 173
STR_BARREL_ROLL_LEFT, // 174
STR_BARREL_ROLL_RIGHT, // 175
STR_BARREL_ROLL_LEFT, // 176
STR_BARREL_ROLL_RIGHT, // 177
0, // 178
0, // 179
0, // 180
0, // 181
STR_LAUNCHED_LIFT_HILL, // 182
STR_LARGE_HALF_LOOP_LEFT, // 183
STR_LARGE_HALF_LOOP_RIGHT, // 184
STR_LARGE_HALF_LOOP_LEFT, // 185
STR_LARGE_HALF_LOOP_RIGHT, // 186
STR_IN_LINE_TWIST_LEFT, // 187
STR_IN_LINE_TWIST_RIGHT, // 188
STR_IN_LINE_TWIST_LEFT, // 189
STR_IN_LINE_TWIST_RIGHT, // 190
STR_HALF_LOOP, // 191
STR_HALF_LOOP, // 192
STR_HALF_CORKSCREW_LEFT, // 193
STR_HALF_CORKSCREW_RIGHT, // 194
STR_HALF_CORKSCREW_LEFT, // 195
STR_HALF_CORKSCREW_RIGHT, // 196
STR_UPPER_TRANSFER, // 197
STR_LOWER_TRANSFER, // 198
STR_HEARTLINE_ROLL_LEFT, // 199
STR_HEARTLINE_ROLL_RIGHT, // 200
STR_GOLF_HOLE_A, // 201
STR_GOLF_HOLE_B, // 202
STR_GOLF_HOLE_C, // 203
STR_GOLF_HOLE_D, // 204
STR_GOLF_HOLE_E, // 205
STR_QUARTER_LOOP, // 206
STR_QUARTER_LOOP, // 207
STR_QUARTER_LOOP, // 208
STR_CURVED_LIFT_HILL_LEFT, // 209
STR_CURVED_LIFT_HILL_RIGHT, // 210
STR_REVERSER_LEFT, // 211
STR_REVERSER_RIGHT, // 212
STR_TOP_SECTION, // 213
STR_VERTICAL_TRACK, // 214
STR_SLOPE_TO_LEVEL, // 215
STR_BLOCK_BRAKES, // 216
0, // 217
0, // 218
0, // 219
0, // 220
0, // 221
0, // 222
0, // 223
0, // 224
0, // 225
0, // 226
0, // 227
0, // 228
0, // 229
0, // 230
0, // 231
0, // 232
0, // 233
0, // 234
0, // 235
0, // 236
0, // 237
0, // 238
0, // 239
0, // 240
0, // 241
0, // 242
0, // 243
0, // 244
0, // 245
0, // 246
0, // 247
0, // 248
0, // 249
0, // 250
0, // 251
0, // 252
STR_QUARTER_LOOP, // 253
STR_QUARTER_LOOP, // 254
STR_QUARTER_LOOP, // 255
STR_SPINNING_CONTROL_TOGGLE_TRACK, // 256
};
// clang-format on
#pragma endregion

View File

@ -29,15 +29,16 @@ static constexpr const rct_string_id WINDOW_TITLE = STR_NONE;
static constexpr const int32_t WH = 240;
static constexpr const int32_t WW = 340;
// clang-format off
enum {
enum
{
PAGE_RIDES,
PAGE_SHOPS_AND_STALLS,
PAGE_KIOSKS_AND_FACILITIES,
PAGE_COUNT
};
enum WINDOW_RIDE_LIST_WIDGET_IDX {
enum WINDOW_RIDE_LIST_WIDGET_IDX
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -55,6 +56,7 @@ enum WINDOW_RIDE_LIST_WIDGET_IDX {
WIDX_QUICK_DEMOLISH,
};
// clang-format off
static rct_widget window_ride_list_widgets[] = {
WINDOW_SHIM(WINDOW_TITLE, WW, WH),
MakeWidget({ 0, 43}, {340, 197}, WindowWidgetType::Resize, WindowColour::Secondary ), // tab page background
@ -71,24 +73,24 @@ static rct_widget window_ride_list_widgets[] = {
MakeWidget({315, 90}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_DEMOLISH, STR_QUICK_DEMOLISH_RIDE ),
WIDGETS_END,
};
// clang-format on
static bool _quickDemolishMode = false;
static std::vector<ride_id_t> _rideList;
static void window_ride_list_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_ride_list_resize(rct_window *w);
static void window_ride_list_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_list_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_list_update(rct_window *w);
static void window_ride_list_scrollgetsize(rct_window *w, int32_t scrollIndex, int32_t *width, int32_t *height);
static void window_ride_list_scrollmousedown(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_list_scrollmouseover(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_list_invalidate(rct_window *w);
static void window_ride_list_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_ride_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_ride_list_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_ride_list_resize(rct_window* w);
static void window_ride_list_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_ride_list_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_ride_list_update(rct_window* w);
static void window_ride_list_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void window_ride_list_scrollmousedown(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_list_scrollmouseover(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_ride_list_invalidate(rct_window* w);
static void window_ride_list_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_ride_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static rct_window_event_list window_ride_list_events([](auto& events)
{
static rct_window_event_list window_ride_list_events([](auto& events) {
events.mouse_up = &window_ride_list_mouseup;
events.resize = &window_ride_list_resize;
events.mouse_down = &window_ride_list_mousedown;
@ -102,7 +104,8 @@ static rct_window_event_list window_ride_list_events([](auto& events)
events.scroll_paint = &window_ride_list_scrollpaint;
});
enum {
enum
{
INFORMATION_TYPE_STATUS,
INFORMATION_TYPE_POPULARITY,
INFORMATION_TYPE_SATISFACTION,
@ -118,7 +121,7 @@ enum {
INFORMATION_TYPE_RELIABILITY,
INFORMATION_TYPE_DOWN_TIME,
INFORMATION_TYPE_GUESTS_FAVOURITE,
DROPDOWN_LIST_COUNT
DROPDOWN_LIST_COUNT,
};
static constexpr const rct_string_id ride_info_type_string_mapping[DROPDOWN_LIST_COUNT] = {
@ -136,7 +139,7 @@ static constexpr const rct_string_id ride_info_type_string_mapping[DROPDOWN_LIST
STR_QUEUE_TIME,
STR_RELIABILITY,
STR_DOWN_TIME,
STR_GUESTS_FAVOURITE
STR_GUESTS_FAVOURITE,
};
static constexpr const rct_string_id ride_list_statusbar_count_strings[PAGE_COUNT] = {
@ -146,21 +149,21 @@ static constexpr const rct_string_id ride_list_statusbar_count_strings[PAGE_COUN
};
static constexpr const bool ride_info_type_money_mapping[DROPDOWN_LIST_COUNT] = {
false,
false,
false,
true,
false,
true,
false,
false,
true,
true,
false,
false,
false,
false,
false
false, // Status
false, // Popularity
false, // Satisfaction
true, // Profit
false, // Total customers
true, // Total profit
false, // Customers
false, // Age
true, // Income
true, // Running_cost
false, // Queue length
false, // Queue time
false, // Reliability
false, // Down time
false, // Guests favourite
};
static constexpr const rct_string_id page_names[] = {
@ -168,7 +171,6 @@ static constexpr const rct_string_id page_names[] = {
STR_SHOPS_AND_STALLS,
STR_RESTROOMS_AND_INFORMATION_KIOSKS,
};
// clang-format on
static int32_t _window_ride_list_information_type = INFORMATION_TYPE_STATUS;

View File

@ -35,14 +35,15 @@ static constexpr const rct_string_id WINDOW_TITLE = STR_STRINGID;
static constexpr const int32_t WW = 190;
static constexpr const int32_t WH = 180;
// clang-format off
enum WINDOW_STAFF_PAGE {
enum WINDOW_STAFF_PAGE
{
WINDOW_STAFF_OVERVIEW,
WINDOW_STAFF_OPTIONS,
WINDOW_STAFF_STATISTICS,
};
enum WINDOW_STAFF_WIDGET_IDX {
enum WINDOW_STAFF_WIDGET_IDX
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -70,6 +71,7 @@ enum WINDOW_STAFF_WIDGET_IDX {
validate_global_widx(WC_PEEP, WIDX_PATROL);
validate_global_widx(WC_STAFF, WIDX_PICKUP);
// clang-format off
#define MAIN_STAFF_WIDGETS \
WINDOW_SHIM(WINDOW_TITLE, WW, WH), \
MakeWidget({ 0, 43}, {190, 137}, WindowWidgetType::Resize, WindowColour::Secondary), /* Resize */ \
@ -100,63 +102,63 @@ static rct_widget window_staff_options_widgets[] = {
MakeWidget ({WW - 17, 51}, { 11, 10}, WindowWidgetType::Button, WindowColour::Secondary, STR_DROPDOWN_GLYPH, STR_SELECT_COSTUME_TIP), // Costume Dropdown Button
WIDGETS_END,
};
// clang-format on
//0x9AF9F4
// 0x9AF9F4
static rct_widget window_staff_stats_widgets[] = {
MAIN_STAFF_WIDGETS,
WIDGETS_END,
};
static rct_widget *window_staff_page_widgets[] = {
static rct_widget* window_staff_page_widgets[] = {
window_staff_overview_widgets,
window_staff_options_widgets,
window_staff_stats_widgets
window_staff_stats_widgets,
};
static void window_staff_set_page(rct_window* w, int32_t page);
static void window_staff_disable_widgets(rct_window* w);
static void window_staff_unknown_05(rct_window *w);
static void window_staff_unknown_05(rct_window* w);
static void window_staff_viewport_init(rct_window* w);
static void window_staff_overview_close(rct_window *w);
static void window_staff_overview_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_staff_overview_resize(rct_window *w);
static void window_staff_overview_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_staff_overview_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_staff_overview_close(rct_window* w);
static void window_staff_overview_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_staff_overview_resize(rct_window* w);
static void window_staff_overview_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_staff_overview_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_staff_overview_update(rct_window* w);
static void window_staff_overview_invalidate(rct_window *w);
static void window_staff_overview_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_staff_overview_invalidate(rct_window* w);
static void window_staff_overview_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_staff_overview_tool_update(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_staff_overview_tool_down(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_staff_overview_tool_drag(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_staff_overview_tool_up(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_staff_overview_tool_abort(rct_window *w, rct_widgetindex widgetIndex);
static void window_staff_overview_text_input(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_staff_overview_viewport_rotate(rct_window *w);
static void window_staff_follow(rct_window *w);
static void window_staff_overview_tool_abort(rct_window* w, rct_widgetindex widgetIndex);
static void window_staff_overview_text_input(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_staff_overview_viewport_rotate(rct_window* w);
static void window_staff_follow(rct_window* w);
static void window_staff_show_locate_dropdown(rct_window* w, rct_widget* widget);
static void window_staff_options_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_staff_options_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_staff_options_update(rct_window* w);
static void window_staff_options_invalidate(rct_window *w);
static void window_staff_options_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_staff_options_invalidate(rct_window* w);
static void window_staff_options_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_staff_options_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_staff_options_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_staff_options_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_staff_options_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_staff_stats_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_staff_stats_resize(rct_window *w);
static void window_staff_stats_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_staff_stats_resize(rct_window* w);
static void window_staff_stats_update(rct_window* w);
static void window_staff_stats_invalidate(rct_window *w);
static void window_staff_stats_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_staff_stats_invalidate(rct_window* w);
static void window_staff_stats_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi);
void window_staff_set_colours();
// 0x992AEC
static rct_window_event_list window_staff_overview_events([](auto& events)
{
static rct_window_event_list window_staff_overview_events([](auto& events) {
events.close = &window_staff_overview_close;
events.mouse_up = &window_staff_overview_mouseup;
events.resize = &window_staff_overview_resize;
@ -175,8 +177,7 @@ static rct_window_event_list window_staff_overview_events([](auto& events)
});
// 0x992B5C
static rct_window_event_list window_staff_options_events([](auto& events)
{
static rct_window_event_list window_staff_options_events([](auto& events) {
events.mouse_up = &window_staff_options_mouseup;
events.resize = &window_staff_stats_resize;
events.mouse_down = &window_staff_options_mousedown;
@ -188,8 +189,7 @@ static rct_window_event_list window_staff_options_events([](auto& events)
});
// 0x992BCC
static rct_window_event_list window_staff_stats_events([](auto& events)
{
static rct_window_event_list window_staff_stats_events([](auto& events) {
events.mouse_up = &window_staff_stats_mouseup;
events.resize = &window_staff_stats_resize;
events.unknown_05 = &window_staff_unknown_05;
@ -198,12 +198,13 @@ static rct_window_event_list window_staff_stats_events([](auto& events)
events.paint = &window_staff_stats_paint;
});
static rct_window_event_list *window_staff_page_events[] = {
static rct_window_event_list* window_staff_page_events[] = {
&window_staff_overview_events,
&window_staff_options_events,
&window_staff_stats_events
&window_staff_stats_events,
};
// clang-format off
static constexpr const uint32_t window_staff_page_enabled_widgets[] = {
(1ULL << WIDX_CLOSE) |
(1ULL << WIDX_TAB_1) |

View File

@ -21,8 +21,8 @@
#include <openrct2/sprites.h>
#include <openrct2/util/Util.h>
// clang-format off
enum {
enum
{
WINDOW_THEMES_TAB_SETTINGS,
WINDOW_THEMES_TAB_MAIN_UI,
WINDOW_THEMES_TAB_PARK,
@ -35,22 +35,21 @@ enum {
WINDOW_THEMES_TAB_COUNT
};
static void window_themes_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_themes_resize(rct_window *w);
static void window_themes_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_themes_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_themes_update(rct_window *w);
static void window_themes_scrollgetsize(rct_window *w, int32_t scrollIndex, int32_t *width, int32_t *height);
static void window_themes_scrollmousedown(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_themes_scrollmouseover(rct_window *w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_themes_textinput(rct_window *w, rct_widgetindex widgetIndex, char *text);
static void window_themes_invalidate(rct_window *w);
static void window_themes_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_themes_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int32_t scrollIndex);
static void window_themes_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w);
static void window_themes_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_themes_resize(rct_window* w);
static void window_themes_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_themes_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_themes_update(rct_window* w);
static void window_themes_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void window_themes_scrollmousedown(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_themes_scrollmouseover(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_themes_textinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_themes_invalidate(rct_window* w);
static void window_themes_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_themes_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static void window_themes_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w);
static rct_window_event_list window_themes_events([](auto& events)
{
static rct_window_event_list window_themes_events([](auto& events) {
events.mouse_up = &window_themes_mouseup;
events.resize = &window_themes_resize;
events.mouse_down = &window_themes_mousedown;
@ -65,7 +64,8 @@ static rct_window_event_list window_themes_events([](auto& events)
events.scroll_paint = &window_themes_scrollpaint;
});
enum WINDOW_THEMES_WIDGET_IDX {
enum WINDOW_THEMES_WIDGET_IDX
{
WIDX_THEMES_BACKGROUND,
WIDX_THEMES_TITLE,
WIDX_THEMES_CLOSE,
@ -98,6 +98,7 @@ static constexpr const rct_string_id WINDOW_TITLE = STR_THEMES_TITLE;
static constexpr const int32_t WW = 320;
static constexpr const int32_t WH = 107;
// clang-format off
static rct_widget window_themes_widgets[] = {
WINDOW_SHIM(WINDOW_TITLE, WW, WH),
MakeWidget({ 0, 43}, {320, 64}, WindowWidgetType::Resize, WindowColour::Secondary ), // tab content panel
@ -135,7 +136,7 @@ static int32_t window_themes_tab_animation_loops[] = {
32,
8,
14,
38
38,
};
static int32_t window_themes_tab_animation_divisor[] = {
4,
@ -146,7 +147,7 @@ static int32_t window_themes_tab_animation_divisor[] = {
2,
2,
2,
2
2,
};
static int32_t window_themes_tab_sprites[] = {
SPR_TAB_PAINT_0,
@ -157,7 +158,7 @@ static int32_t window_themes_tab_sprites[] = {
SPR_TAB_WRENCH_0,
SPR_TAB_GEARS_0,
SPR_TAB_STAFF_OPTIONS_0,
SPR_TAB_FINANCES_MARKETING_0
SPR_TAB_FINANCES_MARKETING_0,
};
static rct_windowclass window_themes_tab_1_classes[] = {
@ -168,7 +169,7 @@ static rct_windowclass window_themes_tab_1_classes[] = {
WC_TITLE_MENU,
WC_TITLE_EXIT,
WC_TITLE_OPTIONS,
WC_SCENARIO_SELECT
WC_SCENARIO_SELECT,
};
static rct_windowclass window_themes_tab_2_classes[] = {
@ -178,7 +179,7 @@ static rct_windowclass window_themes_tab_2_classes[] = {
WC_RESEARCH,
WC_MAP,
WC_VIEWPORT,
WC_RECENT_NEWS
WC_RECENT_NEWS,
};
static rct_windowclass window_themes_tab_3_classes[] = {
@ -192,7 +193,7 @@ static rct_windowclass window_themes_tab_3_classes[] = {
WC_RIDE_CONSTRUCTION,
WC_TRACK_DESIGN_PLACE,
WC_CONSTRUCT_RIDE,
WC_TRACK_DESIGN_LIST
WC_TRACK_DESIGN_LIST,
};
static rct_windowclass window_themes_tab_4_classes[] = {
@ -202,7 +203,7 @@ static rct_windowclass window_themes_tab_4_classes[] = {
WC_GUEST_LIST,
WC_STAFF,
WC_STAFF_LIST,
WC_BANNER
WC_BANNER,
};
static rct_windowclass window_themes_tab_5_classes[] = {
@ -212,7 +213,7 @@ static rct_windowclass window_themes_tab_5_classes[] = {
WC_EDITOR_OBJECTIVE_OPTIONS,
WC_MAPGEN,
WC_MANAGE_TRACK_DESIGN,
WC_INSTALL_TRACK
WC_INSTALL_TRACK,
};
static rct_windowclass window_themes_tab_6_classes[] = {
@ -242,8 +243,9 @@ static rct_windowclass window_themes_tab_7_classes[] = {
WC_LOADSAVE_OVERWRITE_PROMPT,
WC_NETWORK_STATUS,
};
// clang-format on
static rct_windowclass *window_themes_tab_classes[] = {
static rct_windowclass* window_themes_tab_classes[] = {
nullptr,
window_themes_tab_1_classes,
window_themes_tab_2_classes,
@ -253,7 +255,6 @@ static rct_windowclass *window_themes_tab_classes[] = {
window_themes_tab_6_classes,
window_themes_tab_7_classes,
};
// clang-format on
static uint8_t _selected_tab = 0;
static int16_t _colour_index_1 = -1;

View File

@ -34,7 +34,6 @@
#include <openrct2/world/Surface.h>
#include <openrct2/world/TileInspector.h>
// clang-format off
static constexpr const rct_string_id EntranceTypeStringIds[] = {
STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_ENTRANCE,
STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_EXIT,
@ -44,17 +43,18 @@ static constexpr const rct_string_id EntranceTypeStringIds[] = {
static constexpr const rct_string_id ParkEntrancePartStringIds[] = {
STR_TILE_INSPECTOR_ENTRANCE_MIDDLE,
STR_TILE_INSPECTOR_ENTRANCE_LEFT,
STR_TILE_INSPECTOR_ENTRANCE_RIGHT
STR_TILE_INSPECTOR_ENTRANCE_RIGHT,
};
static constexpr const rct_string_id WallSlopeStringIds[] = {
STR_TILE_INSPECTOR_WALL_FLAT,
STR_TILE_INSPECTOR_WALL_SLOPED_LEFT,
STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT,
STR_TILE_INSPECTOR_WALL_ANIMATION_FRAME
STR_TILE_INSPECTOR_WALL_ANIMATION_FRAME,
};
enum WINDOW_TILE_INSPECTOR_WIDGET_IDX {
enum WINDOW_TILE_INSPECTOR_WIDGET_IDX
{
WIDX_BACKGROUND,
WIDX_TITLE,
WIDX_CLOSE,
@ -180,18 +180,18 @@ constexpr int32_t MIN_WH = 130;
constexpr int32_t MAX_WH = 800;
// Button space for top buttons
constexpr int32_t BW = WW - 5; // Button's right side
constexpr int32_t BX = BW - 23; // Button's left side
constexpr int32_t BY = 17; // Button's Top
constexpr int32_t BH = BY + 23; // Button's Bottom
constexpr int32_t BW = WW - 5; // Button's right side
constexpr int32_t BX = BW - 23; // Button's left side
constexpr int32_t BY = 17; // Button's Top
constexpr int32_t BH = BY + 23; // Button's Bottom
constexpr int32_t BS = 24;
// Column offsets for the table headers
constexpr int32_t COL_X_TYPE = 3; // Type
constexpr int32_t COL_X_BH = COL_X_TYPE + 312; // Base height
constexpr int32_t COL_X_CH = COL_X_BH + 20; // Clearance height
constexpr int32_t COL_X_GF = COL_X_CH + 20; // Ghost flag
constexpr int32_t COL_X_LF = COL_X_GF + 12; // Last for tile flag
constexpr int32_t COL_X_TYPE = 3; // Type
constexpr int32_t COL_X_BH = COL_X_TYPE + 312; // Base height
constexpr int32_t COL_X_CH = COL_X_BH + 20; // Clearance height
constexpr int32_t COL_X_GF = COL_X_CH + 20; // Ghost flag
constexpr int32_t COL_X_LF = COL_X_GF + 12; // Last for tile flag
constexpr int32_t PADDING_BOTTOM = 15;
constexpr int32_t GROUPBOX_PADDING = 6;
@ -200,6 +200,7 @@ constexpr int32_t VERTICAL_GROUPBOX_PADDING = 4;
constexpr int32_t BUTTONW = 130;
constexpr int32_t BUTTONH = 17;
// clang-format off
// Calculates the .left, .right, .top and .bottom for buttons in a group box.
// Buttons are used as reference points for all other widgets in the group boxes.
#define GBBL(col) (12 + col * (BUTTONW + HORIZONTAL_GROUPBOX_PADDING))
@ -387,8 +388,10 @@ static rct_widget *PageWidgets[] = {
BannerWidgets,
CorruptWidgets,
};
// clang-format on
static struct {
static struct
{
// Offsets from the bottom of the window
int16_t details_top_offset, details_bottom_offset;
int16_t properties_top_offset, properties_bottom_offset;
@ -403,10 +406,9 @@ static struct {
{ WALL_GBDT, WALL_GBDB, WALL_GBPT, WALL_GBPB, STR_TILE_INSPECTOR_GROUPBOX_WALL_INFO },
{ LAR_GBDT, LAR_GBDB, LAR_GBPT, LAR_GBPB, STR_TILE_INSPECTOR_GROUPBOX_LARGE_SCENERY_INFO },
{ BAN_GBDT, BAN_GBDB, BAN_GBPT, BAN_GBPB, STR_TILE_INSPECTOR_GROUPBOX_BANNER_INFO },
{ COR_GBDT, COR_GBDB, COR_GBPT, COR_GBPB, STR_TILE_INSPECTOR_GROUPBOX_CORRUPT_INFO }
{ COR_GBDT, COR_GBDB, COR_GBPT, COR_GBPB, STR_TILE_INSPECTOR_GROUPBOX_CORRUPT_INFO },
};
// clang-format on
static constexpr int32_t ViewportInteractionFlags = EnumsToFlags(
ViewportInteractionItem::Terrain, ViewportInteractionItem::Entity, ViewportInteractionItem::Ride,
ViewportInteractionItem::Scenery, ViewportInteractionItem::Footpath, ViewportInteractionItem::FootpathItem,
@ -441,9 +443,7 @@ static void window_tile_inspector_scrollpaint(rct_window* w, rct_drawpixelinfo*
static void window_tile_inspector_set_page(rct_window* w, const TileInspectorPage page);
static void window_tile_inspector_close(rct_window* w);
// clang-format off
static rct_window_event_list TileInspectorWindowEvents([](auto& events)
{
static rct_window_event_list TileInspectorWindowEvents([](auto& events) {
events.mouse_up = &window_tile_inspector_mouseup;
events.resize = &window_tile_inspector_resize;
events.mouse_down = &window_tile_inspector_mousedown;
@ -461,6 +461,7 @@ static rct_window_event_list TileInspectorWindowEvents([](auto& events)
events.close = &window_tile_inspector_close;
});
// clang-format off
static uint64_t PageEnabledWidgets[] = {
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT),
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_SURFACE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_SURFACE_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_SURFACE_BUTTON_REMOVE_FENCES) | (1ULL << WIDX_SURFACE_BUTTON_RESTORE_FENCES) | (1ULL << WIDX_SURFACE_CHECK_CORNER_N) | (1ULL << WIDX_SURFACE_CHECK_CORNER_E) | (1ULL << WIDX_SURFACE_CHECK_CORNER_S) | (1ULL << WIDX_SURFACE_CHECK_CORNER_W) | (1ULL << WIDX_SURFACE_CHECK_DIAGONAL),
@ -2013,10 +2014,12 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
if (sceneryEntry != nullptr && !(sceneryEntry->HasFlag(SMALL_SCENERY_FLAG_FULL_TILE)))
{
int16_t quadrant = tileElement->AsSmallScenery()->GetSceneryQuadrant();
static rct_string_id quadrant_string_idx[] = { STR_TILE_INSPECTOR_SCENERY_QUADRANT_SW,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_NW,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_NE,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_SE };
static constexpr rct_string_id quadrant_string_idx[] = {
STR_TILE_INSPECTOR_SCENERY_QUADRANT_SW,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_NW,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_NE,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_SE,
};
ft = Formatter();
ft.Add<rct_string_id>(quadrant_string_idx[quadrant]);
DrawTextBasic(

View File

@ -35,38 +35,37 @@
using namespace OpenRCT2;
// clang-format off
enum WINDOW_TITLE_EDITOR_TAB {
enum WINDOW_TITLE_EDITOR_TAB
{
WINDOW_TITLE_EDITOR_TAB_PRESETS,
WINDOW_TITLE_EDITOR_TAB_SAVES,
WINDOW_TITLE_EDITOR_TAB_SCRIPT,
WINDOW_TITLE_EDITOR_TAB_COUNT
};
static void window_title_editor_close(rct_window * w);
static void window_title_editor_mouseup(rct_window * w, rct_widgetindex widgetIndex);
static void window_title_editor_resize(rct_window * w);
static void window_title_editor_mousedown(rct_window * w, rct_widgetindex widgetIndex, rct_widget * widget);
static void window_title_editor_dropdown(rct_window * w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_title_editor_update(rct_window * w);
static void window_title_editor_scrollgetsize(rct_window * w, int32_t scrollIndex, int32_t * width, int32_t * height);
static void window_title_editor_scrollmousedown(rct_window * w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_title_editor_scrollmouseover(rct_window * w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_title_editor_textinput(rct_window * w, rct_widgetindex widgetIndex, char * text);
static void window_title_editor_invalidate(rct_window * w);
static void window_title_editor_paint(rct_window * w, rct_drawpixelinfo * dpi);
static void window_title_editor_scrollpaint(rct_window * w, rct_drawpixelinfo * dpi, int32_t scrollIndex);
static void window_title_editor_scrollpaint_saves(rct_window * w, rct_drawpixelinfo * dpi);
static void window_title_editor_scrollpaint_commands(rct_window * w, rct_drawpixelinfo * dpi);
static void window_title_editor_draw_tab_images(rct_drawpixelinfo * dpi, rct_window * w);
static void window_title_editor_close(rct_window* w);
static void window_title_editor_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_title_editor_resize(rct_window* w);
static void window_title_editor_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_title_editor_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_title_editor_update(rct_window* w);
static void window_title_editor_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void window_title_editor_scrollmousedown(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_title_editor_scrollmouseover(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void window_title_editor_textinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static void window_title_editor_invalidate(rct_window* w);
static void window_title_editor_paint(rct_window* w, rct_drawpixelinfo* dpi);
static void window_title_editor_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
static void window_title_editor_scrollpaint_saves(rct_window* w, rct_drawpixelinfo* dpi);
static void window_title_editor_scrollpaint_commands(rct_window* w, rct_drawpixelinfo* dpi);
static void window_title_editor_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w);
static void window_title_editor_load_sequence(size_t index);
static ITitleSequencePlayer * window_title_editor_get_player();
static ITitleSequencePlayer* window_title_editor_get_player();
static bool window_title_editor_check_can_edit();
static void window_title_editor_add_park_callback(int32_t result, const utf8 * path);
static void window_title_editor_rename_park(size_t index, const utf8 * name);
static void window_title_editor_add_park_callback(int32_t result, const utf8* path);
static void window_title_editor_rename_park(size_t index, const utf8* name);
static rct_window_event_list window_title_editor_events([](auto& events)
{
static rct_window_event_list window_title_editor_events([](auto& events) {
events.close = &window_title_editor_close;
events.mouse_up = &window_title_editor_mouseup;
events.resize = &window_title_editor_resize;
@ -82,7 +81,8 @@ static rct_window_event_list window_title_editor_events([](auto& events)
events.scroll_paint = &window_title_editor_scrollpaint;
});
enum WINDOW_TITLE_EDITOR_WIDGET_IDX {
enum WINDOW_TITLE_EDITOR_WIDGET_IDX
{
WIDX_TITLE_EDITOR_BACKGROUND,
WIDX_TITLE_EDITOR_TITLE,
WIDX_TITLE_EDITOR_CLOSE,
@ -110,7 +110,7 @@ enum WINDOW_TITLE_EDITOR_WIDGET_IDX {
WIDX_TITLE_EDITOR_INSERT,
WIDX_TITLE_EDITOR_EDIT,
WIDX_TITLE_EDITOR_DELETE,
//WIDX_TITLE_EDITOR_RELOAD,
// WIDX_TITLE_EDITOR_RELOAD,
WIDX_TITLE_EDITOR_SKIP_TO,
WIDX_TITLE_EDITOR_MOVE_DOWN,
@ -135,6 +135,7 @@ static constexpr const ScreenSize REORDER_BTN = { 36, 14 };
static constexpr int32_t SCROLL_WIDTH = 350;
// clang-format off
static rct_widget window_title_editor_widgets[] = {
WINDOW_SHIM(WINDOW_TITLE, WW, WH),
MakeWidget({ 0, 43}, { 320, 84}, WindowWidgetType::Resize, WindowColour::Secondary ), // tab content panel
@ -173,32 +174,32 @@ static rct_widget window_title_editor_widgets[] = {
MakeWidget ({ 62, 238}, PLAYBACK_BTN, WindowWidgetType::ImgBtn, WindowColour::Secondary, SPR_G2_TITLE_SKIP, STR_TITLE_EDITOR_ACTION_SKIP_TIP ), // Skip
WIDGETS_END,
};
// clang-format on
static size_t _selectedTitleSequence = SIZE_MAX;
static bool _isSequenceReadOnly;
static std::unique_ptr<TitleSequence> _editingTitleSequence;
static const utf8 * _sequenceName;
static const utf8* _sequenceName;
static utf8 * _renameSavePath = nullptr;
static utf8* _renameSavePath = nullptr;
static int16_t _window_title_editor_highlighted_index;
static int32_t window_title_editor_tab_animation_loops[] = {
64,
1,
28
28,
};
static int32_t window_title_editor_tab_animation_divisor[] = {
4,
1,
4
4,
};
static int32_t window_title_editor_tab_sprites[] = {
SPR_TAB_RIDE_0,
SPR_FLOPPY,
SPR_TAB_STATS_0
SPR_TAB_STATS_0,
};
// clang-format on
void window_title_editor_open(int32_t tab)
{

View File

@ -70,8 +70,8 @@
using namespace OpenRCT2;
using namespace OpenRCT2::Ui;
// clang-format off
enum {
enum
{
WIDX_PAUSE,
WIDX_FILE_MENU,
WIDX_MUTE,
@ -110,7 +110,8 @@ validate_global_widx(WC_TOP_TOOLBAR, WIDX_WATER);
validate_global_widx(WC_TOP_TOOLBAR, WIDX_SCENERY);
validate_global_widx(WC_TOP_TOOLBAR, WIDX_PATH);
enum FILE_MENU_DDIDX {
enum FILE_MENU_DDIDX
{
DDIDX_NEW_GAME = 0,
DDIDX_LOAD_GAME = 1,
DDIDX_SAVE_GAME = 2,
@ -128,7 +129,8 @@ enum FILE_MENU_DDIDX {
DDIDX_EXIT_OPENRCT2 = 14,
};
enum TOP_TOOLBAR_VIEW_MENU_DDIDX {
enum TOP_TOOLBAR_VIEW_MENU_DDIDX
{
DDIDX_UNDERGROUND_INSIDE = 0,
DDIDX_TRANSPARENT_WATER = 1,
DDIDX_HIDE_BASE = 2,
@ -147,24 +149,27 @@ enum TOP_TOOLBAR_VIEW_MENU_DDIDX {
DDIDX_VIEW_CLIPPING = 15,
DDIDX_HIGHLIGHT_PATH_ISSUES = 16,
TOP_TOOLBAR_VIEW_MENU_COUNT
TOP_TOOLBAR_VIEW_MENU_COUNT,
};
enum TOP_TOOLBAR_DEBUG_DDIDX {
enum TOP_TOOLBAR_DEBUG_DDIDX
{
DDIDX_CONSOLE = 0,
DDIDX_DEBUG_PAINT = 1,
TOP_TOOLBAR_DEBUG_COUNT
TOP_TOOLBAR_DEBUG_COUNT,
};
enum TOP_TOOLBAR_NETWORK_DDIDX {
enum TOP_TOOLBAR_NETWORK_DDIDX
{
DDIDX_MULTIPLAYER = 0,
DDIDX_MULTIPLAYER_RECONNECT = 1,
TOP_TOOLBAR_NETWORK_COUNT
TOP_TOOLBAR_NETWORK_COUNT,
};
enum {
enum
{
DDIDX_CHEATS,
DDIDX_TILE_INSPECTOR = 1,
DDIDX_OBJECT_SELECTION = 2,
@ -176,21 +181,24 @@ enum {
DDIDX_DISABLE_CLEARANCE_CHECKS = 8,
DDIDX_DISABLE_SUPPORT_LIMITS = 9,
TOP_TOOLBAR_CHEATS_COUNT
TOP_TOOLBAR_CHEATS_COUNT,
};
enum {
enum
{
DDIDX_SHOW_MAP,
DDIDX_OPEN_VIEWPORT,
};
enum {
enum
{
DDIDX_ROTATE_CLOCKWISE,
DDIDX_ROTATE_ANTI_CLOCKWISE,
};
#pragma region Toolbar_widget_ordering
// clang-format off
// from left to right
static constexpr const int32_t left_aligned_widgets_order[] = {
WIDX_PAUSE,
@ -209,7 +217,6 @@ static constexpr const int32_t left_aligned_widgets_order[] = {
WIDX_ROTATE,
WIDX_VIEW_MENU,
WIDX_MAP,
};
// from right to left
@ -229,7 +236,7 @@ static constexpr const int32_t right_aligned_widgets_order[] = {
WIDX_SCENERY,
WIDX_WATER,
WIDX_LAND,
WIDX_CLEAR_SCENERY
WIDX_CLEAR_SCENERY,
};
#pragma endregion
@ -264,20 +271,20 @@ static rct_widget window_top_toolbar_widgets[] = {
MakeWidget ({ 0, 0}, {10, 1}, WindowWidgetType::Empty, WindowColour::Primary ), // Artificial widget separator
WIDGETS_END,
};
// clang-format on
static void window_top_toolbar_mouseup(rct_window *w, rct_widgetindex widgetIndex);
static void window_top_toolbar_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_top_toolbar_dropdown(rct_window *w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_top_toolbar_mouseup(rct_window* w, rct_widgetindex widgetIndex);
static void window_top_toolbar_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void window_top_toolbar_dropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void window_top_toolbar_tool_update(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_top_toolbar_tool_down(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_top_toolbar_tool_drag(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoords);
static void window_top_toolbar_tool_up(rct_window* w, rct_widgetindex widgetIndex, const ScreenCoordsXY& screenCoordsy);
static void window_top_toolbar_tool_abort(rct_window *w, rct_widgetindex widgetIndex);
static void window_top_toolbar_invalidate(rct_window *w);
static void window_top_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi);
static void window_top_toolbar_tool_abort(rct_window* w, rct_widgetindex widgetIndex);
static void window_top_toolbar_invalidate(rct_window* w);
static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi);
static rct_window_event_list window_top_toolbar_events([](auto& events)
{
static rct_window_event_list window_top_toolbar_events([](auto& events) {
events.mouse_up = &window_top_toolbar_mouseup;
events.mouse_down = &window_top_toolbar_mousedown;
events.dropdown = &window_top_toolbar_dropdown;
@ -289,7 +296,6 @@ static rct_window_event_list window_top_toolbar_events([](auto& events)
events.invalidate = &window_top_toolbar_invalidate;
events.paint = &window_top_toolbar_paint;
});
// clang-format on
static void top_toolbar_init_view_menu(rct_window* window, rct_widget* widget);
static void top_toolbar_view_menu_dropdown(int16_t dropdownIndex);

View File

@ -20,7 +20,9 @@
#endif
[[maybe_unused]] static bool _log_location_enabled = true;
bool _log_levels[static_cast<uint8_t>(DiagnosticLevel::Count)] = { true, true, true, false, true };
bool _log_levels[static_cast<uint8_t>(DiagnosticLevel::Count)] = {
true, true, true, false, true,
};
static FILE* diagnostic_get_stream(DiagnosticLevel level)
{
@ -36,9 +38,9 @@ static FILE* diagnostic_get_stream(DiagnosticLevel level)
#ifdef __ANDROID__
int _android_log_priority[static_cast<uint8_t>(DiagnosticLevel::Count)] = { ANDROID_LOG_FATAL, ANDROID_LOG_ERROR,
ANDROID_LOG_WARN, ANDROID_LOG_VERBOSE,
ANDROID_LOG_INFO };
int _android_log_priority[static_cast<uint8_t>(DiagnosticLevel::Count)] = {
ANDROID_LOG_FATAL, ANDROID_LOG_ERROR, ANDROID_LOG_WARN, ANDROID_LOG_VERBOSE, ANDROID_LOG_INFO,
};
void diagnostic_log(DiagnosticLevel diagnosticLevel, const char* format, ...)
{

View File

@ -24,7 +24,10 @@ private:
MapRange _range;
LandBuyRightSetting _setting{ LandBuyRightSetting::Count };
constexpr static rct_string_id _ErrorTitles[] = { STR_CANT_BUY_LAND, STR_CANT_BUY_CONSTRUCTION_RIGHTS_HERE };
constexpr static rct_string_id _ErrorTitles[] = {
STR_CANT_BUY_LAND,
STR_CANT_BUY_CONSTRUCTION_RIGHTS_HERE,
};
public:
LandBuyRightsAction() = default;

View File

@ -19,7 +19,10 @@ private:
uint8_t _selectionType{};
bool _isLowering{};
constexpr static rct_string_id _ErrorTitles[] = { STR_CANT_LOWER_LAND_HERE, STR_CANT_RAISE_LAND_HERE };
constexpr static rct_string_id _ErrorTitles[] = {
STR_CANT_LOWER_LAND_HERE,
STR_CANT_RAISE_LAND_HERE,
};
public:
LandSmoothAction() = default;

View File

@ -25,7 +25,12 @@ private:
ParkParameter _parameter{ ParkParameter::Count };
uint64_t _value{};
constexpr static rct_string_id _ErrorTitles[] = { STR_CANT_CLOSE_PARK, STR_CANT_OPEN_PARK, STR_NONE, STR_NONE };
constexpr static rct_string_id _ErrorTitles[] = {
STR_CANT_CLOSE_PARK,
STR_CANT_OPEN_PARK,
STR_NONE,
STR_NONE,
};
public:
ParkSetParameterAction() = default;

View File

@ -25,9 +25,11 @@
#include "../util/Util.h"
#include "../world/Park.h"
constexpr static rct_string_id SetVehicleTypeErrorTitle[] = { STR_RIDE_SET_VEHICLE_SET_NUM_TRAINS_FAIL,
STR_RIDE_SET_VEHICLE_SET_NUM_CARS_PER_TRAIN_FAIL,
STR_RIDE_SET_VEHICLE_TYPE_FAIL };
constexpr static rct_string_id SetVehicleTypeErrorTitle[] = {
STR_RIDE_SET_VEHICLE_SET_NUM_TRAINS_FAIL,
STR_RIDE_SET_VEHICLE_SET_NUM_CARS_PER_TRAIN_FAIL,
STR_RIDE_SET_VEHICLE_TYPE_FAIL,
};
RideSetVehicleAction::RideSetVehicleAction(ride_id_t rideIndex, RideSetVehicleType type, uint8_t value, uint8_t colour)
: _rideIndex(rideIndex)

View File

@ -110,7 +110,7 @@ thread_local uint8_t gPeepPalette[256] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
};
/** rct2: 0x009ABF0C */
@ -130,12 +130,12 @@ thread_local uint8_t gOtherPalette[256] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
};
// Originally 0x9ABE04
uint8_t text_palette[0x8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
enum

View File

@ -19,7 +19,11 @@
#include <iterator>
#include <unordered_map>
static constexpr const int32_t SpriteFontLineHeight[FONT_SIZE_COUNT] = { 6, 10, 10 };
static constexpr const int32_t SpriteFontLineHeight[FONT_SIZE_COUNT] = {
6,
10,
10,
};
static uint8_t _spriteFontCharacterWidths[FONT_SIZE_COUNT][FONT_SPRITE_GLYPH_COUNT];
static uint8_t _additionalSpriteFontCharacterWidth[FONT_SIZE_COUNT][SPR_G2_GLYPH_COUNT] = {};

View File

@ -511,13 +511,13 @@ static constexpr const uint16_t PatternInverse[] = {
0b0000011111111000,
0b0000001111111100,
0b0000000111111110,
0b0000000011111111
0b0000000011111111,
};
/** rct2: 0x0097FEFC */
static constexpr const uint16_t * Patterns[] = {
static constexpr const uint16_t* Patterns[] = {
Pattern,
PatternInverse
PatternInverse,
};
// clang-format on

View File

@ -1774,6 +1774,7 @@ static constexpr const utf8* console_variable_table[] = {
"cheat_disable_support_limits",
"current_rotation",
};
static constexpr const utf8* console_window_table[] = {
"object_selection",
"inventions_list",
@ -1781,8 +1782,9 @@ static constexpr const utf8* console_window_table[] = {
"objective_options",
"options",
"themes",
"title_sequences"
"title_sequences",
};
// clang-format on
static constexpr const console_command console_command_table[] = {
{ "abort", cc_abort, "Calls std::abort(), for testing purposes only.", "abort" },
@ -1797,19 +1799,22 @@ static constexpr const console_command console_command_table[] = {
{ "get", cc_get, "Gets the value of the specified variable.", "get <variable>" },
{ "help", cc_help, "Lists commands or info about a command.", "help [command]" },
{ "hide", cc_hide, "Hides the console.", "hide" },
{ "load_object", cc_load_object, "Loads the object file into the scenario.\n"
"Loading a scenery group will not load its associated objects.\n"
"This is a safer method opposed to \"open object_selection\".",
"load_object <objectfilenodat>" },
{ "load_object", cc_load_object,
"Loads the object file into the scenario.\n"
"Loading a scenery group will not load its associated objects.\n"
"This is a safer method opposed to \"open object_selection\".",
"load_object <objectfilenodat>" },
{ "load_park", cc_load_park, "Load park from save directory or by absolute path", "load_park <filename>" },
{ "object_count", cc_object_count, "Shows the number of objects of each type in the scenario.", "object_count" },
{ "open", cc_open, "Opens the window with the give name.", "open <window>." },
{ "quit", cc_close, "Closes the console.", "quit" },
{ "remove_park_fences", cc_remove_park_fences, "Removes all park fences from the surface", "remove_park_fences" },
{ "remove_unused_objects", cc_remove_unused_objects, "Removes all the unused objects from the object selection.", "remove_unused_objects" },
{ "remove_floating_objects", cc_remove_floating_objects, "Removes floating objects", "remove_floating_objects"},
{ "remove_unused_objects", cc_remove_unused_objects, "Removes all the unused objects from the object selection.",
"remove_unused_objects" },
{ "remove_floating_objects", cc_remove_floating_objects, "Removes floating objects", "remove_floating_objects" },
{ "rides", cc_rides, "Ride management.", "rides <subcommand>" },
{ "save_park", cc_save_park, "Save current state of park. If no name specified default path will be used.", "save_park [name]" },
{ "save_park", cc_save_park, "Save current state of park. If no name specified default path will be used.",
"save_park [name]" },
{ "say", cc_say, "Say to other players.", "say <message>" },
{ "set", cc_set, "Sets the variable to the specified value.", "set <variable> <value>" },
{ "show_limits", cc_show_limits, "Shows the map data counts and limits.", "show_limits" },
@ -1817,15 +1822,15 @@ static constexpr const console_command console_command_table[] = {
{ "terminate", cc_terminate, "Calls std::terminate(), for testing purposes only.", "terminate" },
{ "variables", cc_variables, "Lists all the variables that can be used with get and sometimes set.", "variables" },
{ "windows", cc_windows, "Lists all the windows that can be opened.", "windows" },
{ "replay_startrecord", cc_replay_startrecord, "Starts recording a new replay.", "replay_startrecord <name> [max_ticks]"},
{ "replay_stoprecord", cc_replay_stoprecord, "Stops recording a new replay.", "replay_stoprecord"},
{ "replay_start", cc_replay_start, "Starts a replay", "replay_start <name>"},
{ "replay_stop", cc_replay_stop, "Stops the replay", "replay_stop"},
{ "replay_normalise", cc_replay_normalise, "Normalises the replay to remove all gaps", "replay_normalise <input file> <output file>"},
{ "mp_desync", cc_mp_desync, "Forces a multiplayer desync", "cc_mp_desync [desync_type, 0 = Random t-shirt color on random guest, 1 = Remove random guest ]"},
{ "replay_startrecord", cc_replay_startrecord, "Starts recording a new replay.", "replay_startrecord <name> [max_ticks]" },
{ "replay_stoprecord", cc_replay_stoprecord, "Stops recording a new replay.", "replay_stoprecord" },
{ "replay_start", cc_replay_start, "Starts a replay", "replay_start <name>" },
{ "replay_stop", cc_replay_stop, "Stops the replay", "replay_stop" },
{ "replay_normalise", cc_replay_normalise, "Normalises the replay to remove all gaps",
"replay_normalise <input file> <output file>" },
{ "mp_desync", cc_mp_desync, "Forces a multiplayer desync",
"cc_mp_desync [desync_type, 0 = Random t-shirt color on random guest, 1 = Remove random guest ]" },
};
// clang-format on
static int32_t cc_windows(InteractiveConsole& console, [[maybe_unused]] const arguments_t& argv)
{

View File

@ -19,23 +19,23 @@ uint16_t gDateMonthTicks;
int32_t gDateMonthsElapsed;
// rct2: 0x00993988
const int16_t days_in_month[MONTH_COUNT] = { 31, 30, 31, 30, 31, 31, 30, 31 };
const int16_t days_in_month[MONTH_COUNT] = {
31, 30, 31, 30, 31, 31, 30, 31,
};
// clang-format off
const rct_string_id DateFormatStringIds[] = {
STR_DATE_FORMAT_DAY_MONTH_YEAR,
STR_DATE_FORMAT_MONTH_DAY_YEAR,
STR_DATE_FORMAT_YEAR_MONTH_DAY,
STR_DATE_FORMAT_YEAR_DAY_MONTH
STR_DATE_FORMAT_YEAR_DAY_MONTH,
};
const rct_string_id DateFormatStringFormatIds[] = {
STR_DATE_FORMAT_DMY,
STR_DATE_FORMAT_MDY,
STR_DATE_FORMAT_YMD,
STR_DATE_FORMAT_YDM
STR_DATE_FORMAT_YDM,
};
// clang-format on
openrct2_timeofday gRealTimeOfDay;

View File

@ -392,8 +392,9 @@ void format_string_to_upper(utf8* dest, size_t size, rct_string_id format, const
void format_readable_size(char* buf, size_t bufSize, uint64_t sizeBytes)
{
constexpr uint32_t SizeTable[] = { STR_SIZE_BYTE, STR_SIZE_KILOBYTE, STR_SIZE_MEGABYTE, STR_SIZE_GIGABYTE,
STR_SIZE_TERABYTE };
constexpr uint32_t SizeTable[] = {
STR_SIZE_BYTE, STR_SIZE_KILOBYTE, STR_SIZE_MEGABYTE, STR_SIZE_GIGABYTE, STR_SIZE_TERABYTE,
};
double size = sizeBytes;
size_t idx = 0;

View File

@ -9,11 +9,11 @@
#include "Localisation.h"
// clang-format off
const char real_name_initials[] = {
'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W'
'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W',
};
// clang-format off
// The peep sorter assumes this array is alphabetically ordered
const char *real_names[] = {
"Aaron",
@ -1039,6 +1039,6 @@ const char *real_names[] = {
"Yvonne",
"Zachary",
"Zachery",
"Zola"
"Zola",
};
// clang-format on

View File

@ -469,8 +469,12 @@ static bool award_is_deserved_best_custom_designed_rides(int32_t activeAwardType
static bool award_is_deserved_most_dazzling_ride_colours(int32_t activeAwardTypes)
{
/** At least 5 colourful rides and more than half of the rides are colourful. */
static constexpr const colour_t dazzling_ride_colours[] = { COLOUR_BRIGHT_PURPLE, COLOUR_BRIGHT_GREEN, COLOUR_LIGHT_ORANGE,
COLOUR_BRIGHT_PINK };
static constexpr const colour_t dazzling_ride_colours[] = {
COLOUR_BRIGHT_PURPLE,
COLOUR_BRIGHT_GREEN,
COLOUR_LIGHT_ORANGE,
COLOUR_BRIGHT_PINK,
};
if (activeAwardTypes & EnumToFlag(ParkAward::MostDisappointing))
return false;

View File

@ -841,7 +841,9 @@ void NetworkBase::ServerClientDisconnected()
std::string NetworkBase::GenerateAdvertiseKey()
{
// Generate a string of 16 random hex characters (64-integer key as a hex formatted string)
static char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
static char hexChars[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
};
char key[17];
for (int32_t i = 0; i < 16; i++)
{

View File

@ -22,7 +22,6 @@
#include <cstring>
// 98DA00
// clang-format off
int32_t object_entry_group_counts[] = {
MAX_RIDE_OBJECTS, // rides
MAX_SMALL_SCENERY_OBJECTS, // small scenery
@ -45,6 +44,7 @@ int32_t object_entry_group_counts[] = {
static_assert(std::size(object_entry_group_counts) == EnumValue(ObjectType::Count));
// 98DA2C
// clang-format off
int32_t object_entry_group_encoding[] = {
CHUNK_ENCODING_RLE,
CHUNK_ENCODING_RLE,
@ -56,7 +56,7 @@ int32_t object_entry_group_encoding[] = {
CHUNK_ENCODING_RLE,
CHUNK_ENCODING_RLE,
CHUNK_ENCODING_RLE,
CHUNK_ENCODING_ROTATE
CHUNK_ENCODING_ROTATE,
};
// clang-format on

View File

@ -212,8 +212,11 @@ template<uint8_t direction> void PaintSessionGenerateRotate(paint_session* sessi
uint16_t numVerticalTiles = (session->DPI.height + 2128) >> 5;
// Adjacent tiles to also check due to overlapping of sprites
constexpr CoordsXY adjacentTiles[] = { CoordsXY{ -32, 32 }.Rotate(direction), CoordsXY{ 0, 32 }.Rotate(direction),
CoordsXY{ 32, 0 }.Rotate(direction) };
constexpr CoordsXY adjacentTiles[] = {
CoordsXY{ -32, 32 }.Rotate(direction),
CoordsXY{ 0, 32 }.Rotate(direction),
CoordsXY{ 32, 0 }.Rotate(direction),
};
constexpr CoordsXY nextVerticalTile = CoordsXY{ 32, 32 }.Rotate(direction);
for (; numVerticalTiles > 0; --numVerticalTiles)

View File

@ -20,15 +20,15 @@
/** rct2: 0x0097AF20, 0x0097AF21 */
// clang-format off
static constexpr const CoordsXY SupportBoundBoxes[] = {
{4, 4},
{28, 4},
{4, 28},
{28, 28},
{16, 16},
{16, 4},
{4, 16},
{28, 16},
{16, 28}
{ 4, 4 },
{ 28, 4 },
{ 4, 28 },
{ 28, 28 },
{ 16, 16 },
{ 16, 4 },
{ 4, 16 },
{ 28, 16 },
{ 16, 28 },
};
/** rct2: 0x0097AF32 */
@ -76,14 +76,14 @@ static constexpr const uint8_t _97AF32[] = {
/** rct2: 0x0097B052, 0x0097B053 */
static constexpr const CoordsXY loc_97B052[] = {
{-15, -1},
{0, -2},
{-2, -1},
{-1, -15},
{-26, -1},
{0, -2},
{-2, -1},
{-1, -26}
{ -15, -1 },
{ 0, -2 },
{ -2, -1 },
{ -1, -15 },
{ -26, -1 },
{ 0, -2 },
{ -2, -1 },
{ -1, -26 },
};
/** rct2: 0x0097B062, 0x0097B063 */
@ -399,7 +399,7 @@ static constexpr const unk_supports_desc byte_97B23C[] = {
{{{0, 0, 0}, {1, 1, 8}}, 0, 1}, // Steep to flat large 4
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1}
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
};
/* 0x0098D8D4 */

View File

@ -39,51 +39,42 @@ using namespace OpenRCT2;
bool gPaintWidePathsAsGhost = false;
// clang-format off
const uint8_t PathSlopeToLandSlope[] =
{
const uint8_t PathSlopeToLandSlope[] = {
TILE_ELEMENT_SLOPE_SW_SIDE_UP,
TILE_ELEMENT_SLOPE_NW_SIDE_UP,
TILE_ELEMENT_SLOPE_NE_SIDE_UP,
TILE_ELEMENT_SLOPE_SE_SIDE_UP
TILE_ELEMENT_SLOPE_SE_SIDE_UP,
};
static constexpr const uint8_t byte_98D6E0[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
0, 1, 2, 20, 4, 5, 6, 22, 8, 9, 10, 26, 12, 13, 14, 36,
0, 1, 2, 3, 4, 5, 21, 23, 8, 9, 10, 11, 12, 13, 33, 37,
0, 1, 2, 3, 4, 5, 6, 24, 8, 9, 10, 11, 12, 13, 14, 38,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 29, 30, 34, 39,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 40,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 35, 41,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 42,
0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 10, 27, 12, 31, 14, 43,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 28, 12, 13, 14, 44,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 45,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 46,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 32, 14, 47,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 48,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 49,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 50
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 20, 4, 5, 6, 22, 8, 9, 10, 26, 12, 13, 14, 36,
0, 1, 2, 3, 4, 5, 21, 23, 8, 9, 10, 11, 12, 13, 33, 37, 0, 1, 2, 3, 4, 5, 6, 24, 8, 9, 10, 11, 12, 13, 14, 38,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 29, 30, 34, 39, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 40,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 35, 41, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 42,
0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 10, 27, 12, 31, 14, 43, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 28, 12, 13, 14, 44,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 45, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 46,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 32, 14, 47, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 48,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 49, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 50,
};
// clang-format off
static constexpr const int16_t stru_98D804[][4] = {
{3, 3, 26, 26},
{0, 3, 29, 26},
{3, 3, 26, 29},
{0, 3, 29, 29},
{3, 3, 29, 26},
{0, 3, 32, 26},
{3, 3, 29, 29},
{0, 3, 32, 29},
{3, 0, 26, 29},
{0, 0, 29, 29},
{3, 0, 26, 32},
{0, 0, 29, 32},
{3, 0, 29, 29},
{0, 0, 32, 29},
{3, 0, 29, 32},
{0, 0, 32, 32},
{ 3, 3, 26, 26 },
{ 0, 3, 29, 26 },
{ 3, 3, 26, 29 },
{ 0, 3, 29, 29 },
{ 3, 3, 29, 26 },
{ 0, 3, 32, 26 },
{ 3, 3, 29, 29 },
{ 0, 3, 32, 29 },
{ 3, 0, 26, 29 },
{ 0, 0, 29, 29 },
{ 3, 0, 26, 32 },
{ 0, 0, 29, 32 },
{ 3, 0, 29, 29 },
{ 0, 0, 32, 29 },
{ 3, 0, 29, 32 },
{ 0, 0, 32, 32 },
};
static constexpr const uint8_t byte_98D8A4[] = {

View File

@ -35,13 +35,8 @@
#include <cstring>
#include <iterator>
// clang-format off
static constexpr const uint8_t byte_97B444[] =
{
0, 2, 1, 3, 8, 10, 9, 11, 4, 6,
5, 7, 12, 14, 13, 15, 0, 0, 0, 0,
0, 0, 0, 17, 0, 0, 0, 16, 0, 18,
15, 0
static constexpr const uint8_t byte_97B444[] = {
0, 2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 16, 0, 18, 15, 0,
};
// rct2: 0x97B464, 0x97B474, 0x97B484, 0x97B494
@ -50,26 +45,26 @@ static constexpr const CoordsXY viewport_surface_paint_data[][4] = {
{ 32, 0 },
{ -32, 32 },
{ -64, -32 },
{ 0, -64 }
{ 0, -64 },
},
{
{ 0, 32 },
{ -64, 0 },
{ -32, -64 },
{ 32, -32 }
{ 32, -32 },
},
{
{ 0, -32 },
{ 0, 0 },
{ -32, 0 },
{ -32, -32 }
{ -32, -32 },
},
{
{ -32, 0 },
{ -32, -32 },
{ 0, -32 },
{ 0, 0 }
}
{ 0, 0 },
},
};
enum
@ -88,11 +83,12 @@ struct corner_height
uint8_t left;
};
// clang-format off
/**
* rct2: 0x0097B4A4 (R), 0x0097B4C4 (T), 0x0097B4E4 (L), 0x0097B504 (B)
*/
static constexpr const corner_height corner_heights[] = {
// T R B L
// T R B L
{ 0, 0, 0, 0 },
{ 0, 0, 1, 0 },
{ 0, 0, 0, 1 },
@ -130,25 +126,25 @@ static constexpr const corner_height corner_heights[] = {
// bottom left tint
static constexpr const uint8_t byte_97B524[] = {
2, 5, 1, 4, 2, 5, 1, 2, 2, 4,
1, 2, 1, 3, 0, 3, 1, 5, 0
1, 2, 1, 3, 0, 3, 1, 5, 0,
};
// top left tint
static constexpr const uint32_t byte_97B537[] = {
2, 5, 2, 4, 2, 5, 1, 1, 3, 4,
3, 2, 1, 2, 0, 3, 1, 5, 0
3, 2, 1, 2, 0, 3, 1, 5, 0,
};
// top right tint
static constexpr const uint8_t byte_97B54A[] = {
2, 2, 2, 4, 0, 0, 1, 1, 3, 4,
3, 5, 1, 2, 2, 3, 1, 5, 0
3, 5, 1, 2, 2, 3, 1, 5, 0,
};
// bottom right tint
static constexpr const uint8_t byte_97B55D[] = {
2, 2, 1, 4, 0, 0, 1, 2, 2, 4,
1, 5, 1, 3, 2, 3, 1, 5, 0
1, 5, 1, 3, 2, 3, 1, 5, 0,
};
static constexpr const uint8_t _tunnelHeights[TUNNEL_TYPE_COUNT][2] = {
@ -203,23 +199,20 @@ static constexpr const int16_t _boundBoxZOffsets[TUNNEL_TYPE_COUNT] = {
0,
};
// clang-format on
// tunnel offset
static constexpr const uint8_t byte_97B5B0[TUNNEL_TYPE_COUNT] = {
0, 0, 0, 3, 3, 3, 6, 6, 6, 6,
10, 11, 12, 13, 14, 14,
16, 17, 18, 19, 20, 21, 22
0, 0, 0, 3, 3, 3, 6, 6, 6, 6, 10, 11, 12, 13, 14, 14, 16, 17, 18, 19, 20, 21, 22,
};
static constexpr const uint8_t byte_97B740[] =
{
0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
0, 3, 0, 1, 4, 0
static constexpr const uint8_t byte_97B740[] = {
0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 1, 4, 0,
};
struct tile_descriptor
{
TileCoordsXY tile_coords;
const TileElement * tile_element;
const TileElement* tile_element;
uint8_t terrain;
uint8_t slope;
corner_height corner_heights;
@ -227,20 +220,23 @@ struct tile_descriptor
struct tile_surface_boundary_data
{
int32_t bit_1;
int32_t bit_8;
int32_t bit_4;
int32_t bit_2;
int32_t bit_1;
int32_t bit_8;
int32_t bit_4;
int32_t bit_2;
uint32_t image[5];
CoordsXY offset;
CoordsXY box_offset;
CoordsXY box_size;
};
static constexpr const tile_surface_boundary_data _tileSurfaceBoundaries[4] =
{
{ // Bottom right
1, 8, 4, 2,
static constexpr const tile_surface_boundary_data _tileSurfaceBoundaries[4] = {
{
// Bottom right
1,
8,
4,
2,
{
SPR_TERRAIN_BOUNDARY_FENCES_1,
SPR_TERRAIN_BOUNDARY_FENCES_5,
@ -249,11 +245,15 @@ static constexpr const tile_surface_boundary_data _tileSurfaceBoundaries[4] =
SPR_TERRAIN_BOUNDARY_FENCES_5,
},
{ 1, 31 },
{ 1, 31 },
{ 30, 1 }
{ 1, 31 },
{ 30, 1 },
},
{ // Bottom left
1, 2, 4, 8,
{
// Bottom left
1,
2,
4,
8,
{
SPR_TERRAIN_BOUNDARY_FENCES_2,
SPR_TERRAIN_BOUNDARY_FENCES_6,
@ -262,11 +262,15 @@ static constexpr const tile_surface_boundary_data _tileSurfaceBoundaries[4] =
SPR_TERRAIN_BOUNDARY_FENCES_6,
},
{ 31, 0 },
{ 31, 1 },
{ 1, 30 }
{ 31, 1 },
{ 1, 30 },
},
{ // Top left
4, 2, 8, 1,
{
// Top left
4,
2,
8,
1,
{
SPR_TERRAIN_BOUNDARY_FENCES_1,
SPR_TERRAIN_BOUNDARY_FENCES_3,
@ -275,11 +279,15 @@ static constexpr const tile_surface_boundary_data _tileSurfaceBoundaries[4] =
SPR_TERRAIN_BOUNDARY_FENCES_5,
},
{ 1, 0 },
{ 1, 1 },
{ 30, 1 }
{ 1, 1 },
{ 30, 1 },
},
{ // Top right
4, 8, 2, 1,
{
// Top right
4,
8,
2,
1,
{
SPR_TERRAIN_BOUNDARY_FENCES_2,
SPR_TERRAIN_BOUNDARY_FENCES_4,
@ -288,11 +296,10 @@ static constexpr const tile_surface_boundary_data _tileSurfaceBoundaries[4] =
SPR_TERRAIN_BOUNDARY_FENCES_6,
},
{ 1, 1 },
{ 1, 1 },
{ 1, 30 }
{ 1, 1 },
{ 1, 30 },
},
};
// clang-format on
static const TerrainSurfaceObject* get_surface_object(size_t index)
{

View File

@ -404,8 +404,9 @@ void paint_util_force_set_general_support_height(paint_session* session, int16_t
session->Support.slope = slope;
}
const uint16_t segment_offsets[9] = { SEGMENT_B4, SEGMENT_B8, SEGMENT_BC, SEGMENT_C0, SEGMENT_C4,
SEGMENT_C8, SEGMENT_CC, SEGMENT_D0, SEGMENT_D4 };
const uint16_t segment_offsets[9] = {
SEGMENT_B4, SEGMENT_B8, SEGMENT_BC, SEGMENT_C0, SEGMENT_C4, SEGMENT_C8, SEGMENT_CC, SEGMENT_D0, SEGMENT_D4,
};
void paint_util_set_segment_support_height(paint_session* session, int32_t segments, uint16_t height, uint8_t slope)
{

View File

@ -163,7 +163,10 @@ static constexpr const CoordsXY _WatchingPositionOffsets[] = {
};
static constexpr const ride_rating NauseaMaximumThresholds[] = {
300, 600, 800, 1000
300,
600,
800,
1000,
};
/** rct2: 009823AC */
@ -210,8 +213,9 @@ static constexpr const char *gPeepEasterEggNames[] = {
"KATIE SMITH",
"EILIDH BELL",
"NANCY STILLWAGON",
"DAVID ELLIS"
"DAVID ELLIS",
};
// clang-format on
// Flags used by PeepThoughtToActionMap
enum PeepThoughtToActionFlag : uint8_t
@ -406,9 +410,11 @@ static struct
// These arrays contain the base minimum and maximum nausea ratings for peeps, based on their nausea tolerance level.
static constexpr const ride_rating NauseaMinimumThresholds[] = {
0, 0, 200, 400
0,
0,
200,
400,
};
// clang-format on
static bool peep_has_voucher_for_free_ride(Guest* peep, Ride* ride);
static void peep_ride_is_too_intense(Guest* peep, Ride* ride, bool peepAtRide);
@ -1764,9 +1770,11 @@ void Guest::OnExitRide(Ride* ride)
{
InsertNewThought(PeepThoughtType::WasGreat, ride->id);
static constexpr OpenRCT2::Audio::SoundId laughs[3] = { OpenRCT2::Audio::SoundId::Laugh1,
OpenRCT2::Audio::SoundId::Laugh2,
OpenRCT2::Audio::SoundId::Laugh3 };
static constexpr OpenRCT2::Audio::SoundId laughs[3] = {
OpenRCT2::Audio::SoundId::Laugh1,
OpenRCT2::Audio::SoundId::Laugh2,
OpenRCT2::Audio::SoundId::Laugh3,
};
int32_t laughType = scenario_rand() & 7;
if (laughType < 3)
{

View File

@ -74,12 +74,11 @@ static void* _crowdSoundChannel = nullptr;
static void peep_128_tick_update(Peep* peep, int32_t index);
static void peep_release_balloon(Guest* peep, int16_t spawn_height);
// clang-format off
static PeepActionSpriteType PeepSpecialSpriteToSpriteTypeMap[] = {
PeepActionSpriteType::None,
PeepActionSpriteType::HoldMat,
PeepActionSpriteType::StaffMower
PeepActionSpriteType::StaffMower,
};
static PeepActionSpriteType PeepActionToSpriteTypeMap[] = {
@ -113,20 +112,15 @@ static PeepActionSpriteType PeepActionToSpriteTypeMap[] = {
PeepActionSpriteType::Disgust,
PeepActionSpriteType::DrawPicture,
PeepActionSpriteType::BeingWatched,
PeepActionSpriteType::WithdrawMoney
PeepActionSpriteType::WithdrawMoney,
};
const bool gSpriteTypeToSlowWalkMap[] = {
false, false, false, false, false, false, false, false,
false, false, false, true, false, false, true, true,
true, true, true, false, true, false, true, true,
true, false, false, true, true, false, false, true,
true, true, true, true, true, true, false, true,
false, true, true, true, true, true, true, true,
false, false, false, false, false, false, false, false, false, false, false, true, false, false, true, true,
true, true, true, false, true, false, true, true, true, false, false, true, true, false, false, true,
true, true, true, true, true, true, false, true, false, true, true, true, true, true, true, true,
};
// clang-format on
template<> bool EntityBase::Is<Peep>() const
{
return Type == EntityType::Guest || Type == EntityType::Staff;
@ -373,7 +367,12 @@ void Peep::StateReset()
}
/** rct2: 0x00981D7C, 0x00981D7E */
static constexpr const CoordsXY word_981D7C[4] = { { -2, 0 }, { 0, 2 }, { 2, 0 }, { 0, -2 } };
static constexpr const CoordsXY word_981D7C[4] = {
{ -2, 0 },
{ 0, 2 },
{ 2, 0 },
{ 0, -2 },
};
std::optional<CoordsXY> Peep::UpdateAction()
{
@ -476,9 +475,12 @@ std::optional<CoordsXY> Peep::UpdateAction(int16_t& xy_distance)
const auto curLoc = GetLocation();
Litter::Create({ curLoc, sprite_direction }, (sprite_index & 1) ? Litter::Type::VomitAlt : Litter::Type::Vomit);
static constexpr OpenRCT2::Audio::SoundId coughs[4] = { OpenRCT2::Audio::SoundId::Cough1, OpenRCT2::Audio::SoundId::Cough2,
OpenRCT2::Audio::SoundId::Cough3,
OpenRCT2::Audio::SoundId::Cough4 };
static constexpr OpenRCT2::Audio::SoundId coughs[4] = {
OpenRCT2::Audio::SoundId::Cough1,
OpenRCT2::Audio::SoundId::Cough2,
OpenRCT2::Audio::SoundId::Cough3,
OpenRCT2::Audio::SoundId::Cough4,
};
auto soundId = coughs[scenario_rand() & 3];
OpenRCT2::Audio::Play3D(soundId, curLoc);
@ -2455,7 +2457,9 @@ rct_string_id get_real_name_string_id_from_id(uint32_t id)
// Generate a name_string_idx from the peep Id using bit twiddling
uint16_t ax = static_cast<uint16_t>(id + 0xF0B);
uint16_t dx = 0;
static constexpr uint16_t twiddlingBitOrder[] = { 4, 9, 3, 7, 5, 8, 2, 1, 6, 0, 12, 11, 13, 10 };
static constexpr uint16_t twiddlingBitOrder[] = {
4, 9, 3, 7, 5, 8, 2, 1, 6, 0, 12, 11, 13, 10,
};
for (size_t i = 0; i < std::size(twiddlingBitOrder); i++)
{
dx |= (ax & (1 << twiddlingBitOrder[i]) ? 1 : 0) << i;

View File

@ -2011,7 +2011,7 @@ static constexpr const uint32_t FixingSubstatesForBreakdown[9] = {
(1 << PEEP_FIXING_MOVE_TO_STATION_EXIT) |
(1 << PEEP_FIXING_FINISH_FIX_OR_INSPECT) |
(1 << PEEP_FIXING_LEAVE_BY_ENTRANCE_EXIT)
)
),
};
// clang-format on

View File

@ -130,9 +130,19 @@ namespace Platform
}
# elif defined(__FreeBSD__) || defined(__NetBSD__)
# if defined(__FreeBSD__)
const int32_t mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
const int32_t mib[] = {
CTL_KERN,
KERN_PROC,
KERN_PROC_PATHNAME,
-1,
};
# else
const int32_t mib[] = { CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME };
const int32_t mib[] = {
CTL_KERN,
KERN_PROC_ARGS,
-1,
KERN_PROC_PATHNAME,
};
# endif
auto exeLen = sizeof(exePath);
if (sysctl(mib, 4, exePath, &exeLen, nullptr, 0) == -1)

View File

@ -1348,10 +1348,10 @@ RCT12TrackType OpenRCT2FlatTrackTypeToRCT12(track_type_t origTrackType)
}
static constexpr std::string_view _stationStyles[] = {
"rct2.station.plain", "rct2.station.wooden", "rct2.station.canvas_tent", "rct2.station.castle_grey",
"rct2.station.castle_brown", "rct2.station.jungle", "rct2.station.log", "rct2.station.classical",
"rct2.station.abstract", "rct2.station.snow", "rct2.station.pagoda", "rct2.station.space",
"openrct2.station.noentrance"
"rct2.station.plain", "rct2.station.wooden", "rct2.station.canvas_tent", "rct2.station.castle_grey",
"rct2.station.castle_brown", "rct2.station.jungle", "rct2.station.log", "rct2.station.classical",
"rct2.station.abstract", "rct2.station.snow", "rct2.station.pagoda", "rct2.station.space",
"openrct2.station.noentrance",
};
static constexpr std::string_view _musicStyles[] = {

View File

@ -1197,7 +1197,7 @@ static uint8_t _breakdownProblemProbabilities[] = {
10, // BREAKDOWN_DOORS_STUCK_OPEN
6, // BREAKDOWN_VEHICLE_MALFUNCTION
0, // BREAKDOWN_BRAKES_FAILURE
3 // BREAKDOWN_CONTROL_FAILURE
3, // BREAKDOWN_CONTROL_FAILURE
};
/**

View File

@ -170,7 +170,7 @@ const rct_ride_entry_vehicle CableLiftVehicle = {
const uint16_t RideFilmLength[3] = {
5000, // MOUSE_TAILS
6000, // STORM_CHASERS
7000 // SPACE_RAIDERS
7000, // SPACE_RAIDERS
};
const rct_string_id RideModeNames[] = {

View File

@ -789,7 +789,7 @@ static void ride_ratings_calculate_value(Ride* ride)
{ 120, 81, 256, 0 }, // 0.32x
{ 128, 81, 512, 0 }, // 0.16x
{ 200, 81, 1024, 0 }, // 0.08x
{ 200, 9, 16, 0 } // 0.56x "easter egg"
{ 200, 9, 16, 0 }, // 0.56x "easter egg"
};
#ifdef ORIGINAL_RATINGS
@ -803,7 +803,7 @@ static void ride_ratings_calculate_value(Ride* ride)
{ 120, 81, 256, 0 }, // 0.32x
{ 128, 81, 512, 0 }, // 0.16x
{ 200, 81, 1024, 0 }, // 0.08x
{ 200, 9, 16, 0 } // 0.56x "easter egg"
{ 200, 9, 16, 0 }, // 0.56x "easter egg"
};
#endif

View File

@ -30,13 +30,12 @@
using namespace OpenRCT2::TrackMetaData;
// clang-format off
/* rct2: 0x007667AC */
static constexpr TileCoordsXY EntranceOffsetEdgeNE[] = {
{ -1, 0 },
{ 0, -1 },
{ 1, 0 },
{ 0, 1 },
{ 0, -1 },
{ 1, 0 },
{ 0, 1 },
};
/* rct2: 0x007667AE */
@ -48,10 +47,10 @@ static constexpr TileCoordsXY EntranceOffsetEdgeNW[] = {
};
const uint8_t track_map_2x2[][4] = {
{0, 1, 2, 3},
{1, 3, 0, 2},
{3, 2, 1, 0},
{2, 0, 3, 1}
{ 0, 1, 2, 3 },
{ 1, 3, 0, 2 },
{ 3, 2, 1, 0 },
{ 2, 0, 3, 1 },
};
const uint8_t edges_2x2[] = {
@ -62,12 +61,13 @@ const uint8_t edges_2x2[] = {
};
const uint8_t track_map_3x3[][9] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8},
{0, 3, 5, 7, 2, 8, 1, 6, 4},
{0, 7, 8, 6, 5, 4, 3, 1, 2},
{0, 6, 4, 1, 8, 2, 7, 3, 5}
{ 0, 1, 2, 3, 4, 5, 6, 7, 8 },
{ 0, 3, 5, 7, 2, 8, 1, 6, 4 },
{ 0, 7, 8, 6, 5, 4, 3, 1, 2 },
{ 0, 6, 4, 1, 8, 2, 7, 3, 5 },
};
// clang-format off
const uint8_t edges_3x3[] = {
0,
EDGE_NE | EDGE_NW,
@ -79,14 +79,16 @@ const uint8_t edges_3x3[] = {
EDGE_SW | EDGE_SE,
EDGE_SW,
};
// clang-format on
const uint8_t track_map_4x4[][16] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{3, 7, 11, 15, 2, 6, 10, 14, 1, 5, 9, 13, 0, 4, 8, 12},
{15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0},
{12, 8, 4, 0, 13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3},
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
{ 3, 7, 11, 15, 2, 6, 10, 14, 1, 5, 9, 13, 0, 4, 8, 12 },
{ 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
{ 12, 8, 4, 0, 13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3 },
};
// clang-format off
const uint8_t edges_4x4[] = {
EDGE_NE | EDGE_NW,
EDGE_NE,
@ -103,76 +105,79 @@ const uint8_t edges_4x4[] = {
EDGE_NW | EDGE_SW,
EDGE_SW,
EDGE_SW,
EDGE_SW | EDGE_SE
EDGE_SW | EDGE_SE,
};
// clang-format on
const uint8_t track_map_1x4[][4] = {
{0, 1, 2, 3},
{2, 3, 0, 1},
{2, 3, 0, 1},
{0, 1, 2, 3},
{ 0, 1, 2, 3 },
{ 2, 3, 0, 1 },
{ 2, 3, 0, 1 },
{ 0, 1, 2, 3 },
};
const uint32_t floorSpritesCork[] = {
SPR_FLOOR_CORK_SE_SW,
SPR_FLOOR_CORK_SW,
SPR_FLOOR_CORK_SE,
SPR_FLOOR_CORK
SPR_FLOOR_CORK,
};
const uint32_t floorSpritesMetal[] = {
SPR_FLOOR_METAL,
SPR_FLOOR_METAL,
SPR_FLOOR_METAL,
SPR_FLOOR_METAL
SPR_FLOOR_METAL,
};
const uint32_t floorSpritesMetalB[] = {
SPR_FLOOR_METAL_B,
SPR_FLOOR_METAL_B,
SPR_FLOOR_METAL_B,
SPR_FLOOR_METAL_B
SPR_FLOOR_METAL_B,
};
const uint32_t fenceSpritesRope[] = {
SPR_FENCE_ROPE_NE,
SPR_FENCE_ROPE_SE,
SPR_FENCE_ROPE_SW,
SPR_FENCE_ROPE_NW
SPR_FENCE_ROPE_NW,
};
const uint32_t fenceSpritesMetal[] = {
SPR_FENCE_METAL_NE,
SPR_FENCE_METAL_SE,
SPR_FENCE_METAL_SW,
SPR_FENCE_METAL_NW
SPR_FENCE_METAL_NW,
};
const uint32_t fenceSpritesMetalB[] = {
SPR_FENCE_METAL_B_NE,
SPR_FENCE_METAL_B_SE,
SPR_FENCE_METAL_B_SW,
SPR_FENCE_METAL_B_NW
SPR_FENCE_METAL_B_NW,
};
const uint32_t trackSpritesSubmarineRideMiniHelicoptersQuarterTurn3Tiles[4][3] = {
{
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_2
}, {
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_2
}, {
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_2
}, {
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_2
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_2,
}
};
@ -189,29 +194,29 @@ static constexpr const uint32_t trackSpritesGhostTrainSpinningTunnel[2][2][4] =
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_SW_NE_FRAME_0,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_SW_NE_FRAME_1,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_SW_NE_FRAME_2,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_SW_NE_FRAME_3
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_SW_NE_FRAME_3,
},
{
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_SW_NE_FRAME_0,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_SW_NE_FRAME_1,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_SW_NE_FRAME_2,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_SW_NE_FRAME_3
}
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_SW_NE_FRAME_3,
},
},
{
{
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_NW_SE_FRAME_0,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_NW_SE_FRAME_1,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_NW_SE_FRAME_2,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_NW_SE_FRAME_3
SPR_GHOST_TRAIN_SPINNING_TUNNEL_BACK_NW_SE_FRAME_3,
},
{
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_NW_SE_FRAME_0,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_NW_SE_FRAME_1,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_NW_SE_FRAME_2,
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_NW_SE_FRAME_3
}
}
SPR_GHOST_TRAIN_SPINNING_TUNNEL_FRONT_NW_SE_FRAME_3,
},
},
};
enum
@ -224,7 +229,6 @@ enum
SPR_STATION_COVER_OFFSET_SE_NW_FRONT,
SPR_STATION_COVER_OFFSET_TALL
};
// clang-format on
bool track_paint_util_has_fence(
enum edge_t edge, const CoordsXY& position, const TrackElement& trackElement, const Ride* ride, uint8_t rotation)
@ -1036,7 +1040,12 @@ constexpr CoordsXYZ defaultRightHelixUpSmallQuarterBoundOffsets[4][3][2] = {
},
};
static constexpr const int8_t right_helix_up_small_quarter_tiles_sprite_map[] = { 0, -1, 1, 2 };
static constexpr const int8_t right_helix_up_small_quarter_tiles_sprite_map[] = {
0,
-1,
1,
2,
};
void track_paint_util_right_helix_up_small_quarter_tiles_paint(
paint_session* session, const int8_t thickness[2], int16_t height, Direction direction, uint8_t trackSequence,
@ -1135,7 +1144,9 @@ constexpr CoordsXY defaultRightHelixUpLargeQuarterBoundLengths[4][5][2] = {
},
};
static constexpr const int8_t right_helix_up_large_quarter_sprite_map[] = { 0, -1, 1, 2, -1, 3, 4 };
static constexpr const int8_t right_helix_up_large_quarter_sprite_map[] = {
0, -1, 1, 2, -1, 3, 4,
};
void track_paint_util_right_helix_up_large_quarter_tiles_paint(
paint_session* session, const int8_t thickness[2], int16_t height, Direction direction, uint8_t trackSequence,
uint32_t colourFlags, const uint32_t sprites[4][5][2], const CoordsXY offsets[4][5][2],
@ -1306,9 +1317,13 @@ const int8_t defaultEighthToDiagThickness[4][4] = {
},
};
const uint8_t mapLeftEighthTurnToOrthogonal[] = { 4, 2, 3, 1, 0 };
const uint8_t mapLeftEighthTurnToOrthogonal[] = {
4, 2, 3, 1, 0,
};
static constexpr const int8_t eighth_to_diag_sprite_map[] = { 0, 1, 2, -1, 3 };
static constexpr const int8_t eighth_to_diag_sprite_map[] = {
0, 1, 2, -1, 3,
};
void track_paint_util_eighth_to_diag_tiles_paint(
paint_session* session, const int8_t thickness[4][4], int16_t height, Direction direction, uint8_t trackSequence,
uint32_t colourFlags, const uint32_t sprites[4][4], const CoordsXY offsets[4][4], const CoordsXY boundsLengths[4][4],

View File

@ -72,88 +72,87 @@ uint8_t _vehicleF64E2C;
Vehicle* _vehicleFrontVehicle;
CoordsXYZ unk_F64E20;
// clang-format off
static constexpr const OpenRCT2::Audio::SoundId byte_9A3A14[] = { OpenRCT2::Audio::SoundId::Scream8,
OpenRCT2::Audio::SoundId::Scream1 };
static constexpr const OpenRCT2::Audio::SoundId byte_9A3A16[] = { OpenRCT2::Audio::SoundId::Scream1,
OpenRCT2::Audio::SoundId::Scream6 };
static constexpr const OpenRCT2::Audio::SoundId byte_9A3A18[] = {
OpenRCT2::Audio::SoundId::Scream3,
static constexpr const OpenRCT2::Audio::SoundId byte_9A3A14[] = {
OpenRCT2::Audio::SoundId::Scream8,
OpenRCT2::Audio::SoundId::Scream1,
};
static constexpr const OpenRCT2::Audio::SoundId byte_9A3A16[] = {
OpenRCT2::Audio::SoundId::Scream1,
OpenRCT2::Audio::SoundId::Scream5,
OpenRCT2::Audio::SoundId::Scream6,
OpenRCT2::Audio::SoundId::Scream7,
OpenRCT2::Audio::SoundId::Scream2,
OpenRCT2::Audio::SoundId::Scream4
};
static constexpr const OpenRCT2::Audio::SoundId byte_9A3A18[] = {
OpenRCT2::Audio::SoundId::Scream3, OpenRCT2::Audio::SoundId::Scream1, OpenRCT2::Audio::SoundId::Scream5,
OpenRCT2::Audio::SoundId::Scream6, OpenRCT2::Audio::SoundId::Scream7, OpenRCT2::Audio::SoundId::Scream2,
OpenRCT2::Audio::SoundId::Scream4,
};
static constexpr const uint8_t _soundParams[OpenRCT2::Audio::RCT2SoundCount][2] =
{
{ 1, 0 }, // LiftClassic
{ 1, 0 }, // TrackFrictionClassicWood
{ 1, 0 }, // FrictionClassic
{ 0, 1 }, // Scream1
{ 0, 0 }, // Click1
{ 0, 0 }, // Click2
{ 0, 0 }, // PlaceItem
{ 0, 1 }, // Scream2
{ 0, 1 }, // Scream3
{ 0, 1 }, // Scream4
{ 0, 1 }, // Scream5
{ 0, 1 }, // Scream6
{ 1, 0 }, // LiftFrictionWheels
{ 0, 0 }, // Purchase
{ 0, 0 }, // Crash
{ 0, 0 }, // LayingOutWater
{ 0, 0 }, // Water1
{ 0, 0 }, // Water2
{ 0, 1 }, // TrainWhistle
{ 0, 1 }, // TrainDeparting
{ 0, 0 }, // WaterSplash
{ 1, 0 }, // GoKartEngine
{ 0, 0 }, // RideLaunch1
{ 0, 0 }, // RideLaunch2
{ 0, 0 }, // Cough1
{ 0, 0 }, // Cough2
{ 0, 0 }, // Cough3
{ 0, 0 }, // Cough4
{ 1, 0 }, // Rain
{ 0, 0 }, // Thunder1
{ 0, 0 }, // Thunder2
{ 1, 0 }, // TrackFrictionTrain
{ 1, 0 }, // TrackFrictionWater
{ 0, 0 }, // BalloonPop
{ 0, 0 }, // MechanicFix
{ 0, 1 }, // Scream7
{ 0, 0 }, // ToiletFlush
{ 0, 0 }, // Click3
{ 0, 0 }, // Quack
{ 0, 0 }, // NewsItem
{ 0, 0 }, // WindowOpen
{ 0, 0 }, // Laugh1
{ 0, 0 }, // Laugh2
{ 0, 0 }, // Laugh3
{ 0, 0 }, // Applause
{ 0, 0 }, // HauntedHouseScare
{ 0, 0 }, // HauntedHouseScream1
{ 0, 0 }, // HauntedHouseScream2
{ 0, 0 }, // BlockBrakeClose
{ 0, 0 }, // BlockBrakeRelease
{ 0, 0 }, // Error
{ 0, 0 }, // BrakeRelease
{ 1, 0 }, // LiftArrow
{ 1, 0 }, // LiftWood
{ 1, 0 }, // TrackFrictionWood
{ 1, 0 }, // LiftWildMouse
{ 1, 0 }, // LiftBM
{ 1, 2 }, // TrackFrictionBM
{ 0, 1 }, // Scream8
{ 0, 1 }, // Tram
{ 0, 0 }, // DoorOpen
{ 0, 0 }, // DoorClose
{ 0, 0 } // Portcullis
static constexpr const uint8_t _soundParams[OpenRCT2::Audio::RCT2SoundCount][2] = {
{ 1, 0 }, // LiftClassic
{ 1, 0 }, // TrackFrictionClassicWood
{ 1, 0 }, // FrictionClassic
{ 0, 1 }, // Scream1
{ 0, 0 }, // Click1
{ 0, 0 }, // Click2
{ 0, 0 }, // PlaceItem
{ 0, 1 }, // Scream2
{ 0, 1 }, // Scream3
{ 0, 1 }, // Scream4
{ 0, 1 }, // Scream5
{ 0, 1 }, // Scream6
{ 1, 0 }, // LiftFrictionWheels
{ 0, 0 }, // Purchase
{ 0, 0 }, // Crash
{ 0, 0 }, // LayingOutWater
{ 0, 0 }, // Water1
{ 0, 0 }, // Water2
{ 0, 1 }, // TrainWhistle
{ 0, 1 }, // TrainDeparting
{ 0, 0 }, // WaterSplash
{ 1, 0 }, // GoKartEngine
{ 0, 0 }, // RideLaunch1
{ 0, 0 }, // RideLaunch2
{ 0, 0 }, // Cough1
{ 0, 0 }, // Cough2
{ 0, 0 }, // Cough3
{ 0, 0 }, // Cough4
{ 1, 0 }, // Rain
{ 0, 0 }, // Thunder1
{ 0, 0 }, // Thunder2
{ 1, 0 }, // TrackFrictionTrain
{ 1, 0 }, // TrackFrictionWater
{ 0, 0 }, // BalloonPop
{ 0, 0 }, // MechanicFix
{ 0, 1 }, // Scream7
{ 0, 0 }, // ToiletFlush
{ 0, 0 }, // Click3
{ 0, 0 }, // Quack
{ 0, 0 }, // NewsItem
{ 0, 0 }, // WindowOpen
{ 0, 0 }, // Laugh1
{ 0, 0 }, // Laugh2
{ 0, 0 }, // Laugh3
{ 0, 0 }, // Applause
{ 0, 0 }, // HauntedHouseScare
{ 0, 0 }, // HauntedHouseScream1
{ 0, 0 }, // HauntedHouseScream2
{ 0, 0 }, // BlockBrakeClose
{ 0, 0 }, // BlockBrakeRelease
{ 0, 0 }, // Error
{ 0, 0 }, // BrakeRelease
{ 1, 0 }, // LiftArrow
{ 1, 0 }, // LiftWood
{ 1, 0 }, // TrackFrictionWood
{ 1, 0 }, // LiftWildMouse
{ 1, 0 }, // LiftBM
{ 1, 2 }, // TrackFrictionBM
{ 0, 1 }, // Scream8
{ 0, 1 }, // Tram
{ 0, 0 }, // DoorOpen
{ 0, 0 }, // DoorClose
{ 0, 0 }, // Portcullis
};
// clang-format off
static constexpr const uint8_t SpaceRingsTimeToSpriteMap[] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
@ -285,160 +284,141 @@ static constexpr const uint8_t SpaceRingsTimeToSpriteMap[] =
33, 32, 32, 32, 31, 31, 31, 30, 30, 30, 30, 29, 29, 29, 29, 28,
28, 28, 28, 28, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 25,
25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 0,
255
255,
};
// clang-format on
static constexpr const int8_t SwingingTimeToSpriteMap_0[] =
{
0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3, -3,
-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -1, -1, -1, -1, -1, -1, -1, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_0[] = {
0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
-3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_1[] =
{
0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1,
0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4,
-5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -4, -4, -4, -4, -4, -4,
-4, -4, -4, -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_1[] = {
0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3,
3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3,
-3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
-5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_2[] =
{
0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2,
2, 2, 1, 1, 1, 0, 0, 0, -1, -1, -1, -2, -2, -2, -3, -3, -3, -3, -4, -4, -4, -4, -4, -5, -5, -5, -5, -5,
-5, -6, -6, -6, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6,
-6, -6, -6, -6, -6, -6, -5, -5, -5, -5, -5, -5, -4, -4, -4, -4, -4, -3, -3, -3, -3, -2, -2, -2, -1, -1,
-1, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_2[] = {
0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6,
6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6,
6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0,
-1, -1, -1, -2, -2, -2, -3, -3, -3, -3, -4, -4, -4, -4, -4, -5, -5, -5, -5, -5, -5, -6, -6, -6, -6, -6,
-6, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6, -6, -6, -6, -6, -6, -6,
-5, -5, -5, -5, -5, -5, -4, -4, -4, -4, -4, -3, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_3[] =
{
0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4,
4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -2, -2, -3, -3, -4, -4, -4, -5, -5, -5, -5, -6, -6, -6, -6, -6,
-7, -7, -7, -7, -7, -7, -8, -8, -8, -8, -8, -8, -8, -8, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-9, -8, -8, -8, -8, -8, -8, -8, -8, -7, -7, -7, -7, -7, -7, -6, -6, -6, -6, -6, -5, -5, -5, -5, -4, -4,
-4, -3, -3, -2, -2, -1, -1, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_3[] = {
0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8,
8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,
7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1,
-1, -2, -2, -3, -3, -4, -4, -4, -5, -5, -5, -5, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -7, -8, -8, -8, -8,
-8, -8, -8, -8, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -8, -8, -8, -8, -8, -8, -8, -8, -7, -7,
-7, -7, -7, -7, -6, -6, -6, -6, -6, -5, -5, -5, -5, -4, -4, -4, -3, -3, -2, -2, -1, -1, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_4[] =
{
0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -5,
-5, -5, -5, -5, -5, -5, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7,
-7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-6, -6, -6, -5, -5, -5, -5, -5, -5, -5, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1,
-1, -1, -1, -1, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_4[] = {
0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, -1,
-1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -5, -5, -5, -5, -5, -5, -5, -6, -6,
-6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
-7, -7, -7, -7, -7, -7, -7, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -5, -5, -5, -5, -5, -5, -5, -4, -4,
-4, -4, -4, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_5[] =
{
0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9,
9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10,
10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2,
1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -2, -3, -3, -3, -3, -4, -4, -4, -4, -5, -5, -5, -5,
-6, -6, -6, -6, -7, -7, -7, -7, -8, -8, -8, -8, -9, -9, -9, -9, -10, -10, -10, -10, -11, -11, -11, -11,
-12, -12, -12, -12, -13, -13, -13, -13, -13, -13, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -13, -13, -13, -13, -13, -13, -12, -12, -12, -12, -11,
-11, -11, -11, -10, -10, -10, -10, -9, -9, -9, -9, -8, -8, -8, -8, -7, -7, -7, -7, -6, -6, -6, -6, -5,
-5, -5, -5, -4, -4, -4, -4, -3, -3, -3, -3, -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_5[] = {
0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6,
6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12,
12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9,
8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3,
2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -2, -3, -3, -3, -3,
-4, -4, -4, -4, -5, -5, -5, -5, -6, -6, -6, -6, -7, -7, -7, -7, -8, -8, -8, -8, -9, -9, -9, -9,
-10, -10, -10, -10, -11, -11, -11, -11, -12, -12, -12, -12, -13, -13, -13, -13, -13, -13, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -13, -13, -13, -13, -13, -13, -12, -12, -12, -12, -11, -11,
-11, -11, -10, -10, -10, -10, -9, -9, -9, -9, -8, -8, -8, -8, -7, -7, -7, -7, -6, -6, -6, -6, -5, -5,
-5, -5, -4, -4, -4, -4, -3, -3, -3, -3, -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_6[] =
{
0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11,
11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20,
20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23,
23, 23, 23, 22, 22, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 16, 16, 16, 15, 15,
15, 14, 14, 14, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 9, 9, 9, 8, 8, 8, 7, 7, 7, 6, 6, 6, 5,
5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, -1, -1, -1, -2, -2, -2, -3, -3, -3, -4, -4, -4, -5,
-5, -5, -6, -6, -6, -7, -7, -7, -8, -8, -8, -9, -9, -9, -10, -10, -10, -11, -11, -11, -12, -12, -12,
-13, -13, -13, -14, -14, -14, -15, -15, -15, -16, -16, -16, -17, -17, -17, -18, -18, -18, -19, -19, -19,
-20, -20, -20, -21, -21, -21, -22, -22, -22, -23, -23, -23, -23, -23, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -23, -23, -23, -23, -23, -22, -22, -22, -21, -21, -21, -20,
-20, -20, -19, -19, -19, -18, -18, -18, -17, -17, -17, -16, -16, -16, -15, -15, -15, -14, -14, -14, -13,
-13, -13, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9, -9, -8, -8, -8, -7, -7, -7, -6, -6, -6,
-5, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_6[] = {
0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8,
8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15,
16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23,
23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 22,
22, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 16, 16, 16, 15, 15, 15,
14, 14, 14, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 9, 9, 9, 8, 8, 8, 7, 7,
7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, -1,
-1, -1, -2, -2, -2, -3, -3, -3, -4, -4, -4, -5, -5, -5, -6, -6, -6, -7, -7, -7, -8, -8, -8,
-9, -9, -9, -10, -10, -10, -11, -11, -11, -12, -12, -12, -13, -13, -13, -14, -14, -14, -15, -15, -15, -16, -16,
-16, -17, -17, -17, -18, -18, -18, -19, -19, -19, -20, -20, -20, -21, -21, -21, -22, -22, -22, -23, -23, -23, -23,
-23, -24, -24, -24, -24, -24, -24, -24, -24, -24, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -24, -24, -24, -24, -24, -24, -24, -24, -24, -23, -23, -23, -23, -23, -22, -22, -22,
-21, -21, -21, -20, -20, -20, -19, -19, -19, -18, -18, -18, -17, -17, -17, -16, -16, -16, -15, -15, -15, -14, -14,
-14, -13, -13, -13, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9, -9, -8, -8, -8, -7, -7, -7, -6,
-6, -6, -5, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_7[] =
{
0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11,
11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20,
20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28,
29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, -35,
-35, -35, -34, -34, -34, -33, -33, -33, -32, -32, -32, -31, -31, -31, -30, -30, -30, -29, -29, -29, -28,
-28, -28, -27, -27, -27, -26, -26, -26, -25, -25, -25, -24, -24, -24, -23, -23, -23, -22, -22, -22, -21,
-21, -21, -20, -20, -20, -19, -19, -19, -18, -18, -18, -17, -17, -17, -16, -16, -16, -15, -15, -15, -14,
-14, -14, -13, -13, -13, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9, -9, -8, -8, -8, -7, -7,
-7, -6, -6, -6, -5, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_7[] = {
0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7,
8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15,
15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22,
22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29,
30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, -35,
-35, -35, -34, -34, -34, -33, -33, -33, -32, -32, -32, -31, -31, -31, -30, -30, -30, -29, -29, -29, -28, -28,
-28, -27, -27, -27, -26, -26, -26, -25, -25, -25, -24, -24, -24, -23, -23, -23, -22, -22, -22, -21, -21, -21,
-20, -20, -20, -19, -19, -19, -18, -18, -18, -17, -17, -17, -16, -16, -16, -15, -15, -15, -14, -14, -14, -13,
-13, -13, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9, -9, -8, -8, -8, -7, -7, -7, -6, -6,
-6, -5, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_8[] =
{
0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27,
27, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31,
31, 31, 31, 31, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_8[] = {
0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 31,
31, 31, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 27, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 28, 28,
28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_9[] =
{
0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27,
27, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31,
31, 31, 31, 31, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_9[] = {
0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 31,
31, 31, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 27, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 28, 28,
28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_10[] =
{
0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9,
9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14,
14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7,
6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 31, 31, 31, 31, 30,
30, 30, 30, 29, 29, 29, 29, 28, 28, 28, 28, 27, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24,
24, 23, 23, 23, 23, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 19, 19, 19, 19, 18, 18, 18, 18, 18,
18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 19, 19, 19,
19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26,
26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 0, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_10[] = {
0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11,
11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4,
4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 31, 31, 31, 31, 30, 30, 30, 30, 29, 29, 29, 29, 28,
28, 28, 28, 27, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24, 24, 23, 23, 23, 23, 22, 22, 22, 22, 21, 21, 21,
21, 20, 20, 20, 20, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18,
18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25,
25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 0, 0, -128,
};
static constexpr const int8_t SwingingTimeToSpriteMap_11[] =
{
0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,
10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16,
16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22,
23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31,
31, 0, -128
static constexpr const int8_t SwingingTimeToSpriteMap_11[] = {
0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8,
8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,
16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23,
23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 0, -128,
};
/** rct2: 0x0099F9D0 */
static constexpr const int8_t * SwingingTimeToSpriteMaps[] = {
SwingingTimeToSpriteMap_0,
SwingingTimeToSpriteMap_1,
SwingingTimeToSpriteMap_2,
SwingingTimeToSpriteMap_3,
SwingingTimeToSpriteMap_4,
SwingingTimeToSpriteMap_5,
SwingingTimeToSpriteMap_6,
SwingingTimeToSpriteMap_7,
SwingingTimeToSpriteMap_8,
SwingingTimeToSpriteMap_9,
SwingingTimeToSpriteMap_10,
SwingingTimeToSpriteMap_11,
static constexpr const int8_t* SwingingTimeToSpriteMaps[] = {
SwingingTimeToSpriteMap_0, SwingingTimeToSpriteMap_1, SwingingTimeToSpriteMap_2, SwingingTimeToSpriteMap_3,
SwingingTimeToSpriteMap_4, SwingingTimeToSpriteMap_5, SwingingTimeToSpriteMap_6, SwingingTimeToSpriteMap_7,
SwingingTimeToSpriteMap_8, SwingingTimeToSpriteMap_9, SwingingTimeToSpriteMap_10, SwingingTimeToSpriteMap_11,
};
struct unk_9a36c4
@ -449,293 +429,133 @@ struct unk_9a36c4
};
/** rct2: 0x009A36C4 */
static constexpr const unk_9a36c4 Unk9A36C4[] =
{
{-1, 0, 8716},
{-1, 0, 8716},
{-1, 0, 8716},
{-1, 1, 12327},
{-1, 1, 12327},
{-1, 1, 12327},
{0, 1, 8716},
{-1, 1, 12327},
{0, 1, 8716},
{0, 1, 8716},
{0, 1, 8716},
{1, 1, 12327},
{1, 1, 12327},
{1, 1, 12327},
{1, 0, 8716},
{1, 1, 12327},
{1, 0, 8716},
{1, 0, 8716},
{1, 0, 8716},
{1, -1, 12327},
{1, -1, 12327},
{1, -1, 12327},
{0, -1, 8716},
{1, -1, 12327},
{0, -1, 8716},
{0, -1, 8716},
{0, -1, 8716},
{-1, -1, 12327},
{-1, -1, 12327},
{-1, -1, 12327},
{-1, 0, 8716},
{-1, -1, 12327},
static constexpr const unk_9a36c4 Unk9A36C4[] = {
{ -1, 0, 8716 }, { -1, 0, 8716 }, { -1, 0, 8716 }, { -1, 1, 12327 }, { -1, 1, 12327 }, { -1, 1, 12327 },
{ 0, 1, 8716 }, { -1, 1, 12327 }, { 0, 1, 8716 }, { 0, 1, 8716 }, { 0, 1, 8716 }, { 1, 1, 12327 },
{ 1, 1, 12327 }, { 1, 1, 12327 }, { 1, 0, 8716 }, { 1, 1, 12327 }, { 1, 0, 8716 }, { 1, 0, 8716 },
{ 1, 0, 8716 }, { 1, -1, 12327 }, { 1, -1, 12327 }, { 1, -1, 12327 }, { 0, -1, 8716 }, { 1, -1, 12327 },
{ 0, -1, 8716 }, { 0, -1, 8716 }, { 0, -1, 8716 }, { -1, -1, 12327 }, { -1, -1, 12327 }, { -1, -1, 12327 },
{ -1, 0, 8716 }, { -1, -1, 12327 },
};
/** rct2: 0x009A37C4 */
static constexpr const CoordsXY SurroundingTiles[] =
{
{ 0, 0 },
{ 0, +COORDS_XY_STEP },
{ +COORDS_XY_STEP, 0 },
{ 0, -COORDS_XY_STEP },
{ 0, -COORDS_XY_STEP },
{ -COORDS_XY_STEP, 0 },
{ -COORDS_XY_STEP, 0 },
{ 0, +COORDS_XY_STEP },
{ 0, +COORDS_XY_STEP },
static constexpr const CoordsXY SurroundingTiles[] = {
{ 0, 0 },
{ 0, +COORDS_XY_STEP },
{ +COORDS_XY_STEP, 0 },
{ 0, -COORDS_XY_STEP },
{ 0, -COORDS_XY_STEP },
{ -COORDS_XY_STEP, 0 },
{ -COORDS_XY_STEP, 0 },
{ 0, +COORDS_XY_STEP },
{ 0, +COORDS_XY_STEP },
};
/** rct2: 0x009A37E4 */
static constexpr const int32_t Unk9A37E4[] =
{
2147483647,
2106585154,
1985590284,
1636362342,
1127484953,
2106585154,
1985590284,
1636362342,
1127484953,
58579923,
0,
-555809667,
-1073741824,
-1518500249,
-1859775391,
-2074309916,
-2147483647,
58579923,
0,
-555809667,
-1073741824,
-1518500249,
-1859775391,
-2074309916,
1859775393,
1073741824,
0,
-1073741824,
-1859775393,
1859775393,
1073741824,
0,
-1073741824,
-1859775393,
1859775393,
1073741824,
0,
-1073741824,
-1859775393,
1859775393,
1073741824,
0,
-1073741824,
-1859775393,
2144540595,
2139311823,
2144540595,
2139311823,
2135719507,
2135719507,
2125953864,
2061796213,
1411702590,
2125953864,
2061796213,
1411702590,
1985590284,
1636362342,
1127484953,
2115506168,
static constexpr const int32_t Unk9A37E4[] = {
2147483647, 2106585154, 1985590284, 1636362342, 1127484953, 2106585154, 1985590284, 1636362342, 1127484953,
58579923, 0, -555809667, -1073741824, -1518500249, -1859775391, -2074309916, -2147483647, 58579923,
0, -555809667, -1073741824, -1518500249, -1859775391, -2074309916, 1859775393, 1073741824, 0,
-1073741824, -1859775393, 1859775393, 1073741824, 0, -1073741824, -1859775393, 1859775393, 1073741824,
0, -1073741824, -1859775393, 1859775393, 1073741824, 0, -1073741824, -1859775393, 2144540595,
2139311823, 2144540595, 2139311823, 2135719507, 2135719507, 2125953864, 2061796213, 1411702590, 2125953864,
2061796213, 1411702590, 1985590284, 1636362342, 1127484953, 2115506168,
};
/** rct2: 0x009A38D4 */
static constexpr const int32_t Unk9A38D4[] =
{
0,
417115092,
817995863,
1390684831,
1827693544,
-417115092,
-817995863,
-1390684831,
-1827693544,
2066040965,
2147483647,
2074309916,
1859775393,
1518500249,
1073741824,
555809666,
0,
-2066040965,
-2147483647,
-2074309916,
-1859775393,
-1518500249,
-1073741824,
-555809666,
1073741824,
1859775393,
2147483647,
1859775393,
1073741824,
-1073741824,
-1859775393,
-2147483647,
-1859775393,
-1073741824,
1073741824,
1859775393,
2147483647,
1859775393,
1073741824,
-1073741824,
-1859775393,
-2147483647,
-1859775393,
-1073741824,
112390610,
187165532,
-112390610,
-187165532,
224473165,
-224473165,
303325208,
600568389,
1618265062,
-303325208,
-600568389,
-1618265062,
-817995863,
-1390684831,
-1827693544,
369214930,
static constexpr const int32_t Unk9A38D4[] = {
0, 417115092, 817995863, 1390684831, 1827693544, -417115092, -817995863, -1390684831, -1827693544,
2066040965, 2147483647, 2074309916, 1859775393, 1518500249, 1073741824, 555809666, 0, -2066040965,
-2147483647, -2074309916, -1859775393, -1518500249, -1073741824, -555809666, 1073741824, 1859775393, 2147483647,
1859775393, 1073741824, -1073741824, -1859775393, -2147483647, -1859775393, -1073741824, 1073741824, 1859775393,
2147483647, 1859775393, 1073741824, -1073741824, -1859775393, -2147483647, -1859775393, -1073741824, 112390610,
187165532, -112390610, -187165532, 224473165, -224473165, 303325208, 600568389, 1618265062, -303325208,
-600568389, -1618265062, -817995863, -1390684831, -1827693544, 369214930,
};
/** rct2: 0x009A39C4 */
static constexpr const int32_t Unk9A39C4[] =
{
2147483647,
2096579710,
1946281152,
2096579710,
1946281152,
1380375879,
555809667,
-372906620,
-1231746017,
-1859775391,
1380375879,
555809667,
-372906620,
-1231746017,
-1859775391,
0,
2096579710,
1946281152,
2096579710,
1946281152,
static constexpr const int32_t Unk9A39C4[] = {
2147483647, 2096579710, 1946281152, 2096579710, 1946281152, 1380375879, 555809667, -372906620, -1231746017, -1859775391,
1380375879, 555809667, -372906620, -1231746017, -1859775391, 0, 2096579710, 1946281152, 2096579710, 1946281152,
};
static constexpr const CoordsXY AvoidCollisionMoveOffset[] =
{
{ -1, 0 },
{ 0, 1 },
{ 1, 0 },
{ 0, -1 },
static constexpr const CoordsXY AvoidCollisionMoveOffset[] = {
{ -1, 0 },
{ 0, 1 },
{ 1, 0 },
{ 0, -1 },
};
static constexpr const OpenRCT2::Audio::SoundId DoorOpenSoundIds[] =
{
static constexpr const OpenRCT2::Audio::SoundId DoorOpenSoundIds[] = {
OpenRCT2::Audio::SoundId::DoorOpen,
OpenRCT2::Audio::SoundId::Portcullis
OpenRCT2::Audio::SoundId::Portcullis,
};
static constexpr const OpenRCT2::Audio::SoundId DoorCloseSoundIds[] =
{
static constexpr const OpenRCT2::Audio::SoundId DoorCloseSoundIds[] = {
OpenRCT2::Audio::SoundId::DoorClose,
OpenRCT2::Audio::SoundId::Portcullis
OpenRCT2::Audio::SoundId::Portcullis,
};
static const struct
{
int8_t x, y, z;
} SteamParticleOffsets[][16] =
{
} SteamParticleOffsets[][16] = {
{
{ -11, 0, 22 },
{ -10, 4, 22 },
{ -8, 8, 22 },
{ -4, 10, 22 },
{ 0, 11, 22 },
{ 4, 10, 22 },
{ 8, 8, 22 },
{ 10, 4, 22 },
{ 11, 0, 22 },
{ 10, -4, 22 },
{ 8, -8, 22 },
{ 4, -10, 22 },
{ 0, -11, 22 },
{ -4, -10, 22 },
{ -8, -8, 22 },
{ -10, -4, 22 }
}, {
{ -9, 0, 27 },
{ -8, 4, 27 },
{ -6, 6, 27 },
{ -4, 8, 27 },
{ 0, 9, 27 },
{ 4, 8, 27 },
{ 6, 6, 27 },
{ 8, 4, 27 },
{ 9, 0, 27 },
{ 8, -4, 27 },
{ 6, -6, 27 },
{ 4, -8, 27 },
{ 0, -9, 27 },
{ -4, -8, 27 },
{ -6, -6, 27 },
{ -8, -4, 27 }
}, {
{ -13, 0, 18 },
{ -12, 4, 17 },
{ -9, 9, 17 },
{ -4, 8, 17 },
{ 0, 13, 18 },
{ 4, 8, 17 },
{ 6, 6, 17 },
{ 8, 4, 17 },
{ 13, 0, 18 },
{ 8, -4, 17 },
{ 6, -6, 17 },
{ 4, -8, 17 },
{ 0, -13, 18 },
{ -4, -8, 17 },
{ -6, -6, 17 },
{ -8, -4, 17 }
}
{ -11, 0, 22 },
{ -10, 4, 22 },
{ -8, 8, 22 },
{ -4, 10, 22 },
{ 0, 11, 22 },
{ 4, 10, 22 },
{ 8, 8, 22 },
{ 10, 4, 22 },
{ 11, 0, 22 },
{ 10, -4, 22 },
{ 8, -8, 22 },
{ 4, -10, 22 },
{ 0, -11, 22 },
{ -4, -10, 22 },
{ -8, -8, 22 },
{ -10, -4, 22 },
},
{
{ -9, 0, 27 },
{ -8, 4, 27 },
{ -6, 6, 27 },
{ -4, 8, 27 },
{ 0, 9, 27 },
{ 4, 8, 27 },
{ 6, 6, 27 },
{ 8, 4, 27 },
{ 9, 0, 27 },
{ 8, -4, 27 },
{ 6, -6, 27 },
{ 4, -8, 27 },
{ 0, -9, 27 },
{ -4, -8, 27 },
{ -6, -6, 27 },
{ -8, -4, 27 },
},
{
{ -13, 0, 18 },
{ -12, 4, 17 },
{ -9, 9, 17 },
{ -4, 8, 17 },
{ 0, 13, 18 },
{ 4, 8, 17 },
{ 6, 6, 17 },
{ 8, 4, 17 },
{ 13, 0, 18 },
{ 8, -4, 17 },
{ 6, -6, 17 },
{ 4, -8, 17 },
{ 0, -13, 18 },
{ -4, -8, 17 },
{ -6, -6, 17 },
{ -8, -4, 17 },
},
};
// clang-format on
template<> bool EntityBase::Is<Vehicle>() const
{
return Type == EntityType::Vehicle;

View File

@ -62,7 +62,7 @@ static constexpr const uint8_t Rotation1TimeToSpriteMap_0[] = {
204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 208, 209, 209,
209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 215,
215, 215,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x0099F422 */
@ -106,7 +106,7 @@ static constexpr const uint8_t Rotation1TimeToSpriteMap_1[] = {
204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 208, 209, 209,
209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 215,
215, 215,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x0099F6AB */
@ -159,7 +159,7 @@ static constexpr const uint8_t Rotation1TimeToSpriteMap_2[] = {
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214,
214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
214, 214,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x0099F0F4 */
@ -208,7 +208,7 @@ static constexpr const uint8_t Rotation2TimeToSpriteMap_0[] = {
38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 40, 40, 41, 41, 42, 42, 40,
40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 43, 43, 44, 44, 45, 45,
43, 43, 44, 44, 45, 45,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x009A26A6 */
@ -219,7 +219,7 @@ static constexpr const uint8_t Rotation2TimeToSpriteMap_1[] = {
47, 48, 48, 46, 46, 47, 47, 48, 48, 46, 46, 47, 47, 48, 48, 46, 46,
47, 47, 48, 48, 46, 46, 47, 47, 48, 48, 46, 46, 47, 47, 48, 48, 46,
46, 47, 47, 48, 48, 46, 46, 47, 47, 48, 48,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x009A270E */
@ -252,7 +252,7 @@ static constexpr const uint8_t Rotation2TimeToSpriteMap_2[] = {
4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x009A2428 */
@ -296,7 +296,7 @@ static constexpr const uint8_t Rotation3TimeToSpriteMap_0[] = {
113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
124, 125, 125, 125, 126, 126, 126, 127, 127, 127,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x0099ED49 */
@ -324,7 +324,7 @@ static constexpr const uint8_t Rotation3TimeToSpriteMap_1[] = {
113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118,
119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124,
124, 125, 125, 125, 126, 126, 126, 127, 127, 127,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x0099EED1 */
@ -361,7 +361,7 @@ static constexpr const uint8_t Rotation3TimeToSpriteMap_2[] = {
124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
/** rct2: 0x0099EB1C */

File diff suppressed because it is too large Load Diff

View File

@ -259,7 +259,7 @@ static void air_powered_vertical_rc_track_right_quarter_turn_5(
{ SPR_AIR_POWERED_VERTICAL_RC_QUARTER_TURN_5_SE_NE_PART_2, { 16, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } },
{ SPR_AIR_POWERED_VERTICAL_RC_QUARTER_TURN_5_SE_NE_PART_3, { 0, 16, 0 }, { 0, 0, 0 }, { 32, 16, 2 } },
{ SPR_AIR_POWERED_VERTICAL_RC_QUARTER_TURN_5_SE_NE_PART_4, { 0, 2, 0 }, { 0, 0, 0 }, { 32, 32, 2 } },
}
},
};
track_paint_util_right_quarter_turn_5_tiles_paint_3(
@ -423,7 +423,7 @@ static void air_powered_vertical_rc_track_banked_right_quarter_turn_5(
{ SPR_AIR_POWERED_VERTICAL_RC_BANKED_QUARTER_TURN_5_SE_NE_PART_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 3 } },
{ SPR_AIR_POWERED_VERTICAL_RC_BANKED_QUARTER_TURN_5_SE_NE_PART_3, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 3 } },
{ SPR_AIR_POWERED_VERTICAL_RC_BANKED_QUARTER_TURN_5_SE_NE_PART_4, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 3 } },
}
},
};
track_paint_util_right_quarter_turn_5_tiles_paint_2(
@ -645,9 +645,15 @@ static void air_powered_vertical_rc_track_vertical_slope_up(
},
};
static constexpr const int8_t bbHeights03[] = { 1, 6, 14, 37, 76 };
static constexpr const int8_t bbHeights12[] = { 1, 6, 14, 27, 59 };
static constexpr const int32_t supportHeights[] = { 48, 64, 128, 176, 208, 240, 240 };
static constexpr const int8_t bbHeights03[] = {
1, 6, 14, 37, 76,
};
static constexpr const int8_t bbHeights12[] = {
1, 6, 14, 27, 59,
};
static constexpr const int32_t supportHeights[] = {
48, 64, 128, 176, 208, 240, 240,
};
uint32_t supportsImageId = supportImageIds[trackSequence][direction] | air_powered_vertical_rc_get_support_colour(session);
uint32_t trackImageId = trackImageIds[trackSequence][direction] | session->TrackColours[SCHEME_TRACK];
@ -803,14 +809,22 @@ static void air_powered_vertical_rc_track_vertical_top(
}
static constexpr const uint32_t imageIds[4][6] = {
{ SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_SW_NE, SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_0,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_1,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_2, SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_NE_SW,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_3 },
{ SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_NW_SE, SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_0,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_1,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_2, SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_SE_NW,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_3 },
{
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_SW_NE,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_0,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_1,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_2,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_NE_SW,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_SW_NE_SEQ_3,
},
{
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_NW_SE,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_0,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_1,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_2,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_SUPPORT_SE_NW,
SPR_AIR_POWERED_VERTICAL_RC_VERTICAL_TOP_TRACK_NW_SE_SEQ_3,
},
};
uint32_t imageIdS, imageIdT;

View File

@ -38,7 +38,12 @@ void bolliger_mabillard_track_flat(
{
if (trackElement.HasChain())
{
uint32_t imageIds[] = { 17486, 17487, 17488, 17489 };
uint32_t imageIds[] = {
17486,
17487,
17488,
17489,
};
PaintAddImageAsParentRotated(
session, direction, session->TrackColours[SCHEME_TRACK] | imageIds[direction], 0, 0, 32, 20, 3, height, 0, 6,
height);
@ -50,7 +55,12 @@ void bolliger_mabillard_track_flat(
}
else
{
uint32_t imageIds[] = { 17146, 17147, 17146, 17147 };
uint32_t imageIds[] = {
17146,
17147,
17146,
17147,
};
PaintAddImageAsParentRotated(
session, direction, session->TrackColours[SCHEME_TRACK] | imageIds[direction], 0, 0, 32, 20, 3, height, 0, 6,

File diff suppressed because it is too large Load Diff

View File

@ -130,14 +130,26 @@ static constexpr const uint32_t virginia_reel_track_pieces_25_deg_up_lift_hill[4
};
static constexpr const uint32_t virginia_reel_track_pieces_flat_quarter_turn_3_tiles[4][3] = {
{ SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_0, SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_2 },
{ SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_0, SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_2 },
{ SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_0, SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_2 },
{ SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_0, SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_2 }
{
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_VIRGINIA_REEL_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_2,
},
};
static constexpr const uint32_t virginia_reel_track_pieces_flat_quarter_turn_1_tile[4] = {
@ -447,7 +459,12 @@ static void paint_virginia_reel_station(
paint_util_set_general_support_height(session, height + 32, 0x20);
}
static constexpr const uint8_t virginia_reel_left_quarter_turn_supports[] = { 5, 2, 3, 4 };
static constexpr const uint8_t virginia_reel_left_quarter_turn_supports[] = {
5,
2,
3,
4,
};
/** rct2: 0x00811304 */
static void paint_virginia_reel_track_left_quarter_turn_3_tiles(
@ -477,7 +494,12 @@ static void paint_virginia_reel_track_left_quarter_turn_3_tiles(
paint_util_set_general_support_height(session, height + 32, 0x20);
}
static constexpr const uint8_t virginia_reel_right_quarter_turn_3_tiles_to_left_turn_map[] = { 3, 1, 2, 0 };
static constexpr const uint8_t virginia_reel_right_quarter_turn_3_tiles_to_left_turn_map[] = {
3,
1,
2,
0,
};
/** rct2: 0x00811314 */
static void paint_virginia_reel_track_right_quarter_turn_3_tiles(

View File

@ -531,7 +531,7 @@ static void wild_mouse_track_right_quarter_turn_3(
{ SPR_WILD_MOUSE_QUARTER_TURN_3_SE_NE_PART_0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 3 } },
{ SPR_WILD_MOUSE_QUARTER_TURN_3_SE_NE_PART_1, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 3 } },
{ SPR_WILD_MOUSE_QUARTER_TURN_3_SE_NE_PART_2, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 3 } },
}
},
};
track_paint_util_right_quarter_turn_3_tiles_paint_3(
@ -583,7 +583,7 @@ static void wild_mouse_track_right_quarter_turn_3_25_deg_down(
{
{ SPR_WILD_MOUSE_QUARTER_TURN_3_25_DEG_DOWN_SE_NE_PART_0, { 6, 0, 0 }, { 0, 0, 0 }, { 20, 32, 3 } },
{ SPR_WILD_MOUSE_QUARTER_TURN_3_25_DEG_DOWN_SE_NE_PART_1, { 0, 6, 0 }, { 0, 0, 0 }, { 32, 20, 3 } },
}
},
};
static constexpr const int16_t generalSupportHeights[] = { 72, 56, 56, 72 };
@ -651,7 +651,7 @@ static void wild_mouse_track_right_quarter_turn_3_25_deg_up(
{
{ SPR_WILD_MOUSE_QUARTER_TURN_3_25_DEG_UP_SE_NE_PART_0, { 6, 0, 0 }, { 0, 0, 0 }, { 20, 32, 3 } },
{ SPR_WILD_MOUSE_QUARTER_TURN_3_25_DEG_UP_SE_NE_PART_1, { 0, 6, 0 }, { 0, 0, 0 }, { 32, 20, 3 } },
}
},
};
static constexpr const int16_t generalSupportHeights[] = { 72, 56, 56, 72 };

File diff suppressed because it is too large Load Diff

View File

@ -506,7 +506,7 @@ static void wooden_wild_mouse_track_right_quarter_turn_3(
{ SPR_WOODEN_WILD_MOUSE_QUARTER_TURN_3_SE_NE_PART_0, { 6, 0, 0 }, { 0, 0, 0 }, { 20, 32, 1 } },
{ SPR_WOODEN_WILD_MOUSE_QUARTER_TURN_3_SE_NE_PART_1, { 0, 16, 0 }, { 0, 0, 0 }, { 16, 16, 1 } },
{ SPR_WOODEN_WILD_MOUSE_QUARTER_TURN_3_SE_NE_PART_2, { 0, 6, 0 }, { 0, 0, 0 }, { 32, 20, 1 } },
}
},
};
static uint8_t supportType[] = { 4, 5, 2, 3 };

View File

@ -133,14 +133,26 @@ static constexpr const uint32_t car_ride_track_pieces_left_quarter_turn_1_tile[4
};
static constexpr const uint32_t car_ride_track_pieces_quarter_turn_3_tiles[4][3] = {
{ SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SW_SE_PART_0, SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SW_SE_PART_2 },
{ SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NW_SW_PART_0, SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NW_SW_PART_2 },
{ SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NE_NW_PART_0, SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NE_NW_PART_2 },
{ SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SE_NE_PART_0, SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SE_NE_PART_2 }
{
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_CAR_RIDE_QUARTER_TURN_3_TILES_SE_NE_PART_2,
},
};
/** rct2: 0x006F72C8 */

View File

@ -20,11 +20,29 @@ struct rct_crooked_house_bound_box
CoordsXY length;
};
static constexpr const rct_crooked_house_bound_box crooked_house_data[] = { { { 6, 0 }, { 42, 24 } },
{ { 0, 0 }, { 0, 0 } },
{ { -16, -16 }, { 32, 32 } },
{ { 0, 0 }, { 0, 0 } }, // Unused
{ { 0, 6 }, { 24, 42 } } };
static constexpr const rct_crooked_house_bound_box crooked_house_data[] = {
{
{ 6, 0 },
{ 42, 24 },
},
{
{ 0, 0 },
{ 0, 0 },
},
{
{ -16, -16 },
{ 32, 32 },
},
{
// Unused
{ 0, 0 },
{ 0, 0 },
},
{
{ 0, 6 },
{ 24, 42 },
},
};
/**
* rct2: 0x0088ABA4

View File

@ -26,8 +26,12 @@ enum
SPR_DODGEMS_FENCE_TOP_LEFT = 21937
};
static constexpr const uint32_t dodgems_fence_sprites[] = { SPR_DODGEMS_FENCE_TOP_RIGHT, SPR_DODGEMS_FENCE_BOTTOM_RIGHT,
SPR_DODGEMS_FENCE_BOTTOM_LEFT, SPR_DODGEMS_FENCE_TOP_LEFT };
static constexpr const uint32_t dodgems_fence_sprites[] = {
SPR_DODGEMS_FENCE_TOP_RIGHT,
SPR_DODGEMS_FENCE_BOTTOM_RIGHT,
SPR_DODGEMS_FENCE_BOTTOM_LEFT,
SPR_DODGEMS_FENCE_TOP_LEFT,
};
static void paint_dodgems_roof(paint_session* session, int32_t height, int32_t offset)
{

View File

@ -103,14 +103,26 @@ static constexpr const uint32_t ghost_train_track_pieces_quarter_turn_1_tile[4]
};
static constexpr const uint32_t ghost_train_track_pieces_quarter_turn_3_tiles[4][3] = {
{ SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SW_SE_PART_0, SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SW_SE_PART_2 },
{ SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NW_SW_PART_0, SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NW_SW_PART_2 },
{ SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NE_NW_PART_0, SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NE_NW_PART_2 },
{ SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SE_NE_PART_0, SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SE_NE_PART_2 }
{
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_GHOST_TRAIN_QUARTER_TURN_3_TILES_SE_NE_PART_2,
},
};
static constexpr const uint32_t ghost_train_track_pieces_spinning_tunnel_track[4] = {

View File

@ -16,10 +16,14 @@
#include "../Vehicle.h"
/** rct2: 0x0142805C */
static constexpr const uint32_t merry_go_round_rider_offsets[] = { 0, 32, 64, 96, 16, 48, 80, 112 };
static constexpr const uint32_t merry_go_round_rider_offsets[] = {
0, 32, 64, 96, 16, 48, 80, 112,
};
/** rct2: 0x0142807C */
static constexpr const uint16_t merry_go_round_breakdown_vibration[] = { 0, 1, 2, 3, 4, 3, 2, 1, 0, 0 };
static constexpr const uint16_t merry_go_round_breakdown_vibration[] = {
0, 1, 2, 3, 4, 3, 2, 1, 0, 0,
};
/**
* rct2: 0x0076287D

View File

@ -264,7 +264,12 @@ static void paint_mini_helicopters_track_left_quarter_turn_3_tiles(
paint_util_set_general_support_height(session, height + 32, 0x20);
}
static constexpr const uint8_t mini_helicopters_right_quarter_turn_3_tiles_to_left_turn_map[] = { 3, 1, 2, 0 };
static constexpr const uint8_t mini_helicopters_right_quarter_turn_3_tiles_to_left_turn_map[] = {
3,
1,
2,
0,
};
/** rct2: 0x0081F3F8 */
static void paint_mini_helicopters_track_right_quarter_turn_3_tiles(

View File

@ -70,8 +70,10 @@ enum
SPR_MONORAIL_CYCLES_S_BEND_RIGHT_NW_SE_PART_3 = 16869,
};
static constexpr const uint32_t monorail_cycles_track_pieces_flat[4] = { SPR_MONORAIL_CYCLES_FLAT_SW_NE,
SPR_MONORAIL_CYCLES_FLAT_NW_SE };
static constexpr const uint32_t monorail_cycles_track_pieces_flat[4] = {
SPR_MONORAIL_CYCLES_FLAT_SW_NE,
SPR_MONORAIL_CYCLES_FLAT_NW_SE,
};
static constexpr const uint32_t monorail_cycles_track_pieces_flat_quarter_turn_5_tiles[4][5] = {
{
@ -101,7 +103,7 @@ static constexpr const uint32_t monorail_cycles_track_pieces_flat_quarter_turn_5
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_5_TILES_SE_NE_PART_2,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_5_TILES_SE_NE_PART_3,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_5_TILES_SE_NE_PART_4,
}
},
};
static constexpr const uint32_t monorail_cycles_track_pieces_s_bend_left[2][4] = {
@ -116,7 +118,7 @@ static constexpr const uint32_t monorail_cycles_track_pieces_s_bend_left[2][4] =
SPR_MONORAIL_CYCLES_S_BEND_LEFT_NW_SE_PART_1,
SPR_MONORAIL_CYCLES_S_BEND_LEFT_NW_SE_PART_2,
SPR_MONORAIL_CYCLES_S_BEND_LEFT_NW_SE_PART_3,
}
},
};
static constexpr const uint32_t monorail_cycles_track_pieces_s_bend_right[2][4] = {
@ -131,18 +133,30 @@ static constexpr const uint32_t monorail_cycles_track_pieces_s_bend_right[2][4]
SPR_MONORAIL_CYCLES_S_BEND_RIGHT_NW_SE_PART_1,
SPR_MONORAIL_CYCLES_S_BEND_RIGHT_NW_SE_PART_2,
SPR_MONORAIL_CYCLES_S_BEND_RIGHT_NW_SE_PART_3,
}
},
};
static constexpr const uint32_t monorail_cycles_track_pieces_flat_quarter_turn_3_tiles[4][3] = {
{ SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_0, SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_2 },
{ SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_0, SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_2 },
{ SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_0, SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_2 },
{ SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_0, SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_2 }
{
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_MONORAIL_CYCLES_FLAT_QUARTER_TURN_3_TILES_SE_NE_PART_2,
},
};
static paint_struct* paint_monorail_cycles_util_7c(
@ -258,7 +272,12 @@ static void paint_monorail_cycles_track_left_quarter_turn_3_tiles(
paint_util_set_general_support_height(session, height + 32, 0x20);
}
static constexpr const uint8_t monorail_cycles_right_quarter_turn_3_tiles_to_left_turn_map[] = { 3, 1, 2, 0 };
static constexpr const uint8_t monorail_cycles_right_quarter_turn_3_tiles_to_left_turn_map[] = {
3,
1,
2,
0,
};
/** rct2: 0x0088AD98 */
static void paint_monorail_cycles_track_right_quarter_turn_3_tiles(

View File

@ -43,17 +43,22 @@ struct bound_box
};
/** rct2: 0x01428220 */
static constexpr const int16_t MagicCarpetOscillationZ[] = { -2, -1, 1, 5, 10, 16, 23, 30, 37, 45, 52, 59, 65, 70, 74, 76,
77, 76, 74, 70, 65, 59, 52, 45, 37, 30, 23, 16, 10, 5, 1, -1 };
static constexpr const int16_t MagicCarpetOscillationZ[] = {
-2, -1, 1, 5, 10, 16, 23, 30, 37, 45, 52, 59, 65, 70, 74, 76, 77, 76, 74, 70, 65, 59, 52, 45, 37, 30, 23, 16, 10, 5, 1, -1,
};
/** rct2: 0x01428260 */
static constexpr const int8_t MagicCarpetOscillationXY[] = { 0, 6, 12, 18, 23, 27, 30, 31, 32, 31, 30,
27, 23, 18, 12, 6, 0, -5, -11, -17, -22, -26,
-29, -30, -31, -30, -29, -26, -22, -17, -11, -5 };
static constexpr const int8_t MagicCarpetOscillationXY[] = {
0, 6, 12, 18, 23, 27, 30, 31, 32, 31, 30, 27, 23, 18, 12, 6,
0, -5, -11, -17, -22, -26, -29, -30, -31, -30, -29, -26, -22, -17, -11, -5,
};
/** rct2: 0x014281F0 */
static constexpr const bound_box MagicCarpetBounds[] = {
{ 0, 8, 32, 16 }, { 8, 0, 16, 32 }, { 0, 8, 32, 16 }, { 8, 0, 16, 32 }
{ 0, 8, 32, 16 },
{ 8, 0, 16, 32 },
{ 0, 8, 32, 16 },
{ 8, 0, 16, 32 },
};
static const Vehicle* get_first_vehicle(const Ride* ride)

View File

@ -17,10 +17,20 @@
#include "../Vehicle.h"
/** rct2: 0x01428010 */
static constexpr const uint32_t swinging_inverter_ship_base_sprite_offset[] = { 0, 16, 0, 16 };
static constexpr const uint32_t swinging_inverter_ship_base_sprite_offset[] = {
0,
16,
0,
16,
};
/** rct2: 0x01428020 */
static constexpr const uint32_t swinging_inverter_ship_animating_base_sprite_offset[] = { 32, 33, 32, 33 };
static constexpr const uint32_t swinging_inverter_ship_animating_base_sprite_offset[] = {
32,
33,
32,
33,
};
struct swinging_inverter_ship_bound_box
{
@ -32,7 +42,10 @@ struct swinging_inverter_ship_bound_box
/** rct2: 0x01428020 */
static constexpr const swinging_inverter_ship_bound_box swinging_inverter_ship_bounds[] = {
{ 32, 16, 0, 8 }, { 16, 32, 8, 0 }, { 32, 16, 0, 8 }, { 16, 32, 8, 0 }
{ 32, 16, 0, 8 },
{ 16, 32, 8, 0 },
{ 32, 16, 0, 8 },
{ 16, 32, 8, 0 },
};
enum
@ -43,10 +56,12 @@ enum
SPR_SWINGING_INVERTER_SHIP_FRAME_3 = 22001,
};
static constexpr const uint32_t swinging_inverter_ship_frame_sprites[] = { SPR_SWINGING_INVERTER_SHIP_FRAME_0,
SPR_SWINGING_INVERTER_SHIP_FRAME_1,
SPR_SWINGING_INVERTER_SHIP_FRAME_2,
SPR_SWINGING_INVERTER_SHIP_FRAME_3 };
static constexpr const uint32_t swinging_inverter_ship_frame_sprites[] = {
SPR_SWINGING_INVERTER_SHIP_FRAME_0,
SPR_SWINGING_INVERTER_SHIP_FRAME_1,
SPR_SWINGING_INVERTER_SHIP_FRAME_2,
SPR_SWINGING_INVERTER_SHIP_FRAME_3,
};
static void paint_swinging_inverter_ship_structure(
paint_session* session, const Ride& ride, uint8_t direction, int8_t axisOffset, uint16_t height)

View File

@ -33,7 +33,12 @@ struct swinging_ship_bound_box
};
/** rct2: 0x008A83B0 */
static constexpr const uint32_t swinging_ship_base_sprite_offset[] = { 0, 9, 0, 9 };
static constexpr const uint32_t swinging_ship_base_sprite_offset[] = {
0,
9,
0,
9,
};
/** rct2: 0x008A83C0 */
static constexpr const swinging_ship_bound_box swinging_ship_data[] = {

View File

@ -68,8 +68,12 @@ enum
SPR_CHAIRLIFT_STATION_END_CAP_NW,
};
const uint32_t chairlift_bullwheel_frames[] = { SPR_CHAIRLIFT_BULLWHEEL_FRAME_1, SPR_CHAIRLIFT_BULLWHEEL_FRAME_2,
SPR_CHAIRLIFT_BULLWHEEL_FRAME_3, SPR_CHAIRLIFT_BULLWHEEL_FRAME_4 };
const uint32_t chairlift_bullwheel_frames[] = {
SPR_CHAIRLIFT_BULLWHEEL_FRAME_1,
SPR_CHAIRLIFT_BULLWHEEL_FRAME_2,
SPR_CHAIRLIFT_BULLWHEEL_FRAME_3,
SPR_CHAIRLIFT_BULLWHEEL_FRAME_4,
};
static void chairlift_paint_util_draw_supports(paint_session* session, int32_t segments, uint16_t height)
{

View File

@ -134,8 +134,12 @@ enum
SPR_MINIATURE_RAILWAY_DIAG_25_DEG_UP_S_N = 23452,
};
static constexpr const uint32_t miniature_railway_track_floor[4] = { SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_90_DEG };
static constexpr const uint32_t miniature_railway_track_floor[4] = {
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_90_DEG,
};
static constexpr const uint32_t miniature_railway_track_pieces_flat[4] = {
SPR_MINIATURE_RAILWAY_FLAT_SW_NE,
@ -144,8 +148,12 @@ static constexpr const uint32_t miniature_railway_track_pieces_flat[4] = {
SPR_MINIATURE_RAILWAY_FLAT_NW_SE,
};
static constexpr const uint32_t miniature_railway_station_floor[4] = { SPR_STATION_BASE_A_SW_NE, SPR_STATION_BASE_A_NW_SE,
SPR_STATION_BASE_A_SW_NE, SPR_STATION_BASE_A_NW_SE };
static constexpr const uint32_t miniature_railway_station_floor[4] = {
SPR_STATION_BASE_A_SW_NE,
SPR_STATION_BASE_A_NW_SE,
SPR_STATION_BASE_A_SW_NE,
SPR_STATION_BASE_A_NW_SE,
};
static constexpr const uint32_t miniature_railway_track_pieces_flat_station[4] = {
SPR_MINIATURE_RAILWAY_FLAT_NO_BASE_SW_NE,
@ -182,7 +190,7 @@ static constexpr const uint32_t miniature_railway_track_pieces_flat_quarter_turn
SPR_MINIATURE_RAILWAY_QUARTER_TURN_5_TILES_SE_NE_PART_2,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_5_TILES_SE_NE_PART_3,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_5_TILES_SE_NE_PART_4,
}
},
};
static constexpr const uint32_t miniature_railway_track_pieces_25_deg_up[4] = {
@ -218,7 +226,7 @@ static constexpr const uint32_t miniature_railway_track_pieces_s_bend_left[2][4]
SPR_MINIATURE_RAILWAY_S_BEND_LEFT_SE_NW_PART_2,
SPR_MINIATURE_RAILWAY_S_BEND_LEFT_SE_NW_PART_1,
SPR_MINIATURE_RAILWAY_S_BEND_LEFT_SE_NW_PART_0,
}
},
};
static constexpr const uint32_t miniature_railway_track_pieces_s_bend_right[2][4] = {
@ -233,18 +241,30 @@ static constexpr const uint32_t miniature_railway_track_pieces_s_bend_right[2][4
SPR_MINIATURE_RAILWAY_S_BEND_RIGHT_SE_NW_PART_2,
SPR_MINIATURE_RAILWAY_S_BEND_RIGHT_SE_NW_PART_1,
SPR_MINIATURE_RAILWAY_S_BEND_RIGHT_SE_NW_PART_0,
}
},
};
static constexpr const uint32_t miniature_railway_track_pieces_flat_quarter_turn_3_tiles[4][3] = {
{ SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_0, SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_2 },
{ SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NW_SW_PART_0, SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NW_SW_PART_2 },
{ SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NE_NW_PART_0, SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NE_NW_PART_2 },
{ SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SE_NE_PART_0, SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SE_NE_PART_2 }
{
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SE_NE_PART_2,
},
};
static constexpr const uint32_t miniature_railway_track_pieces_right_eight_to_diag[4][4] = {
@ -573,16 +593,28 @@ static uint32_t miniature_railway_track_to_grooved_indent(
if (direction & 0x1)
{
static constexpr uint32_t imageIds[2][2] = {
{ SPR_G2_MINIATURE_RAILWAY_INSET_NW_SE, SPR_G2_MINIATURE_RAILWAY_INSET_END_NW },
{ SPR_G2_MINIATURE_RAILWAY_INSET_END_SE, SPR_G2_MINIATURE_RAILWAY_INSET_END_NW_SE },
{
SPR_G2_MINIATURE_RAILWAY_INSET_NW_SE,
SPR_G2_MINIATURE_RAILWAY_INSET_END_NW,
},
{
SPR_G2_MINIATURE_RAILWAY_INSET_END_SE,
SPR_G2_MINIATURE_RAILWAY_INSET_END_NW_SE,
},
};
imageIdAlt = imageIds[(correctedEdges & 0x2) ? 0 : 1][(correctedEdges & 0x8) ? 0 : 1];
}
else
{
static constexpr uint32_t imageIds[2][2] = {
{ SPR_G2_MINIATURE_RAILWAY_INSET_SW_NE, SPR_G2_MINIATURE_RAILWAY_INSET_END_SW },
{ SPR_G2_MINIATURE_RAILWAY_INSET_END_NE, SPR_G2_MINIATURE_RAILWAY_INSET_END_SW_NE },
{
SPR_G2_MINIATURE_RAILWAY_INSET_SW_NE,
SPR_G2_MINIATURE_RAILWAY_INSET_END_SW,
},
{
SPR_G2_MINIATURE_RAILWAY_INSET_END_NE,
SPR_G2_MINIATURE_RAILWAY_INSET_END_SW_NE,
},
};
imageIdAlt = imageIds[(correctedEdges & 0x1) ? 0 : 1][(correctedEdges & 0x4) ? 0 : 1];
}
@ -810,111 +842,140 @@ static void paint_miniature_railway_track_25_deg_down_to_flat(
paint_miniature_railway_track_flat_to_25_deg_up(session, ride, trackSequence, (direction + 2) % 4, height, trackElement);
}
// clang-format off
static constexpr const CoordsXY miniature_railway_right_quarter_turn_5_tiles_offsets[4][5] = { {
{ 0, 2 },
{ 0, 16 },
{ 0, 0 },
{ 16, 0 },
{ 2, 0 },
},
{
{ 2, 0 },
{ 16, 0 },
{ 0, 16 },
{ 0, 0 },
{ 0, 2 },
},
{
{ 0, 2 },
{ 0, 0 },
{ 16, 16 },
{ 0, 0 },
{ 2, 0 },
},
{
{ 2, 0 },
{ 0, 0 },
{ 16, 0 },
{ 0, 16 },
{ 0, 2 },
} };
static constexpr const CoordsXY miniature_railway_right_quarter_turn_5_tiles_offsets[4][5] = {
{
{ 0, 2 },
{ 0, 16 },
{ 0, 0 },
{ 16, 0 },
{ 2, 0 },
},
{
{ 2, 0 },
{ 16, 0 },
{ 0, 16 },
{ 0, 0 },
{ 0, 2 },
},
{
{ 0, 2 },
{ 0, 0 },
{ 16, 16 },
{ 0, 0 },
{ 2, 0 },
},
{
{ 2, 0 },
{ 0, 0 },
{ 16, 0 },
{ 0, 16 },
{ 0, 2 },
},
};
static constexpr const CoordsXYZ miniature_railway_right_quarter_turn_5_tiles_bound_offsets[4][5] = { {
{ 0, 2, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 2, 0, 0 },
},
{
{ 2, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 0, 2, 0 },
},
{
{ 0, 2, 0 },
{ 0, 0, 0 },
{ 16, 16, 0 },
{ 0, 0, 0 },
{ 2, 0, 0 },
},
{
{ 2, 0, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 2, 0 },
} };
static constexpr const CoordsXYZ miniature_railway_right_quarter_turn_5_tiles_bound_offsets[4][5] = {
{
{ 0, 2, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 2, 0, 0 },
},
{
{ 2, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 0, 2, 0 },
},
{
{ 0, 2, 0 },
{ 0, 0, 0 },
{ 16, 16, 0 },
{ 0, 0, 0 },
{ 2, 0, 0 },
},
{
{ 2, 0, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 2, 0 },
},
};
static constexpr const CoordsXY miniature_railway_right_quarter_turn_5_tiles_bound_lengths[4][5] = { {
{ 32, 32 },
{ 32, 16 },
{ 16, 16 },
{ 16, 32 },
{ 32, 32 },
},
{
{ 32, 32 },
{ 16, 34 },
{ 16, 16 },
{ 32, 16 },
{ 32, 27 },
},
{
{ 32, 27 },
{ 32, 16 },
{ 16, 16 },
{ 16, 32 },
{ 27, 32 },
},
{
{ 27, 32 },
{ 16, 32 },
{ 16, 16 },
{ 32, 16 },
{ 32, 32 },
} };
// clang-format on
static constexpr const CoordsXY miniature_railway_right_quarter_turn_5_tiles_bound_lengths[4][5] = {
{
{ 32, 32 },
{ 32, 16 },
{ 16, 16 },
{ 16, 32 },
{ 32, 32 },
},
{
{ 32, 32 },
{ 16, 34 },
{ 16, 16 },
{ 32, 16 },
{ 32, 27 },
},
{
{ 32, 27 },
{ 32, 16 },
{ 16, 16 },
{ 16, 32 },
{ 27, 32 },
},
{
{ 27, 32 },
{ 16, 32 },
{ 16, 16 },
{ 32, 16 },
{ 32, 32 },
},
};
static constexpr const uint32_t miniature_railway_right_quarter_turn_5_tiles_track_floor[4][5] = {
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_S_SEGMENT, SPR_FLOOR_PLANKS_N_SEGMENT, SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG },
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_W_SEGMENT, SPR_FLOOR_PLANKS_E_SEGMENT, SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS },
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_N_SEGMENT, SPR_FLOOR_PLANKS_S_SEGMENT, SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG },
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_E_SEGMENT, SPR_FLOOR_PLANKS_W_SEGMENT, SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS },
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS,
},
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS,
},
};
static constexpr const int8_t right_quarter_turn_5_supports_type[4][7] = {
{ 0, -1, 4, 2, -1, 4, 1 }, { 1, -1, 5, 3, -1, 5, 0 }, { 0, -1, 2, 4, -1, 2, 1 }, { 1, -1, 3, 5, -1, 3, 0 }
{ 0, -1, 4, 2, -1, 4, 1 },
{ 1, -1, 5, 3, -1, 5, 0 },
{ 0, -1, 2, 4, -1, 2, 1 },
{ 1, -1, 3, 5, -1, 3, 0 },
};
static constexpr const int8_t miniature_railway_right_quarter_turn_5_tiles_sprite_map[] = { 0, -1, 1, 2, -1, 3, 4 };
static constexpr const int8_t miniature_railway_right_quarter_turn_5_tiles_sprite_map[] = {
0, -1, 1, 2, -1, 3, 4,
};
/** rct2: 0x008AD140 */
static void paint_miniature_railway_track_right_quarter_turn_5_tiles(
@ -1016,17 +1077,25 @@ static void paint_miniature_railway_track_left_quarter_turn_5_tiles(
}
static constexpr const int8_t s_bend_left_supports_type[4][4] = {
{ 0, 5, 3, 0 }, { 1, 2, 4, 1 }, { 0, 5, 3, 0 }, { 1, 2, 4, 1 }
{ 0, 5, 3, 0 },
{ 1, 2, 4, 1 },
{ 0, 5, 3, 0 },
{ 1, 2, 4, 1 },
};
static constexpr const uint32_t miniature_railway_s_bend_left_tiles_track_floor[2][4] = {
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_W_SEGMENT, SPR_FLOOR_PLANKS_E_SEGMENT, SPR_FLOOR_PLANKS },
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
}
},
};
/** rct2: 0x8AD150 */
@ -1117,17 +1186,25 @@ static void paint_miniature_railway_track_s_bend_left(
}
static constexpr const int8_t s_bend_right_supports_type[4][4] = {
{ 0, 4, 2, 0 }, { 1, 5, 3, 1 }, { 0, 4, 2, 0 }, { 1, 5, 3, 1 }
{ 0, 4, 2, 0 },
{ 1, 5, 3, 1 },
{ 0, 4, 2, 0 },
{ 1, 5, 3, 1 },
};
static constexpr const uint32_t miniature_railway_s_bend_right_tiles_track_floor[2][4] = {
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_S_SEGMENT, SPR_FLOOR_PLANKS_N_SEGMENT, SPR_FLOOR_PLANKS },
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
}
},
};
/** rct2: 0x008AD160 */
@ -1237,29 +1314,31 @@ static constexpr const uint32_t miniature_railway_right_quarter_turn_3_tile_trac
SPR_FLOOR_PLANKS_E_SEGMENT,
0,
SPR_FLOOR_PLANKS_E_SEGMENT,
}
},
};
static constexpr const CoordsXYZ miniature_railway_right_quarter_turn_3_tile_bound_offsets[4][3] = { {
{ 0, 6, 0 },
{ 16, 16, 0 },
{ 6, 0, 0 },
},
{
{ 6, 0, 0 },
{ 16, 0, 0 },
{ 0, 6, 0 },
},
{
{ 0, 6, 0 },
{ 0, 0, 0 },
{ 6, 0, 0 },
},
{
{ 6, 0, 0 },
{ 0, 16, 0 },
{ 0, 6, 0 },
} };
static constexpr const CoordsXYZ miniature_railway_right_quarter_turn_3_tile_bound_offsets[4][3] = {
{
{ 0, 6, 0 },
{ 16, 16, 0 },
{ 6, 0, 0 },
},
{
{ 6, 0, 0 },
{ 16, 0, 0 },
{ 0, 6, 0 },
},
{
{ 0, 6, 0 },
{ 0, 0, 0 },
{ 6, 0, 0 },
},
{
{ 6, 0, 0 },
{ 0, 16, 0 },
{ 0, 6, 0 },
},
};
/** rct2: 0x008AD1B0 */
static void paint_miniature_railway_track_right_quarter_turn_3_tiles(
@ -1337,15 +1416,39 @@ static void paint_miniature_railway_track_left_quarter_turn_3_tiles(
session, ride, trackSequence, (direction + 1) % 4, height, trackElement);
}
static constexpr const int8_t paint_miniature_railway_eighth_to_diag_index[] = { 0, 1, 2, -1, 3 };
static constexpr const int8_t paint_miniature_railway_eighth_to_diag_index[] = {
0, 1, 2, -1, 3,
};
static constexpr const uint32_t miniature_railway_floor_track_pieces_left_eight_to_diag[4][5] = {
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_E_SEGMENT, SPR_FLOOR_PLANKS_W_SEGMENT, SPR_FLOOR_PLANKS_90_DEG },
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_S_SEGMENT, SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS },
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_W_SEGMENT, SPR_FLOOR_PLANKS_E_SEGMENT, SPR_FLOOR_PLANKS_90_DEG },
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_N_SEGMENT, SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS },
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS,
},
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS,
},
};
static constexpr const CoordsXYZ miniature_railway_track_floor_pieces_left_eight_to_diag_bounds[4][5] = {
@ -1480,13 +1583,34 @@ static void paint_miniature_railway_track_left_eighth_to_diag(
}
static constexpr const uint32_t miniature_railway_floor_track_pieces_right_eight_to_diag[4][5] = {
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_N_SEGMENT, SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG },
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_E_SEGMENT, SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS },
{ SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS, SPR_FLOOR_PLANKS_S_SEGMENT, SPR_FLOOR_PLANKS_N_SEGMENT, SPR_FLOOR_PLANKS_90_DEG },
{ SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_90_DEG, SPR_FLOOR_PLANKS_W_SEGMENT, SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS },
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS,
},
{
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS,
SPR_FLOOR_PLANKS_S_SEGMENT,
SPR_FLOOR_PLANKS_N_SEGMENT,
SPR_FLOOR_PLANKS_90_DEG,
},
{
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_90_DEG,
SPR_FLOOR_PLANKS_W_SEGMENT,
SPR_FLOOR_PLANKS_E_SEGMENT,
SPR_FLOOR_PLANKS,
},
};
static constexpr const CoordsXYZ miniature_railway_track_floor_pieces_right_eight_to_diag_bounds[4][5] = {
@ -1797,7 +1921,12 @@ static void miniature_railway_track_diag_25_deg_up(
{ { 0, 0 }, { +8, +16 }, { +8, +8 }, { +8, +8 } },
{ { 0, 0 }, { -8, -8 }, { -8, -8 }, { +8, +8 } },
{ { 0, 0 }, { +8, +8 }, { +8, +16 }, { +8, +8 } },
{ { 0, 0 }, { -8, -8 }, { -8, -8 }, { +8, +8 } },
{
{ 0, 0 },
{ -8, -8 },
{ -8, -8 },
{ +8, +8 },
},
};
uint32_t imageId = miniature_railway_track_pieces_diag_25_deg_up[direction];

View File

@ -167,7 +167,7 @@ static constexpr const uint32_t monorail_track_pieces_flat_quarter_turn_5_tiles[
SPR_MONORAIL_QUARTER_TURN_5_TILES_SE_NE_PART_2,
SPR_MONORAIL_QUARTER_TURN_5_TILES_SE_NE_PART_3,
SPR_MONORAIL_QUARTER_TURN_5_TILES_SE_NE_PART_4,
}
},
};
static constexpr const uint32_t monorail_track_pieces_25_deg_up[4] = {
@ -191,41 +191,57 @@ static constexpr const uint32_t monorail_track_pieces_25_deg_up_to_flat[4] = {
SPR_MONORAIL_25_DEG_UP_TO_FLAT_SE_NW,
};
static constexpr const uint32_t monorail_track_pieces_s_bend_left[2][4] = { {
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_0,
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_1,
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_2,
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_3,
},
{
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_3,
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_2,
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_1,
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_0,
} };
static constexpr const uint32_t monorail_track_pieces_s_bend_left[2][4] = {
{
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_0,
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_1,
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_2,
SPR_MONORAIL_S_BEND_LEFT_SW_NE_PART_3,
},
{
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_3,
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_2,
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_1,
SPR_MONORAIL_S_BEND_LEFT_SE_NW_PART_0,
},
};
static constexpr const uint32_t monorail_track_pieces_s_bend_right[2][4] = { {
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_0,
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_1,
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_2,
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_3,
},
{
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_3,
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_2,
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_1,
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_0,
} };
static constexpr const uint32_t monorail_track_pieces_s_bend_right[2][4] = {
{
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_0,
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_1,
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_2,
SPR_MONORAIL_S_BEND_RIGHT_SW_NE_PART_3,
},
{
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_3,
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_2,
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_1,
SPR_MONORAIL_S_BEND_RIGHT_SE_NW_PART_0,
},
};
static constexpr const uint32_t monorail_track_pieces_flat_quarter_turn_3_tiles[4][3] = {
{ SPR_MONORAIL_QUARTER_TURN_3_TILES_SW_SE_PART_0, SPR_MONORAIL_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_SW_SE_PART_2 },
{ SPR_MONORAIL_QUARTER_TURN_3_TILES_NW_SW_PART_0, SPR_MONORAIL_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_NW_SW_PART_2 },
{ SPR_MONORAIL_QUARTER_TURN_3_TILES_NE_NW_PART_0, SPR_MONORAIL_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_NE_NW_PART_2 },
{ SPR_MONORAIL_QUARTER_TURN_3_TILES_SE_NE_PART_0, SPR_MONORAIL_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_SE_NE_PART_2 }
{
SPR_MONORAIL_QUARTER_TURN_3_TILES_SW_SE_PART_0,
SPR_MONORAIL_QUARTER_TURN_3_TILES_SW_SE_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_SW_SE_PART_2,
},
{
SPR_MONORAIL_QUARTER_TURN_3_TILES_NW_SW_PART_0,
SPR_MONORAIL_QUARTER_TURN_3_TILES_NW_SW_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_NW_SW_PART_2,
},
{
SPR_MONORAIL_QUARTER_TURN_3_TILES_NE_NW_PART_0,
SPR_MONORAIL_QUARTER_TURN_3_TILES_NE_NW_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_NE_NW_PART_2,
},
{
SPR_MONORAIL_QUARTER_TURN_3_TILES_SE_NE_PART_0,
SPR_MONORAIL_QUARTER_TURN_3_TILES_SE_NE_PART_1,
SPR_MONORAIL_QUARTER_TURN_3_TILES_SE_NE_PART_2,
},
};
static constexpr const uint32_t ghost_train_track_pieces_right_eight_to_diag[4][4] = {
@ -990,7 +1006,9 @@ static void paint_monorail_track_left_quarter_turn_3_tiles(
paint_monorail_track_right_quarter_turn_3_tiles(session, ride, trackSequence, (direction + 1) % 4, height, trackElement);
}
static constexpr const int8_t paint_monorail_eighth_to_diag_index[] = { 0, 1, 2, -1, 3 };
static constexpr const int8_t paint_monorail_eighth_to_diag_index[] = {
0, 1, 2, -1, 3,
};
/** rct2: 0x008AE31C */
static void paint_monorail_track_left_eighth_to_diag(
@ -1155,12 +1173,19 @@ static constexpr const bool monorail_diag_image_segment[][4] = {
{ true, false, false, false },
};
static constexpr const uint8_t monorail_diag_support_segment[] = { 1, 0, 2, 3 };
static constexpr const uint8_t monorail_diag_support_segment[] = {
1,
0,
2,
3,
};
static constexpr const int32_t monorail_diag_blocked_segments[] = { SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4 | SEGMENT_BC,
SEGMENT_C4 | SEGMENT_CC | SEGMENT_C8 | SEGMENT_B4,
SEGMENT_D0 | SEGMENT_C4 | SEGMENT_C0 | SEGMENT_D4,
SEGMENT_D0 | SEGMENT_C4 | SEGMENT_B8 | SEGMENT_C8 };
static constexpr const int32_t monorail_diag_blocked_segments[] = {
SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4 | SEGMENT_BC,
SEGMENT_C4 | SEGMENT_CC | SEGMENT_C8 | SEGMENT_B4,
SEGMENT_D0 | SEGMENT_C4 | SEGMENT_C0 | SEGMENT_D4,
SEGMENT_D0 | SEGMENT_C4 | SEGMENT_B8 | SEGMENT_C8,
};
/** rct2: 0x008AE2AC */
static void paint_monorail_track_diag_flat(

View File

@ -726,7 +726,7 @@ static void dinghy_slide_track_right_quarter_turn_5(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_SE_NE_PART_2, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_SE_NE_PART_3, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_SE_NE_PART_4, { 0, 2, 0 }, { 0, 6, 0 }, { 32, 20, 2 } },
}
},
};
static constexpr const sprite_bb frontImageIds[4][5] = {
{
@ -756,7 +756,7 @@ static void dinghy_slide_track_right_quarter_turn_5(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_FRONT_SE_NE_PART_2, { 16, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_FRONT_SE_NE_PART_3, { 0, 16, 0 }, { 0, 16, 27 }, { 32, 16, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_FRONT_SE_NE_PART_4, { 0, 2, 0 }, { 0, 6, 27 }, { 32, 20, 0 } },
}
},
};
track_paint_util_right_quarter_turn_5_tiles_paint_2(
@ -842,22 +842,30 @@ static void dinghy_slide_track_s_bend_left(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_0 } },
{ { SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_0 } },
{
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_NW_NE_SEQ_0 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NW_SW_NW_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -937,22 +945,30 @@ static void dinghy_slide_track_s_bend_right(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_0 } },
{ { SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_0 } },
{
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_NE_SE_NE_SEQ_0 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_FRONT_SE_SW_SE_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -1049,7 +1065,7 @@ static void dinghy_slide_track_right_quarter_turn_3(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_SE_NE_PART_0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_SE_NE_PART_1, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_SE_NE_PART_2, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } },
}
},
};
static constexpr const sprite_bb frontImageIds[4][3] = {
{
@ -1071,7 +1087,7 @@ static void dinghy_slide_track_right_quarter_turn_3(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_FRONT_SE_NE_PART_0, { 0, 0, 0 }, { 6, 0, 27 }, { 20, 32, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_FRONT_SE_NE_PART_1, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_FRONT_SE_NE_PART_2, { 0, 0, 0 }, { 0, 6, 27 }, { 32, 20, 0 } },
}
},
};
track_paint_util_right_quarter_turn_3_tiles_paint_3(
@ -1426,7 +1442,7 @@ static void dinghy_slide_track_right_quarter_turn_5_covered(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_COVERED_SE_NE_PART_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_COVERED_SE_NE_PART_3, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_COVERED_SE_NE_PART_4, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } },
}
},
};
static constexpr const sprite_bb frontImageIds[4][5] = {
{
@ -1456,7 +1472,7 @@ static void dinghy_slide_track_right_quarter_turn_5_covered(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_COVERED_FRONT_SE_NE_PART_2, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_COVERED_FRONT_SE_NE_PART_3, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_5_COVERED_FRONT_SE_NE_PART_4, { 0, 0, 0 }, { 0, 6, 27 }, { 32, 20, 0 } },
}
},
};
track_paint_util_right_quarter_turn_5_tiles_paint_2(
@ -1535,22 +1551,30 @@ static void dinghy_slide_track_s_bend_left_covered(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_0 } },
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_0 } },
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_SE_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_NW_NE_SEQ_0 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_NW_SW_NW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NW_SW_NW_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -1630,22 +1654,30 @@ static void dinghy_slide_track_s_bend_right_covered(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_3 } },
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_0 } },
{ { SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_0 } },
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_0 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_3 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SW_NW_SW_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_NE_SE_NE_SEQ_0 },
},
{
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_3, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_3 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_2, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_1, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_DINGHY_SLIDE_S_BEND_COVERED_SE_SW_SE_SEQ_0, SPR_DINGHY_SLIDE_S_BEND_COVERED_FRONT_SE_SW_SE_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -1742,7 +1774,7 @@ static void dinghy_slide_track_right_quarter_turn_3_covered(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_COVERED_SE_NE_PART_0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_COVERED_SE_NE_PART_1, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_COVERED_SE_NE_PART_2, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } },
}
},
};
static constexpr const sprite_bb frontImageIds[4][3] = {
{
@ -1764,7 +1796,7 @@ static void dinghy_slide_track_right_quarter_turn_3_covered(
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_COVERED_FRONT_SE_NE_PART_0, { 0, 0, 0 }, { 6, 0, 27 }, { 20, 32, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_COVERED_FRONT_SE_NE_PART_1, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 } },
{ SPR_DINGHY_SLIDE_QUARTER_TURN_3_COVERED_FRONT_SE_NE_PART_2, { 0, 0, 0 }, { 0, 6, 27 }, { 32, 20, 0 } },
}
},
};
track_paint_util_right_quarter_turn_3_tiles_paint_3(

View File

@ -433,22 +433,30 @@ static void paint_log_flume_track_s_bend_left(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_3 } },
{ { SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_3 } },
{ { SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_0 } },
{ { SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_0 } },
{
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NE_NW_NE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_3 },
},
{
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NW_SW_NW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_3 },
},
{
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SW_SE_SW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_NW_NE_SEQ_0 },
},
{
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SE_NE_SE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NW_SW_NW_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -528,22 +536,30 @@ static void paint_log_flume_track_s_bend_right(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_3 } },
{ { SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_3 } },
{ { SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_0 } },
{ { SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_0 } },
{
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NE_SE_NE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_3 },
},
{
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_0 },
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SE_SW_SE_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_3 },
},
{
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_SW_NW_SW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_NE_SE_NE_SEQ_0 },
},
{
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_1, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_2 },
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_2, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_1 },
{ SPR_LOG_FLUME_3_TURN_NW_NE_NW_SEQ_3, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SE_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -628,14 +644,26 @@ static void paint_log_flume_track_left_quarter_turn_3_tiles(
};
static constexpr const uint32_t imageIdsFront[4][3] = {
{ SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_3 },
{
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_3,
},
{
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_3,
},
{
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_3,
},
{
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_3,
},
};
track_paint_util_left_quarter_turn_3_tiles_paint(
@ -695,14 +723,26 @@ static void paint_log_flume_track_right_quarter_turn_3_tiles(
};
static constexpr const uint32_t imageIdsFront[4][3] = {
{ SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_3 },
{ SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_0, SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_3 },
{
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_NW_NE_SEQ_3,
},
{
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_SE_SEQ_3,
},
{
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SE_SW_SEQ_3,
},
{
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_0,
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_2,
SPR_LOG_FLUME_3_TURN_FRONT_SW_NW_SEQ_3,
},
};
track_paint_util_right_quarter_turn_3_tiles_paint_2(

View File

@ -21,11 +21,11 @@
#ifndef NO_VEHICLES
// 0x0099279E:
static constexpr const vehicle_boundbox _riverRapidsBoundbox[] = { { -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
{ -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
{ -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
{ -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
{ -13, -13, 1, 26, 26, 13 } };
static constexpr const vehicle_boundbox _riverRapidsBoundbox[] = {
{ -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
{ -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
{ -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 }, { -13, -13, 1, 26, 26, 13 },
};
#endif
enum

View File

@ -379,7 +379,7 @@ static constexpr const sprite_bb RiverRaftsLeftQuarterTurn5_Top[4][5] = {
SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 },
SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 },
SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 },
}
},
};
static constexpr const sprite_bb RiverRaftsLeftQuarterTurn5_Side[4][5] = {
@ -410,7 +410,7 @@ static constexpr const sprite_bb RiverRaftsLeftQuarterTurn5_Side[4][5] = {
SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 },
SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_5, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 },
SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 },
}
},
};
static constexpr const sprite_bb RiverRaftsRightQuarterTurn5_Top[4][5] = {
@ -441,7 +441,7 @@ static constexpr const sprite_bb RiverRaftsRightQuarterTurn5_Top[4][5] = {
SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 },
SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 },
SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 },
}
},
};
static constexpr const sprite_bb RiverRaftsRightQuarterTurn5_Side[4][5] = {
@ -472,7 +472,7 @@ static constexpr const sprite_bb RiverRaftsRightQuarterTurn5_Side[4][5] = {
SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 },
SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 },
SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 },
}
},
};
static void paint_splash_boats_track_25_deg_up(
@ -978,22 +978,30 @@ static void paint_splash_boats_track_s_bend_left(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 } },
{ { SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 } },
{ { SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 } },
{ { SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 } },
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 },
},
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 },
},
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 },
},
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];
@ -1068,22 +1076,30 @@ static void paint_splash_boats_track_s_bend_right(
const TrackElement& trackElement)
{
static constexpr const uint32_t imageIds[4][4][2] = {
{ { SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 } },
{ { SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 } },
{ { SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 } },
{ { SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 } },
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 },
},
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 },
},
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 },
},
{
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 },
{ SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 },
},
};
uint32_t imageId = imageIds[direction][trackSequence][0] | session->TrackColours[SCHEME_TRACK];

View File

@ -179,7 +179,12 @@ static void submarine_ride_paint_track_left_quarter_turn_3_tiles(
paint_util_set_general_support_height(session, height + 16, 0x20);
}
static constexpr const uint8_t submarine_ride_right_quarter_turn_3_tiles_to_left_turn_map[] = { 3, 1, 2, 0 };
static constexpr const uint8_t submarine_ride_right_quarter_turn_3_tiles_to_left_turn_map[] = {
3,
1,
2,
0,
};
static void submarine_ride_paint_track_right_quarter_turn_3_tiles(
paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
const TrackElement& trackElement)

View File

@ -212,7 +212,9 @@ static void water_rc_track_right_quarter_turn_5_tiles_25_deg_up(
session, ride, trackSequence, direction, height, trackElement, JuniorRcChainType::None);
}
static constexpr const uint8_t water_rc_left_quarter_turn_5_tiles_to_right_turn_map[] = { 6, 4, 5, 3, 1, 2, 0 };
static constexpr const uint8_t water_rc_left_quarter_turn_5_tiles_to_right_turn_map[] = {
6, 4, 5, 3, 1, 2, 0,
};
static void water_rc_track_left_quarter_turn_5_tiles_25_deg_down(
paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
@ -250,7 +252,12 @@ static void water_rc_track_right_quarter_turn_3_tiles_25_deg_down(
session, ride, trackSequence, direction, height, trackElement, JuniorRcChainType::None);
}
static constexpr const uint8_t water_rc_left_quarter_turn_3_tiles_to_right_turn_map[] = { 3, 1, 2, 0 };
static constexpr const uint8_t water_rc_left_quarter_turn_3_tiles_to_right_turn_map[] = {
3,
1,
2,
0,
};
static void water_rc_track_left_quarter_turn_3_tiles_25_deg_up(
paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,

View File

@ -58,7 +58,10 @@ static int32_t _weatherVolume = 1;
static uint32_t _lightningTimer;
static uint32_t _thunderTimer;
static void* _thunderSoundChannels[MAX_THUNDER_INSTANCES];
static THUNDER_STATUS _thunderStatus[MAX_THUNDER_INSTANCES] = { THUNDER_STATUS::NONE, THUNDER_STATUS::NONE };
static THUNDER_STATUS _thunderStatus[MAX_THUNDER_INSTANCES] = {
THUNDER_STATUS::NONE,
THUNDER_STATUS::NONE,
};
static OpenRCT2::Audio::SoundId _thunderSoundId;
static int32_t _thunderVolume;
static int32_t _thunderStereoEcho = 0;

View File

@ -69,7 +69,12 @@ const CoordsXY BenchUseOffsets[8] = {
};
/** rct2: 0x00981D6C, 0x00981D6E */
const CoordsXY DirectionOffsets[4] = { { -1, 0 }, { 0, 1 }, { 1, 0 }, { 0, -1 } };
const CoordsXY DirectionOffsets[4] = {
{ -1, 0 },
{ 0, 1 },
{ 1, 0 },
{ 0, -1 },
};
// rct2: 0x0097B974
static constexpr const uint16_t EntranceDirections[] = {

View File

@ -53,11 +53,13 @@ constexpr auto _FountainChanceOfStoppingEdgeMode = 0x3333; // 0.200
constexpr auto _FountainChanceOfStoppingRandomMode = 0x2000; // 0.125
// rct2: 0x0097F040
const uint8_t _fountainDirections[] = { 0, 1, 2, 3, 0, 1, 2, 3 };
const uint8_t _fountainDirections[] = {
0, 1, 2, 3, 0, 1, 2, 3,
};
// rct2: 0x0097F048
const uint8_t _fountainDirectionFlags[] = {
0, 0, FOUNTAIN_FLAG::DIRECTION, FOUNTAIN_FLAG::DIRECTION, FOUNTAIN_FLAG::DIRECTION, FOUNTAIN_FLAG::DIRECTION, 0, 0
0, 0, FOUNTAIN_FLAG::DIRECTION, FOUNTAIN_FLAG::DIRECTION, FOUNTAIN_FLAG::DIRECTION, FOUNTAIN_FLAG::DIRECTION, 0, 0,
};
// rct2: 0x0097F050
@ -69,7 +71,7 @@ const uint8_t _fountainPatternFlags[] = {
FOUNTAIN_FLAG::GOTO_EDGE, // RACING_PAIRS
FOUNTAIN_FLAG::FAST | FOUNTAIN_FLAG::GOTO_EDGE | FOUNTAIN_FLAG::SPLIT, // SPLITTING_CHASERS
0, // DOPEY_JUMPERS
FOUNTAIN_FLAG::FAST // FAST_RANDOM_CHASERS
FOUNTAIN_FLAG::FAST, // FAST_RANDOM_CHASERS
};
template<> bool EntityBase::Is<JumpingFountain>() const

View File

@ -491,7 +491,12 @@ const Direction INVALID_DIRECTION = 0xFF;
* Array of all valid cardinal directions, to make it easy to write range-based for loops like:
* for (Direction d : ALL_DIRECTIONS)
*/
constexpr Direction ALL_DIRECTIONS[] = { 0, 1, 2, 3 };
constexpr Direction ALL_DIRECTIONS[] = {
0,
1,
2,
3,
};
/**
* Given a direction, return the direction that points the other way,

View File

@ -78,8 +78,9 @@ const std::array<CoordsXY, 8> CoordsDirectionDelta = {
};
// clang-format on
const TileCoordsXY TileDirectionDelta[] = { { -1, 0 }, { 0, +1 }, { +1, 0 }, { 0, -1 },
{ -1, +1 }, { +1, +1 }, { +1, -1 }, { -1, -1 } };
const TileCoordsXY TileDirectionDelta[] = {
{ -1, 0 }, { 0, +1 }, { +1, 0 }, { 0, -1 }, { -1, +1 }, { +1, +1 }, { +1, -1 }, { -1, -1 },
};
constexpr size_t MIN_TILE_ELEMENTS = 1024;
@ -831,25 +832,43 @@ bool map_is_location_owned_or_has_rights(const CoordsXY& loc)
// 0x1F = new slope
// 0x20 = base height increases
const uint8_t tile_element_raise_styles[9][32] = {
{ 0x01, 0x1B, 0x03, 0x1B, 0x05, 0x21, 0x07, 0x21, 0x09, 0x1B, 0x0B, 0x1B, 0x0D, 0x21, 0x20, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x23, 0x18, 0x19, 0x1A, 0x3B, 0x1C, 0x29, 0x24, 0x1F }, // MAP_SELECT_TYPE_CORNER_0
// (absolute rotation)
{ 0x02, 0x03, 0x17, 0x17, 0x06, 0x07, 0x17, 0x17, 0x0A, 0x0B, 0x22, 0x22, 0x0E, 0x20, 0x22, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x37, 0x18, 0x19, 0x1A, 0x23, 0x1C, 0x28, 0x26, 0x1F }, // MAP_SELECT_TYPE_CORNER_1
{ 0x04, 0x05, 0x06, 0x07, 0x1E, 0x24, 0x1E, 0x24, 0x0C, 0x0D, 0x0E, 0x20, 0x1E, 0x24, 0x1E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x26, 0x18, 0x19, 0x1A, 0x21, 0x1C, 0x2C, 0x3E, 0x1F }, // MAP_SELECT_TYPE_CORNER_2
{ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x20, 0x1D, 0x1D, 0x28, 0x28, 0x1D, 0x1D, 0x28, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x22, 0x18, 0x19, 0x1A, 0x29, 0x1C, 0x3D, 0x2C, 0x1F }, // MAP_SELECT_TYPE_CORNER_3
{ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x20, 0x21, 0x20, 0x28, 0x24, 0x20 }, // MAP_SELECT_TYPE_FULL
{ 0x0C, 0x0D, 0x0E, 0x20, 0x0C, 0x0D, 0x0E, 0x20, 0x0C, 0x0D, 0x0E, 0x20, 0x2C, 0x2C, 0x2C, 0x2C,
0x0C, 0x0D, 0x0E, 0x20, 0x0C, 0x0C, 0x0E, 0x22, 0x0C, 0x0D, 0x0E, 0x21, 0x2C, 0x2C, 0x2C, 0x2C }, // MAP_SELECT_TYPE_EDGE_0
{ 0x09, 0x09, 0x0B, 0x0B, 0x0D, 0x0D, 0x20, 0x20, 0x09, 0x29, 0x0B, 0x29, 0x0D, 0x29, 0x20, 0x29,
0x09, 0x09, 0x0B, 0x0B, 0x0D, 0x0D, 0x24, 0x22, 0x09, 0x29, 0x0B, 0x29, 0x0D, 0x29, 0x24, 0x29 }, // MAP_SELECT_TYPE_EDGE_1
{ 0x03, 0x03, 0x03, 0x23, 0x07, 0x07, 0x07, 0x23, 0x0B, 0x0B, 0x0B, 0x23, 0x20, 0x20, 0x20, 0x23,
0x03, 0x03, 0x03, 0x23, 0x07, 0x07, 0x07, 0x23, 0x0B, 0x0B, 0x0B, 0x23, 0x20, 0x28, 0x24, 0x23 }, // MAP_SELECT_TYPE_EDGE_2
{ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x26, 0x26, 0x0E, 0x20, 0x0E, 0x20, 0x0E, 0x20, 0x26, 0x26,
0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x26, 0x26, 0x0E, 0x20, 0x0E, 0x21, 0x0E, 0x28, 0x26, 0x26 }, // MAP_SELECT_TYPE_EDGE_3
{
0x01, 0x1B, 0x03, 0x1B, 0x05, 0x21, 0x07, 0x21, 0x09, 0x1B, 0x0B, 0x1B, 0x0D, 0x21, 0x20, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x23, 0x18, 0x19, 0x1A, 0x3B, 0x1C, 0x29, 0x24, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_0
// (absolute rotation)
{
0x02, 0x03, 0x17, 0x17, 0x06, 0x07, 0x17, 0x17, 0x0A, 0x0B, 0x22, 0x22, 0x0E, 0x20, 0x22, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x37, 0x18, 0x19, 0x1A, 0x23, 0x1C, 0x28, 0x26, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_1
{
0x04, 0x05, 0x06, 0x07, 0x1E, 0x24, 0x1E, 0x24, 0x0C, 0x0D, 0x0E, 0x20, 0x1E, 0x24, 0x1E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x26, 0x18, 0x19, 0x1A, 0x21, 0x1C, 0x2C, 0x3E, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_2
{
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x20, 0x1D, 0x1D, 0x28, 0x28, 0x1D, 0x1D, 0x28, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x22, 0x18, 0x19, 0x1A, 0x29, 0x1C, 0x3D, 0x2C, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_3
{
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x20, 0x21, 0x20, 0x28, 0x24, 0x20,
}, // MAP_SELECT_TYPE_FULL
{
0x0C, 0x0D, 0x0E, 0x20, 0x0C, 0x0D, 0x0E, 0x20, 0x0C, 0x0D, 0x0E, 0x20, 0x2C, 0x2C, 0x2C, 0x2C,
0x0C, 0x0D, 0x0E, 0x20, 0x0C, 0x0C, 0x0E, 0x22, 0x0C, 0x0D, 0x0E, 0x21, 0x2C, 0x2C, 0x2C, 0x2C,
}, // MAP_SELECT_TYPE_EDGE_0
{
0x09, 0x09, 0x0B, 0x0B, 0x0D, 0x0D, 0x20, 0x20, 0x09, 0x29, 0x0B, 0x29, 0x0D, 0x29, 0x20, 0x29,
0x09, 0x09, 0x0B, 0x0B, 0x0D, 0x0D, 0x24, 0x22, 0x09, 0x29, 0x0B, 0x29, 0x0D, 0x29, 0x24, 0x29,
}, // MAP_SELECT_TYPE_EDGE_1
{
0x03, 0x03, 0x03, 0x23, 0x07, 0x07, 0x07, 0x23, 0x0B, 0x0B, 0x0B, 0x23, 0x20, 0x20, 0x20, 0x23,
0x03, 0x03, 0x03, 0x23, 0x07, 0x07, 0x07, 0x23, 0x0B, 0x0B, 0x0B, 0x23, 0x20, 0x28, 0x24, 0x23,
}, // MAP_SELECT_TYPE_EDGE_2
{
0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x26, 0x26, 0x0E, 0x20, 0x0E, 0x20, 0x0E, 0x20, 0x26, 0x26,
0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x26, 0x26, 0x0E, 0x20, 0x0E, 0x21, 0x0E, 0x28, 0x26, 0x26,
}, // MAP_SELECT_TYPE_EDGE_3
};
// 0x00981ABE
@ -857,24 +876,42 @@ const uint8_t tile_element_raise_styles[9][32] = {
// 0x1F = new slope
// 0x20 = base height increases
const uint8_t tile_element_lower_styles[9][32] = {
{ 0x2E, 0x00, 0x2E, 0x02, 0x3E, 0x04, 0x3E, 0x06, 0x2E, 0x08, 0x2E, 0x0A, 0x3E, 0x0C, 0x3E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x06, 0x18, 0x19, 0x1A, 0x0B, 0x1C, 0x0C, 0x3E, 0x1F }, // MAP_SELECT_TYPE_CORNER_0
{ 0x2D, 0x2D, 0x00, 0x01, 0x2D, 0x2D, 0x04, 0x05, 0x3D, 0x3D, 0x08, 0x09, 0x3D, 0x3D, 0x0C, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x07, 0x18, 0x19, 0x1A, 0x09, 0x1C, 0x3D, 0x0C, 0x1F }, // MAP_SELECT_TYPE_CORNER_1
{ 0x2B, 0x3B, 0x2B, 0x3B, 0x00, 0x01, 0x02, 0x03, 0x2B, 0x3B, 0x2B, 0x3B, 0x08, 0x09, 0x0A, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x03, 0x18, 0x19, 0x1A, 0x3B, 0x1C, 0x09, 0x0E, 0x1F }, // MAP_SELECT_TYPE_CORNER_2
{ 0x27, 0x27, 0x37, 0x37, 0x27, 0x27, 0x37, 0x37, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x37, 0x18, 0x19, 0x1A, 0x03, 0x1C, 0x0D, 0x06, 0x1F }, // MAP_SELECT_TYPE_CORNER_3
{ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x0D, 0x0E, 0x00 }, // MAP_SELECT_TYPE_FULL
{ 0x23, 0x23, 0x23, 0x23, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03,
0x23, 0x23, 0x23, 0x23, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x0D, 0x0E, 0x03 }, // MAP_SELECT_TYPE_EDGE_0
{ 0x26, 0x00, 0x26, 0x02, 0x26, 0x04, 0x26, 0x06, 0x00, 0x00, 0x02, 0x02, 0x04, 0x04, 0x06, 0x06,
0x26, 0x00, 0x26, 0x02, 0x26, 0x04, 0x26, 0x06, 0x00, 0x00, 0x02, 0x0B, 0x04, 0x0D, 0x06, 0x06 }, // MAP_SELECT_TYPE_EDGE_1
{ 0x2C, 0x00, 0x00, 0x00, 0x2C, 0x04, 0x04, 0x04, 0x2C, 0x08, 0x08, 0x08, 0x2C, 0x0C, 0x0C, 0x0C,
0x2C, 0x00, 0x00, 0x00, 0x2C, 0x04, 0x04, 0x07, 0x2C, 0x08, 0x08, 0x0B, 0x2C, 0x0C, 0x0C, 0x0C }, // MAP_SELECT_TYPE_EDGE_2
{ 0x29, 0x29, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x29, 0x29, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09,
0x29, 0x29, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x29, 0x29, 0x08, 0x09, 0x08, 0x09, 0x0E, 0x09 }, // MAP_SELECT_TYPE_EDGE_3
{
0x2E, 0x00, 0x2E, 0x02, 0x3E, 0x04, 0x3E, 0x06, 0x2E, 0x08, 0x2E, 0x0A, 0x3E, 0x0C, 0x3E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x06, 0x18, 0x19, 0x1A, 0x0B, 0x1C, 0x0C, 0x3E, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_0
{
0x2D, 0x2D, 0x00, 0x01, 0x2D, 0x2D, 0x04, 0x05, 0x3D, 0x3D, 0x08, 0x09, 0x3D, 0x3D, 0x0C, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x07, 0x18, 0x19, 0x1A, 0x09, 0x1C, 0x3D, 0x0C, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_1
{
0x2B, 0x3B, 0x2B, 0x3B, 0x00, 0x01, 0x02, 0x03, 0x2B, 0x3B, 0x2B, 0x3B, 0x08, 0x09, 0x0A, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x03, 0x18, 0x19, 0x1A, 0x3B, 0x1C, 0x09, 0x0E, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_2
{
0x27, 0x27, 0x37, 0x37, 0x27, 0x27, 0x37, 0x37, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x37, 0x18, 0x19, 0x1A, 0x03, 0x1C, 0x0D, 0x06, 0x1F,
}, // MAP_SELECT_TYPE_CORNER_3
{
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x0D, 0x0E, 0x00,
}, // MAP_SELECT_TYPE_FULL
{
0x23, 0x23, 0x23, 0x23, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03,
0x23, 0x23, 0x23, 0x23, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x0D, 0x0E, 0x03,
}, // MAP_SELECT_TYPE_EDGE_0
{
0x26, 0x00, 0x26, 0x02, 0x26, 0x04, 0x26, 0x06, 0x00, 0x00, 0x02, 0x02, 0x04, 0x04, 0x06, 0x06,
0x26, 0x00, 0x26, 0x02, 0x26, 0x04, 0x26, 0x06, 0x00, 0x00, 0x02, 0x0B, 0x04, 0x0D, 0x06, 0x06,
}, // MAP_SELECT_TYPE_EDGE_1
{
0x2C, 0x00, 0x00, 0x00, 0x2C, 0x04, 0x04, 0x04, 0x2C, 0x08, 0x08, 0x08, 0x2C, 0x0C, 0x0C, 0x0C,
0x2C, 0x00, 0x00, 0x00, 0x2C, 0x04, 0x04, 0x07, 0x2C, 0x08, 0x08, 0x0B, 0x2C, 0x0C, 0x0C, 0x0C,
}, // MAP_SELECT_TYPE_EDGE_2
{
0x29, 0x29, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x29, 0x29, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09,
0x29, 0x29, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x29, 0x29, 0x08, 0x09, 0x08, 0x09, 0x0E, 0x09,
}, // MAP_SELECT_TYPE_EDGE_3
};
int32_t map_get_corner_height(int32_t z, int32_t slope, int32_t direction)

View File

@ -582,7 +582,7 @@ static constexpr const map_animation_invalidate_event_handler _animatedObjectEve
map_animation_invalidate_banner,
map_animation_invalidate_large_scenery,
map_animation_invalidate_wall_door,
map_animation_invalidate_wall
map_animation_invalidate_wall,
};
/**

View File

@ -85,8 +85,9 @@ static constexpr const char* SnowTrees[] = {
#pragma endregion
// Randomly chosen base terrains. We rarely want a whole map made out of chequerboard or rock.
static constexpr const std::string_view BaseTerrain[] = { "rct2.surface.grass", "rct2.surface.sand", "rct2.surface.sandbrown",
"rct2.surface.dirt", "rct2.surface.ice" };
static constexpr const std::string_view BaseTerrain[] = {
"rct2.surface.grass", "rct2.surface.sand", "rct2.surface.sandbrown", "rct2.surface.dirt", "rct2.surface.ice",
};
static void mapgen_place_trees();
static void mapgen_set_water_level(int32_t waterLevel);

View File

@ -18,7 +18,12 @@
#include "Map.h"
#include "Sprite.h"
static constexpr const CoordsXY _moneyEffectMoveOffset[] = { { 1, -1 }, { 1, 1 }, { -1, 1 }, { -1, -1 } };
static constexpr const CoordsXY _moneyEffectMoveOffset[] = {
{ 1, -1 },
{ 1, 1 },
{ -1, 1 },
{ -1, -1 },
};
template<> bool EntityBase::Is<MoneyEffect>() const
{

View File

@ -56,7 +56,12 @@ money64 gClearSceneryCost;
static std::vector<ScenerySelection> _restrictedScenery;
// rct2: 0x009A3E74
const CoordsXY SceneryQuadrantOffsets[] = { { 7, 7 }, { 7, 23 }, { 23, 23 }, { 23, 7 } };
const CoordsXY SceneryQuadrantOffsets[] = {
{ 7, 7 },
{ 7, 23 },
{ 23, 23 },
{ 23, 7 },
};
void scenery_update_tile(const CoordsXY& sceneryPos)
{

View File

@ -262,7 +262,8 @@ TEST(SeaDecrypt, DecryptSea)
auto path = TestData::GetParkPath("volcania.sea");
auto decrypted = DecryptSea(path);
auto sha1 = Crypt::SHA1(decrypted.data(), decrypted.size());
std::array<uint8_t, 20> expected = { 0x1B, 0x85, 0xFC, 0xC0, 0xE8, 0x9B, 0xBE, 0x72, 0xD9, 0x1F,
0x6E, 0xC8, 0xB1, 0xFF, 0xEC, 0x70, 0x2A, 0x72, 0x05, 0xBB };
std::array<uint8_t, 20> expected = {
0x1B, 0x85, 0xFC, 0xC0, 0xE8, 0x9B, 0xBE, 0x72, 0xD9, 0x1F, 0x6E, 0xC8, 0xB1, 0xFF, 0xEC, 0x70, 0x2A, 0x72, 0x05, 0xBB,
};
ASSERT_EQ(sha1, expected);
}

View File

@ -503,20 +503,35 @@ const uint8_t SawyerCodingTest::rotatedata[] = {
0x40, 0x7d, 0xf4, 0xfa, 0x2f, 0x6b, 0x93, 0x44, 0x5e,
};
const uint8_t SawyerCodingTest::invalid1[] = { 0x02, 0x04, 0x00, 0x00, 0x00, 0xd4, 0xff, 0xce, 0xcf, 0x2e, 0x00 };
const uint8_t SawyerCodingTest::invalid1[] = {
0x02, 0x04, 0x00, 0x00, 0x00, 0xd4, 0xff, 0xce, 0xcf, 0x2e, 0x00,
};
const uint8_t SawyerCodingTest::invalid2[] = { 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x27, 0x3f, 0x01, 0x00 };
const uint8_t SawyerCodingTest::invalid2[] = {
0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x27, 0x3f, 0x01, 0x00,
};
const uint8_t SawyerCodingTest::invalid3[] = { 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x73 };
const uint8_t SawyerCodingTest::invalid3[] = {
0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x73,
};
const uint8_t SawyerCodingTest::invalid4[] = { 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 };
const uint8_t SawyerCodingTest::invalid4[] = {
0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const uint8_t SawyerCodingTest::invalid5[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00 };
const uint8_t SawyerCodingTest::invalid5[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00,
};
const uint8_t SawyerCodingTest::invalid6[] = { 0x02, 0x02, 0x00, 0x00, 0x00, 0x28, 0x7f };
const uint8_t SawyerCodingTest::invalid6[] = {
0x02, 0x02, 0x00, 0x00, 0x00, 0x28, 0x7f,
};
const uint8_t SawyerCodingTest::invalid7[] = { 0x01, 0x01, 0x00, 0x00, 0x00, 0x00 };
const uint8_t SawyerCodingTest::invalid7[] = {
0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
};
// This needs to be non-empty to satisfy MSVC. We still pass zero as length.
const uint8_t SawyerCodingTest::empty[] = { 0x00 };
const uint8_t SawyerCodingTest::empty[] = {
0x00,
};