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