mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-16 03:23:15 +01:00
Improve editor handling of new object types
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
#include "world/Park.h"
|
||||
#include "world/Scenery.h"
|
||||
#include "world/Sprite.h"
|
||||
#include "object/DefaultObjects.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
@@ -70,6 +71,12 @@ namespace Editor
|
||||
// Reset loaded objects to just defaults
|
||||
auto& objectManager = context->GetObjectManager();
|
||||
objectManager.UnloadAll();
|
||||
|
||||
// Load minimum required objects (like surface and edge)
|
||||
for (const auto& entry : MinimumRequiredObjects)
|
||||
{
|
||||
objectManager.LoadObject(entry);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,7 +86,6 @@ namespace Editor
|
||||
void Load()
|
||||
{
|
||||
OpenRCT2::Audio::StopAll();
|
||||
object_manager_unload_all_objects();
|
||||
object_list_load();
|
||||
OpenRCT2::GetContext()->GetGameState()->InitAll(150);
|
||||
gScreenFlags = SCREEN_FLAGS_SCENARIO_EDITOR;
|
||||
|
||||
@@ -137,6 +137,15 @@ void setup_in_use_selection_flags()
|
||||
{
|
||||
default:
|
||||
case TILE_ELEMENT_TYPE_SURFACE:
|
||||
{
|
||||
auto surfaceEl = iter.element->AsSurface();
|
||||
auto surfaceIndex = surfaceEl->GetSurfaceStyle();
|
||||
auto edgeIndex = surfaceEl->GetEdgeStyle();
|
||||
|
||||
Editor::SetSelectedObject(ObjectType::TerrainSurface, surfaceIndex, OBJECT_SELECTION_FLAG_SELECTED);
|
||||
Editor::SetSelectedObject(ObjectType::TerrainEdge, edgeIndex, OBJECT_SELECTION_FLAG_SELECTED);
|
||||
break;
|
||||
}
|
||||
case TILE_ELEMENT_TYPE_TRACK:
|
||||
break;
|
||||
case TILE_ELEMENT_TYPE_PATH:
|
||||
@@ -197,8 +206,9 @@ void setup_in_use_selection_flags()
|
||||
auto ride = get_ride(ride_index);
|
||||
if (ride != nullptr)
|
||||
{
|
||||
ObjectEntryIndex type = ride->subtype;
|
||||
Editor::SetSelectedObject(ObjectType::Ride, type, OBJECT_SELECTION_FLAG_SELECTED);
|
||||
Editor::SetSelectedObject(ObjectType::Ride, ride->subtype, OBJECT_SELECTION_FLAG_SELECTED);
|
||||
Editor::SetSelectedObject(ObjectType::Station, ride->entrance_style, OBJECT_SELECTION_FLAG_SELECTED);
|
||||
Editor::SetSelectedObject(ObjectType::Music, ride->music, OBJECT_SELECTION_FLAG_SELECTED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
|
||||
#include "Object.h"
|
||||
|
||||
const std::string_view MinimumRequiredObjects[] = {
|
||||
"rct2.surface.grass",
|
||||
"rct2.edge.rock"
|
||||
};
|
||||
|
||||
const std::string_view DefaultSelectedObjects[] = {
|
||||
// An initial default selection
|
||||
"rct2.scgtrees", // Scenery: Trees
|
||||
@@ -48,6 +53,74 @@ const std::string_view DefaultSelectedObjects[] = {
|
||||
"rct2.scgjungl", // Jungle Theming
|
||||
"rct2.scgsnow", // Snow and Ice Theming
|
||||
"rct2.scgwater", // Water Feature Theming
|
||||
|
||||
// Surfaces
|
||||
"rct2.surface.grass",
|
||||
"rct2.surface.sand",
|
||||
"rct2.surface.dirt",
|
||||
"rct2.surface.rock",
|
||||
"rct2.surface.martian",
|
||||
"rct2.surface.chequerboard",
|
||||
"rct2.surface.grassclumps",
|
||||
"rct2.surface.ice",
|
||||
"rct2.surface.gridred",
|
||||
"rct2.surface.gridyellow",
|
||||
"rct2.surface.gridpurple",
|
||||
"rct2.surface.gridgreen",
|
||||
"rct2.surface.sandred",
|
||||
"rct2.surface.sandbrown",
|
||||
|
||||
// Edges
|
||||
"rct2.edge.rock",
|
||||
"rct2.edge.woodred",
|
||||
"rct2.edge.woodblack",
|
||||
"rct2.edge.ice",
|
||||
|
||||
// Stations
|
||||
"rct2.station.plain",
|
||||
"rct2.station.wooden",
|
||||
"rct2.station.canvastent",
|
||||
"rct2.station.castlegrey",
|
||||
"rct2.station.castlebrown",
|
||||
"rct2.station.jungle",
|
||||
"rct2.station.log",
|
||||
"rct2.station.classical",
|
||||
"rct2.station.abstract",
|
||||
"rct2.station.snow",
|
||||
"rct2.station.pagoda",
|
||||
"rct2.station.space",
|
||||
|
||||
// Music
|
||||
"rct2.music.dodgems",
|
||||
"rct2.music.fairground",
|
||||
"rct2.music.roman",
|
||||
"rct2.music.oriental",
|
||||
"rct2.music.martian",
|
||||
"rct2.music.jungle",
|
||||
"rct2.music.egyptian",
|
||||
"rct2.music.toyland",
|
||||
"rct2.music.space",
|
||||
"rct2.music.horror",
|
||||
"rct2.music.techno",
|
||||
"rct2.music.gentle",
|
||||
"rct2.music.summer",
|
||||
"rct2.music.water",
|
||||
"rct2.music.wildwest",
|
||||
"rct2.music.jurassic",
|
||||
"rct2.music.rock1",
|
||||
"rct2.music.ragtime",
|
||||
"rct2.music.fantasy",
|
||||
"rct2.music.rock2",
|
||||
"rct2.music.ice",
|
||||
"rct2.music.snow",
|
||||
"rct2.music.medieval",
|
||||
"rct2.music.urban",
|
||||
"rct2.music.organ",
|
||||
"rct2.music.mechanical",
|
||||
"rct2.music.modern",
|
||||
"rct2.music.pirate",
|
||||
"rct2.music.rock3",
|
||||
"rct2.music.candy",
|
||||
};
|
||||
|
||||
const std::string_view DesignerSelectedObjects[] = {
|
||||
|
||||
@@ -11,5 +11,6 @@
|
||||
|
||||
#include "Object.h"
|
||||
|
||||
extern const std::string_view DefaultSelectedObjects[33];
|
||||
extern const std::string_view MinimumRequiredObjects[2];
|
||||
extern const std::string_view DefaultSelectedObjects[93];
|
||||
extern const std::string_view DesignerSelectedObjects[15];
|
||||
|
||||
Reference in New Issue
Block a user