From eeeb7927eb6355a2a9f89dd842d8676b9e180dad Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Sun, 16 Aug 2015 17:16:16 +0200 Subject: [PATCH] Reset ride names to their defaults when using reset_user_strings --- src/localisation/user.c | 4 ++++ src/ride/ride.c | 27 +++++++++++++++++++++++++++ src/ride/ride.h | 1 + 3 files changed, 32 insertions(+) diff --git a/src/localisation/user.c b/src/localisation/user.c index 08f9ac474f..0a61ccd1de 100644 --- a/src/localisation/user.c +++ b/src/localisation/user.c @@ -20,6 +20,7 @@ #include "../addresses.h" #include "localisation.h" +#include "../ride/ride.h" utf8 *gUserStrings = (char*)0x0135A8F4; @@ -94,7 +95,10 @@ bool is_user_string_id(rct_string_id stringId) void reset_user_strings() { char *userString = gUserStrings; + for (int i = 0; i < MAX_USER_STRINGS; i++, userString += USER_STRING_MAX_LENGTH) { userString[0] = 0; } + + ride_reset_all_names(); } diff --git a/src/ride/ride.c b/src/ride/ride.c index df2c889005..7f37e4be6b 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -6643,3 +6643,30 @@ bool shop_item_is_food_or_drink(int shopItem) return false; } } + +void ride_reset_all_names() +{ + int i; + rct_ride *ride; + char rideNameBuffer[256]; + + FOR_ALL_RIDES(i, ride) + { + ride->name = STR_NONE; + + struct { + uint16 type_name; + uint16 number; + } name_args; + name_args.type_name = 2 + ride->type; + name_args.number = 0; + do { + name_args.number++; + format_string(rideNameBuffer, 1, &name_args); + } while (ride_name_exists(rideNameBuffer)); + + ride->name = 1; + ride->name_arguments_type_name = name_args.type_name; + ride->name_arguments_number = name_args.number; + } +} diff --git a/src/ride/ride.h b/src/ride/ride.h index 4539de5f40..0bdc574eb6 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -1034,5 +1034,6 @@ bool ride_type_is_intamin(int rideType); void sub_6C94D8(); bool shop_item_is_food_or_drink(int shopItem); +void ride_reset_all_names(); #endif