(svn r14297) -Fix: one could be trying to get the station name of a station that is outside of the pool.

This commit is contained in:
rubidium 2008-09-12 17:14:07 +00:00
parent 8f42c38039
commit 8d449825f9
1 changed files with 10 additions and 3 deletions

View File

@ -838,11 +838,18 @@ static char* FormatString(char* buff, const char* str, const int64* argv, uint c
} }
case SCC_STATION_NAME: { // {STATION} 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); 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); buff = strecpy(buff, st->name, last);
} else { } else {
int64 temp[3]; int64 temp[3];