mirror of https://github.com/OpenRCT2/OpenRCT2.git
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:
parent
fe46a2cf09
commit
9dd20ec619
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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) |
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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, ...)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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] = {};
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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++)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
@ -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;
|
||||
|
|
|
@ -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
|
@ -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(
|
||||
|
|
|
@ -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
|
@ -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 };
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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] = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue