mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r27932) -Fix (r0) [FS#6639]: Forest, candyfloss forest and battery farm skipped the first animation frame.
This commit is contained in:
parent
2202544474
commit
6347e5f11e
|
@ -491,7 +491,12 @@ static CommandCost ClearTile_Industry(TileIndex tile, DoCommandFlag flags)
|
||||||
return CommandCost(EXPENSES_CONSTRUCTION, indspec->GetRemovalCost());
|
return CommandCost(EXPENSES_CONSTRUCTION, indspec->GetRemovalCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TransportIndustryGoods(TileIndex tile)
|
/**
|
||||||
|
* Move produced cargo from industry to nearby stations.
|
||||||
|
* @param tile Industry tile
|
||||||
|
* @return true if any cargo was moved.
|
||||||
|
*/
|
||||||
|
static bool TransportIndustryGoods(TileIndex tile)
|
||||||
{
|
{
|
||||||
Industry *i = Industry::GetByTile(tile);
|
Industry *i = Industry::GetByTile(tile);
|
||||||
const IndustrySpec *indspec = GetIndustrySpec(i->type);
|
const IndustrySpec *indspec = GetIndustrySpec(i->type);
|
||||||
|
@ -516,16 +521,7 @@ static void TransportIndustryGoods(TileIndex tile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (moved_cargo && !StartStopIndustryTileAnimation(i, IAT_INDUSTRY_DISTRIBUTES_CARGO)) {
|
return moved_cargo;
|
||||||
uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production;
|
|
||||||
|
|
||||||
if (newgfx != INDUSTRYTILE_NOANIM) {
|
|
||||||
ResetIndustryConstructionStage(tile);
|
|
||||||
SetIndustryCompleted(tile);
|
|
||||||
SetIndustryGfx(tile, newgfx);
|
|
||||||
MarkTileDirtyByTile(tile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -810,7 +806,17 @@ static void TileLoop_Industry(TileIndex tile)
|
||||||
|
|
||||||
if (_game_mode == GM_EDITOR) return;
|
if (_game_mode == GM_EDITOR) return;
|
||||||
|
|
||||||
TransportIndustryGoods(tile);
|
if (TransportIndustryGoods(tile) && !StartStopIndustryTileAnimation(Industry::GetByTile(tile), IAT_INDUSTRY_DISTRIBUTES_CARGO)) {
|
||||||
|
uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production;
|
||||||
|
|
||||||
|
if (newgfx != INDUSTRYTILE_NOANIM) {
|
||||||
|
ResetIndustryConstructionStage(tile);
|
||||||
|
SetIndustryCompleted(tile);
|
||||||
|
SetIndustryGfx(tile, newgfx);
|
||||||
|
MarkTileDirtyByTile(tile);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (StartStopIndustryTileAnimation(tile, IAT_TILELOOP)) return;
|
if (StartStopIndustryTileAnimation(tile, IAT_TILELOOP)) return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue