1
0
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:
Ted John
2021-04-03 16:25:22 +01:00
parent 9555d4fcf2
commit 68cb57fbb0
4 changed files with 94 additions and 4 deletions

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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[] = {

View File

@@ -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];