OpenTTD Source 20241224-master-gf74b0cf984
|
Implementation of the class OverrideManagerBase and its descendance, present and future. More...
#include "stdafx.h"
#include "debug.h"
#include "landscape.h"
#include "house.h"
#include "industrytype.h"
#include "newgrf_config.h"
#include "clear_map.h"
#include "station_map.h"
#include "tree_map.h"
#include "tunnelbridge_map.h"
#include "newgrf_object.h"
#include "genworld.h"
#include "newgrf_spritegroup.h"
#include "newgrf_text.h"
#include "company_base.h"
#include "error.h"
#include "strings_func.h"
#include "string_func.h"
#include "table/strings.h"
#include "safeguards.h"
Go to the source code of this file.
Functions | |
uint32_t | GetTerrainType (TileIndex tile, TileContext context) |
Function used by houses (and soon industries) to get information on type of "terrain" the tile it is queries sits on. | |
TileIndex | GetNearbyTile (uint8_t parameter, TileIndex tile, bool signed_offsets, Axis axis) |
Get the tile at the given offset. | |
uint32_t | GetNearbyTileInformation (TileIndex tile, bool grf_version8) |
Common part of station var 0x67, house var 0x62, indtile var 0x60, industry var 0x62. | |
uint32_t | GetCompanyInfo (CompanyID owner, const Livery *l) |
Returns company information like in vehicle var 43 or station var 43. | |
CommandCost | GetErrorMessageFromLocationCallbackResult (uint16_t cb_res, const GRFFile *grffile, StringID default_error) |
Get the error message from a shape/location/slope check callback result. | |
void | ErrorUnknownCallbackResult (uint32_t grfid, uint16_t cbid, uint16_t cb_res) |
Record that a NewGRF returned an unknown/invalid callback result. | |
bool | ConvertBooleanCallback (const GRFFile *grffile, uint16_t cbid, uint16_t cb_res) |
Converts a callback result into a boolean. | |
bool | Convert8bitBooleanCallback (const GRFFile *grffile, uint16_t cbid, uint16_t cb_res) |
Converts a callback result into a boolean. | |
Implementation of the class OverrideManagerBase and its descendance, present and future.
Definition in file newgrf_commons.cpp.
bool Convert8bitBooleanCallback | ( | const GRFFile * | grffile, |
uint16_t | cbid, | ||
uint16_t | cb_res | ||
) |
Converts a callback result into a boolean.
For grf version < 8 the first 8 bit of the result are checked for zero or non-zero. For grf version >= 8 the callback result must be 0 or 1.
grffile | NewGRF returning the value. |
cbid | Callback returning the value. |
cb_res | Callback result. |
Definition at line 554 of file newgrf_commons.cpp.
References CALLBACK_FAILED, ErrorUnknownCallbackResult(), and GB().
Referenced by CmdBuildRailStation(), CmdBuildRoadStop(), IsRoadStopAvailable(), IsStationAvailable(), and TryBuildTownHouse().
bool ConvertBooleanCallback | ( | const GRFFile * | grffile, |
uint16_t | cbid, | ||
uint16_t | cb_res | ||
) |
Converts a callback result into a boolean.
For grf version < 8 the result is checked for zero or non-zero. For grf version >= 8 the callback result must be 0 or 1.
grffile | NewGRF returning the value. |
cbid | Callback returning the value. |
cb_res | Callback result. |
Definition at line 535 of file newgrf_commons.cpp.
References CALLBACK_FAILED, and ErrorUnknownCallbackResult().
Referenced by GetFoundation_Town(), and IndustryTemporarilyRefusesCargo().
void ErrorUnknownCallbackResult | ( | uint32_t | grfid, |
uint16_t | cbid, | ||
uint16_t | cb_res | ||
) |
Record that a NewGRF returned an unknown/invalid callback result.
Also show an error to the user.
grfid | ID of the NewGRF causing the problem. |
cbid | Callback causing the problem. |
cb_res | Invalid result returned by the callback. |
Definition at line 505 of file newgrf_commons.cpp.
References Debug, GBUG_UNKNOWN_CB_RESULT, GetGRFConfig(), GRFConfig::GetName(), GetString(), GRFConfig::grf_bugs, HasBit(), SetBit(), SetDParam(), SetDParamStr(), ShowErrorMessage(), StrMakeValid(), and WL_CRITICAL.
Referenced by AnimationBase< Tbase, Tspec, Tobj, Textra, GetCallback, Tframehelper >::AnimateTile(), BuildObject(), CalculateRefitMasks(), CheckTrainAttachment(), CmdBuildRailStation(), Train::ConsistChanged(), Convert8bitBooleanCallback(), ConvertBooleanCallback(), DoCreateNewIndustry(), IndustryViewWindow::DrawInfo(), BuildIndustryWindow::DrawWidget(), BuildObjectWindow::DrawWidget(), GetAirportTextCallback(), GetCargoSubtypeText(), GetCargoSuffix(), GetHouseName(), GetIndustryProbabilityCallback(), GetLoadAmount(), GetNewGRFAdditionalText(), GetRoadVehLength(), RunEconomyVehicleDayProc(), and Vehicle::UpdateVisualEffect().
Returns company information like in vehicle var 43 or station var 43.
owner | Owner of the object. |
l | Livery of the object; nullptr to use default. |
Definition at line 456 of file newgrf_commons.cpp.
References Livery::colour1, Livery::colour2, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), Company::IsValidAiID(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID().
Referenced by VehicleScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), and StationScopeResolver::GetVariable().
CommandCost GetErrorMessageFromLocationCallbackResult | ( | uint16_t | cb_res, |
const GRFFile * | grffile, | ||
StringID | default_error | ||
) |
Get the error message from a shape/location/slope check callback result.
cb_res | Callback result to translate. If bit 10 is set this is a standard error message, otherwise a NewGRF provided string. |
grffile | NewGRF to use to resolve a custom error message. |
default_error | Error message to use for the generic error. |
Definition at line 469 of file newgrf_commons.cpp.
References GetGRFStringID(), and CommandCost::UseTextRefStack().
Referenced by CheckIfCallBackAllowsCreation(), CmdBuildObject(), PerformIndustryTileSlopeCheck(), and PerformStationTileSlopeCheck().
Get the tile at the given offset.
parameter | The NewGRF "encoded" offset. |
tile | The tile to base the offset from. |
signed_offsets | Whether the offsets are to be interpreted as signed or not. |
axis | Axis of a railways station. |
Definition at line 410 of file newgrf_commons.cpp.
References AXIS_Y, GB(), GetRailStationAxis(), HasStationTileRail(), INVALID_AXIS, Swap(), TileDiffXY(), and Map::WrapToMap().
Referenced by GetNearbyAirportTileInformation(), GetNearbyIndustryTileInformation(), GetNearbyObjectTileInformation(), GetNearbyTileInformation(), AirportTileScopeResolver::GetVariable(), HouseScopeResolver::GetVariable(), IndustriesScopeResolver::GetVariable(), IndustryTileScopeResolver::GetVariable(), ObjectScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), and StationScopeResolver::GetVariable().
uint32_t GetNearbyTileInformation | ( | TileIndex | tile, |
bool | grf_version8 | ||
) |
Common part of station var 0x67, house var 0x62, indtile var 0x60, industry var 0x62.
tile | the tile of interest. |
grf_version8 | True, if we are dealing with a new NewGRF which uses GRF version >= 8. |
Definition at line 433 of file newgrf_commons.cpp.
References GetTerrainType(), GetTilePixelSlope(), GetTileType(), GetTreeGround(), GetWaterClass(), HasTileWaterClass(), IsRoadWaypointTile(), IsTileType(), MP_ROAD, MP_TREES, MP_WATER, TILE_HEIGHT, and TREE_GROUND_SHORE.
Referenced by GetNearbyAirportTileInformation(), GetNearbyIndustryTileInformation(), GetNearbyObjectTileInformation(), HouseScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), and StationScopeResolver::GetVariable().
uint32_t GetTerrainType | ( | TileIndex | tile, |
TileContext | context | ||
) |
Function used by houses (and soon industries) to get information on type of "terrain" the tile it is queries sits on.
tile | TileIndex of the tile been queried |
context | The context of the tile. |
Definition at line 335 of file newgrf_commons.cpp.
References _generating_world, _settings_game, GameSettings::game_creation, GetBridgeHeight(), GetClearDensity(), GetSnowLine(), GetTileMaxZ(), GetTileType(), GetTileZ(), GetTreeDensity(), GetTreeGround(), GetTropicZone(), HasTunnelBridgeSnowOrDesert(), IsOnSnow(), IsSnowTile(), GameCreationSettings::landscape, MP_CLEAR, MP_HOUSE, MP_INDUSTRY, MP_OBJECT, MP_RAILWAY, MP_ROAD, MP_STATION, MP_TREES, MP_TUNNELBRIDGE, MP_VOID, MP_WATER, RAIL_GROUND_HALF_SNOW, RAIL_GROUND_ICE_DESERT, TCX_ON_BRIDGE, TCX_UPPER_HALFTILE, TREE_GROUND_ROUGH_SNOW, and TREE_GROUND_SNOW_DESERT.
Referenced by AmbientSoundEffectCallback(), GetNearbyTileInformation(), AirportTileScopeResolver::GetVariable(), CanalScopeResolver::GetVariable(), HouseScopeResolver::GetVariable(), IndustriesScopeResolver::GetVariable(), IndustryTileScopeResolver::GetVariable(), ObjectScopeResolver::GetVariable(), RailTypeScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), RoadTypeScopeResolver::GetVariable(), and StationScopeResolver::GetVariable().