belugas@6884: /* $Id$ */ belugas@6884: belugas@6884: /** @file newgrf_industrytiles.h */ belugas@6884: belugas@6884: #ifndef NEWGRF_INDUSTRYTILES_H belugas@6884: #define NEWGRF_INDUSTRYTILES_H belugas@6884: rubidium@7229: enum IndustryAnimationTrigger { rubidium@7229: IAT_CONSTRUCTION_STATE_CHANGE, rubidium@7229: IAT_TILELOOP, rubidium@7229: IAT_INDUSTRY_TICK, rubidium@7229: IAT_INDUSTRY_RECEIVED_CARGO, rubidium@7229: IAT_INDUSTRY_DISTRIBUTES_CARGO, rubidium@7229: }; rubidium@7229: belugas@6970: bool DrawNewIndustryTile(TileInfo *ti, Industry *i, IndustryGfx gfx, const IndustryTileSpec *inds); rubidium@7327: uint16 GetIndustryTileCallback(CallbackID callback, uint32 param1, uint32 param2, IndustryGfx gfx_id, Industry *industry, TileIndex tile); rubidium@7662: bool PerformIndustryTileSlopeCheck(TileIndex ind_base_tile, TileIndex ind_tile, const IndustryTileSpec *its, IndustryType type, IndustryGfx gfx, uint itspec_index); belugas@6884: rubidium@7229: void AnimateNewIndustryTile(TileIndex tile); rubidium@7229: bool StartStopIndustryTileAnimation(TileIndex tile, IndustryAnimationTrigger iat, uint32 random = Random()); rubidium@7229: bool StartStopIndustryTileAnimation(const Industry *ind, IndustryAnimationTrigger iat); rubidium@7229: rubidium@7860: rubidium@7860: enum IndustryTileTrigger { rubidium@7860: /* The tile of the industry has been triggered during the tileloop. */ rubidium@7860: INDTILE_TRIGGER_TILE_LOOP = 0x01, rubidium@7860: /* The industry has been triggered via it's tick. */ rubidium@7860: INDUSTRY_TRIGGER_INDUSTRY_TICK = 0x02, rubidium@7860: /* Cargo has been delivered. */ rubidium@7860: INDUSTRY_TRIGGER_RECEIVED_CARGO = 0x04, rubidium@7860: }; rubidium@7860: void TriggerIndustryTile(TileIndex t, IndustryTileTrigger trigger); rubidium@7860: void TriggerIndustry(Industry *ind, IndustryTileTrigger trigger); rubidium@7860: belugas@6884: #endif /* NEWGRF_INDUSTRYTILES_H */