OpenTTD
|
NewGRF handling of industry tiles. More...
#include "stdafx.h"
#include "debug.h"
#include "landscape.h"
#include "newgrf_industrytiles.h"
#include "newgrf_sound.h"
#include "industry.h"
#include "town.h"
#include "command_func.h"
#include "water.h"
#include "newgrf_animation_base.h"
#include "table/strings.h"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | IndustryAnimationBase |
Helper class for animation control. More... |
Functions | |
uint32 | GetNearbyIndustryTileInformation (byte parameter, TileIndex tile, IndustryID index, bool signed_offsets, bool grf_version8) |
Based on newhouses equivalent, but adapted for newindustries. | |
uint32 | GetRelativePosition (TileIndex tile, TileIndex ind_tile) |
This is the position of the tile relative to the northernmost tile of the industry. | |
static const GRFFile * | GetIndTileGrffile (IndustryGfx gfx) |
Get the associated NewGRF file from the industry graphics. | |
static void | IndustryDrawTileLayout (const TileInfo *ti, const TileLayoutSpriteGroup *group, byte rnd_colour, byte stage, IndustryGfx gfx) |
uint16 | GetIndustryTileCallback (CallbackID callback, uint32 param1, uint32 param2, IndustryGfx gfx_id, Industry *industry, TileIndex tile) |
bool | DrawNewIndustryTile (TileInfo *ti, Industry *i, IndustryGfx gfx, const IndustryTileSpec *inds) |
bool | IsSlopeRefused (Slope current, Slope refused) |
CommandCost | PerformIndustryTileSlopeCheck (TileIndex ind_base_tile, TileIndex ind_tile, const IndustryTileSpec *its, IndustryType type, IndustryGfx gfx, uint itspec_index, uint16 initial_random_bits, Owner founder, IndustryAvailabilityCallType creation_type) |
Check the slope of a tile of a new industry. | |
uint16 | GetSimpleIndustryCallback (CallbackID callback, uint32 param1, uint32 param2, const IndustryTileSpec *spec, Industry *ind, TileIndex tile, int extra_data) |
void | AnimateNewIndustryTile (TileIndex tile) |
bool | StartStopIndustryTileAnimation (TileIndex tile, IndustryAnimationTrigger iat, uint32 random) |
bool | StartStopIndustryTileAnimation (const Industry *ind, IndustryAnimationTrigger iat) |
static void | DoTriggerIndustryTile (TileIndex tile, IndustryTileTrigger trigger, Industry *ind, uint32 &reseed_industry) |
Trigger random triggers for an industry tile and reseed its random bits. | |
static void | DoReseedIndustry (Industry *ind, uint32 reseed) |
Reseeds the random bits of an industry. | |
void | TriggerIndustryTile (TileIndex tile, IndustryTileTrigger trigger) |
Trigger a random trigger for a single industry tile. | |
void | TriggerIndustry (Industry *ind, IndustryTileTrigger trigger) |
Trigger a random trigger for all industry tiles. |
NewGRF handling of industry tiles.
Definition in file newgrf_industrytiles.cpp.
|
static |
Reseeds the random bits of an industry.
ind | Industry. |
reseed | Bits to reseed. |
Definition at line 349 of file newgrf_industrytiles.cpp.
References Industry::random.
Referenced by TriggerIndustry(), and TriggerIndustryTile().
|
static |
Trigger random triggers for an industry tile and reseed its random bits.
tile | Industry tile to trigger. | |
trigger | Trigger to trigger. | |
ind | Industry of the tile. | |
[in,out] | reseed_industry | Collects bits to reseed for the industry. |
Definition at line 319 of file newgrf_industrytiles.cpp.
References CBID_RANDOM_TRIGGER, GetIndustryGfx(), GetIndustryRandomBits(), GetIndustryTileSpec(), IndustryTileSpec::grf_prop, IsTileType(), IsValidTile(), MarkTileDirtyByTile(), MP_INDUSTRY, ResolverObject::reseed, SpriteGroup::Resolve(), SetIndustryRandomBits(), GRFFilePropsBase< Tcnt >::spritegroup, VSG_SCOPE_PARENT, and VSG_SCOPE_SELF.
Referenced by TriggerIndustry(), and TriggerIndustryTile().
|
static |
Get the associated NewGRF file from the industry graphics.
gfx | Graphics to query. |
Definition at line 131 of file newgrf_industrytiles.cpp.
References GetIndustryTileSpec(), IndustryTileSpec::grf_prop, and GRFFilePropsBase< Tcnt >::grffile.
uint32 GetNearbyIndustryTileInformation | ( | byte | parameter, |
TileIndex | tile, | ||
IndustryID | index, | ||
bool | signed_offsets, | ||
bool | grf_version8 | ||
) |
Based on newhouses equivalent, but adapted for newindustries.
parameter | from callback. It's in fact a pair of coordinates |
tile | TileIndex from which the callback was initiated |
index | of the industry been queried for |
signed_offsets | Are the x and y offset encoded in parameter signed? |
grf_version8 | True, if we are dealing with a new NewGRF which uses GRF version >= 8. |
Definition at line 36 of file newgrf_industrytiles.cpp.
References GetIndustryIndex(), GetNearbyTile(), GetNearbyTileInformation(), IsTileType(), and MP_INDUSTRY.
Referenced by IndustriesScopeResolver::GetVariable(), and IndustryTileScopeResolver::GetVariable().
This is the position of the tile relative to the northernmost tile of the industry.
Format: 00yxYYXX Variable Content x the x offset from the northernmost tile XX same, but stored in a byte instead of a nibble y the y offset from the northernmost tile YY same, but stored in a byte instead of a nibble
tile | TileIndex of the tile to evaluate |
ind_tile | northernmost tile of the industry |
Definition at line 55 of file newgrf_industrytiles.cpp.
References TileX(), and TileY().
Referenced by IndustryTileScopeResolver::GetVariable(), and AirportTileScopeResolver::GetVariable().
CommandCost PerformIndustryTileSlopeCheck | ( | TileIndex | ind_base_tile, |
TileIndex | ind_tile, | ||
const IndustryTileSpec * | its, | ||
IndustryType | type, | ||
IndustryGfx | gfx, | ||
uint | itspec_index, | ||
uint16 | initial_random_bits, | ||
Owner | founder, | ||
IndustryAvailabilityCallType | creation_type | ||
) |
Check the slope of a tile of a new industry.
ind_base_tile | Base tile of the industry. |
ind_tile | Tile to check. |
its | Tile specification. |
type | Industry type. |
gfx | Gfx of the tile. |
itspec_index | Layout. |
initial_random_bits | Random bits of industry after construction |
founder | Industry founder |
creation_type | The circumstances the industry is created under. |
Definition at line 239 of file newgrf_industrytiles.cpp.
References CALLBACK_FAILED, CBID_INDTILE_SHAPE_CHECK, Industry::founder, GetErrorMessageFromLocationCallbackResult(), GetTileSlope(), IndustryTileSpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Industry::location, Industry::random, return_cmd_error, IndustryTileSpec::slopes_refused, OrthogonalTileArea::tile, Industry::type, and OrthogonalTileArea::w.
Referenced by CheckIfIndustryTilesAreFree().
void TriggerIndustry | ( | Industry * | ind, |
IndustryTileTrigger | trigger | ||
) |
Trigger a random trigger for all industry tiles.
ind | Industry to trigger. |
trigger | Trigger to trigger. |
Definition at line 376 of file newgrf_industrytiles.cpp.
References DoReseedIndustry(), DoTriggerIndustryTile(), Industry::location, TILE_AREA_LOOP, and Industry::TileBelongsToIndustry().
Referenced by TriggerIndustryProduction().
void TriggerIndustryTile | ( | TileIndex | tile, |
IndustryTileTrigger | trigger | ||
) |
Trigger a random trigger for a single industry tile.
tile | Industry tile to trigger. |
trigger | Trigger to trigger. |
Definition at line 363 of file newgrf_industrytiles.cpp.
References DoReseedIndustry(), DoTriggerIndustryTile(), and Industry::GetByTile().