newgrf_industries.cpp File Reference

Handling of NewGRF industries. More...

#include "stdafx.h"
#include "debug.h"
#include "strings_type.h"
#include "industry.h"
#include "newgrf.h"
#include "newgrf_industries.h"
#include "newgrf_commons.h"
#include "newgrf_text.h"
#include "newgrf_town.h"
#include "window_func.h"
#include "town.h"
#include "company_base.h"
#include "command_func.h"
#include "gui.h"
#include "strings_func.h"
#include "table/strings.h"

Go to the source code of this file.

Functions

IndustryOverrideManager _industry_mngr (NEW_INDUSTRYOFFSET, NUM_INDUSTRYTYPES, INVALID_INDUSTRYTYPE)
IndustryTileOverrideManager _industile_mngr (NEW_INDUSTRYTILEOFFSET, NUM_INDUSTRYTILES, INVALID_INDUSTRYTILE)
IndustryType MapNewGRFIndustryType (IndustryType grf_type, uint32 grf_id)
uint32 GetIndustryIDAtOffset (TileIndex tile, const Industry *i)
 Make an analysis of a tile and check for its belonging to the same industry, and/or the same grf file.
static uint32 GetClosestIndustry (TileIndex tile, IndustryType type, const Industry *current)
static uint32 GetCountAndDistanceOfClosestInstance (byte param_setID, byte layout_filter, const Industry *current)
 Implementation of both var 67 and 68 since the mechanism is almost the same, it is easier to regroup them on the same function.
uint32 IndustryGetVariable (const ResolverObject *object, byte variable, byte parameter, bool *available)
 This function implements the industries variables that newGRF defines.
static const SpriteGroup * IndustryResolveReal (const ResolverObject *object, const RealSpriteGroup *group)
static uint32 IndustryGetRandomBits (const ResolverObject *object)
static uint32 IndustryGetTriggers (const ResolverObject *object)
static void IndustrySetTriggers (const ResolverObject *object, int triggers)
static void NewIndustryResolver (ResolverObject *res, TileIndex tile, Industry *indus, IndustryType type)
uint16 GetIndustryCallback (CallbackID callback, uint32 param1, uint32 param2, Industry *industry, IndustryType type, TileIndex tile)
uint32 IndustryLocationGetVariable (const ResolverObject *object, byte variable, byte parameter, bool *available)
bool CheckIfCallBackAllowsCreation (TileIndex tile, IndustryType type, uint itspec_index, uint32 seed)
bool CheckIfCallBackAllowsAvailability (IndustryType type, IndustryAvailabilityCallType creation_type)
static int32 DerefIndProd (int field, bool use_register)
void IndustryProductionCallback (Industry *ind, int reason)
 Get the industry production callback and apply it to the industry.

Variables

static uint32 _industry_creation_random_bits


Detailed Description

Handling of NewGRF industries.

Definition in file newgrf_industries.cpp.


Function Documentation

static uint32 GetCountAndDistanceOfClosestInstance ( byte  param_setID,
byte  layout_filter,
const Industry current 
) [static]

Implementation of both var 67 and 68 since the mechanism is almost the same, it is easier to regroup them on the same function.

Parameters:
param_setID parameter given to the callback, which is the set id, or the local id, in our terminology
layout_filter on what layout do we filter?
current Industry for which the inquiry is made
Returns:
the formatted answer to the callback : rr(reserved) cc(count) dddd(manhattan distance of closest sister)

< Get the GRFID of the definition to look for in register 100h

Definition at line 109 of file newgrf_industries.cpp.

References DistanceManhattan(), GB(), GetIndustrySpec(), GetIndustryTypeCount(), GetRegister(), IndustrySpec::grf_prop, GRFFileProps::grffile, GRFFile::grfid, Industry::location, min(), Industry::selected_layout, SetBit(), TileArea::tile, and Industry::type.

Referenced by IndustryGetVariable().

uint32 GetIndustryIDAtOffset ( TileIndex  tile,
const Industry i 
)

Make an analysis of a tile and check for its belonging to the same industry, and/or the same grf file.

Parameters:
tile TileIndex of the tile to query
i Industry to which to compare the tile to
Returns:
value encoded as per NFO specs

Definition at line 51 of file newgrf_industries.cpp.

References GetCleanIndustryGfx(), GetIndustryIndex(), GetIndustrySpec(), GetIndustryTileSpec(), IndustrySpec::grf_prop, IndustryTileSpec::grf_prop, GRFFileProps::grffile, GRFFile::grfid, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_INDUSTRYTILE, IsTileType(), GRFFileProps::local_id, MP_INDUSTRY, NEW_INDUSTRYOFFSET, GRFFileProps::override, GRFFileProps::spritegroup, GRFFileProps::subst_id, and Industry::type.

Referenced by IndustryGetVariable().

uint32 IndustryGetVariable ( const ResolverObject *  object,
byte  variable,
byte  parameter,
bool *  available 
)

This function implements the industries variables that newGRF defines.

Parameters:
object the object that we want to query
variable that is queried
parameter unused
available will return false if ever the variable asked for does not exist
Returns:
the value stored in the corresponding variable

Definition at line 158 of file newgrf_industries.cpp.

References Industry::accepts_cargo, IndustrySpec::behaviour, IndustrySpec::callback_mask, CBM_IND_PRODUCTION_256_TICKS, CBM_IND_PRODUCTION_CARGO_ARRIVAL, Clamp(), Industry::construction_date, Industry::construction_type, Industry::counter, DAYS_TILL_ORIGINAL_BASE_YEAR, DistanceManhattan(), DistanceSquare(), Industry::founder, GB(), Industry::GetByTile(), GetClosestWaterDistance(), GetCountAndDistanceOfClosestInstance(), GetIndustryAnimationState(), GetIndustryIDAtOffset(), GetIndustryRandomBits(), GetIndustrySpec(), GetNearbyIndustryTileInformation(), GetRegister(), GetTownRadiusGroup(), IndustrySpec::grf_prop, GRFFileProps::grffile, GRFFile::grfid, TileArea::h, HasBit(), Industry::incoming_cargo_waiting, INDUSTRYBEH_BUILT_ONWATER, INDUSTRYBEH_PROD_MULTI_HNDLING, INVALID_INDUSTRYTILE, INVALID_TILE, IsTileType(), Industry::last_cargo_accepted_at, Industry::last_month_pct_transported, Industry::last_month_production, Industry::last_month_transported, Industry::last_prod_year, Industry::location, min(), MP_INDUSTRY, ORIGINAL_BASE_YEAR, Industry::prod_level, Industry::produced_cargo, Industry::produced_cargo_waiting, Industry::production_rate, Industry::psa, Industry::random_colour, Industry::selected_layout, Industry::this_month_production, Industry::this_month_transported, TileArea::tile, Industry::town, TownGetVariable(), Industry::type, TileArea::w, and Industry::was_cargo_delivered.

void IndustryProductionCallback ( Industry ind,
int  reason 
)


Generated on Tue Jan 5 21:03:04 2010 for OpenTTD by  doxygen 1.5.6