diff options
Diffstat (limited to 'src/newgrf_industries.cpp')
-rw-r--r-- | src/newgrf_industries.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 5574673a6..811f76a6d 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -462,13 +462,15 @@ static int32 DerefIndProd(uint field, bool use_register) */ void IndustryProductionCallback(Industry *ind, int reason) { + const IndustrySpec *spec = GetIndustrySpec(ind->type); ResolverObject object; NewIndustryResolver(&object, ind->xy, ind); + if ((spec->behaviour & INDUSTRYBEH_PRODCALLBACK_RANDOM) != 0) object.callback_param1 = Random(); object.callback_param2 = reason; for (uint loop = 0;; loop++) { SB(object.callback_param2, 8, 16, loop); - const SpriteGroup *group = Resolve(GetIndustrySpec(ind->type)->grf_prop.spritegroup, &object); + const SpriteGroup *group = Resolve(spec->grf_prop.spritegroup, &object); if (group == NULL || group->type != SGT_INDUSTRY_PRODUCTION) break; bool deref = (group->g.indprod.version == 1); |