mirror of https://github.com/OpenRCT2/OpenRCT2.git
Use object manager interface
This commit is contained in:
parent
52eeb702e0
commit
f9676d1863
|
@ -147,12 +147,13 @@ void mapgen_generate(mapgen_settings* settings)
|
||||||
std::string_view floorTexture = selectedFloor != nullptr ? selectedFloor->GetIdentifier() : "";
|
std::string_view floorTexture = selectedFloor != nullptr ? selectedFloor->GetIdentifier() : "";
|
||||||
const auto selectedEdge = TerrainEdgeObject::GetById(settings->wall);
|
const auto selectedEdge = TerrainEdgeObject::GetById(settings->wall);
|
||||||
std::string_view edgeTexture = selectedFloor != nullptr ? selectedEdge->GetIdentifier() : "";
|
std::string_view edgeTexture = selectedFloor != nullptr ? selectedEdge->GetIdentifier() : "";
|
||||||
|
auto& objectManager = OpenRCT2::GetContext()->GetObjectManager();
|
||||||
|
|
||||||
if (floorTexture.empty())
|
if (floorTexture.empty())
|
||||||
{
|
{
|
||||||
std::vector<std::string_view> availableTerrains;
|
std::vector<std::string_view> availableTerrains;
|
||||||
std::copy_if(std::begin(BaseTerrain), std::end(BaseTerrain), std::back_inserter(availableTerrains), [](auto terrain) {
|
std::copy_if(std::begin(BaseTerrain), std::end(BaseTerrain), std::back_inserter(availableTerrains), [&](auto terrain) {
|
||||||
return object_manager_get_loaded_object(ObjectEntryDescriptor(terrain)) != nullptr;
|
return objectManager.GetLoadedObject(ObjectEntryDescriptor(terrain)) != nullptr;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (availableTerrains.empty())
|
if (availableTerrains.empty())
|
||||||
|
@ -173,12 +174,12 @@ void mapgen_generate(mapgen_settings* settings)
|
||||||
edgeTexture = "rct2.terrain_edge.rock";
|
edgeTexture = "rct2.terrain_edge.rock";
|
||||||
|
|
||||||
// Fall back to the first available edge texture that is available in the park
|
// Fall back to the first available edge texture that is available in the park
|
||||||
if (object_manager_get_loaded_object(ObjectEntryDescriptor(edgeTexture)) == nullptr)
|
if (objectManager.GetLoadedObject(ObjectEntryDescriptor(edgeTexture)) == nullptr)
|
||||||
edgeTexture = TerrainEdgeObject::GetById(0)->GetIdentifier();
|
edgeTexture = TerrainEdgeObject::GetById(0)->GetIdentifier();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto floorTextureId = object_manager_get_loaded_object_entry_index(ObjectEntryDescriptor(floorTexture));
|
auto floorTextureId = objectManager.GetLoadedObjectEntryIndex(ObjectEntryDescriptor(floorTexture));
|
||||||
auto edgeTextureId = object_manager_get_loaded_object_entry_index(ObjectEntryDescriptor(edgeTexture));
|
auto edgeTextureId = objectManager.GetLoadedObjectEntryIndex(ObjectEntryDescriptor(edgeTexture));
|
||||||
|
|
||||||
map_clear_all_elements();
|
map_clear_all_elements();
|
||||||
|
|
||||||
|
@ -224,15 +225,15 @@ void mapgen_generate(mapgen_settings* settings)
|
||||||
if (settings->floor == -1 && floorTexture == "rct2.terrain_surface.grass" && (util_rand() & 1))
|
if (settings->floor == -1 && floorTexture == "rct2.terrain_surface.grass" && (util_rand() & 1))
|
||||||
{
|
{
|
||||||
std::vector<std::string_view> availableBeachTextures;
|
std::vector<std::string_view> availableBeachTextures;
|
||||||
if (object_manager_get_loaded_object(ObjectEntryDescriptor("rct2.terrain_surface.sand")) != nullptr)
|
if (objectManager.GetLoadedObject(ObjectEntryDescriptor("rct2.terrain_surface.sand")) != nullptr)
|
||||||
availableBeachTextures.push_back("rct2.terrain_surface.sand");
|
availableBeachTextures.push_back("rct2.terrain_surface.sand");
|
||||||
if (object_manager_get_loaded_object(ObjectEntryDescriptor("rct2.terrain_surface.sand_brown")) != nullptr)
|
if (objectManager.GetLoadedObject(ObjectEntryDescriptor("rct2.terrain_surface.sand_brown")) != nullptr)
|
||||||
availableBeachTextures.push_back("rct2.terrain_surface.sand_brown");
|
availableBeachTextures.push_back("rct2.terrain_surface.sand_brown");
|
||||||
|
|
||||||
if (!availableBeachTextures.empty())
|
if (!availableBeachTextures.empty())
|
||||||
beachTexture = availableBeachTextures[util_rand() % availableBeachTextures.size()];
|
beachTexture = availableBeachTextures[util_rand() % availableBeachTextures.size()];
|
||||||
}
|
}
|
||||||
auto beachTextureId = object_manager_get_loaded_object_entry_index(ObjectEntryDescriptor(beachTexture));
|
auto beachTextureId = objectManager.GetLoadedObjectEntryIndex(ObjectEntryDescriptor(beachTexture));
|
||||||
|
|
||||||
for (auto y = 1; y < mapSize - 1; y++)
|
for (auto y = 1; y < mapSize - 1; y++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue