diff --git a/functions.h b/functions.h index ab91f07340..a7237a778c 100644 --- a/functions.h +++ b/functions.h @@ -138,6 +138,7 @@ void PlaceTreesRandomly(void); void InitializeLandscapeVariables(bool only_constants); /* misc.c */ +bool IsCustomName(StringID id); void DeleteName(StringID id); char *GetName(int id, char *buff); diff --git a/misc.c b/misc.c index 7801a21408..80ef97c725 100644 --- a/misc.c +++ b/misc.c @@ -150,9 +150,14 @@ void InitializeGame(int mode, uint size_x, uint size_y) ResetObjectToPlace(); } +bool IsCustomName(StringID id) +{ + return GB(id, 11, 5) == 15; +} + void DeleteName(StringID id) { - if ((id & 0xF800) == 0x7800) { + if (IsCustomName(id)) { memset(_name_array[id & 0x1FF], 0, sizeof(_name_array[id & 0x1FF])); } } diff --git a/order_cmd.c b/order_cmd.c index b872e9ea2f..8614bb6390 100644 --- a/order_cmd.c +++ b/order_cmd.c @@ -823,7 +823,7 @@ void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *bak) bak->service_interval = v->service_interval; /* Safe custom string, if any */ - if ((v->string_id & 0xF800) != 0x7800) { + if (!IsCustomName(v->string_id)) { bak->name[0] = '\0'; } else { GetName(v->string_id & 0x7FF, bak->name); diff --git a/vehicle.c b/vehicle.c index e4b1ddbf78..bccc9a7753 100644 --- a/vehicle.c +++ b/vehicle.c @@ -2073,7 +2073,7 @@ static int32 ReplaceVehicle(Vehicle **w, byte flags, int32 total_cost) MoveVehicleCargo(new_v->type == VEH_Train ? GetFirstVehicleInChain(new_v) : new_v, old_v); // Get the name of the old vehicle if it has a custom name. - if ((old_v->string_id & 0xF800) != 0x7800) { + if (!IsCustomName(old_v->string_id)) { vehicle_name[0] = '\0'; } else { GetName(old_v->string_id & 0x7FF, vehicle_name);