changeset 5060:d3c28305504d draft

(svn r7113) -Codechange: [NewStations] Add support for copying custom station layouts
author peter1138 <peter1138@openttd.org>
date Wed, 08 Nov 2006 12:17:14 +0000
parents 64de9e340548
children a9066aa40688
files newgrf.c newgrf_station.h
diffstat 2 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/newgrf.c
+++ b/newgrf.c
@@ -952,6 +952,8 @@
 			FOR_EACH_OBJECT {
 				StationSpec *statspec = _cur_grffile->stations[stid + i];
 
+				statspec->copied_layouts = false;
+
 				while (buf < *bufp + len) {
 					byte length = grf_load_byte(&buf);
 					byte number = grf_load_byte(&buf);
@@ -1001,11 +1003,16 @@
 			break;
 
 		case 0x0F: /* Copy custom layout */
-			/* TODO */
 			FOR_EACH_OBJECT {
-				grf_load_byte(&buf);
+				StationSpec *statspec = _cur_grffile->stations[stid + i];
+				byte srcid = grf_load_byte(&buf);
+				const StationSpec *srcstatspec = _cur_grffile->stations[srcid];
+
+				statspec->lengths   = srcstatspec->lengths;
+				statspec->platforms = srcstatspec->platforms;
+				statspec->layouts   = srcstatspec->layouts;
+				statspec->copied_layouts = true;
 			}
-			ret = true;
 			break;
 
 		case 0x10: /* Little/lots cargo threshold */
--- a/newgrf_station.h
+++ b/newgrf_station.h
@@ -67,6 +67,7 @@
 	byte lengths;
 	byte *platforms;
 	StationLayout **layouts;
+	bool copied_layouts;
 
 	/**
 	 * NUM_GLOBAL_CID sprite groups.