10 #include "../newgrf_house.h" 11 #include "../newgrf_engine.h" 12 #include "../newgrf_roadtype.h" 15 #define NIP(prop, base, variable, type, name) { name, (ptrdiff_t)cpp_offsetof(base, variable), cpp_sizeof(base, variable), prop, type } 16 #define NIP_END() { nullptr, 0, 0, 0, 0 } 19 #define NIC(cb_id, base, variable, bit) { #cb_id, (ptrdiff_t)cpp_offsetof(base, variable), cpp_sizeof(base, variable), bit, cb_id } 20 #define NIC_END() { nullptr, 0, 0, 0, 0 } 23 #define NIV(var, name) { name, var } 24 #define NIV_END() { nullptr, 0 } 29 #define NICV(cb_id, bit) NIC(cb_id, Engine, info.callback_mask, bit) 50 NIV(0x40,
"position in consist and length"),
51 NIV(0x41,
"position and length of chain of same vehicles"),
52 NIV(0x42,
"transported cargo types"),
53 NIV(0x43,
"player info"),
54 NIV(0x44,
"aircraft info"),
55 NIV(0x45,
"curvature info"),
56 NIV(0x46,
"motion counter"),
57 NIV(0x47,
"vehicle cargo info"),
58 NIV(0x48,
"vehicle type info"),
59 NIV(0x49,
"year of construction"),
60 NIV(0x4A,
"current rail/road type info"),
61 NIV(0x4B,
"long date of last service"),
62 NIV(0x4C,
"current max speed"),
63 NIV(0x4D,
"position in articulated vehicle"),
64 NIV(0x60,
"count vehicle id occurrences"),
66 NIV(0x62,
"Curvature/position difference to other vehicle"),
78 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 96 #define NICS(cb_id, bit) NIC(cb_id, StationSpec, callback_mask, bit) 109 NIV(0x40,
"platform info and relative position"),
110 NIV(0x41,
"platform info and relative position for individually built sections"),
111 NIV(0x42,
"terrain and track type"),
112 NIV(0x43,
"player info"),
113 NIV(0x44,
"path signalling info"),
114 NIV(0x45,
"rail continuation info"),
115 NIV(0x46,
"platform info and relative position from middle"),
116 NIV(0x47,
"platform info and relative position from middle for individually built sections"),
117 NIV(0x48,
"bitmask of accepted cargoes"),
118 NIV(0x49,
"platform info and relative position of same-direction section"),
119 NIV(0x4A,
"current animation frame"),
120 NIV(0x60,
"amount of cargo waiting"),
121 NIV(0x61,
"time since last cargo pickup"),
122 NIV(0x62,
"rating of cargo"),
123 NIV(0x63,
"time spent on route"),
124 NIV(0x64,
"information about last vehicle picking cargo up"),
125 NIV(0x65,
"amount of cargo acceptance"),
126 NIV(0x66,
"animation frame of nearby tile"),
127 NIV(0x67,
"land info of nearby tiles"),
128 NIV(0x68,
"station info of nearby tiles"),
129 NIV(0x69,
"information about cargo accepted in the past"),
134 bool IsInspectable(uint index)
const override {
return GetStationSpec(index) !=
nullptr; }
136 const void *
GetInstance(uint index)
const override {
return nullptr; }
137 const void *
GetSpec(uint index)
const override {
return GetStationSpec(index); }
141 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 158 #define NICH(cb_id, bit) NIC(cb_id, HouseSpec, callback_mask, bit) 179 NIV(0x40,
"construction state of tile and pseudo-random value"),
180 NIV(0x41,
"age of building in years"),
181 NIV(0x42,
"town zone"),
182 NIV(0x43,
"terrain type"),
183 NIV(0x44,
"building counts"),
184 NIV(0x45,
"town expansion bits"),
185 NIV(0x46,
"current animation frame"),
186 NIV(0x47,
"xy coordinate of the building"),
187 NIV(0x60,
"other building counts (old house type)"),
188 NIV(0x61,
"other building counts (new house type)"),
189 NIV(0x62,
"land info of nearby tiles"),
190 NIV(0x63,
"current animation frame of nearby house tile"),
191 NIV(0x64,
"cargo acceptance history of nearby stations"),
192 NIV(0x65,
"distance of nearest house matching a given criterion"),
193 NIV(0x66,
"class and ID of nearby house tile"),
194 NIV(0x67,
"GRFID of nearby house tile"),
201 const void *
GetInstance(uint index)
const override {
return nullptr; }
206 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 223 #define NICIT(cb_id, bit) NIC(cb_id, IndustryTileSpec, callback_mask, bit) 224 static const NICallback _nic_industrytiles[] = {
236 static const NIVariable _niv_industrytiles[] = {
237 NIV(0x40,
"construction state of tile"),
238 NIV(0x41,
"ground type"),
239 NIV(0x42,
"current town zone in nearest town"),
240 NIV(0x43,
"relative position"),
241 NIV(0x44,
"animation frame"),
242 NIV(0x60,
"land info of nearby tiles"),
243 NIV(0x61,
"animation stage of nearby tiles"),
244 NIV(0x62,
"get industry or airport tile ID at offset"),
251 const void *
GetInstance(uint index)
const override {
return nullptr; }
256 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 263 static const NIFeature _nif_industrytile = {
309 #define NICI(cb_id, bit) NIC(cb_id, IndustrySpec, callback_mask, bit) 328 NIV(0x40,
"waiting cargo 0"),
329 NIV(0x41,
"waiting cargo 1"),
330 NIV(0x42,
"waiting cargo 2"),
331 NIV(0x43,
"distance to closest dry/land tile"),
332 NIV(0x44,
"layout number"),
333 NIV(0x45,
"player info"),
334 NIV(0x46,
"industry construction date"),
335 NIV(0x60,
"get industry tile ID at offset"),
336 NIV(0x61,
"get random tile bits at offset"),
337 NIV(0x62,
"land info of nearby tiles"),
338 NIV(0x63,
"animation stage of nearby tiles"),
339 NIV(0x64,
"distance on nearest industry with given type"),
340 NIV(0x65,
"get town zone and Manhattan distance of closest town"),
341 NIV(0x66,
"get square of Euclidean distance of closes town"),
342 NIV(0x67,
"count of industry and distance of closest instance"),
343 NIV(0x68,
"count of industry and distance of closest instance with layout filter"),
355 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 367 if (i->
psa ==
nullptr)
return nullptr;
382 #define NICO(cb_id, bit) NIC(cb_id, ObjectSpec, callback_mask, bit) 395 NIV(0x40,
"relative position"),
396 NIV(0x41,
"tile information"),
397 NIV(0x42,
"construction date"),
398 NIV(0x43,
"animation counter"),
399 NIV(0x44,
"object founder"),
400 NIV(0x45,
"get town zone and Manhattan distance of closest town"),
401 NIV(0x46,
"get square of Euclidean distance of closes town"),
404 NIV(0x60,
"get object ID at offset"),
405 NIV(0x61,
"get random tile bits at offset"),
406 NIV(0x62,
"land info of nearby tiles"),
407 NIV(0x63,
"animation stage of nearby tiles"),
408 NIV(0x64,
"distance on nearest object with given type"),
420 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 438 NIV(0x40,
"terrain type"),
439 NIV(0x41,
"enhanced tunnels"),
440 NIV(0x42,
"level crossing status"),
441 NIV(0x43,
"construction date"),
442 NIV(0x44,
"town zone"),
448 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
449 const void *
GetInstance(uint index)
const override {
return nullptr; }
450 const void *
GetSpec(uint index)
const override {
return nullptr; }
452 uint32
GetGRFID(uint index)
const override {
return 0; }
454 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 473 #define NICAT(cb_id, bit) NIC(cb_id, AirportTileSpec, callback_mask, bit) 474 static const NICallback _nic_airporttiles[] = {
485 const void *
GetInstance(uint index)
const override {
return nullptr; }
490 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 497 static const NIFeature _nif_airporttile = {
508 NIV(0x40,
"larger town effect on this town"),
509 NIV(0x41,
"town index"),
510 NIV(0x82,
"population"),
511 NIV(0x94,
"zone radius 0"),
512 NIV(0x96,
"zone radius 1"),
513 NIV(0x98,
"zone radius 2"),
514 NIV(0x9A,
"zone radius 3"),
515 NIV(0x9C,
"zone radius 4"),
516 NIV(0xB6,
"number of buildings"),
522 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
524 const void *
GetSpec(uint index)
const override {
return nullptr; }
526 uint32
GetGRFID(uint index)
const override {
return 0; }
530 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override 540 std::list<PersistentStorage *>::iterator iter;
541 for (iter = t->psa_list.begin(); iter != t->psa_list.end(); iter++) {
542 if ((*iter)->grfid == grfid)
return (int32 *)(&(*iter)->storage[0]);
559 NIV(0x40,
"terrain type"),
560 NIV(0x41,
"enhanced tunnels"),
561 NIV(0x42,
"level crossing status"),
562 NIV(0x43,
"construction date"),
563 NIV(0x44,
"town zone"),
569 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
570 const void *
GetInstance(uint index)
const override {
return nullptr; }
571 const void *
GetSpec(uint index)
const override {
return nullptr; }
573 uint32
GetGRFID(uint index)
const override {
return 0; }
575 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.