changeset 15731:c5f579b016bc draft

(svn r20398) -Codechange: move some variables of GRFFileProps into (the new) GRFFilePropsBase
author rubidium <rubidium@openttd.org>
date Sat, 07 Aug 2010 20:51:07 +0000
parents 2480d28f215a
children 574ae0427343
files src/industrytype.h src/newgrf_airport.h src/newgrf_commons.h src/table/airport_defaults.h src/table/airporttiles.h src/table/build_industry.h
diffstat 6 files changed, 24 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/industrytype.h
+++ b/src/industrytype.h
@@ -131,7 +131,7 @@
 	uint16 callback_mask;                 ///< Bitmask of industry callbacks that have to be called
 	uint8 cleanup_flag;                   ///< flags indicating which data should be freed upon cleaning up
 	bool enabled;                         ///< entity still avaible (by default true).newgrf can disable it, though
-	struct GRFFileProps grf_prop;         ///< properties related the the grf file
+	GRFFileProps grf_prop;                ///< properties related the the grf file
 
 	/**
 	 * Is an industry with the spec a raw industry?
@@ -172,7 +172,7 @@
 	uint8 animation_triggers;             ///< When to start the animation
 	IndustryTileSpecialFlags special_flags; ///< Bitmask of extra flags used by the tile
 	bool enabled;                         ///< entity still avaible (by default true).newgrf can disable it, though
-	struct GRFFileProps grf_prop;
+	GRFFileProps grf_prop;                ///< properties related the the grf file
 };
 
 /* industry_cmd.cpp*/
--- a/src/newgrf_airport.h
+++ b/src/newgrf_airport.h
@@ -76,7 +76,7 @@
 	SpriteID preview_sprite;               ///< preview sprite for this airport
 	/* Newgrf data */
 	bool enabled;                          ///< entity still avaible (by default true).newgrf can disable it, though
-	GRFFileProps grf_prop;                 ///< properties related the the grf file
+	struct GRFFileProps grf_prop;          ///< properties related the the grf file
 
 	static const AirportSpec *Get(byte type);
 	static AirportSpec *GetWithoutOverride(byte type);
--- a/src/newgrf_commons.h
+++ b/src/newgrf_commons.h
@@ -129,11 +129,24 @@
 uint32 GetNearbyTileInformation(TileIndex tile);
 
 /** Data related to the handling of grf files. */
-struct GRFFileProps {
-	uint16 subst_id;
+struct GRFFilePropsBase {
+	/** Set all data constructor for the props. */
+	GRFFilePropsBase(uint local_id, const struct GRFFile *grffile) : local_id(local_id), grffile(grffile) {}
+	/** Simple constructor for the props. */
+	GRFFilePropsBase() {}
 	uint16 local_id;                      ///< id defined by the grf file for this entity
+	const struct GRFFile *grffile;        ///< grf file that introduced this entity
+};
+
+/** Data related to the handling of grf files. */
+struct GRFFileProps : GRFFilePropsBase {
+	/** Set all default data constructor for the props. */
+	GRFFileProps(uint16 subst_id) :
+			GRFFilePropsBase(0, NULL), subst_id(subst_id), spritegroup(NULL), override(subst_id) {}
+	/** Simple constructor for the props. */
+	GRFFileProps() : GRFFilePropsBase() {}
+	uint16 subst_id;
 	struct SpriteGroup *spritegroup;      ///< pointer to the different sprites of the entity
-	const struct GRFFile *grffile;        ///< grf file that introduced this entity
 	uint16 override;                      ///< id of the entity been replaced by
 };
 
--- a/src/table/airport_defaults.h
+++ b/src/table/airport_defaults.h
@@ -382,7 +382,7 @@
 
 /** General AirportSpec definition. */
 #define AS_GENERIC(fsm, att, rot, att_len, depot_tbl, num_depots, size_x, size_y, noise, catchment, min_year, max_year, ttdpatch_type, class_id, name, preview, enabled) \
-	{fsm, att, rot, att_len, depot_tbl, num_depots, size_x, size_y, noise, catchment, min_year, max_year, name, ttdpatch_type, class_id, preview, enabled, {AT_INVALID, 0, NULL, NULL, AT_INVALID}}
+	{fsm, att, rot, att_len, depot_tbl, num_depots, size_x, size_y, noise, catchment, min_year, max_year, name, ttdpatch_type, class_id, preview, enabled, GRFFileProps(AT_INVALID)}
 
 /** AirportSpec definition for airports without any depot. */
 #define AS_ND(ap_name, size_x, size_y, min_year, max_year, catchment, noise, ttdpatch_type, class_id, name, preview) \
--- a/src/table/airporttiles.h
+++ b/src/table/airporttiles.h
@@ -13,9 +13,9 @@
 #define AIRPORTTILES_H
 
 /** Writes all airport tile properties in the AirportTile struct */
-#define AT(num_frames, anim_speed) {(1 << 8) | num_frames, anim_speed, STR_NULL, 0, 0, 0, true, {INVALID_AIRPORTTILE, 0, NULL, NULL, INVALID_AIRPORTTILE}}
+#define AT(num_frames, anim_speed) {(1 << 8) | num_frames, anim_speed, STR_NULL, 0, 0, 0, true, GRFFileProps(INVALID_AIRPORTTILE)}
 /** Writes an airport tile without animation in the AirportTile struct */
-#define AT_NOANIM {0xFFFF, 2, STR_NULL, 0, 0, 0, true, {INVALID_AIRPORTTILE, 0, NULL, NULL, INVALID_AIRPORTTILE}}
+#define AT_NOANIM {0xFFFF, 2, STR_NULL, 0, 0, 0, true, GRFFileProps(INVALID_AIRPORTTILE)}
 
 /**
  * All default airport tiles.
--- a/src/table/build_industry.h
+++ b/src/table/build_industry.h
@@ -1184,7 +1184,7 @@
 			c1, c2, c3, proc, p1, r1, p2, r2, m, a1, im1, a2, im2, a3, im3, pr, clim, bev, in, intx, s1, s2, s3) \
 		{tbl, lengthof(tbl), d, 0, pc, {c1, c2, c3}, proc, {p1, p2}, {r1, r2}, m, \
 		{a1, a2, a3}, {{im1, 0}, {im2, 0}, {im3, 0}}, pr, clim, bev, col, in, intx, s1, s2, s3, STR_UNDEFINED, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, \
-		sndc, snd, 0, 0, true, {INVALID_INDUSTRYTYPE, 0, NULL, NULL, INVALID_INDUSTRYTYPE}}
+		sndc, snd, 0, 0, true, GRFFileProps(INVALID_INDUSTRYTYPE)}
 	/* Format:
 	   tile table                              count and sounds table
 	   cost multiplier                         appear chances(4ingame, 4random)  map colour
@@ -1581,7 +1581,7 @@
  * @param a2  next frame of animation
  * @param a3  chooses between animation or construction state
  */
-#define MT(ca1, c1, ca2, c2, ca3, c3, sl, a1, a2, a3) {{c1, c2, c3}, {ca1, ca2, ca3}, sl, a1, a2, a3, 0, 0xFFFF, 2, 0, INDTILE_SPECIAL_NONE, true, {INVALID_INDUSTRYTILE, 0, NULL, NULL, INVALID_INDUSTRYTILE}}
+#define MT(ca1, c1, ca2, c2, ca3, c3, sl, a1, a2, a3) {{c1, c2, c3}, {ca1, ca2, ca3}, sl, a1, a2, a3, 0, 0xFFFF, 2, 0, INDTILE_SPECIAL_NONE, true, GRFFileProps(INVALID_INDUSTRYTILE)}
 static const IndustryTileSpec _origin_industry_tile_specs[NEW_INDUSTRYTILEOFFSET] = {
 	/* Coal Mine */
 	MT(0, CT_INVALID,      0, CT_INVALID,      0, CT_INVALID,     SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),