From b3c3171c1e801b0e52a720f741ac9a0cfbe17e66 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 28 Jun 2007 19:14:29 +0000 Subject: [PATCH] (svn r10380) -Fix (r10364): when checking for unique names, only check vehicles that can have names, and skip inactive players. --- src/misc_cmd.cpp | 2 ++ src/vehicle.cpp | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/misc_cmd.cpp b/src/misc_cmd.cpp index 3a0448f847..830354c533 100644 --- a/src/misc_cmd.cpp +++ b/src/misc_cmd.cpp @@ -201,6 +201,7 @@ static bool IsUniqueCompanyName(const char *name) char buf[512]; FOR_ALL_PLAYERS(p) { + if (!p->is_active) continue; SetDParam(0, p->index); GetString(buf, STR_COMPANY_NAME, lastof(buf)); if (strcmp(buf, name) == 0) return false; @@ -245,6 +246,7 @@ static bool IsUniquePresidentName(const char *name) char buf[512]; FOR_ALL_PLAYERS(p) { + if (!p->is_active) continue; SetDParam(0, p->index); GetString(buf, STR_PLAYER_NAME, lastof(buf)); if (strcmp(buf, name) == 0) return false; diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 45222cd695..775113536a 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2405,17 +2405,26 @@ static bool IsUniqueVehicleName(const char *name) FOR_ALL_VEHICLES(v) { switch (v->type) { case VEH_TRAIN: + if (!IsTrainEngine(v)) continue; + break; + case VEH_ROAD: + break; + case VEH_AIRCRAFT: + if (!IsNormalAircraft(v)) continue; + break; + case VEH_SHIP: - SetDParam(0, v->index); - GetString(buf, STR_VEHICLE_NAME, lastof(buf)); - if (strcmp(buf, name) == 0) return false; break; default: - break; + continue; } + + SetDParam(0, v->index); + GetString(buf, STR_VEHICLE_NAME, lastof(buf)); + if (strcmp(buf, name) == 0) return false; } return true;