From 9f5d1cf40a38556046107fd132472b84078ee104 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Sat, 17 Jun 2017 16:29:12 +0200 Subject: [PATCH] Fix ride naming in S4 import, cleanup --- src/openrct2/rct1/S4Importer.cpp | 6 +----- src/openrct2/ride/ride.c | 20 +++++++++++++++----- src/openrct2/ride/ride.h | 1 + 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 17e195d26e..2785b0f301 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -684,11 +684,7 @@ private: } if (dst->name == 0) { - dst->name = 1; - - uint16 * args = (uint16*)&dst->name_arguments; - args[0] = 2 + dst->type; - args[1] = src->name_argument_number; + ride_set_name_to_default(dst, rideEntry); } dst->status = src->status; diff --git a/src/openrct2/ride/ride.c b/src/openrct2/ride/ride.c index e9f8a97fb4..a567875c8d 100644 --- a/src/openrct2/ride/ride.c +++ b/src/openrct2/ride/ride.c @@ -6007,12 +6007,13 @@ foundRideEntry: ride->overall_view = 0xFFFF; // Ride name - if (rideEntryIndex == RIDE_ENTRY_INDEX_NULL) { + if (rideEntryIndex == RIDE_ENTRY_INDEX_NULL) + { ride_set_name_to_track_default(ride, rideEntry); - } else if (!(rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME) || rideTypeShouldLoseSeparateFlag(rideEntry)) { - ride_set_name_to_track_default(ride, rideEntry); - } else { - ride_set_name_to_vehicle_default(ride, rideEntry); + } + else + { + ride_set_name_to_default(ride, rideEntry); } for (size_t i = 0; i < RCT12_MAX_STATIONS_PER_RIDE; i++) { @@ -6164,6 +6165,15 @@ foundRideEntry: return 0; } +void ride_set_name_to_default(rct_ride * ride, rct_ride_entry * rideEntry) +{ + if (!(rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME) || rideTypeShouldLoseSeparateFlag(rideEntry)) { + ride_set_name_to_track_default(ride, rideEntry); + } else { + ride_set_name_to_vehicle_default(ride, rideEntry); + } +} + static void ride_set_name_to_track_default(rct_ride *ride, rct_ride_entry * rideEntry) { char rideNameBuffer[256]; diff --git a/src/openrct2/ride/ride.h b/src/openrct2/ride/ride.h index 85466072bd..0997206d5c 100644 --- a/src/openrct2/ride/ride.h +++ b/src/openrct2/ride/ride.h @@ -1082,6 +1082,7 @@ void game_command_demolish_ride(sint32 *eax, sint32 *ebx, sint32 *ecx, sint32 *e void game_command_set_ride_appearance(sint32 *eax, sint32 *ebx, sint32 *ecx, sint32 *edx, sint32 *esi, sint32 *edi, sint32 *ebp); void game_command_set_ride_price(sint32 *eax, sint32 *ebx, sint32 *ecx, sint32 *edx, sint32 *esi, sint32 *edi, sint32 *ebp); money32 ride_create_command(sint32 type, sint32 subType, sint32 flags, uint8 *outRideIndex, uint8 *outRideColour); +void ride_set_name_to_default(rct_ride * ride, rct_ride_entry * rideEntry); void ride_clear_for_construction(sint32 rideIndex); void ride_entrance_exit_place_provisional_ghost();