From 2d860049a741eeeebac6ff3fb3b829cad967670c Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 23 Apr 2008 00:14:49 +0000 Subject: (svn r12844) -Fix: the industry tick trigger should only be triggered once every 256 ticks, not every tick... Also bail out of the triggers a little earlier if you know they are not going to happen anyway. --- src/industry_cmd.cpp | 5 +++-- src/newgrf_house.cpp | 2 ++ src/newgrf_industrytiles.cpp | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 6dac2fab9..75b7c3ca0 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1033,6 +1033,9 @@ static void ProduceIndustryGoods(Industry *i) if (cut) ChopLumberMillTrees(i); } + + TriggerIndustry(i, INDUSTRY_TRIGGER_INDUSTRY_TICK); + StartStopIndustryTileAnimation(i, IAT_INDUSTRY_TICK); } } @@ -1054,8 +1057,6 @@ void OnTick_Industry() if (_game_mode == GM_EDITOR) return; FOR_ALL_INDUSTRIES(i) { - TriggerIndustry(i, INDUSTRY_TRIGGER_INDUSTRY_TICK); - StartStopIndustryTileAnimation(i, IAT_INDUSTRY_TICK); ProduceIndustryGoods(i); } } diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index aa462f8a8..604bb3660 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -547,6 +547,8 @@ static void DoTriggerHouse(TileIndex tile, HouseTrigger trigger, byte base_rando HouseID hid = GetHouseType(tile); HouseSpec *hs = GetHouseSpecs(hid); + if (hs->spritegroup == NULL) return; + NewHouseResolver(&object, hid, tile, GetTownByTile(tile)); object.callback = CBID_RANDOM_TRIGGER; diff --git a/src/newgrf_industrytiles.cpp b/src/newgrf_industrytiles.cpp index 79bbf72eb..093aeef0b 100644 --- a/src/newgrf_industrytiles.cpp +++ b/src/newgrf_industrytiles.cpp @@ -417,6 +417,8 @@ static void DoTriggerIndustryTile(TileIndex tile, IndustryTileTrigger trigger, I IndustryGfx gfx = GetIndustryGfx(tile); const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx); + if (itspec->grf_prop.spritegroup == NULL) return; + NewIndustryTileResolver(&object, gfx, tile, ind); object.callback = CBID_RANDOM_TRIGGER; -- cgit v1.2.3-70-g09d2