1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-23 15:52:55 +01:00

Refactor GetRideNaming(), add getTypeNaming() to Ride

This commit is contained in:
Gymnasiast
2025-10-23 21:27:56 +02:00
parent bc528348cf
commit b30b49161b
8 changed files with 20 additions and 25 deletions

View File

@@ -110,8 +110,7 @@ namespace OpenRCT2::Ui::Windows
if (researchItem.type == Research::EntryType::ride if (researchItem.type == Research::EntryType::ride
&& !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RtdFlag::listVehiclesSeparately)) && !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RtdFlag::listVehiclesSeparately))
{ {
const StringId rideTypeName = GetRideNaming( const StringId rideTypeName = GetRideNaming(researchItem.baseRideType, GetRideEntryByIndex(researchItem.entryIndex))
researchItem.baseRideType, *GetRideEntryByIndex(researchItem.entryIndex))
.Name; .Name;
// Draw group name // Draw group name
@@ -419,8 +418,7 @@ namespace OpenRCT2::Ui::Windows
&& !GetRideTypeDescriptor(researchItem->baseRideType).HasFlag(RtdFlag::listVehiclesSeparately)) && !GetRideTypeDescriptor(researchItem->baseRideType).HasFlag(RtdFlag::listVehiclesSeparately))
{ {
drawString = STR_WINDOW_COLOUR_2_STRINGID_STRINGID; drawString = STR_WINDOW_COLOUR_2_STRINGID_STRINGID;
StringId rideTypeName = GetRideNaming( StringId rideTypeName = GetRideNaming(researchItem->baseRideType, GetRideEntryByIndex(researchItem->entryIndex))
researchItem->baseRideType, *GetRideEntryByIndex(researchItem->entryIndex))
.Name; .Name;
ft.Add<StringId>(rideTypeName); ft.Add<StringId>(rideTypeName);
ft.Add<StringId>(stringId); ft.Add<StringId>(stringId);

View File

@@ -201,7 +201,7 @@ namespace OpenRCT2::Ui::Windows
if (objectEntry != nullptr) if (objectEntry != nullptr)
{ {
auto groupIndex = ObjectManagerGetLoadedObjectEntryIndex(objectEntry); auto groupIndex = ObjectManagerGetLoadedObjectEntryIndex(objectEntry);
auto rideName = GetRideNaming(td.trackAndVehicle.rtdIndex, *GetRideEntryByIndex(groupIndex)); auto rideName = GetRideNaming(td.trackAndVehicle.rtdIndex, GetRideEntryByIndex(groupIndex));
ft.Add<StringId>(rideName.Name); ft.Add<StringId>(rideName.Name);
} }
else else

View File

@@ -763,7 +763,7 @@ namespace OpenRCT2::Ui::Windows
bool IsFilterInRideType(const RideObjectEntry& rideEntry) bool IsFilterInRideType(const RideObjectEntry& rideEntry)
{ {
auto rideTypeName = GetRideNaming(rideEntry.ride_type[0], rideEntry).Name; auto rideTypeName = GetRideNaming(rideEntry.ride_type[0], &rideEntry).Name;
return String::contains(u8string_view(LanguageGetString(rideTypeName)), _filter, true); return String::contains(u8string_view(LanguageGetString(rideTypeName)), _filter, true);
} }
@@ -921,7 +921,7 @@ namespace OpenRCT2::Ui::Windows
auto& objMgr = OpenRCT2::GetContext()->GetObjectManager(); auto& objMgr = OpenRCT2::GetContext()->GetObjectManager();
const auto* rideObj = objMgr.GetLoadedObject<RideObject>(item.EntryIndex); const auto* rideObj = objMgr.GetLoadedObject<RideObject>(item.EntryIndex);
const auto& rideEntry = rideObj->GetEntry(); const auto& rideEntry = rideObj->GetEntry();
RideNaming rideNaming = GetRideNaming(item.Type, rideEntry); RideNaming rideNaming = GetRideNaming(item.Type, &rideEntry);
auto ft = Formatter(); auto ft = Formatter();
UpdateVehicleAvailability(item.Type); UpdateVehicleAvailability(item.Type);

View File

@@ -383,7 +383,7 @@ namespace OpenRCT2::Ui::Windows
if (entry != nullptr) if (entry != nullptr)
{ {
RideNaming rideName = GetRideNaming(_window_track_list_item.Type, *entry); RideNaming rideName = GetRideNaming(_window_track_list_item.Type, entry);
stringId = rideName.Name; stringId = rideName.Name;
} }

View File

@@ -253,7 +253,7 @@ void ResearchFinishItem(const ResearchItem& researchItem)
if (GetRideTypeDescriptor(base_ride_type).HasFlag(RtdFlag::listVehiclesSeparately) if (GetRideTypeDescriptor(base_ride_type).HasFlag(RtdFlag::listVehiclesSeparately)
|| researchItem.flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE) || researchItem.flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
{ {
RideNaming naming = GetRideNaming(base_ride_type, *rideEntry); RideNaming naming = GetRideNaming(base_ride_type, rideEntry);
availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE; availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE;
ft.Add<StringId>(naming.Name); ft.Add<StringId>(naming.Name);
} }
@@ -262,7 +262,7 @@ void ResearchFinishItem(const ResearchItem& researchItem)
else else
{ {
availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_VEHICLE_AVAILABLE; availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_VEHICLE_AVAILABLE;
RideNaming baseRideNaming = GetRideNaming(base_ride_type, *rideEntry); RideNaming baseRideNaming = GetRideNaming(base_ride_type, rideEntry);
ft.Add<StringId>(baseRideNaming.Name); ft.Add<StringId>(baseRideNaming.Name);
ft.Add<StringId>(rideEntry->naming.Name); ft.Add<StringId>(rideEntry->naming.Name);

View File

@@ -4410,15 +4410,15 @@ void Ride::setNameToDefault()
/** /**
* This will return the name of the ride, as seen in the New Ride window. * This will return the name of the ride, as seen in the New Ride window.
*/ */
RideNaming GetRideNaming(const ride_type_t rideType, const RideObjectEntry& rideEntry) RideNaming GetRideNaming(const ride_type_t rideType, const RideObjectEntry* rideEntry)
{ {
const auto& rtd = GetRideTypeDescriptor(rideType); const auto& rtd = GetRideTypeDescriptor(rideType);
if (!rtd.HasFlag(RtdFlag::listVehiclesSeparately)) if (rtd.HasFlag(RtdFlag::listVehiclesSeparately) && rideEntry != nullptr)
{ {
return rtd.Naming; return rideEntry->naming;
} }
return rideEntry.naming; return rtd.Naming;
} }
/* /*
@@ -5800,16 +5800,7 @@ void Ride::formatNameTo(Formatter& ft) const
} }
else else
{ {
const auto& rtd = getRideTypeDescriptor(); const auto rideTypeName = getTypeNaming().Name;
auto rideTypeName = rtd.Naming.Name;
if (rtd.HasFlag(RtdFlag::listVehiclesSeparately))
{
auto rideEntry = getRideEntry();
if (rideEntry != nullptr)
{
rideTypeName = rideEntry->naming.Name;
}
}
ft.Add<StringId>(1).Add<StringId>(rideTypeName).Add<uint16_t>(defaultNameNumber); ft.Add<StringId>(1).Add<StringId>(rideTypeName).Add<uint16_t>(defaultNameNumber);
} }
} }
@@ -5827,6 +5818,11 @@ const RideTypeDescriptor& Ride::getRideTypeDescriptor() const
return ::GetRideTypeDescriptor(type); return ::GetRideTypeDescriptor(type);
} }
RideNaming Ride::getTypeNaming() const
{
return GetRideNaming(type, getRideEntry());
}
uint8_t Ride::getNumShelteredSections() const uint8_t Ride::getNumShelteredSections() const
{ {
return numShelteredSections & ShelteredSectionsBits::kNumShelteredSectionsMask; return numShelteredSections & ShelteredSectionsBits::kNumShelteredSectionsMask;

View File

@@ -403,6 +403,7 @@ public:
uint64_t getAvailableModes() const; uint64_t getAvailableModes() const;
const RideTypeDescriptor& getRideTypeDescriptor() const; const RideTypeDescriptor& getRideTypeDescriptor() const;
RideNaming getTypeNaming() const;
OpenRCT2::TrackElement* getOriginElement(StationIndex stationIndex) const; OpenRCT2::TrackElement* getOriginElement(StationIndex stationIndex) const;
std::pair<RideMeasurement*, OpenRCT2String> getMeasurement(); std::pair<RideMeasurement*, OpenRCT2String> getMeasurement();

View File

@@ -99,4 +99,4 @@ struct RideObjectEntry
} }
}; };
RideNaming GetRideNaming(const ride_type_t rideType, const RideObjectEntry& rideEntry); RideNaming GetRideNaming(const ride_type_t rideType, const RideObjectEntry* rideEntry);