belugas@7331: /* $Id$ */ belugas@7331: belugas@7331: /** @file newgrf_industries.h */ belugas@7331: belugas@7331: #ifndef NEWGRF_INDUSTRIES_H belugas@7331: #define NEWGRF_INDUSTRIES_H belugas@7331: rubidium@8709: #include "industry_type.h" belugas@7331: #include "newgrf_spritegroup.h" belugas@7331: rubidium@8117: /** When should the industry(tile) be triggered for random bits? */ rubidium@8117: enum IndustryTrigger { rubidium@8117: /** Triggered each tile loop */ rubidium@8117: INDUSTRY_TRIGGER_TILELOOP_PROCESS = 1, rubidium@8117: /** Triggered (whole industry) each 256 ticks */ rubidium@8117: INDUSTRY_TRIGGER_256_TICKS = 2, rubidium@8117: /** Triggered on cargo delivery */ rubidium@8117: INDUSTRY_TRIGGER_CARGO_DELIVERY = 4, rubidium@8117: }; rubidium@8117: rubidium@8709: /** From where is callback CBID_INDUSTRY_AVAILABLE been called */ rubidium@8709: enum IndustryAvailabilityCallType { rubidium@8709: IACT_MAPGENERATION, ///< during random map generation rubidium@8709: IACT_RANDOMCREATION, ///< during creation of random ingame industry rubidium@8709: IACT_USERCREATION, ///< from the Fund/build window rubidium@8709: }; rubidium@8709: belugas@7380: /* in newgrf_industry.cpp */ belugas@7331: uint32 IndustryGetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available); rubidium@7823: uint16 GetIndustryCallback(CallbackID callback, uint32 param1, uint32 param2, Industry *industry, IndustryType type, TileIndex tile); rubidium@8118: uint32 GetIndustryIDAtOffset(TileIndex new_tile, const Industry *i); rubidium@7664: void IndustryProductionCallback(Industry *ind, int reason); rubidium@8932: bool CheckIfCallBackAllowsCreation(TileIndex tile, IndustryType type, uint itspec_index, uint32 seed); belugas@7756: bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCallType creation_type); belugas@7331: rubidium@7729: IndustryType MapNewGRFIndustryType(IndustryType grf_type, uint32 grf_id); rubidium@7729: belugas@7380: /* in newgrf_industrytiles.cpp*/ rubidium@7730: uint32 GetNearbyIndustryTileInformation(byte parameter, TileIndex tile, IndustryID index); rubidium@7730: belugas@7331: #endif /* NEWGRF_INDUSTRIES_H */