OpenTTD Source 20250721-master-g1d21edde8d
|
Handling of industry tiles. More...
#include "stdafx.h"
#include "misc/history_type.hpp"
#include "misc/history_func.hpp"
#include "clear_map.h"
#include "industry.h"
#include "station_base.h"
#include "landscape.h"
#include "viewport_func.h"
#include "command_func.h"
#include "town.h"
#include "news_func.h"
#include "cheat_type.h"
#include "company_base.h"
#include "genworld.h"
#include "tree_map.h"
#include "newgrf_cargo.h"
#include "newgrf_debug.h"
#include "newgrf_industrytiles.h"
#include "autoslope.h"
#include "water.h"
#include "strings_func.h"
#include "window_func.h"
#include "vehicle_func.h"
#include "sound_func.h"
#include "animated_tile_func.h"
#include "effectvehicle_func.h"
#include "effectvehicle_base.h"
#include "ai/ai.hpp"
#include "core/pool_func.hpp"
#include "subsidy_func.h"
#include "core/backup_type.hpp"
#include "object_base.h"
#include "game/game.hpp"
#include "error.h"
#include "string_func.h"
#include "industry_cmd.h"
#include "landscape_cmd.h"
#include "terraform_cmd.h"
#include "timer/timer.h"
#include "timer/timer_game_calendar.h"
#include "timer/timer_game_economy.h"
#include "timer/timer_game_tick.h"
#include "table/strings.h"
#include "table/industry_land.h"
#include "table/build_industry.h"
#include "safeguards.h"
Go to the source code of this file.
Typedefs | |
typedef void | IndustryDrawTileProc(const TileInfo *ti) |
typedef CommandCost | CheckNewIndustryProc(TileIndex tile) |
Industrytype check function signature. | |
Functions | |
void | ShowIndustryViewWindow (IndustryID industry) |
void | BuildOilRig (TileIndex tile) |
static int | WhoCanServiceIndustry (Industry *ind) |
Compute who can service the industry. | |
void | ResetIndustries () |
This function initialize the spec arrays of both industry and industry tiles. | |
IndustryType | GetIndustryType (Tile tile) |
Retrieve the type for this industry. | |
const IndustrySpec * | GetIndustrySpec (IndustryType thistype) |
Accessor for array _industry_specs. | |
const IndustryTileSpec * | GetIndustryTileSpec (IndustryGfx gfx) |
Accessor for array _industry_tile_specs. | |
static void | IndustryDrawSugarMine (const TileInfo *ti) |
static void | IndustryDrawToffeeQuarry (const TileInfo *ti) |
static void | IndustryDrawBubbleGenerator (const TileInfo *ti) |
static void | IndustryDrawToyFactory (const TileInfo *ti) |
static void | IndustryDrawCoalPlantSparks (const TileInfo *ti) |
static void | DrawTile_Industry (TileInfo *ti) |
static int | GetSlopePixelZ_Industry (TileIndex tile, uint, uint, bool) |
static Foundation | GetFoundation_Industry (TileIndex tile, Slope tileh) |
static void | AddAcceptedCargo_Industry (TileIndex tile, CargoArray &acceptance, CargoTypes &always_accepted) |
static void | GetTileDesc_Industry (TileIndex tile, TileDesc &td) |
static CommandCost | ClearTile_Industry (TileIndex tile, DoCommandFlags flags) |
static bool | TransportIndustryGoods (TileIndex tile) |
Move produced cargo from industry to nearby stations. | |
static void | AnimateSugarSieve (TileIndex tile) |
static void | AnimateToffeeQuarry (TileIndex tile) |
static void | AnimateBubbleCatcher (TileIndex tile) |
static void | AnimatePowerPlantSparks (TileIndex tile) |
static void | AnimateToyFactory (TileIndex tile) |
static void | AnimatePlasticFountain (TileIndex tile, IndustryGfx gfx) |
static void | AnimateOilWell (TileIndex tile, IndustryGfx gfx) |
static void | AnimateMineTower (TileIndex tile) |
static void | AnimateTile_Industry (TileIndex tile) |
static void | CreateChimneySmoke (TileIndex tile) |
static void | MakeIndustryTileBigger (TileIndex tile) |
static void | TileLoopIndustry_BubbleGenerator (TileIndex tile) |
static void | TileLoop_Industry (TileIndex tile) |
static bool | ClickTile_Industry (TileIndex tile) |
static TrackStatus | GetTileTrackStatus_Industry (TileIndex, TransportType, uint, DiagDirection) |
static void | ChangeTileOwner_Industry (TileIndex tile, Owner old_owner, Owner new_owner) |
bool | IsTileForestIndustry (TileIndex tile) |
Check whether the tile is a forest. | |
static bool | IsSuitableForFarmField (TileIndex tile, bool allow_fields) |
Check whether the tile can be replaced by a farm field. | |
static void | SetupFarmFieldFence (TileIndex tile, int size, uint8_t type, DiagDirection side) |
Build farm field fence. | |
static void | PlantFarmField (TileIndex tile, IndustryID industry) |
void | PlantRandomFarmField (const Industry *i) |
static void | ChopLumberMillTrees (Industry *i) |
Perform a circular search around the Lumber Mill in order to find trees to cut. | |
static void | ProduceIndustryGoodsHelper (Industry *i, bool scale) |
Helper for ProduceIndustryGoods that scales and produces cargos. | |
static void | ProduceIndustryGoods (Industry *i) |
void | OnTick_Industry () |
static CommandCost | CheckNewIndustry_NULL (TileIndex) |
Check the conditions of CHECK_NOTHING (Always succeeds). | |
static CommandCost | CheckNewIndustry_Forest (TileIndex tile) |
Check the conditions of CHECK_FOREST (Industry should be build above snow-line in arctic climate). | |
static bool | CheckScaledDistanceFromEdge (TileIndex tile, uint maxdist) |
Check if a tile is within a distance from map edges, scaled by map dimensions independently. | |
static CommandCost | CheckNewIndustry_OilRefinery (TileIndex tile) |
Check the conditions of CHECK_REFINERY (Industry should be positioned near edge of the map). | |
static CommandCost | CheckNewIndustry_OilRig (TileIndex tile) |
Check the conditions of CHECK_OIL_RIG (Industries at sea should be positioned near edge of the map). | |
static CommandCost | CheckNewIndustry_Farm (TileIndex tile) |
Check the conditions of CHECK_FARM (Industry should be below snow-line in arctic). | |
static CommandCost | CheckNewIndustry_Plantation (TileIndex tile) |
Check the conditions of CHECK_PLANTATION (Industry should NOT be in the desert). | |
static CommandCost | CheckNewIndustry_Water (TileIndex tile) |
Check the conditions of CHECK_WATER (Industry should be in the desert). | |
static CommandCost | CheckNewIndustry_Lumbermill (TileIndex tile) |
Check the conditions of CHECK_LUMBERMILL (Industry should be in the rainforest). | |
static CommandCost | CheckNewIndustry_BubbleGen (TileIndex tile) |
Check the conditions of CHECK_BUBBLEGEN (Industry should be in low land). | |
static CommandCost | FindTownForIndustry (TileIndex tile, IndustryType type, Town **t) |
Find a town for the industry, while checking for multiple industries in the same town. | |
bool | IsSlopeRefused (Slope current, Slope refused) |
static CommandCost | CheckIfIndustryTilesAreFree (TileIndex tile, const IndustryTileLayout &layout, IndustryType type) |
Are the tiles of the industry free? | |
static CommandCost | CheckIfIndustryTileSlopes (TileIndex tile, const IndustryTileLayout &layout, size_t layout_index, IndustryType type, uint16_t initial_random_bits, Owner founder, IndustryAvailabilityCallType creation_type, bool *custom_shape_check=nullptr) |
Check slope requirements for industry tiles. | |
static CommandCost | CheckIfIndustryIsAllowed (TileIndex tile, IndustryType type, const Town *t) |
Is the industry allowed to be built at this place for the town? | |
static bool | CheckCanTerraformSurroundingTiles (TileIndex tile, uint height, int internal) |
static bool | CheckIfCanLevelIndustryPlatform (TileIndex tile, DoCommandFlags flags, const IndustryTileLayout &layout) |
This function tries to flatten out the land below an industry, without damaging the surroundings too much. | |
static CommandCost | CheckIfFarEnoughFromConflictingIndustry (TileIndex tile, IndustryType type) |
Check that the new industry is far enough from conflicting industries. | |
static void | AdvertiseIndustryOpening (const Industry *ind) |
Advertise about a new industry opening. | |
static void | PopulateStationsNearby (Industry *ind) |
Populate an industry's list of nearby stations, and if it accepts any cargo, also add the industry to each station's nearby industry list. | |
static void | DoCreateNewIndustry (Industry *i, TileIndex tile, IndustryType type, const IndustryTileLayout &layout, size_t layout_index, Town *t, Owner founder, uint16_t initial_random_bits) |
Put an industry on the map. | |
static CommandCost | CreateNewIndustryHelper (TileIndex tile, IndustryType type, DoCommandFlags flags, const IndustrySpec *indspec, size_t layout_index, uint32_t random_var8f, uint16_t random_initial_bits, Owner founder, IndustryAvailabilityCallType creation_type, Industry **ip) |
Helper function for Build/Fund an industry. | |
CommandCost | CmdBuildIndustry (DoCommandFlags flags, TileIndex tile, IndustryType it, uint32_t first_layout, bool fund, uint32_t seed) |
Build/Fund an industry. | |
CommandCost | CmdIndustrySetFlags (DoCommandFlags flags, IndustryID ind_id, IndustryControlFlags ctlflags) |
Set industry control flags. | |
CommandCost | CmdIndustrySetProduction (DoCommandFlags flags, IndustryID ind_id, uint8_t prod_level, bool show_news, const EncodedString &custom_news) |
Set industry production. | |
CommandCost | CmdIndustrySetExclusivity (DoCommandFlags flags, IndustryID ind_id, Owner company_id, bool consumer) |
Change exclusive consumer or supplier for the industry. | |
CommandCost | CmdIndustrySetText (DoCommandFlags flags, IndustryID ind_id, const EncodedString &text) |
Change additional industry text. | |
static Industry * | CreateNewIndustry (TileIndex tile, IndustryType type, IndustryAvailabilityCallType creation_type) |
Create a new industry of random layout. | |
static uint32_t | GetScaledIndustryGenerationProbability (IndustryType it, bool *force_at_least_one) |
Compute the appearance probability for an industry during map creation. | |
static uint16_t | GetIndustryGamePlayProbability (IndustryType it, uint8_t *min_number) |
Compute the probability for constructing a new industry during game play. | |
static uint | GetNumberOfIndustries () |
Get wanted number of industries on the map. | |
static Industry * | PlaceIndustry (IndustryType type, IndustryAvailabilityCallType creation_type, bool try_hard) |
Try to place the industry in the game. | |
static void | PlaceInitialIndustry (IndustryType type, bool try_hard) |
Try to build a industry on the map. | |
static uint | GetCurrentTotalNumberOfIndustries () |
Get total number of industries existing in the game. | |
void | GenerateIndustries () |
This function will create random industries during game creation. | |
static void | UpdateIndustryStatistics (Industry *i) |
Monthly update of industry statistics. | |
void | ClearAllIndustryCachedNames () |
static bool | CheckIndustryCloseDownProtection (IndustryType type) |
Protects an industry from closure if the appropriate flags and conditions are met CanCloseLastInstance must be set (which, by default, it is not) and the count of industries of this type must one (or lower) in order to be protected against closure. | |
static void | CanCargoServiceIndustry (CargoType cargo, Industry *ind, bool *c_accepts, bool *c_produces) |
Can given cargo type be accepted or produced by the industry? | |
static void | ReportNewsProductionChangeIndustry (Industry *ind, CargoType cargo, int percent) |
Report news that industry production has changed significantly. | |
static void | ChangeIndustryProduction (Industry *i, bool monthly) |
Change industry production or do closure. | |
void | InitializeIndustries () |
void | CheckIndustries () |
Verify whether the generated industries are complete, and warn the user if not. | |
static CommandCost | TerraformTile_Industry (TileIndex tile, DoCommandFlags flags, int z_new, Slope tileh_new) |
void | TrimIndustryAcceptedProduced (Industry *ind) |
Remove unused industry accepted/produced slots – entries after the last slot with valid cargo. | |
Variables | |
IndustryPool | _industry_pool ("Industry") |
static uint8_t | _industry_sound_ctr |
static TileIndex | _industry_sound_tile |
IndustrySpec | _industry_specs [NUM_INDUSTRYTYPES] |
IndustryTileSpec | _industry_tile_specs [NUM_INDUSTRYTILES] |
IndustryBuildData | _industry_builder |
In-game manager of industries. | |
static IndustryDrawTileProc *const | _industry_draw_tile_procs [5] |
static const uint8_t | _plantfarmfield_type [] = {1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6} |
bool | _ignore_industry_restrictions |
static CheckNewIndustryProc *const | _check_new_industry_procs [CHECK_END] |
Check functions for different types of industry. | |
static const uint | PERCENT_TRANSPORTED_60 = 153 |
static const uint | PERCENT_TRANSPORTED_80 = 204 |
static const IntervalTimer< TimerGameEconomy > | _economy_industries_daily ({TimerGameEconomy::DAY, TimerGameEconomy::Priority::INDUSTRY}, [](auto) { _economy.industry_daily_change_counter+=_economy.industry_daily_increment;uint16_t change_loop=_economy.industry_daily_change_counter > > 16;_economy.industry_daily_change_counter &=0xFFFF;if(change_loop==0) { return;} Backup< CompanyID > cur_company(_current_company, OWNER_NONE);uint perc=3;if((_industry_builder.wanted_inds > > 16) > GetCurrentTotalNumberOfIndustries()) { perc=std::min(9u, perc+(_industry_builder.wanted_inds > > 16) - GetCurrentTotalNumberOfIndustries());} for(uint16_t j=0;j< change_loop;j++) { if(Chance16(perc, 100)) { _industry_builder.TryBuildNewIndustry();} else { Industry *i=Industry::GetRandom();if(i !=nullptr) { ChangeIndustryProduction(i, false);SetWindowDirty(WC_INDUSTRY_VIEW, i->index);} } } cur_company.Restore();InvalidateWindowData(WC_INDUSTRY_DIRECTORY, 0, IDIWD_PRODUCTION_CHANGE);}) |
Every economy day handler for the industry changes Taking the original map size of 256*256, the number of random changes was always of just one unit. | |
static const IntervalTimer< TimerGameEconomy > | _economy_industries_monthly ({TimerGameEconomy::MONTH, TimerGameEconomy::Priority::INDUSTRY}, [](auto) { Backup< CompanyID > cur_company(_current_company, OWNER_NONE);_industry_builder.EconomyMonthlyLoop();for(Industry *i :Industry::Iterate()) { UpdateIndustryStatistics(i);if(i->prod_level==PRODLEVEL_CLOSURE) { delete i;} else { ChangeIndustryProduction(i, true);SetWindowDirty(WC_INDUSTRY_VIEW, i->index);} } cur_company.Restore();InvalidateWindowData(WC_INDUSTRY_DIRECTORY, 0, IDIWD_PRODUCTION_CHANGE);}) |
const TileTypeProcs | _tile_type_industry_procs |
Handling of industry tiles.
Definition in file industry_cmd.cpp.
typedef CommandCost CheckNewIndustryProc(TileIndex tile) |
Industrytype check function signature.
tile | Tile to check. |
Definition at line 1405 of file industry_cmd.cpp.
typedef void IndustryDrawTileProc(const TileInfo *ti) |
Definition at line 319 of file industry_cmd.cpp.
|
static |
Definition at line 417 of file industry_cmd.cpp.
|
static |
Advertise about a new industry opening.
ind | Industry being opened. |
Definition at line 1712 of file industry_cmd.cpp.
References AI::BroadcastNewEvent(), GetEncodedString(), GetIndustrySpec(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, IndustryOpen, IndustrySpec::name, IndustrySpec::new_industry_text, Game::NewEvent(), Industry::town, and Industry::type.
Referenced by CmdBuildIndustry(), and IndustryBuildData::TryBuildNewIndustry().
|
static |
Definition at line 593 of file industry_cmd.cpp.
|
static |
Definition at line 664 of file industry_cmd.cpp.
|
static |
Definition at line 649 of file industry_cmd.cpp.
|
static |
Definition at line 642 of file industry_cmd.cpp.
|
static |
Definition at line 606 of file industry_cmd.cpp.
|
static |
Definition at line 556 of file industry_cmd.cpp.
|
static |
Definition at line 696 of file industry_cmd.cpp.
|
static |
Definition at line 576 of file industry_cmd.cpp.
|
static |
Definition at line 618 of file industry_cmd.cpp.
void BuildOilRig | ( | TileIndex | tile | ) |
Definition at line 4509 of file station_cmd.cpp.
|
static |
Can given cargo type be accepted or produced by the industry?
cargo | Cargo type |
ind | Industry |
*c_accepts | Pointer to boolean for acceptance of cargo |
*c_produces | Pointer to boolean for production of cargo |
*c_accepts
is set when industry accepts the cargo type, *c_produces
is set when the industry produces the cargo type Definition at line 2702 of file industry_cmd.cpp.
References IndustryTemporarilyRefusesCargo(), Industry::IsCargoAccepted(), Industry::IsCargoProduced(), and IsValidCargoType().
Referenced by WhoCanServiceIndustry().
|
static |
Change industry production or do closure.
i | Industry for which changes are performed |
monthly | true if it's the monthly call, false if it's the random call |
< reinitialize production_rate to match prod_level
Definition at line 2806 of file industry_cmd.cpp.
References _settings_game, abs(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), IndustrySpec::behaviour, AI::BroadcastNewEvent(), CALLBACK_FAILED, IndustrySpec::callback_mask, CBID_INDUSTRY_MONTHLYPROD_CHANGE, CBID_INDUSTRY_PRODUCTION_CHANGE, Chance16(), Chance16I(), CheckIndustryCloseDownProtection(), Clamp(), ClampU(), IndustrySpec::closure_text, CT_PASSENGERS, Industry::ctlflags, DontIncrProd, GameSettings::economy, ExternalProdLevel, GameSettings::game_creation, GB(), GetEncodedString(), GetIndustryCallback(), GetIndustrySpec(), Industry::GetProduced(), IndustrySpec::grf_prop, GRFFilePropsBase::grfid, HasBit(), Industry::ProducedCargo::history, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, IndustryClose, IndustryCompany, INDUSTRYLIFE_BLACK_HOLE, IndustryNobody, IndustryOther, IsValidCargoType(), GameCreationSettings::landscape, Industry::last_prod_year, IndustrySpec::life_type, Industry::location, MapGRFStringID(), MonthlyProdChange, IndustrySpec::name, Game::NewEvent(), NoClosure, NoPaxProdClamp, NoProductionDecrease, NoProductionIncrease, Processing, PROCESSING_INDUSTRY_ABANDONMENT_YEARS, Industry::prod_level, PRODLEVEL_CLOSURE, PRODLEVEL_MAXIMUM, PRODLEVEL_MINIMUM, Industry::produced, IndustrySpec::production_down_text, IndustrySpec::production_up_text, ProductionChange, Random, RandomRange(), Industry::RecomputeProductionMultipliers(), ReportNewsProductionChangeIndustry(), SetWindowDirty(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), OrthogonalTileArea::tile, TileDiffXY(), Industry::town, Industry::type, EconomySettings::type, IndustrySpec::UsesOriginalEconomy(), WC_INDUSTRY_VIEW, WhoCanServiceIndustry(), and TimerGameEconomy::year.
Definition at line 968 of file industry_cmd.cpp.
|
static |
Definition at line 1587 of file industry_cmd.cpp.
|
static |
This function tries to flatten out the land below an industry, without damaging the surroundings too much.
Definition at line 1618 of file industry_cmd.cpp.
References _current_company, _settings_game, GameSettings::construction, Execute, GFX_WATERTILE_SPECIALCHECK, OrthogonalTileArea::h, ConstructionSettings::industry_platform, Map::MaxX(), Map::MaxY(), OWNER_TOWN, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Reset(), Backup< T >::Restore(), SLOPE_N, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), OrthogonalTileArea::tile, TileDiffXY(), TileHeight(), TileX(), TileY(), and OrthogonalTileArea::w.
Referenced by CreateNewIndustryHelper().
|
static |
Check that the new industry is far enough from conflicting industries.
tile | Tile to construct the industry. |
type | Type of the new industry. |
Definition at line 1691 of file industry_cmd.cpp.
References IndustrySpec::conflicting, DistanceMax(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::Get(), GetIndustrySpec(), and Industry::industries.
Referenced by CreateNewIndustryHelper().
|
static |
Is the industry allowed to be built at this place for the town?
tile | Tile to construct the industry. |
type | Type of the industry. |
t | Town authority that the industry belongs to. |
Definition at line 1574 of file industry_cmd.cpp.
References Town::cache, DistanceMax(), GetIndustrySpec(), OnlyNearTown, TownCache::population, Town1200More, and Town::xy.
Referenced by CreateNewIndustryHelper().
|
static |
Are the tiles of the industry free?
tile | Position to check. |
layout | Industry tiles table. |
type | Type of the industry. |
Definition at line 1470 of file industry_cmd.cpp.
References _current_company, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), Auto, IndustrySpec::behaviour, BuiltOnWater, EnsureNoVehicleOnGround(), CommandCost::Failed(), GetIndustrySpec(), GetIndustryTileSpec(), GetTranslatedIndustryTileID(), GFX_WATERTILE_SPECIALCHECK, HasBit(), HasTileWaterClass(), IsBridgeAbove(), IsTileFlat(), IsTileOnWater(), IsTileType(), IsValidTile(), IsWaterTile(), MP_HOUSE, NoModifyTownRating, NoTestTownRating, OnlyNearTown, OWNER_TOWN, Backup< T >::Restore(), IndustryTileSpec::slopes_refused, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and TileAddWrap().
Referenced by CreateNewIndustryHelper().
|
static |
Check slope requirements for industry tiles.
tile | Position to check. | |
layout | Industry tiles table. | |
layout_index | The index of the layout to build/fund | |
type | Type of the industry. | |
initial_random_bits | The random bits the industry is going to have after construction. | |
founder | Industry founder | |
creation_type | The circumstances the industry is created under. | |
[out] | custom_shape_check | Perform custom check for the site. |
Definition at line 1532 of file industry_cmd.cpp.
References _generating_world, _settings_game, IndustryTileSpec::callback_mask, CommandCost::Failed(), GameSettings::game_creation, GetIndustryTileSpec(), GetTileSlope(), GetTranslatedIndustryTileID(), GFX_WATERTILE_SPECIALCHECK, IsValidTile(), GameCreationSettings::land_generator, LG_TERRAGENESIS, PerformIndustryTileSlopeCheck(), ShapeCheck, IndustryTileSpec::slopes_refused, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and TileAddWrap().
Referenced by CreateNewIndustryHelper().
void CheckIndustries | ( | ) |
Verify whether the generated industries are complete, and warn the user if not.
Definition at line 3094 of file industry_cmd.cpp.
References GetEncodedString(), GetIndustrySpec(), Industry::GetIndustryTypeCount(), GetScaledIndustryGenerationProbability(), IndustrySpec::name, NUM_INDUSTRYTYPES, ShowErrorMessage(), and WL_WARNING.
|
static |
Protects an industry from closure if the appropriate flags and conditions are met CanCloseLastInstance must be set (which, by default, it is not) and the count of industries of this type must one (or lower) in order to be protected against closure.
type | IndustryType been queried |
Definition at line 2684 of file industry_cmd.cpp.
References _settings_game, IndustrySpec::behaviour, CanCloseLastInstance, DontIncrProd, GameSettings::game_creation, GetIndustrySpec(), Industry::GetIndustryTypeCount(), GameCreationSettings::landscape, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
Referenced by ChangeIndustryProduction().
|
static |
Check the conditions of CHECK_BUBBLEGEN (Industry should be in low land).
tile | Tile to perform the checking. |
Definition at line 1392 of file industry_cmd.cpp.
References GetTileZ().
|
static |
Check the conditions of CHECK_FARM (Industry should be below snow-line in arctic).
tile | Tile to perform the checking. |
Definition at line 1338 of file industry_cmd.cpp.
References _settings_game, GameSettings::game_creation, GetTileZ(), HighestSnowLine(), and GameCreationSettings::landscape.
|
static |
Check the conditions of CHECK_FOREST (Industry should be build above snow-line in arctic climate).
tile | Tile to perform the checking. |
Definition at line 1269 of file industry_cmd.cpp.
References _settings_game, GameSettings::game_creation, GetTileZ(), HighestSnowLine(), and GameCreationSettings::landscape.
|
static |
Check the conditions of CHECK_LUMBERMILL (Industry should be in the rainforest).
tile | Tile to perform the checking. |
Definition at line 1379 of file industry_cmd.cpp.
References GetTropicZone(), and TROPICZONE_RAINFOREST.
|
static |
Check the conditions of CHECK_NOTHING (Always succeeds).
Definition at line 1259 of file industry_cmd.cpp.
|
static |
Check the conditions of CHECK_REFINERY (Industry should be positioned near edge of the map).
tile | Tile to perform the checking. |
Definition at line 1307 of file industry_cmd.cpp.
References _settings_game, CheckScaledDistanceFromEdge(), GameSettings::game_creation, GameCreationSettings::oil_refinery_limit, and TileAddXY().
|
static |
Check the conditions of CHECK_OIL_RIG (Industries at sea should be positioned near edge of the map).
tile | Tile to perform the checking. |
Definition at line 1323 of file industry_cmd.cpp.
References _settings_game, CheckScaledDistanceFromEdge(), GameSettings::game_creation, GameCreationSettings::oil_refinery_limit, TileAddXY(), and TileHeight().
|
static |
Check the conditions of CHECK_PLANTATION (Industry should NOT be in the desert).
tile | Tile to perform the checking. |
Definition at line 1353 of file industry_cmd.cpp.
References GetTropicZone(), and TROPICZONE_DESERT.
|
static |
Check the conditions of CHECK_WATER (Industry should be in the desert).
tile | Tile to perform the checking. |
Definition at line 1366 of file industry_cmd.cpp.
References GetTropicZone(), and TROPICZONE_DESERT.
|
static |
Check if a tile is within a distance from map edges, scaled by map dimensions independently.
Each dimension is checked independently, and dimensions smaller than 256 are not scaled.
tile | Which tile to check distance of. |
maxdist | Normal distance on a 256x256 map. |
Definition at line 1286 of file industry_cmd.cpp.
References DIAGDIR_NE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_SW, DistanceFromEdgeDir(), Map::SizeX(), and Map::SizeY().
Referenced by CheckNewIndustry_OilRefinery(), and CheckNewIndustry_OilRig().
|
static |
Perform a circular search around the Lumber Mill in order to find trees to cut.
i | industry |
Definition at line 1111 of file industry_cmd.cpp.
References _current_company, _settings_client, SoundSettings::ambient, Execute, GetTreeGrowth(), Grown, IsIndustryCompleted(), IsTileType(), IsValidCargoType(), Industry::location, MP_TREES, OWNER_NONE, Industry::produced, ScaleByCargoScale(), SND_38_LUMBER_MILL_1, ClientSettings::sound, OrthogonalTileArea::tile, and Industry::TileBelongsToIndustry().
void ClearAllIndustryCachedNames | ( | ) |
Definition at line 2543 of file industry_cmd.cpp.
|
static |
Definition at line 494 of file industry_cmd.cpp.
|
static |
Definition at line 957 of file industry_cmd.cpp.
CommandCost CmdBuildIndustry | ( | DoCommandFlags | flags, |
TileIndex | tile, | ||
IndustryType | it, | ||
uint32_t | first_layout, | ||
bool | fund, | ||
uint32_t | seed | ||
) |
Build/Fund an industry.
flags | of operations to conduct |
tile | tile where industry is built |
it | industry type see build_industry.h and see industry.h |
first_layout | first layout to try |
fund | false = prospect, true = fund (only valid if current company is DEITY) |
seed | seed to use for desyncfree randomisations |
Definition at line 2054 of file industry_cmd.cpp.
References _current_company, _settings_game, AdvertiseIndustryOpening(), CMD_ERROR, GameSettings::construction, CreateNewIndustryHelper(), IndustrySpec::enabled, Execute, EXPENSES_OTHER, CommandCost::Failed(), GB(), IndustrySpec::GetConstructionCost(), GetEncodedString(), GetIndustryProbabilityCallback(), GetIndustrySpec(), Backup< T >::GetOriginalValue(), IACT_PROSPECTCREATION, IACT_RANDOMCREATION, IACT_USERCREATION, IsLocalCompany(), IndustrySpec::IsRawIndustry(), IndustrySpec::layouts, Randomizer::Next(), NUM_INDUSTRYTYPES, OWNER_DEITY, OWNER_TOWN, IndustrySpec::prospecting_chance, Random, RandomRange(), RandomTile, ConstructionSettings::raw_industry_construction, Backup< T >::Restore(), Randomizer::SetSeed(), ShowErrorMessage(), CommandCost::Succeeded(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and WL_INFO.
CommandCost CmdIndustrySetExclusivity | ( | DoCommandFlags | flags, |
IndustryID | ind_id, | ||
Owner | company_id, | ||
bool | consumer | ||
) |
Change exclusive consumer or supplier for the industry.
flags | Type of operation. |
ind_id | IndustryID |
company_id | CompanyID to set or INVALID_OWNER (available to everyone) or OWNER_NONE (neutral stations only) or OWNER_DEITY (no one) |
consumer | Set exclusive consumer if true, supplier if false. |
Definition at line 2223 of file industry_cmd.cpp.
References _current_company, CMD_ERROR, Industry::exclusive_consumer, Industry::exclusive_supplier, Execute, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::GetIfValid(), INVALID_OWNER, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::IsValidID(), OWNER_DEITY, OWNER_NONE, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
CommandCost CmdIndustrySetFlags | ( | DoCommandFlags | flags, |
IndustryID | ind_id, | ||
IndustryControlFlags | ctlflags | ||
) |
Set industry control flags.
flags | Type of operation. |
ind_id | IndustryID |
ctlflags | IndustryControlFlags |
Definition at line 2146 of file industry_cmd.cpp.
References _current_company, CMD_ERROR, Industry::ctlflags, Execute, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::GetIfValid(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::IsValid(), OWNER_DEITY, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
CommandCost CmdIndustrySetProduction | ( | DoCommandFlags | flags, |
IndustryID | ind_id, | ||
uint8_t | prod_level, | ||
bool | show_news, | ||
const EncodedString & | custom_news | ||
) |
Set industry production.
flags | Type of operation. |
ind_id | IndustryID |
prod_level | Production level. |
show_news | Show a news message on production change. |
custom_news | Custom news message text. |
Definition at line 2168 of file industry_cmd.cpp.
References _current_company, CMD_ERROR, Industry::ctlflags, Execute, ExternalProdLevel, GetEncodedString(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::GetIfValid(), GetIndustrySpec(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, IndustryCompany, IndustryNobody, IndustryOther, IndustrySpec::name, OWNER_DEITY, Industry::prod_level, PRODLEVEL_MAXIMUM, IndustrySpec::production_down_text, IndustrySpec::production_up_text, Industry::RecomputeProductionMultipliers(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Industry::town, Industry::type, and WhoCanServiceIndustry().
CommandCost CmdIndustrySetText | ( | DoCommandFlags | flags, |
IndustryID | ind_id, | ||
const EncodedString & | text | ||
) |
Change additional industry text.
flags | Type of operation. |
ind_id | IndustryID |
text | - Additional industry text. |
Definition at line 2252 of file industry_cmd.cpp.
References _current_company, CMD_ERROR, Execute, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, InvalidateWindowData(), OWNER_DEITY, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Industry::text, and WC_INDUSTRY_VIEW.
|
static |
Definition at line 747 of file industry_cmd.cpp.
|
static |
Create a new industry of random layout.
tile | The location to build the industry. |
type | The industry type to build. |
creation_type | The circumstances the industry is created under. |
Definition at line 2275 of file industry_cmd.cpp.
References CreateNewIndustryHelper(), Execute, CommandCost::Failed(), GB(), GetIndustrySpec(), IndustrySpec::layouts, OWNER_NONE, Random, and RandomRange().
Referenced by PlaceIndustry().
|
static |
Helper function for Build/Fund an industry.
tile | tile where industry is built | |
type | of industry to build | |
flags | of operations to conduct | |
indspec | pointer to industry specifications | |
layout_index | the index of the itsepc to build/fund | |
random_var8f | random seed (possibly) used by industries | |
random_initial_bits | The random bits the industry is going to have after construction. | |
founder | Founder of the industry | |
creation_type | The circumstances the industry is created under. | |
[out] | ip | Pointer to store newly created industry. |
*ip
contains the newly created industry if all checks are successful and the flags request actual creation, else it contains nullptr
afterwards. Definition at line 1990 of file industry_cmd.cpp.
References _check_new_industry_procs, _generating_world, _settings_game, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::CanAllocateItem(), IndustrySpec::check_proc, CheckIfCallBackAllowsCreation(), CheckIfCanLevelIndustryPlatform(), CheckIfFarEnoughFromConflictingIndustry(), CheckIfIndustryIsAllowed(), CheckIfIndustryTilesAreFree(), CheckIfIndustryTileSlopes(), DoCreateNewIndustry(), Execute, CommandCost::Failed(), FindTownForIndustry(), GameSettings::game_creation, GetIndustrySpec(), GameCreationSettings::land_generator, IndustrySpec::layouts, LG_TERRAGENESIS, Location, NoWater, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
Referenced by CmdBuildIndustry(), and CreateNewIndustry().
|
static |
Put an industry on the map.
i | Just allocated poolitem, mostly empty. |
tile | North tile of the industry. |
type | Type of the industry. |
layout | Industrylayout to build. |
layout_index | Number of the industry layout. |
t | Nearest town. |
founder | Founder of the industry; OWNER_NONE in case of random construction. |
initial_random_bits | Random bits for the industry. |
Definition at line 1760 of file industry_cmd.cpp.
References _generating_world, Industry::accepted, IndustrySpec::accepts_cargo, OrthogonalTileArea::Add(), AddAnimatedTile(), IndustryTileSpec::animation, IndustrySpec::behaviour, CALLBACK_FAILED, IndustrySpec::callback_mask, Industry::ProducedCargo::cargo, Industry::AcceptedCargo::cargo, CargoTypesUnlimited, CBID_INDUSTRY_DECIDE_COLOUR, CBID_INDUSTRY_INPUT_CARGO_TYPES, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, CBID_INDUSTRY_PROD_CHANGE_BUILD, Industry::construction_date, Industry::construction_type, Industry::counter, Industry::ctlflags, TimerGameCalendar::date, DecideColour, ErrorUnknownCallbackResult(), Industry::exclusive_consumer, Industry::exclusive_supplier, Execute, Industry::founder, GB(), GetCargoTranslation(), GetIndustryCallback(), GetIndustrySpec(), GetIndustryTileSpec(), GetTranslatedIndustryTileID(), GetWaterClass(), GFX_WATERTILE_SPECIALCHECK, IndustrySpec::grf_prop, GRFFilePropsBase::grffile, GRFFilePropsBase::grfid, ICT_MAP_GENERATION, ICT_NORMAL_GAMEPLAY, ICT_SCENARIO_EDITOR, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, Industry::industries, INDUSTRY_NUM_INPUTS, INDUSTRY_NUM_OUTPUTS, IndustryProductionCallback(), InputCargoTypes, INVALID_OWNER, INVALID_TILE, InvalidateWindowData(), IsValidCargoType(), IsWaterTile(), Industry::last_prod_year, Industry::location, MakeIndustry(), NoAnimation, NoModifyTownRating, NoTestTownRating, OutputCargoTypes, Industry::owner, OWNER_NONE, PlantOnBuild, PopulateStationsNearby(), Industry::prod_level, ProdChangeBuild, PRODLEVEL_DEFAULT, PRODLEVEL_MAXIMUM, Industry::produced, Production256Ticks, Industry::random, Random, Industry::random_colour, RandomRange(), Industry::ProducedCargo::rate, Industry::RecomputeProductionMultipliers(), ScaleByCargoScale(), Industry::selected_layout, SetIndustryConstructionCounter(), SetIndustryConstructionStage(), SetWindowDirty(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Industry::TileBelongsToIndustry(), ToTileIndexDiff(), Industry::town, Industry::type, UpdateValidHistory(), IndustrySpec::UsesOriginalEconomy(), Industry::valid_history, Industry::was_cargo_delivered, WATER_CLASS_INVALID, WC_BUILD_INDUSTRY, WC_INDUSTRY_DIRECTORY, and TimerGameEconomy::year.
Referenced by CreateNewIndustryHelper().
|
static |
Definition at line 328 of file industry_cmd.cpp.
|
static |
Find a town for the industry, while checking for multiple industries in the same town.
tile | Position of the industry to build. | |
type | Industry type. | |
[out] | t | Pointer to return town for the new industry, nullptr is written if no good town can be found. |
*t
!= nullptr *t
points to a town on success, and nullptr
on failure. Definition at line 1430 of file industry_cmd.cpp.
References _settings_game, ClosestTownFromTile(), GameSettings::economy, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_industry_pool >::Get(), Industry::industries, and EconomySettings::multiple_industry_per_town.
Referenced by CreateNewIndustryHelper().
void GenerateIndustries | ( | ) |
This function will create random industries during game creation.
It will scale the amount of industries by mapsize and difficulty level.
Definition at line 2450 of file industry_cmd.cpp.
References _industry_builder, _settings_game, GameSettings::difficulty, GetNumberOfIndustries(), GetScaledIndustryGenerationProbability(), GWP_INDUSTRY, ID_FUND_ONLY, DifficultySettings::industry_density, NUM_INDUSTRYTYPES, PlaceInitialIndustry(), RandomRange(), IndustryBuildData::Reset(), and SetGeneratingWorldProgress().
Referenced by _GenerateWorld().
|
static |
Get total number of industries existing in the game.
Definition at line 2402 of file industry_cmd.cpp.
References Industry::industries.
Referenced by IndustryBuildData::EconomyMonthlyLoop(), and IndustryBuildData::Reset().
|
static |
Definition at line 399 of file industry_cmd.cpp.
|
static |
Compute the probability for constructing a new industry during game play.
it | Industry type to compute. | |
[out] | min_number | Minimal number of industries that should exist at the map. |
Definition at line 2320 of file industry_cmd.cpp.
References _settings_game, After1960, IndustrySpec::appear_ingame, Before1950, IndustrySpec::behaviour, CanCloseLastInstance, GameSettings::difficulty, IndustrySpec::enabled, GameSettings::game_creation, GetIndustryProbabilityCallback(), GetIndustrySpec(), IACT_RANDOMCREATION, ID_FUND_ONLY, DifficultySettings::industry_density, GameCreationSettings::landscape, IndustrySpec::layouts, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), to_underlying(), and TimerGameCalendar::year.
Referenced by IndustryTypeBuildData::GetIndustryTypeData().
const IndustrySpec * GetIndustrySpec | ( | IndustryType | thistype | ) |
Accessor for array _industry_specs.
Array of industries data.
This will ensure at once : proper access and not allowing modifications of it.
thistype | of industry (which is the index in _industry_specs) |
Definition at line 125 of file industry_cmd.cpp.
References NUM_INDUSTRYTYPES.
Referenced by IndustryOverrideManager::AddEntityID(), AdvertiseIndustryOpening(), AfterLoadGame(), BuildIndustriesLegend(), ChangeIndustryProduction(), CheckIfCallBackAllowsCreation(), CheckIfFarEnoughFromConflictingIndustry(), CheckIfIndustryIsAllowed(), CheckIfIndustryTilesAreFree(), CheckIndustries(), CheckIndustryCloseDownProtection(), CmdBuildIndustry(), CmdIndustrySetProduction(), CMSAMine(), IndustryCargoesWindow::ComputeCargoDisplay(), IndustryCargoesWindow::ComputeIndustryDisplay(), CargoesRow::ConnectIndustryAccepted(), CargoesRow::ConnectIndustryProduced(), IndustryCargoesWindow::CountMatchingAcceptingIndustries(), IndustryCargoesWindow::CountMatchingProducingIndustries(), CreateNewIndustry(), CreateNewIndustryHelper(), Disaster_CoalMine_Init(), Disaster_Helicopter_Init(), DisasterTick_Aircraft(), DoCreateNewIndustry(), CargoesField::Draw(), IndustryViewWindow::DrawInfo(), BuildIndustryWindow::DrawWidget(), FormatString(), GenerateStationName(), GetAiPurchaseCallbackResult(), NIHIndustry::GetBadges(), GetCountAndDistanceOfClosestInstance(), IndustriesResolverObject::GetDebugID(), GetGrffile(), NIHIndustry::GetGRFID(), GetIndustryGamePlayProbability(), GetIndustryProbabilityCallback(), IndustryDirectoryWindow::GetIndustryString(), GetScaledIndustryGenerationProbability(), NIHIndustry::GetSpec(), SmallMapWindow::GetTileColours(), IndustriesScopeResolver::GetVariable(), BuildIndustryWindow::GetWidgetString(), IndustryCargoesWindow::GetWidgetString(), IndustriesResolverObject::IndustriesResolverObject(), IndustryProductionCallback(), IndustryTemporarilyRefusesCargo(), IndustryTypeNameSorter(), NIHIndustry::IsInspectable(), IsTileForestIndustry(), BuildIndustryWindow::OnClick(), IndustryCargoesWindow::OnClick(), IndustryCargoesWindow::OnInit(), IndustryViewWindow::OnInvalidateData(), BuildIndustryWindow::OnPlaceObject(), Industry::RecomputeProductionMultipliers(), ShowIndustryCargoesWindow(), IndustriesScopeResolver::StorePSA(), TransportIndustryGoods(), TriggerIndustryProduction(), and BuildIndustryWindow::UpdateWidgetSize().
const IndustryTileSpec * GetIndustryTileSpec | ( | IndustryGfx | gfx | ) |
Accessor for array _industry_tile_specs.
Array of industry tiles data.
This will ensure at once : proper access and not allowing modifications of it.
gfx | of industrytile (which is the index in _industry_tile_specs) |
Definition at line 139 of file industry_cmd.cpp.
References NUM_INDUSTRYTILES.
Referenced by CheckIfIndustryTilesAreFree(), CheckIfIndustryTileSlopes(), DoCreateNewIndustry(), DoTriggerIndustryTileRandomisation(), NIHIndustryTile::GetBadges(), IndustryTileResolverObject::GetDebugID(), NIHIndustryTile::GetGRFID(), GetIndTileGrffile(), GetIndustryIDAtOffset(), NIHIndustryTile::GetSpec(), IndustryTileScopeResolver::GetVariable(), IndustryTileResolverObject::IndustryTileResolverObject(), and NIHIndustryTile::IsInspectable().
IndustryType GetIndustryType | ( | Tile | tile | ) |
Retrieve the type for this industry.
Although it is accessed by a tile, it will return the general type of industry, and not the sprite index as would do GetIndustryGfx.
tile | that is queried |
Definition at line 108 of file industry_cmd.cpp.
References Industry::GetByTile(), IsTileType(), MP_INDUSTRY, and Industry::type.
Referenced by AfterLoadGame(), and GenerateStationName().
|
static |
Get wanted number of industries on the map.
Definition at line 2344 of file industry_cmd.cpp.
References _settings_game, GameCreationSettings::custom_industry_number, GameSettings::difficulty, GameSettings::game_creation, ID_CUSTOM, ID_END, ID_VERY_LOW, DifficultySettings::industry_density, lengthof, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::MAX_SIZE, and Map::ScaleBySize().
Referenced by GenerateIndustries().
|
static |
Compute the appearance probability for an industry during map creation.
it | Industry type to compute. | |
[out] | force_at_least_one | Returns whether at least one instance should be forced on map creation. |
Definition at line 2294 of file industry_cmd.cpp.
References _settings_game, IndustrySpec::appear_creation, IndustrySpec::behaviour, CHECK_OIL_RIG, IndustrySpec::check_proc, CHECK_REFINERY, GameSettings::difficulty, IndustrySpec::enabled, GameSettings::game_creation, GetIndustryProbabilityCallback(), GetIndustrySpec(), IACT_MAPGENERATION, ID_FUND_ONLY, DifficultySettings::industry_density, GameCreationSettings::landscape, IndustrySpec::layouts, NoBuildMapCreation, Map::ScaleBySize(), Map::ScaleBySize1D(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and to_underlying().
Referenced by CheckIndustries(), and GenerateIndustries().
|
static |
Definition at line 394 of file industry_cmd.cpp.
Definition at line 477 of file industry_cmd.cpp.
|
static |
Definition at line 963 of file industry_cmd.cpp.
|
static |
Definition at line 280 of file industry_cmd.cpp.
|
static |
Definition at line 304 of file industry_cmd.cpp.
|
static |
Definition at line 247 of file industry_cmd.cpp.
|
static |
Definition at line 265 of file industry_cmd.cpp.
|
static |
Definition at line 288 of file industry_cmd.cpp.
void InitializeIndustries | ( | ) |
Definition at line 3085 of file industry_cmd.cpp.
Definition at line 1446 of file industry_cmd.cpp.
|
static |
Check whether the tile can be replaced by a farm field.
tile | the tile to investigate. |
allow_fields | if true, the method will return true even if the tile is a farm tile, otherwise the tile may not be a farm tile |
Definition at line 1006 of file industry_cmd.cpp.
References CLEAR_DESERT, CLEAR_FIELDS, GetTileType(), GetTreeGround(), IsClearGround(), IsSnowTile(), MP_CLEAR, MP_TREES, and TREE_GROUND_SHORE.
bool IsTileForestIndustry | ( | TileIndex | tile | ) |
Check whether the tile is a forest.
tile | the tile to investigate. |
Definition at line 983 of file industry_cmd.cpp.
References Industry::GetByTile(), GetIndustrySpec(), IsTileType(), IndustrySpec::life_type, MP_INDUSTRY, Organic, Industry::produced, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and Industry::type.
Referenced by GenerateStationName(), and GetSmallMapVegetationPixels().
|
static |
Definition at line 756 of file industry_cmd.cpp.
void OnTick_Industry | ( | ) |
Definition at line 1231 of file industry_cmd.cpp.
|
static |
Try to place the industry in the game.
Since there is no feedback why placement fails, there is no other option than to try a few times before concluding it does not work.
type | Industry type of the desired industry. |
try_hard | Try very hard to find a place. (Used to place at least one industry per type.) |
nullptr
if creation failed. Definition at line 2373 of file industry_cmd.cpp.
References CreateNewIndustry(), and RandomTile.
Referenced by PlaceInitialIndustry(), and IndustryBuildData::TryBuildNewIndustry().
|
static |
Try to build a industry on the map.
type | IndustryType of the desired industry |
try_hard | Try very hard to find a place. (Used to place at least one industry per type) |
Definition at line 2388 of file industry_cmd.cpp.
References _current_company, GWP_INDUSTRY, IACT_MAPGENERATION, IncreaseGeneratingWorldProgress(), OWNER_NONE, PlaceIndustry(), and Backup< T >::Restore().
Referenced by GenerateIndustries().
|
static |
Definition at line 1046 of file industry_cmd.cpp.
void PlantRandomFarmField | ( | const Industry * | i | ) |
Definition at line 1097 of file industry_cmd.cpp.
|
static |
Populate an industry's list of nearby stations, and if it accepts any cargo, also add the industry to each station's nearby industry list.
ind | Industry |
Definition at line 1731 of file industry_cmd.cpp.
References _settings_game, ForAllStationsAroundTiles(), Station::industries_near, Industry::location, Industry::neutral_station, StationSettings::serve_neutral_industries, GameSettings::station, and Industry::stations_near.
Referenced by DoCreateNewIndustry().
|
static |
Definition at line 1158 of file industry_cmd.cpp.
|
static |
Helper for ProduceIndustryGoods that scales and produces cargos.
i | The industry |
scale | Should we scale production of this cargo directly? |
Definition at line 1146 of file industry_cmd.cpp.
References IsValidCargoType(), Industry::produced, and ScaleByCargoScale().
|
static |
Report news that industry production has changed significantly.
ind | Industry with changed production |
cargo | Cargo type that has changed |
percent | Percentage of change (>0 means increase, <0 means decrease) |
Definition at line 2779 of file industry_cmd.cpp.
References abs(), CargoSpec::Get(), GetEncodedString(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, IndustryCompany, IndustryNobody, IndustryOther, CargoSpec::name, and WhoCanServiceIndustry().
Referenced by ChangeIndustryProduction().
void ResetIndustries | ( | ) |
This function initialize the spec arrays of both industry and industry tiles.
It adjusts the enabling of the industry too, based on climate availability. This will allow for clearer testings
Definition at line 82 of file industry_cmd.cpp.
References _settings_game, GameSettings::game_creation, GameCreationSettings::landscape, and OverrideManagerBase::ResetOverride().
Referenced by ResetNewGRFData().
|
static |
Build farm field fence.
tile | the tile to position the fence on |
size | the size of the field being planted in tiles |
type | type of fence to set |
side | the side of the tile to attempt placement |
Definition at line 1022 of file industry_cmd.cpp.
References Chance16(), CLEAR_FIELDS, DiagDirToAxis(), GetFence(), IsClearGround(), IsTileType(), MP_CLEAR, OtherAxis(), ReverseDiagDir(), SetFence(), TileOffsByAxis(), TileOffsByDiagDir(), and Map::WrapToMap().
void ShowIndustryViewWindow | ( | IndustryID | industry | ) |
Definition at line 1239 of file industry_gui.cpp.
|
static |
Definition at line 3170 of file industry_cmd.cpp.
|
static |
Definition at line 838 of file industry_cmd.cpp.
|
static |
Definition at line 816 of file industry_cmd.cpp.
|
static |
Move produced cargo from industry to nearby stations.
tile | Industry tile |
Definition at line 530 of file industry_cmd.cpp.
References EconomyIsInRecession(), Industry::exclusive_consumer, Industry::GetByTile(), GetIndustrySpec(), IsValidCargoType(), IndustrySpec::minimal_cargo, Industry::produced, Industry::stations_near, and Industry::type.
void TrimIndustryAcceptedProduced | ( | Industry * | ind | ) |
Remove unused industry accepted/produced slots – entries after the last slot with valid cargo.
ind | Industry to trim slots. |
Definition at line 3226 of file industry_cmd.cpp.
References Industry::accepted, and Industry::produced.
Referenced by AfterLoadGame().
|
static |
Monthly update of industry statistics.
i | Industry to update. |
Definition at line 2501 of file industry_cmd.cpp.
References Industry::accepted, IsValidCargoType(), Industry::last_prod_year, Industry::produced, RotateHistory(), UpdateValidHistory(), Industry::valid_history, and TimerGameEconomy::year.
|
static |
Compute who can service the industry.
Here, 'can service' means that they have trains and stations close enough to the industry with the right cargo type and the right orders (ie has the technical means).
ind | Industry being investigated. |
Definition at line 2726 of file industry_cmd.cpp.
References _local_company, CanCargoServiceIndustry(), Vehicle::cargo_type, SpecializedStation< Station, false >::Get(), Vehicle::IsFrontEngine(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::Iterate(), SpecializedVehicle< T, Type >::Next(), OUFB_TRANSFER, OUFB_UNLOAD, Vehicle::owner, Industry::stations_near, BaseVehicle::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by ChangeIndustryProduction(), CmdIndustrySetProduction(), and ReportNewsProductionChangeIndustry().
|
static |
Check functions for different types of industry.
Definition at line 1408 of file industry_cmd.cpp.
Referenced by CreateNewIndustryHelper().
|
static |
Every economy day handler for the industry changes Taking the original map size of 256*256, the number of random changes was always of just one unit.
But it cannot be the same on smaller or bigger maps. That number has to be scaled up or down. For small maps, it implies that less than one change per month is required, while on bigger maps, it would be way more. The daily loop handles those changes.
|
extern |
Definition at line 61 of file industry_gui.cpp.
IndustryBuildData _industry_builder |
In-game manager of industries.
Definition at line 72 of file industry_cmd.cpp.
Referenced by AfterLoadGame(), GenerateIndustries(), ITBLChunkHandler::Load(), and ITBLChunkHandler::Save().
|
static |
Definition at line 320 of file industry_cmd.cpp.
|
static |
Definition at line 65 of file industry_cmd.cpp.
|
static |
Definition at line 66 of file industry_cmd.cpp.
IndustrySpec _industry_specs[NUM_INDUSTRYTYPES] |
Definition at line 70 of file industry_cmd.cpp.
IndustryTileSpec _industry_tile_specs[NUM_INDUSTRYTILES] |
Definition at line 71 of file industry_cmd.cpp.
|
static |
Definition at line 997 of file industry_cmd.cpp.
|
extern |
Definition at line 57 of file landscape.cpp.
|
static |
Definition at line 2798 of file industry_cmd.cpp.
|
static |
Definition at line 2799 of file industry_cmd.cpp.