summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/strings.cpp13
1 files changed, 10 insertions, 3 deletions
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];