From 50118ae0399265f9f2a4e052f246ef4d607007c2 Mon Sep 17 00:00:00 2001 From: Duncan Date: Mon, 27 Sep 2021 21:54:41 +0100 Subject: [PATCH] Move function for NSF use --- src/openrct2/object/Object.cpp | 19 ------------------- src/openrct2/object/Object.h | 2 -- src/openrct2/object/SceneryGroupObject.cpp | 21 ++++++++++++++++++++- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/openrct2/object/Object.cpp b/src/openrct2/object/Object.cpp index 927e92ca5b..fcf5477b67 100644 --- a/src/openrct2/object/Object.cpp +++ b/src/openrct2/object/Object.cpp @@ -217,25 +217,6 @@ void Object::SetAuthors(std::vector&& authors) _authors = std::move(authors); } -std::optional rct_object_entry::GetSceneryType() const -{ - switch (GetType()) - { - case ObjectType::SmallScenery: - return SCENERY_TYPE_SMALL; - case ObjectType::LargeScenery: - return SCENERY_TYPE_LARGE; - case ObjectType::Walls: - return SCENERY_TYPE_WALL; - case ObjectType::Banners: - return SCENERY_TYPE_BANNER; - case ObjectType::PathBits: - return SCENERY_TYPE_PATH_ITEM; - default: - return std::nullopt; - } -} - bool rct_object_entry::IsEmpty() const { uint64_t a, b; diff --git a/src/openrct2/object/Object.h b/src/openrct2/object/Object.h index db6dbb858d..666ae1555d 100644 --- a/src/openrct2/object/Object.h +++ b/src/openrct2/object/Object.h @@ -119,8 +119,6 @@ struct rct_object_entry flags |= (static_cast(newType) & 0x0F); } - std::optional GetSceneryType() const; - ObjectSourceGame GetSourceGame() const { return static_cast((flags & 0xF0) >> 4); diff --git a/src/openrct2/object/SceneryGroupObject.cpp b/src/openrct2/object/SceneryGroupObject.cpp index 88bf42acbc..7c026dfcdc 100644 --- a/src/openrct2/object/SceneryGroupObject.cpp +++ b/src/openrct2/object/SceneryGroupObject.cpp @@ -66,6 +66,25 @@ void SceneryGroupObject::DrawPreview(rct_drawpixelinfo* dpi, int32_t width, int3 gfx_draw_sprite(dpi, imageId, screenCoords - ScreenCoordsXY{ 15, 14 }, 0); } +static std::optional GetSceneryType(const ObjectType type) +{ + switch (type) + { + case ObjectType::SmallScenery: + return SCENERY_TYPE_SMALL; + case ObjectType::LargeScenery: + return SCENERY_TYPE_LARGE; + case ObjectType::Walls: + return SCENERY_TYPE_WALL; + case ObjectType::Banners: + return SCENERY_TYPE_BANNER; + case ObjectType::PathBits: + return SCENERY_TYPE_PATH_ITEM; + default: + return std::nullopt; + } +} + void SceneryGroupObject::UpdateEntryIndexes() { auto context = GetContext(); @@ -84,7 +103,7 @@ void SceneryGroupObject::UpdateEntryIndexes() auto entryIndex = objectManager.GetLoadedObjectEntryIndex(ori->LoadedObject.get()); Guard::Assert(entryIndex != OBJECT_ENTRY_INDEX_NULL, GUARD_LINE); - auto sceneryType = ori->ObjectEntry.GetSceneryType(); + auto sceneryType = GetSceneryType(ori->Type); if (sceneryType.has_value()) { _legacyType.scenery_entries[_legacyType.entry_count] = { sceneryType.value(), entryIndex };