station_cmd.c
changeset 3769 7d3b35126fc1
parent 3766 fc2dea6ef369
child 3770 33fa78408579
--- a/station_cmd.c	Sat May 06 22:20:16 2006 +0000
+++ b/station_cmd.c	Sat May 06 22:30:36 2006 +0000
@@ -1068,6 +1068,7 @@
 	if (flags & DC_EXEC) {
 		TileIndexDiff tile_delta;
 		byte *layout_ptr;
+		byte numtracks_orig;
 		Track track;
 
 		// Now really clear the land below the station
@@ -1092,17 +1093,20 @@
 		layout_ptr = alloca(numtracks * plat_len);
 		GetStationLayout(layout_ptr, numtracks, plat_len, statspec);
 
+		numtracks_orig = numtracks;
+
 		do {
 			TileIndex tile = tile_org;
 			int w = plat_len;
 			do {
-
-				MakeRailStation(tile, st->owner, st->index, axis, *layout_ptr++, GB(p2, 0, 4));
+				byte layout = *layout_ptr++;
+				MakeRailStation(tile, st->owner, st->index, axis, layout, GB(p2, 0, 4));
 				SetCustomStationSpecIndex(tile, specindex);
 				SetStationTileRandomBits(tile, GB(Random(), 0, 4));
 
 				if (statspec != NULL) {
-					uint16 callback = GetStationCallback(CBID_STATION_TILE_LAYOUT, 0, 0, statspec, st, tile);
+					uint32 platinfo = GetPlatformInfo(axis, layout, plat_len, numtracks_orig, plat_len - w, numtracks_orig - numtracks, false);
+					uint16 callback = GetStationCallback(CBID_STATION_TILE_LAYOUT, platinfo, 0, statspec, st, tile);
 					if (callback != CALLBACK_FAILED && callback < 8) SetStationGfx(tile, callback);
 				}