OpenTTD Source
1.11.0-beta2
|
Go to the documentation of this file.
10 #include "../newgrf_house.h"
11 #include "../newgrf_engine.h"
12 #include "../newgrf_roadtype.h"
15 #define NIP(prop, base, variable, type, name) { name, [] (const void *b) -> const void * { return std::addressof(static_cast<const base *>(b)->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, [] (const void *b) -> const void * { return std::addressof(static_cast<const base *>(b)->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"),
67 NIV(0x63,
"tile compatibility wrt. track-type"),
79 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
97 #define NICS(cb_id, bit) NIC(cb_id, StationSpec, callback_mask, bit)
110 NIV(0x40,
"platform info and relative position"),
111 NIV(0x41,
"platform info and relative position for individually built sections"),
112 NIV(0x42,
"terrain and track type"),
113 NIV(0x43,
"player info"),
114 NIV(0x44,
"path signalling info"),
115 NIV(0x45,
"rail continuation info"),
116 NIV(0x46,
"platform info and relative position from middle"),
117 NIV(0x47,
"platform info and relative position from middle for individually built sections"),
118 NIV(0x48,
"bitmask of accepted cargoes"),
119 NIV(0x49,
"platform info and relative position of same-direction section"),
120 NIV(0x4A,
"current animation frame"),
121 NIV(0x60,
"amount of cargo waiting"),
122 NIV(0x61,
"time since last cargo pickup"),
123 NIV(0x62,
"rating of cargo"),
124 NIV(0x63,
"time spent on route"),
125 NIV(0x64,
"information about last vehicle picking cargo up"),
126 NIV(0x65,
"amount of cargo acceptance"),
127 NIV(0x66,
"animation frame of nearby tile"),
128 NIV(0x67,
"land info of nearby tiles"),
129 NIV(0x68,
"station info of nearby tiles"),
130 NIV(0x69,
"information about cargo accepted in the past"),
131 NIV(0x6A,
"GRFID of nearby station tiles"),
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"),
346 NIV(0x69,
"produced cargo waiting"),
347 NIV(0x6A,
"cargo produced this month"),
348 NIV(0x6B,
"cargo transported this month"),
349 NIV(0x6C,
"cargo produced last month"),
350 NIV(0x6D,
"cargo transported last month"),
351 NIV(0x6E,
"date since cargo was delivered"),
352 NIV(0x6F,
"waiting input cargo"),
353 NIV(0x70,
"production rate"),
354 NIV(0x71,
"percentage of cargo transported last month"),
366 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
378 if (i->
psa ==
nullptr)
return nullptr;
393 #define NICO(cb_id, bit) NIC(cb_id, ObjectSpec, callback_mask, bit)
406 NIV(0x40,
"relative position"),
407 NIV(0x41,
"tile information"),
408 NIV(0x42,
"construction date"),
409 NIV(0x43,
"animation counter"),
410 NIV(0x44,
"object founder"),
411 NIV(0x45,
"get town zone and Manhattan distance of closest town"),
412 NIV(0x46,
"get square of Euclidean distance of closes town"),
415 NIV(0x60,
"get object ID at offset"),
416 NIV(0x61,
"get random tile bits at offset"),
417 NIV(0x62,
"land info of nearby tiles"),
418 NIV(0x63,
"animation stage of nearby tiles"),
419 NIV(0x64,
"distance on nearest object with given type"),
431 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
449 NIV(0x40,
"terrain type"),
450 NIV(0x41,
"enhanced tunnels"),
451 NIV(0x42,
"level crossing status"),
452 NIV(0x43,
"construction date"),
453 NIV(0x44,
"town zone"),
459 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
460 const void *
GetInstance(uint index)
const override {
return nullptr; }
461 const void *
GetSpec(uint index)
const override {
return nullptr; }
463 uint32
GetGRFID(uint index)
const override {
return 0; }
465 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
484 #define NICAT(cb_id, bit) NIC(cb_id, AirportTileSpec, callback_mask, bit)
485 static const NICallback _nic_airporttiles[] = {
496 const void *
GetInstance(uint index)
const override {
return nullptr; }
501 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
508 static const NIFeature _nif_airporttile = {
519 NIV(0x40,
"larger town effect on this town"),
520 NIV(0x41,
"town index"),
521 NIV(0x82,
"population"),
522 NIV(0x94,
"zone radius 0"),
523 NIV(0x96,
"zone radius 1"),
524 NIV(0x98,
"zone radius 2"),
525 NIV(0x9A,
"zone radius 3"),
526 NIV(0x9C,
"zone radius 4"),
527 NIV(0xB6,
"number of buildings"),
533 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
535 const void *
GetSpec(uint index)
const override {
return nullptr; }
537 uint32
GetGRFID(uint index)
const override {
return 0; }
541 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
551 std::list<PersistentStorage *>::iterator iter;
552 for (iter = t->psa_list.begin(); iter != t->psa_list.end(); iter++) {
553 if ((*iter)->grfid == grfid)
return (int32 *)(&(*iter)->storage[0]);
570 NIV(0x40,
"terrain type"),
571 NIV(0x41,
"enhanced tunnels"),
572 NIV(0x42,
"level crossing status"),
573 NIV(0x43,
"construction date"),
574 NIV(0x44,
"town zone"),
580 uint
GetParent(uint index)
const override {
return UINT32_MAX; }
581 const void *
GetInstance(uint index)
const override {
return nullptr; }
582 const void *
GetSpec(uint index)
const override {
return nullptr; }
584 uint32
GetGRFID(uint index)
const override {
return 0; }
586 uint
Resolve(uint index, uint var, uint param,
bool *avail)
const override
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
A resolver object to be used with feature 0F spritegroups.
@ CBID_OBJECT_COLOUR
Called to determine the colour of a town building.
@ WO_CACHED
Resolve wagon overrides using TrainCache::cached_override.
@ CBM_OBJ_ANIMATION_SPEED
decides animation speed
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
const int32 * GetPSAFirstPosition(uint index, uint32 grfid) const override
Gets the first position of the array containing the persistent storage.
const void * GetInstance(uint index) const override
Get the instance given an index.
@ CBM_IND_CARGO_SUFFIX
cargo sub-type display
static Titem * Get(size_t index)
Returns Titem with given index.
@ CBM_AIRT_ANIM_NEXT_FRAME
decides next animation frame
@ CBID_OBJECT_LAND_SLOPE_CHECK
Callback done for each tile of an object to check the slope.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBID_OBJECT_ANIMATION_NEXT_FRAME
Determine the next animation frame for a house.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
static IndustryGfx GetIndustryGfx(TileIndex t)
Get the industry graphics ID for the given industry tile.
@ CBM_HOUSE_CARGO_ACCEPTANCE
decides amount of cargo acceptance
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
@ CBID_VEHICLE_START_STOP_CHECK
Called when the company (or AI) tries to start or stop a vehicle.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
GRFFilePropsBase< 2 > grf_prop
Properties related the the grf file.
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.
static const int CBM_NO_BIT
Mask to show no bit needs to be enabled for the callback.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
@ CBID_VEHICLE_VISUAL_EFFECT
Visual effects and wagon power.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBID_VEHICLE_ARTIC_ENGINE
Builds articulated engines for trains and RVs.
@ CBID_HOUSE_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
@ CBID_VEHICLE_CARGO_SUFFIX
Determine the cargo "suffixes" for each refit possibility of a cargo.
@ CBM_OBJ_ANIMATION_NEXT_FRAME
decides next animation frame
@ CBID_INDUSTRY_PRODUCTION_CHANGE
Called on production changes, so it can be adjusted.
@ CBID_STATION_AVAILABILITY
Determine whether a newstation should be made available to build.
@ CBID_VEHICLE_MODIFY_PROPERTY
Called to modify various vehicle properties.
@ CBID_INDTILE_CARGO_ACCEPTANCE
Called to query the cargo acceptance of the industry tile.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Representation of the available callbacks with information on when they actually apply.
@ CBM_INDT_SHAPE_CHECK
decides slope suitability
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Tindex index
Index of this pool item.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
static Object * GetByTile(TileIndex tile)
Get the object associated with a tile.
Resolver object to be used for houses (feature 07 spritegroups).
const void * GetInstance(uint index) const override
Get the instance given an index.
@ CBM_VEHICLE_SOUND_EFFECT
Vehicle uses custom sound effects.
@ CBID_HOUSE_WATCHED_CARGO_ACCEPTED
Called when a cargo type specified in property 20 is accepted.
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.
@ CBID_INDUSTRY_PROBABILITY
Called to determine if the given industry type is available.
@ CBM_STATION_SLOPE_CHECK
Check slope of new station tiles.
@ CBID_HOUSE_CUSTOM_NAME
Called on the Get Tile Description for an house tile.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
@ CBM_INDT_ACCEPT_CARGO
decides accepted types
const void * GetInstance(uint index) const override
Get the instance given an index.
@ CBM_STATION_ANIMATION_NEXT_FRAME
Use a custom next frame callback.
@ CBID_INDTILE_ANIM_START_STOP
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.
@ CBID_INDTILE_DRAW_FOUNDATIONS
Called to determine the type (if any) of foundation to draw for industry tile.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
@ CBM_HOUSE_DESTRUCTION
trigger destruction of building
@ CBM_VEHICLE_CARGO_SUFFIX
Show suffix after cargo name.
Defines the internal data of a functional industry.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
@ CBID_HOUSE_DRAW_FOUNDATIONS
Called to determine the type (if any) of foundation to draw for house tile.
@ CBID_INDUSTRY_OUTPUT_CARGO_TYPES
Customize the output cargo types of a newly build industry.
@ CBID_INDTILE_ACCEPT_CARGO
Called to determine which cargoes an industry should accept.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBM_VEHICLE_ARTIC_ENGINE
Add articulated engines (trains and road vehicles)
Helper class to wrap some functionality/queries in.
@ CBID_INDUSTRY_SPECIAL_EFFECT
Called to determine industry special effects.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
@ CBM_INDT_AUTOSLOPE
decides allowance of autosloping
@ CBM_HOUSE_PRODUCE_CARGO
custom cargo production
static TownID GetTownIndex(TileIndex t)
Get the index of which town this house/street is attached to.
@ CBM_IND_FUND_MORE_TEXT
additional text in fund window
Representation of the data from a NewGRF property.
@ CBM_HOUSE_CONSTRUCTION_STATE_CHANGE
change animation when construction state changes
bool PSAWithParameter() const override
Used to decide if the PSA needs a parameter or not.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
@ VSG_SCOPE_SELF
Resolved object itself.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBID_INDUSTRY_FUND_MORE_TEXT
Called to determine more text in the fund industry window.
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.
const void * GetInstance(uint index) const override
Get the instance given an index.
@ CBM_IND_PROBABILITY
industry availability/probability callback
@ CBID_VEHICLE_ADDITIONAL_TEXT
This callback is called from vehicle purchase lists.
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.
@ CBM_VEHICLE_LENGTH
Vehicle length (trains and road vehicles)
GrfSpecFeature GetGrfSpecFeature(TileIndex tile)
Get the GrfSpecFeature associated with the tile.
static HouseID GetHouseType(TileIndex t)
Get the type of this house, which is an index into the house spec array.
@ CBID_INDUSTRY_LOCATION
Called to determine if the given industry can be built on specific area.
@ CBM_HOUSE_ANIMATION_NEXT_FRAME
decides next animation frame
@ CBM_OBJ_FUND_MORE_TEXT
additional text in fund window
@ CBID_HOUSE_COLOUR
Called to determine the colour of a town building.
@ CBID_HOUSE_DESTRUCTION
Called periodically to determine if a house should be destroyed.
@ CBM_VEHICLE_LOAD_AMOUNT
Load amount.
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?
TileArea location
Location of the industry.
@ CBID_STATION_LAND_SLOPE_CHECK
Callback done for each tile of a station to check the slope.
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.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
static Industry * GetByTile(TileIndex tile)
Get the industry of the given tile.
@ GSF_FAKE_TOWNS
Fake town GrfSpecFeature for NewGRF debugging (parent scope)
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
@ CBM_STATION_ANIMATION_SPEED
Customize the animation speed of the station.
@ CBID_AIRPTILE_ANIM_NEXT_FRAME
Called to determine airport tile next animation frame.
IndustryType type
type of industry.
@ CBID_VEHICLE_SOUND_EFFECT
Called to play a special sound effect.
Resolver for industry tiles.
@ CBID_VEHICLE_AUTOREPLACE_SELECTION
Return the vehicles this given vehicle can be "upgraded" to.
@ CBM_IND_PRODUCTION_CHANGE
controls random production change
EngineID engine_type
The type of engine used for this vehicle.
static const NIFeature *const _nifeatures[]
Table with all NIFeatures.
Resolver of town properties.
@ NIT_CARGO
The property is a cargo.
@ CBID_HOUSE_ALLOW_CONSTRUCTION
Determine whether the house can be built on the specified tile.
@ CBM_HOUSE_ACCEPT_CARGO
decides accepted types
@ CBID_INDUSTRY_MONTHLYPROD_CHANGE
Called monthly on production changes, so it can be adjusted more frequently.
Class for pooled persistent storage of data.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBID_HOUSE_CONSTRUCTION_STATE_CHANGE
Called whenever the construction state of a house changes.
@ CBM_INDT_DRAW_FOUNDATIONS
decides if default foundations need to be drawn
@ CBM_IND_LOCATION
check industry construction on given area
@ CBM_IND_INPUT_CARGO_TYPES
customize the cargoes the industry requires
@ GSF_FAKE_END
End of the fake features.
@ CBID_INDUSTRY_INPUT_CARGO_TYPES
Customize the input cargo types of a newly build industry.
static const AirportTileSpec * GetByTile(TileIndex tile)
Retrieve airport tile spec for the given airport tile.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBM_OBJ_COLOUR
decide the colour of the building
@ CBM_HOUSE_COLOUR
decide the colour of the building
@ CBM_HOUSE_ANIMATION_SPEED
decides animation speed
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Container for all information for a given feature.
@ TCX_NORMAL
Nothing special.
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.
@ CBID_HOUSE_ANIMATION_START_STOP
Called for periodically starting or stopping the animation.
TYPE storage[SIZE]
Memory to for the storage array.
@ CBM_IND_SPECIAL_EFFECT
control special effects
@ CBID_INDUSTRY_CARGO_SUFFIX
Called to determine text to display after cargo name.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBM_STATION_AVAIL
Availability of station in construction window.
@ CBID_STATION_ANIM_NEXT_FRAME
Called to determine station tile next animation frame.
@ CBID_HOUSE_CARGO_ACCEPTANCE
Called to decide how much cargo a town building can accept.
@ CBID_STATION_TILE_LAYOUT
Called when building a station to customize the tile layout.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
GRFFileProps grf_prop
properties related to the grf file
static uint GetInspectWindowNumber(GrfSpecFeature feature, uint index)
Get the window number for the inspect window given a feature and index.
@ CBM_HOUSE_ANIMATION_START_STOP
periodically start/stop the animation
void SetObjectAtStringParameters(StringID string, uint32 index, TileIndex tile) const
Helper to make setting the strings easier for objects at a specific tile.
@ CBM_VEHICLE_REFIT_CAPACITY
Cargo capacity after refit.
@ CBM_INDT_ANIM_NEXT_FRAME
decides next animation frame
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
@ CBID_OBJECT_AUTOSLOPE
Called to determine if one can alter the ground below an object tile.
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.
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.
@ CBM_INDT_ANIM_SPEED
decides animation speed
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
@ CBID_INDTILE_ANIM_NEXT_FRAME
Called to determine industry tile next animation frame.
@ CBID_VEHICLE_COLOUR_MAPPING
Called to determine if a specific colour map should be used for a vehicle instead of the default live...
@ CBM_IND_MONTHLYPROD_CHANGE
controls monthly random production change
@ CBID_INDUSTRY_PROD_CHANGE_BUILD
Called when industry is built to set initial production level.
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.
Resolver object for road types.
@ CBID_INDUSTRY_REFUSE_CARGO
Called to determine if the industry can still accept or refuse more cargo arrival.
@ CBM_OBJ_SLOPE_CHECK
decides slope suitability
@ CBM_AIRT_DRAW_FOUNDATIONS
decides if default foundations need to be drawn
@ CBID_AIRPTILE_ANIM_START_STOP
Called for periodically starting or stopping the animation.
const void * GetInstance(uint index) const override
Get the instance given an index.
const int32 * GetPSAFirstPosition(uint index, uint32 grfid) const override
Gets the first position of the array containing the persistent storage.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
@ CBID_AIRPTILE_DRAW_FOUNDATIONS
Called to determine the type (if any) of foundation to draw for an airport tile.
@ CBM_VEHICLE_VISUAL_EFFECT
Visual effects and wagon power (trains, road vehicles and ships)
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.
@ CBID_STATION_ANIM_START_STOP
Called for periodically starting or stopping the animation.
const IndustryTileSpec * GetIndustryTileSpec(IndustryGfx gfx)
Accessor for array _industry_tile_specs.
TileIndex tile
The base tile of the area.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
@ CBM_INDT_CARGO_ACCEPTANCE
decides amount of cargo acceptance
@ CBM_OBJ_AUTOSLOPE
decides allowance of autosloping
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
static IndustryID GetIndustryIndex(TileIndex t)
Get the industry ID of the given tile.
@ CBM_HOUSE_DENY_DESTRUCTION
conditional protection
static const ObjectSpec * GetByTile(TileIndex tile)
Get the specification associated with a tile.
@ CBM_IND_REFUSE_CARGO
option out of accepting cargo
const void * GetInstance(uint index) const override
Get the instance given an index.
GRFFileProps grf_prop
properties related to the grf file
@ CBID_OBJECT_ANIMATION_START_STOP
Called for periodically starting or stopping the animation.
static StationID GetStationIndex(TileIndex t)
Get StationID from a tile.
static Station * GetByTile(TileIndex tile)
Get the station belonging to a specific tile.
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
@ CBID_INDTILE_AUTOSLOPE
Called to determine if industry can alter the ground below industry tile.
const void * GetInstance(uint index) const override
Get the instance given an index.
Resolver for a vehicle (chain)
@ CBID_STATION_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
@ CBM_IND_WINDOW_MORE_TEXT
additional text in industry window
virtual uint32 GetVariable(byte variable, uint32 parameter, bool *available) const
Get a variable value.
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
@ CBID_OBJECT_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
@ CBID_HOUSE_PRODUCE_CARGO
Called to determine how much cargo a town building produces.
#define lengthof(x)
Return the length of an fixed size array.
GRFFilePropsBase< NUM_CARGO+3 > grf_prop
Properties related the the grf file.
@ CBID_VEHICLE_REFIT_CAPACITY
Refit capacity, the passed vehicle needs to have its ->cargo_type set to the cargo we are refitting t...
@ CBID_INDUSTRY_DECIDE_COLOUR
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.
Representation on the NewGRF variables.
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?
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
@ CBID_VEHICLE_32DAY_CALLBACK
Called for every vehicle every 32 days (not all on same date though).
@ CBM_HOUSE_AUTOSLOPE
decides allowance of autosloping
@ CBID_INDUSTRY_WINDOW_MORE_TEXT
Called to determine more text in the industry window.
@ CBM_IND_DECIDE_COLOUR
give a custom colour to newly build industries
@ CBID_VEHICLE_LOAD_AMOUNT
Determine the amount of cargo to load per unit of time when using gradual loading.
@ CBID_VEHICLE_LENGTH
Vehicle length, returns the amount of 1/8's the vehicle is shorter for trains and RVs.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
const IndustrySpec * GetIndustrySpec(IndustryType thistype)
Accessor for array _industry_specs.
@ CBM_IND_PROD_CHANGE_BUILD
initialise production level on construction
Resolver for tiles of an airport.
Resolver object for rail types.
@ CBM_VEHICLE_COLOUR_REMAP
Change colour mapping of vehicle.
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
static bool IsValidID(size_t index)
Tests whether given index can be used to get valid (non-nullptr) Titem.
uint GetPSASize(uint index, uint32 grfid) const override
Allows to know the size of the persistent storage.
@ CBM_HOUSE_DRAW_FOUNDATIONS
decides if default foundations need to be drawn
VehicleType type
Type of vehicle.
const struct GRFFile * grffile
grf file that introduced this entity
@ CBM_STATION_SPRITE_LAYOUT
Use callback to select a sprite layout to use.
@ CBID_AIRPTILE_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
PersistentStorage * psa
Persistent storage for NewGRF industries.
@ CBID_INDTILE_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
static const AirportTileSpec * Get(StationGfx gfx)
Retrieve airport tile spec for the given airport tile.
@ CBM_HOUSE_ALLOW_CONSTRUCTION
decide whether the house can be built on a given tile
GRFFileProps grf_prop
properties related the the grf file
void SetSimpleStringParameters(StringID string, uint32 index) const
Helper to make setting the strings easier.
@ CBID_STATION_SPRITE_LAYOUT
Choose a sprite layout to draw, instead of the standard 0-7 range.
@ CBID_HOUSE_DENY_DESTRUCTION
Called to determine whether a town building can be destroyed.
@ CBID_HOUSE_ACCEPT_CARGO
Called to determine which cargoes a town building should accept.
#define cpp_lengthof(base, variable)
Gets the length of an array variable within a class.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
const void * GetInstance(uint index) const override
Get the instance given an index.
GRFFileProps grf_prop
Properties related the the grf file.
@ CBID_HOUSE_ANIMATION_NEXT_FRAME
Determine the next animation frame for a house.
const void * GetInstance(uint index) const override
Get the instance given an index.
@ CBM_IND_OUTPUT_CARGO_TYPES
customize the cargoes the industry produces
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
@ CBID_HOUSE_AUTOSLOPE
Called to determine if one can alter the ground below a house tile.
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
@ CBID_INDTILE_SHAPE_CHECK
Called to determine if the given industry tile can be built on specific tile.
@ CBID_TRAIN_ALLOW_WAGON_ATTACH
Determine whether a wagon can be attached to an already existing train.
@ CBID_OBJECT_FUND_MORE_TEXT
Called to determine more text in the fund object window.
@ CBM_AIRT_ANIM_SPEED
decides animation speed