1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-26 08:14:38 +01:00

Fix #24077: Track Designer crashes when clicking the park fence

This commit is contained in:
Michael Steenbeek
2025-03-25 21:50:37 +01:00
committed by GitHub
parent 6b57ec82ff
commit 5ad0f5b411
5 changed files with 82 additions and 105 deletions

View File

@@ -11,10 +11,14 @@
#include "Object.h"
// clang-format off
const std::string_view MinimumRequiredObjects[] = { "rct2.terrain_surface.grass", "rct2.terrain_edge.rock" };
constexpr std::array<std::string_view, 3> kMinimumRequiredObjects = {
"rct2.terrain_surface.grass",
"rct2.terrain_edge.rock",
const std::string_view DefaultSelectedObjects[] = {
"rct2.station.plain",
};
constexpr std::array<std::string_view, 82> kCommonScenarioAndTrackDesignerObjects = {
// An initial default selection
"rct2.scenery_group.scgtrees", // Scenery: Trees
"rct2.scenery_group.scgshrub", // Scenery: Shrubs and Ornaments
@@ -22,54 +26,12 @@ const std::string_view DefaultSelectedObjects[] = {
"rct2.scenery_group.scgfence", // Scenery: Fences and Walls
"rct2.scenery_group.scgwalls", // Scenery: Walls and Roofs
"rct2.scenery_group.scgpathx", // Scenery: Signs and Items for Footpaths
"rct2.ride.twist1", // Ride: Twist
"rct2.ride.ptct1", // Ride: Wooden Roller Coaster (Wooden Roller Coaster Trains)
"rct2.ride.zldb", // Ride: Junior Roller Coaster (Ladybird Trains)
"rct2.ride.lfb1", // Ride: Log Flume
"rct2.ride.vcr", // Ride: Vintage Cars
"rct2.ride.mgr1", // Ride: Merry-Go-Round
"rct2.ride.tlt1", // Ride: Toilet
"rct2.ride.atm1", // Ride: Cash Machine
"rct2.ride.faid1", // Ride: First Aid Room
"rct2.ride.infok", // Ride: Information Kiosk
"rct2.ride.drnks", // Ride: Drinks Stall
"rct2.ride.cndyf", // Ride: Candyfloss Stall
"rct2.ride.burgb", // Ride: Burger Bar
"rct2.ride.balln", // Ride: Balloon Stall
"rct2.ride.arrt1", // Ride: Corkscrew Roller Coaster
"rct2.ride.rboat", // Ride: Rowing Boats
"rct2.park_entrance.pkent1", // Park Entrance: Traditional Park Entrance
"rct2.water.wtrcyan", // Water: Natural Water
// The following are for all random map generation features to work out the box
"rct2.scenery_group.scgjungl", // Jungle Theming
"rct2.scenery_group.scgsnow", // Snow and Ice Theming
"rct2.scenery_group.scgwater", // Water Feature Theming
"rct2.park_entrance.pkent1", // Park Entrance: Traditional Park Entrance
// Surfaces
"rct2.terrain_surface.grass",
"rct2.terrain_surface.sand",
"rct2.terrain_surface.dirt",
"rct2.terrain_surface.rock",
"rct2.terrain_surface.martian",
"rct2.terrain_surface.chequerboard",
"rct2.terrain_surface.grass_clumps",
"rct2.terrain_surface.ice",
"rct2.terrain_surface.grid_red",
"rct2.terrain_surface.grid_yellow",
"rct2.terrain_surface.grid_purple",
"rct2.terrain_surface.grid_green",
"rct2.terrain_surface.sand_red",
"rct2.terrain_surface.sand_brown",
// Edges
"rct2.terrain_edge.rock",
"rct2.terrain_edge.wood_red",
"rct2.terrain_edge.wood_black",
"rct2.terrain_edge.ice",
"rct2.water.wtrcyan", // Water: Natural Water
// Stations
"rct2.station.plain",
"rct2.station.wooden",
"rct2.station.canvas_tent",
"rct2.station.castle_grey",
@@ -158,53 +120,46 @@ const std::string_view DefaultSelectedObjects[] = {
"rct2.climate.warm",
};
const std::string_view DesignerSelectedObjects[] = {
// An initial default selection + all standard footpaths + all standard stations
"rct2.scenery_group.scgtrees", // Scenery: Trees
"rct2.scenery_group.scgshrub", // Scenery: Shrubs and Ornaments
"rct2.scenery_group.scggardn", // Scenery: Gardens
"rct2.scenery_group.scgfence", // Scenery: Fences and Walls
"rct2.scenery_group.scgwalls", // Scenery: Walls and Roofs
"rct2.scenery_group.scgpathx", // Scenery: Signs and Items for Footpaths
"rct2.water.wtrcyan", // Water: Natural Water
"rct2.park_entrance.pkent1", // Park Entrance: Traditional Park Entrance
"rct2.terrain_surface.grass",
"rct2.terrain_edge.rock",
constexpr std::array<std::string_view, 37> kDefaultScenarioObjects = {
"rct2.ride.twist1", // Ride: Twist
"rct2.ride.ptct1", // Ride: Wooden Roller Coaster (Wooden Roller Coaster Trains)
"rct2.ride.zldb", // Ride: Junior Roller Coaster (Ladybird Trains)
"rct2.ride.lfb1", // Ride: Log Flume
"rct2.ride.vcr", // Ride: Vintage Cars
"rct2.ride.mgr1", // Ride: Merry-Go-Round
"rct2.ride.tlt1", // Ride: Toilet
"rct2.ride.atm1", // Ride: Cash Machine
"rct2.ride.faid1", // Ride: First Aid Room
"rct2.ride.infok", // Ride: Information Kiosk
"rct2.ride.drnks", // Ride: Drinks Stall
"rct2.ride.cndyf", // Ride: Candyfloss Stall
"rct2.ride.burgb", // Ride: Burger Bar
"rct2.ride.balln", // Ride: Balloon Stall
"rct2.ride.arrt1", // Ride: Corkscrew Roller Coaster
"rct2.ride.rboat", // Ride: Rowing Boats
// Footpath surfaces
"rct2.footpath_surface.tarmac",
"rct2.footpath_surface.tarmac_brown",
"rct2.footpath_surface.tarmac_red",
"rct2.footpath_surface.tarmac_green",
"rct2.footpath_surface.dirt",
"rct2.footpath_surface.crazy_paving",
"rct2.footpath_surface.ash",
"rct2.footpath_surface.queue_blue",
"rct2.footpath_surface.queue_green",
"rct2.footpath_surface.queue_red",
"rct2.footpath_surface.queue_yellow",
// The following are for all random map generation features to work out the box
"rct2.scenery_group.scgjungl", // Jungle Theming
"rct2.scenery_group.scgsnow", // Snow and Ice Theming
"rct2.scenery_group.scgwater", // Water Feature Theming
// Footpath railings
"rct2.footpath_railings.bamboo_black",
"rct2.footpath_railings.bamboo_brown",
"rct2.footpath_railings.concrete",
"rct2.footpath_railings.concrete_green",
"rct2.footpath_railings.space",
"rct2.footpath_railings.wood",
// Surfaces
"rct2.terrain_surface.sand",
"rct2.terrain_surface.dirt",
"rct2.terrain_surface.rock",
"rct2.terrain_surface.martian",
"rct2.terrain_surface.chequerboard",
"rct2.terrain_surface.grass_clumps",
"rct2.terrain_surface.ice",
"rct2.terrain_surface.grid_red",
"rct2.terrain_surface.grid_yellow",
"rct2.terrain_surface.grid_purple",
"rct2.terrain_surface.grid_green",
"rct2.terrain_surface.sand_red",
"rct2.terrain_surface.sand_brown",
// Stations
"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",
// Edges
"rct2.terrain_edge.wood_red",
"rct2.terrain_edge.wood_black",
"rct2.terrain_edge.ice",
};
// clang-format on