diff src/newgrf_station.cpp @ 6354:4595b3acd03d draft

(svn r9393) -Codechange: Use newgrf town resolver as station parent scope handler
author peter1138 <peter1138@openttd.org>
date Wed, 21 Mar 2007 20:58:01 +0000
parents bcf98ba27bbf
children 96b1652c6011
line wrap: on
line diff
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -20,6 +20,8 @@
 #include "date.h"
 #include "helpers.hpp"
 #include "cargotype.h"
+#include "town_map.h"
+#include "newgrf_town.h"
 
 static StationClass station_classes[STAT_CLASS_MAX];
 
@@ -348,6 +350,22 @@
 	const Station *st = object->u.station.st;
 	TileIndex tile = object->u.station.tile;
 
+	if (object->scope == VSG_SCOPE_PARENT) {
+		/* Pass the request on to the town of the station */
+		Town *t;
+
+		if (st != NULL) {
+			t = st->town;
+		} else if (tile != INVALID_TILE) {
+			t = GetTownByTile(tile);
+		} else {
+			*available = false;
+			return UINT_MAX;
+		}
+
+		return TownGetVariable(variable, parameter, available, t);
+	}
+
 	if (st == NULL) {
 		/* Station does not exist, so we're in a purchase list */
 		switch (variable) {