From 7f461f0bba5b2d0476a87701e3edc9612a2f9809 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 12 Sep 2008 17:14:07 +0000 Subject: (svn r14297) -Fix: one could be trying to get the station name of a station that is outside of the pool. --- src/strings.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/strings.cpp') diff --git a/src/strings.cpp b/src/strings.cpp index 065b617fb..f12b4beee 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -838,11 +838,18 @@ static char* FormatString(char* buff, const char* str, const int64* argv, uint c } case SCC_STATION_NAME: { // {STATION} - const Station* st = GetStation(GetInt32(&argv)); + StationID sid = GetInt32(&argv); - if (!st->IsValid()) { // station doesn't exist anymore + if (!IsValidStationID(sid)) { + /* The station doesn't exist anymore. The only place where we might + * be "drawing" an invalid station is in the case of cargo that is + * in transit. */ buff = GetStringWithArgs(buff, STR_UNKNOWN_DESTINATION, NULL, last); - } else if (st->name != NULL) { + break; + } + + const Station *st = GetStation(sid); + if (st->name != NULL) { buff = strecpy(buff, st->name, last); } else { int64 temp[3]; -- cgit v1.2.3-54-g00ecf