summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/industry.h22
-rw-r--r--src/table/build_industry.h8
2 files changed, 21 insertions, 9 deletions
diff --git a/src/industry.h b/src/industry.h
index 618be6285..653b1f345 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 01c8ffec6..242b2ee39 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),