From a4c6bca9c23f48d10c37c75229c43c10336e432c Mon Sep 17 00:00:00 2001 From: belugas Date: Thu, 24 May 2007 01:12:00 +0000 Subject: [PATCH] (svn r9906) -Codechange: Add common properties for both industry and industry tiles specs --- src/industry.h | 22 +++++++++++++++++----- src/table/build_industry.h | 8 ++++---- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/industry.h b/src/industry.h index 618be62857..653b1f3451 100644 --- a/src/industry.h +++ b/src/industry.h @@ -14,7 +14,8 @@ typedef uint8 IndustryType; enum { INVALID_INDUSTRY = 0xFFFF, NUM_INDUSTRYTYPES = 37, - INDUTILE_NOANIM = 0xFF, ///< flag to mark industry tiles as having no animation + INDUTILE_NOANIM = 0xFF, ///< flag to mark industry tiles as having no animation + INVALID_INDUSTRYTYPE = NUM_INDUSTRYTYPES, ///< one above amount is considered invalid }; enum IndustryLifeType { @@ -91,6 +92,16 @@ struct IndustryTileTable { IndustryGfx gfx; }; +/** Data related to the handling of grf files. Common to both industry and industry tile */ +struct GRFFileProps { + uint8 subst_id; + uint16 local_id; ///< id defined by the grf file for this industry + struct SpriteGroup *spritegroup; ///< pointer to the different sprites of the industry + const struct GRFFile *grffile; ///< grf file that introduced this house + uint8 override; ///< id of the entity been replaced by + bool enabled; ///< entity still avaible (by default true).newgrf can disable it, though +}; + /** * Defines the data structure for constructing industry. */ @@ -119,11 +130,9 @@ struct IndustrySpec { byte appear_creation[NUM_LANDSCAPE]; ///< Probability of appearance during map creation uint8 number_of_sounds; ///< Number of sounds available in the sounds array const uint8 *random_sounds; ///< array of random sounds. - /* Newgrf stuff coming in */ + /* Newgrf data */ uint16 callback_flags; ///< Flags telling which grf callback is set - byte subst_id; - uint32 grfid; - byte override; + struct GRFFileProps grf_prop; ///< properties related the the grf file }; /** @@ -136,6 +145,9 @@ struct IndustryTileSpec { byte anim_next; ///< Next frame in an animation bool anim_state; ///< When true, the tile has to be drawn using the animation ///< state instead of the construction state + /* Newgrf data */ + uint8 callback_flags; ///< Flags telling which grf callback is set + struct GRFFileProps grf_prop; }; /* industry_cmd.cpp*/ diff --git a/src/table/build_industry.h b/src/table/build_industry.h index 01c8ffec60..242b2ee39d 100644 --- a/src/table/build_industry.h +++ b/src/table/build_industry.h @@ -1133,9 +1133,9 @@ static const uint8 _plastic_mine_sounds[] = { SND_33_PLASTIC_MINE }; #define MI(tbl, sndc, snd, d, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, \ 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, {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, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, sndc, snd, 0, 0, 0, 0} - + {tbl, lengthof(tbl), d, {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, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, \ + sndc, snd, 0, {0, 0, NULL, NULL, INVALID_INDUSTRYTYPE, true}} static const IndustrySpec _industry_specs[] = { /* Format: tile table count and sounds table @@ -1527,7 +1527,7 @@ static const IndustrySpec _industry_specs[] = { * @param a2 next frame of animation * @param a3 chooses between animation or construction state */ -#define MT(c1, c2, c3, sl, a1, a2, a3) {{c1, c2, c3}, sl, a1, a2, a3} +#define MT(c1, c2, c3, sl, a1, a2, a3) {{c1, c2, c3}, sl, a1, a2, a3, 0, {0, 0, NULL, NULL, 0, true}} static const IndustryTileSpec _industry_tile_specs[] = { /* Coal Mine */ MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),