12 #include "../newgrf_house.h" 13 #include "../newgrf_engine.h" 14 #include "../newgrf_roadtype.h" 17 #define NIP(prop, base, variable, type, name) { name, (ptrdiff_t)cpp_offsetof(base, variable), cpp_sizeof(base, variable), prop, type } 18 #define NIP_END() { nullptr, 0, 0, 0, 0 } 21 #define NIC(cb_id, base, variable, bit) { #cb_id, (ptrdiff_t)cpp_offsetof(base, variable), cpp_sizeof(base, variable), bit, cb_id } 22 #define NIC_END() { nullptr, 0, 0, 0, 0 } 25 #define NIV(var, name) { name, var } 26 #define NIV_END() { nullptr, 0 } 31 #define NICV(cb_id, bit) NIC(cb_id, Engine, info.callback_mask, bit) 52 NIV(0x40,
"position in consist and length"),
53 NIV(0x41,
"position and length of chain of same vehicles"),
54 NIV(0x42,
"transported cargo types"),
55 NIV(0x43,
"player info"),
56 NIV(0x44,
"aircraft info"),
57 NIV(0x45,
"curvature info"),
58 NIV(0x46,
"motion counter"),
59 NIV(0x47,
"vehicle cargo info"),
60 NIV(0x48,
"vehicle type info"),
61 NIV(0x49,
"year of construction"),
62 NIV(0x4A,
"current rail/road type info"),
63 NIV(0x4B,
"long date of last service"),
64 NIV(0x4C,
"current max speed"),
65 NIV(0x4D,
"position in articulated vehicle"),
66 NIV(0x60,
"count vehicle id occurrences"),
68 NIV(0x62,
"Curvature/position difference to other vehicle"),
80 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 98 #define NICS(cb_id, bit) NIC(cb_id, StationSpec, callback_mask, bit) 111 NIV(0x40,
"platform info and relative position"),
112 NIV(0x41,
"platform info and relative position for individually built sections"),
113 NIV(0x42,
"terrain and track type"),
114 NIV(0x43,
"player info"),
115 NIV(0x44,
"path signalling info"),
116 NIV(0x45,
"rail continuation info"),
117 NIV(0x46,
"platform info and relative position from middle"),
118 NIV(0x47,
"platform info and relative position from middle for individually built sections"),
119 NIV(0x48,
"bitmask of accepted cargoes"),
120 NIV(0x49,
"platform info and relative position of same-direction section"),
121 NIV(0x4A,
"current animation frame"),
122 NIV(0x60,
"amount of cargo waiting"),
123 NIV(0x61,
"time since last cargo pickup"),
124 NIV(0x62,
"rating of cargo"),
125 NIV(0x63,
"time spent on route"),
126 NIV(0x64,
"information about last vehicle picking cargo up"),
127 NIV(0x65,
"amount of cargo acceptance"),
128 NIV(0x66,
"animation frame of nearby tile"),
129 NIV(0x67,
"land info of nearby tiles"),
130 NIV(0x68,
"station info of nearby tiles"),
131 NIV(0x69,
"information about cargo accepted in the past"),
136 bool IsInspectable(uint index)
const override {
return GetStationSpec(index) !=
nullptr; }
138 const void *
GetInstance(uint index)
const override {
return nullptr; }
139 const void *
GetSpec(uint index)
const override {
return GetStationSpec(index); }
143 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 160 #define NICH(cb_id, bit) NIC(cb_id, HouseSpec, callback_mask, bit) 181 NIV(0x40,
"construction state of tile and pseudo-random value"),
182 NIV(0x41,
"age of building in years"),
183 NIV(0x42,
"town zone"),
184 NIV(0x43,
"terrain type"),
185 NIV(0x44,
"building counts"),
186 NIV(0x45,
"town expansion bits"),
187 NIV(0x46,
"current animation frame"),
188 NIV(0x47,
"xy coordinate of the building"),
189 NIV(0x60,
"other building counts (old house type)"),
190 NIV(0x61,
"other building counts (new house type)"),
191 NIV(0x62,
"land info of nearby tiles"),
192 NIV(0x63,
"current animation frame of nearby house tile"),
193 NIV(0x64,
"cargo acceptance history of nearby stations"),
194 NIV(0x65,
"distance of nearest house matching a given criterion"),
195 NIV(0x66,
"class and ID of nearby house tile"),
196 NIV(0x67,
"GRFID of nearby house tile"),
203 const void *
GetInstance(uint index)
const override {
return nullptr; }
208 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 225 #define NICIT(cb_id, bit) NIC(cb_id, IndustryTileSpec, callback_mask, bit) 226 static const NICallback _nic_industrytiles[] = {
238 static const NIVariable _niv_industrytiles[] = {
239 NIV(0x40,
"construction state of tile"),
240 NIV(0x41,
"ground type"),
241 NIV(0x42,
"current town zone in nearest town"),
242 NIV(0x43,
"relative position"),
243 NIV(0x44,
"animation frame"),
244 NIV(0x60,
"land info of nearby tiles"),
245 NIV(0x61,
"animation stage of nearby tiles"),
246 NIV(0x62,
"get industry or airport tile ID at offset"),
253 const void *
GetInstance(uint index)
const override {
return nullptr; }
258 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 265 static const NIFeature _nif_industrytile = {
311 #define NICI(cb_id, bit) NIC(cb_id, IndustrySpec, callback_mask, bit) 330 NIV(0x40,
"waiting cargo 0"),
331 NIV(0x41,
"waiting cargo 1"),
332 NIV(0x42,
"waiting cargo 2"),
333 NIV(0x43,
"distance to closest dry/land tile"),
334 NIV(0x44,
"layout number"),
335 NIV(0x45,
"player info"),
336 NIV(0x46,
"industry construction date"),
337 NIV(0x60,
"get industry tile ID at offset"),
338 NIV(0x61,
"get random tile bits at offset"),
339 NIV(0x62,
"land info of nearby tiles"),
340 NIV(0x63,
"animation stage of nearby tiles"),
341 NIV(0x64,
"distance on nearest industry with given type"),
342 NIV(0x65,
"get town zone and Manhattan distance of closest town"),
343 NIV(0x66,
"get square of Euclidean distance of closes town"),
344 NIV(0x67,
"count of industry and distance of closest instance"),
345 NIV(0x68,
"count of industry and distance of closest instance with layout filter"),
357 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 369 if (i->
psa ==
nullptr)
return nullptr;
384 #define NICO(cb_id, bit) NIC(cb_id, ObjectSpec, callback_mask, bit) 397 NIV(0x40,
"relative position"),
398 NIV(0x41,
"tile information"),
399 NIV(0x42,
"construction date"),
400 NIV(0x43,
"animation counter"),
401 NIV(0x44,
"object founder"),
402 NIV(0x45,
"get town zone and Manhattan distance of closest town"),
403 NIV(0x46,
"get square of Euclidean distance of closes town"),
406 NIV(0x60,
"get object ID at offset"),
407 NIV(0x61,
"get random tile bits at offset"),
408 NIV(0x62,
"land info of nearby tiles"),
409 NIV(0x63,
"animation stage of nearby tiles"),
410 NIV(0x64,
"distance on nearest object with given type"),
422 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 440 NIV(0x40,
"terrain type"),
441 NIV(0x41,
"enhanced tunnels"),
442 NIV(0x42,
"level crossing status"),
443 NIV(0x43,
"construction date"),
444 NIV(0x44,
"town zone"),
450 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
451 const void *
GetInstance(uint index)
const override {
return nullptr; }
452 const void *
GetSpec(uint index)
const override {
return nullptr; }
454 uint32
GetGRFID(uint index)
const override {
return 0; }
456 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 475 #define NICAT(cb_id, bit) NIC(cb_id, AirportTileSpec, callback_mask, bit) 476 static const NICallback _nic_airporttiles[] = {
487 const void *
GetInstance(uint index)
const override {
return nullptr; }
492 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 499 static const NIFeature _nif_airporttile = {
510 NIV(0x40,
"larger town effect on this town"),
511 NIV(0x41,
"town index"),
512 NIV(0x82,
"population"),
513 NIV(0x94,
"zone radius 0"),
514 NIV(0x96,
"zone radius 1"),
515 NIV(0x98,
"zone radius 2"),
516 NIV(0x9A,
"zone radius 3"),
517 NIV(0x9C,
"zone radius 4"),
518 NIV(0xB6,
"number of buildings"),
524 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
526 const void *
GetSpec(uint index)
const override {
return nullptr; }
528 uint32
GetGRFID(uint index)
const override {
return 0; }
532 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 542 std::list<PersistentStorage *>::iterator iter;
543 for (iter = t->psa_list.begin(); iter != t->psa_list.end(); iter++) {
544 if ((*iter)->grfid == grfid)
return (int32 *)(&(*iter)->storage[0]);
561 NIV(0x40,
"terrain type"),
562 NIV(0x41,
"enhanced tunnels"),
563 NIV(0x42,
"level crossing status"),
564 NIV(0x43,
"construction date"),
565 NIV(0x44,
"town zone"),
571 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
572 const void *
GetInstance(uint index)
const override {
return nullptr; }
573 const void *
GetSpec(uint index)
const override {
return nullptr; }
575 uint32
GetGRFID(uint index)
const override {
return 0; }
577 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override Resolver of town properties.
customize the cargoes the industry produces
initialise production level on construction
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Called to determine if the given industry can be built on specific area.
Use callback to select a sprite layout to use.
Resolver object for rail types.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
decides next animation frame
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Called to determine airport tile next animation frame.
const void * GetInstance(uint index) const override
Get the instance given an index.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Called to determine more text in the fund object window.
static Titem * Get(size_t index)
Returns Titem with given index.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0)
Get a resolver for the scope.
static const AirportTileSpec * GetByTile(TileIndex tile)
Retrieve airport tile spec for the given airport tile.
Called to determine if one can alter the ground below a house tile.
const void * GetInstance(uint index) const override
Get the instance given an index.
Called to determine if the given industry tile can be built on specific tile.
void SetSimpleStringParameters(StringID string, uint32 index) const
Helper to make setting the strings easier.
Customize the input cargo types of a newly build industry.
static IndustryGfx GetIndustryGfx(TileIndex t)
Get the industry graphics ID for the given industry tile.
GRFFilePropsBase< 2 > grf_prop
Properties related the the grf file.
Builds articulated engines for trains and RVs.
Representation on the NewGRF variables.
Called periodically to determine if a house should be destroyed.
Called to indicate how long the current animation frame should last.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Return the vehicles this given vehicle can be "upgraded" to.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Called monthly on production changes, so it can be adjusted more frequently.
Called for periodically starting or stopping the animation.
additional text in fund window
Called when the company (or AI) tries to start or stop a vehicle.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Defines the internal data of a functional industry.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
static uint GetInspectWindowNumber(GrfSpecFeature feature, uint index)
Get the window number for the inspect window given a feature and index.
Tindex index
Index of this pool item.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
static StationGfx GetAirportGfx(TileIndex t)
Get the station graphics of this airport tile.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Determine the next animation frame for a house.
Cargo capacity after refit.
check industry construction on given area
change animation when construction state changes
Resolver object to be used for houses (feature 07 spritegroups).
Determine whether a wagon can be attached to an already existing train.
Called to determine whether a town building can be destroyed.
Called to determine which cargoes a town building should accept.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Visual effects and wagon power.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
const void * GetInstance(uint index) const override
Get the instance given an index.
Called to indicate how long the current animation frame should last.
GrfSpecFeature GetGrfSpecFeature(TileIndex tile)
Get the GrfSpecFeature associated with the tile.
Determine the cargo "suffixes" for each refit possibility of a cargo.
Callback done for each tile of an object to check the slope.
Vehicle uses custom sound effects.
Use a custom next frame callback.
Determine whether a newstation should be made available to build.
decides amount of cargo acceptance
const void * GetInstance(uint index) const override
Get the instance given an index.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Called to determine more text in the fund industry window.
Representation of the available callbacks with information on when they actually apply.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Called to determine the type (if any) of foundation to draw for house tile.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Callback done for each tile of a station to check the slope.
decides allowance of autosloping
Called to determine the colour of a town building.
const void * GetInstance(uint index) const override
Get the instance given an index.
Fake town GrfSpecFeature for NewGRF debugging (parent scope)
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
static const NIFeature *const _nifeatures[]
Table with all NIFeatures.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
This callback is called from vehicle purchase lists.
Resolver for industry tiles.
Called on the Get Tile Description for an house tile.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Customize the output cargo types of a newly build industry.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Called when a cargo type specified in property 20 is accepted.
decides if default foundations need to be drawn
Called to indicate how long the current animation frame should last.
PersistentStorage * psa
Persistent storage for NewGRF industries.
Customize the animation speed of the station.
Called to play a special sound effect.
Called to determine if the given industry type is available.
Resolver for tiles of an airport.
controls random production change
decides next animation frame
static TownID GetTownIndex(TileIndex t)
Get the index of which town this house/street is attached to.
bool PSAWithParameter() const override
Used to decide if the PSA needs a parameter or not.
const void * GetInstance(uint index) const override
Get the instance given an index.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
decides if default foundations need to be drawn
Called to modify various vehicle properties.
Called to determine if industry can alter the ground below industry tile.
Called to determine the type (if any) of foundation to draw for industry tile.
Resolver for a vehicle (chain)
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
GRFFilePropsBase< NUM_CARGO+3 > grf_prop
Properties related the the grf file.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
trigger destruction of building
const IndustrySpec * GetIndustrySpec(IndustryType thistype)
Accessor for array _industry_specs.
const int32 * GetPSAFirstPosition(uint index, uint32 grfid) const override
Gets the first position of the array containing the persistent storage.
Show suffix after cargo name.
Called to indicate how long the current animation frame should last.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
IndustryType type
type of industry.
Vehicle length (trains and road vehicles)
decide the colour of the building
Called for periodically starting or stopping the animation.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
decides amount of cargo acceptance
void SetObjectAtStringParameters(StringID string, uint32 index, TileIndex tile) const
Helper to make setting the strings easier for objects at a specific tile.
TileArea location
Location of the industry.
TYPE storage[SIZE]
Memory to for the storage array.
additional text in industry window
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
End of the fake features.
Change colour mapping of vehicle.
Class for pooled persistent storage of data.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
decides allowance of autosloping
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
GRFFileProps grf_prop
properties related to the grf file
decides next animation frame
static const AirportTileSpec * Get(StationGfx gfx)
Retrieve airport tile spec for the given airport tile.
customize the cargoes the industry requires
additional text in fund window
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
const IndustryTileSpec * GetIndustryTileSpec(IndustryGfx gfx)
Accessor for array _industry_tile_specs.
Called when building a station to customize the tile layout.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Called to determine if a specific colour map should be used for a vehicle instead of the default live...
#define lengthof(x)
Return the length of an fixed size array.
periodically start/stop the animation
GRFFileProps grf_prop
properties related to the grf file
const void * GetInstance(uint index) const override
Get the instance given an index.
decide the colour of the building
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Called to determine if the industry can still accept or refuse more cargo arrival.
Add articulated engines (trains and road vehicles)
Called whenever the construction state of a house changes.
decides slope suitability
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Called to determine the colour of an industry.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
industry availability/probability callback
controls monthly random production change
virtual uint32 GetVariable(byte variable, uint32 parameter, bool *available) const
Get a variable value.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Called to determine which cargoes an industry should accept.
Determine whether the house can be built on the specified tile.
TileIndex tile
The base tile of the area.
static const int CBM_NO_BIT
Mask to show no bit needs to be enabled for the callback.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
const void * GetInstance(uint index) const override
Get the instance given an index.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Called for every vehicle every 32 days (not all on same date though).
Called to determine the type (if any) of foundation to draw for an airport tile.
static StationID GetStationIndex(TileIndex t)
Get StationID from a tile.
Determine the amount of cargo to load per unit of time when using gradual loading.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Refit capacity, the passed vehicle needs to have its ->cargo_type set to the cargo we are refitting t...
#define cpp_lengthof(base, variable)
Gets the length of an array variable within a class.
Called to determine industry tile next animation frame.
option out of accepting cargo
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
static HouseID GetHouseType(TileIndex t)
Get the type of this house, which is an index into the house spec array.
Called for periodically starting or stopping the animation.
static IndustryID GetIndustryIndex(TileIndex t)
Get the industry ID of the given tile.
Helper class to wrap some functionality/queries in.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
decides next animation frame
Availability of station in construction window.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Called to determine station tile next animation frame.
uint GetPSASize(uint index, uint32 grfid) const override
Allows to know the size of the persistent storage.
VehicleType type
Type of vehicle.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Called to query the cargo acceptance of the industry tile.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
static Station * GetByTile(TileIndex tile)
Get the station belonging to a specific tile.
Called to indicate how long the current animation frame should last.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Resolver object for road types.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
static bool IsValidID(size_t index)
Tests whether given index can be used to get valid (non-nullptr) Titem.
decides if default foundations need to be drawn
static Object * GetByTile(TileIndex tile)
Get the object associated with a tile.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
Called to determine text to display after cargo name.
A resolver object to be used with feature 0F spritegroups.
GRFFileProps grf_prop
Properties related the the grf file.
EngineID engine_type
The type of engine used for this vehicle.
const struct GRFFile * grffile
grf file that introduced this entity
Representation of the data from a NewGRF property.
Called for periodically starting or stopping the animation.
decides allowance of autosloping
Called to determine the colour of a town building.
Choose a sprite layout to draw, instead of the standard 0-7 range.
static const ObjectSpec * GetByTile(TileIndex tile)
Get the specification associated with a tile.
Called to determine more text in the industry window.
static Industry * GetByTile(TileIndex tile)
Get the industry of the given tile.
Check slope of new station tiles.
Determine the next animation frame for a house.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Called to determine if one can alter the ground below an object tile.
Called to determine how much cargo a town building produces.
const void * GetInstance(uint index) const override
Get the instance given an index.
Vehicle length, returns the amount of 1/8's the vehicle is shorter for trains and RVs...
decide whether the house can be built on a given tile
Called to decide how much cargo a town building can accept.
const int32 * GetPSAFirstPosition(uint index, uint32 grfid) const override
Gets the first position of the array containing the persistent storage.
Called to determine industry special effects.
Called when industry is built to set initial production level.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
GRFFileProps grf_prop
properties related the the grf file
Container for all information for a given feature.
uint GetPSASize(uint index, uint32 grfid) const override
Allows to know the size of the persistent storage.
const void * GetInstance(uint index) const override
Get the instance given an index.
Called on production changes, so it can be adjusted.
Visual effects and wagon power (trains, road vehicles and ships)
Called for periodically starting or stopping the animation.
give a custom colour to newly build industries
decides slope suitability
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Resolve wagon overrides using TrainCache::cached_override.