Fix ride naming in S4 import, cleanup

This commit is contained in:
Gymnasiast 2017-06-17 16:29:12 +02:00 committed by Michael Steenbeek
parent 312adaf8e7
commit 9f5d1cf40a
3 changed files with 17 additions and 10 deletions

View File

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

View File

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

View File

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