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;