OpenTTD Source 20250205-master-gfd85ab1e2c
|
Base of all NewGRF support. More...
#include "stdafx.h"
#include "core/backup_type.hpp"
#include "core/container_func.hpp"
#include "debug.h"
#include "fileio_func.h"
#include "engine_func.h"
#include "engine_base.h"
#include "bridge.h"
#include "town.h"
#include "newgrf_engine.h"
#include "newgrf_text.h"
#include "fontcache.h"
#include "currency.h"
#include "landscape.h"
#include "newgrf_cargo.h"
#include "newgrf_house.h"
#include "newgrf_sound.h"
#include "newgrf_station.h"
#include "industrytype.h"
#include "industry_map.h"
#include "newgrf_act5.h"
#include "newgrf_canal.h"
#include "newgrf_townname.h"
#include "newgrf_industries.h"
#include "newgrf_airporttiles.h"
#include "newgrf_airport.h"
#include "newgrf_object.h"
#include "rev.h"
#include "fios.h"
#include "strings_func.h"
#include "timer/timer_game_tick.h"
#include "timer/timer_game_calendar.h"
#include "string_func.h"
#include "network/core/config.h"
#include "smallmap_gui.h"
#include "genworld.h"
#include "error.h"
#include "error_func.h"
#include "vehicle_func.h"
#include "language.h"
#include "vehicle_base.h"
#include "road.h"
#include "newgrf_roadstop.h"
#include "table/strings.h"
#include "table/build_industry.h"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | GrfProcessingState |
Temporary data during loading of GRFs. More... | |
struct | GrfProcessingState::SpriteSet |
Definition of a single Action1 spriteset. More... | |
class | OTTDByteReaderSignal |
class | ByteReader |
Class to read from a NewGRF file. More... | |
struct | GRFTempEngineData |
Temporary engine data used when loading only. More... | |
struct | GRFLocation |
struct | StringIDMapping |
Information for mapping static StringIDs. More... | |
struct | AllowedSubtags |
Data structure to store the allowed id/type combinations for action 14. More... | |
Macros | |
#define | TEXTID_TO_STRINGID(begin, end, stringid, stringend) |
Typedefs | |
typedef void(* | SpecialSpriteHandler) (ByteReader &buf) |
typedef std::map< GRFLocation, std::vector< uint8_t > > | GRFLineToSpriteOverride |
using | ChangeInfoHandler = ChangeInfoResult(uint first, uint last, int prop, ByteReader &buf) |
using | CachedCallback = std::pair< uint16_t, SpriteGroupID > |
typedef bool(* | DataHandler) (size_t, ByteReader &) |
Type of callback function for binary nodes. | |
typedef bool(* | TextHandler) (uint8_t, std::string_view str) |
Type of callback function for text nodes. | |
typedef bool(* | BranchHandler) (ByteReader &) |
Type of callback function for branch nodes. | |
Enumerations | |
enum | ChangeInfoResult : uint8_t { CIR_SUCCESS , CIR_DISABLED , CIR_UNHANDLED , CIR_UNKNOWN , CIR_INVALID_ID } |
Possible return values for the FeatureChangeInfo functions. More... | |
Functions | |
const std::vector< GRFFile * > & | GetAllGRFFiles () |
template<VehicleType T> | |
static bool | IsValidNewGRFImageIndex (uint8_t image_index) |
Helper to check whether an image index is valid for a particular NewGRF vehicle. | |
void | GrfMsgI (int severity, const std::string &msg) |
Debug() function dedicated to newGRF debugging messages Function is essentially the same as Debug(grf, severity, ...) with the addition of file:line information when parsing grf files. | |
static GRFFile * | GetFileByGRFID (uint32_t grfid) |
Obtain a NewGRF file by its grfID. | |
static GRFFile * | GetFileByFilename (const std::string &filename) |
Obtain a NewGRF file by its filename. | |
static void | ClearTemporaryNewGRFData (GRFFile *gf) |
Reset all NewGRFData that was used only while processing data. | |
static GRFError * | DisableGrf (StringID message=STR_NULL, GRFConfig *config=nullptr) |
Disable a GRF. | |
static void | AddStringForMapping (GRFStringID source, std::function< void(StringID)> &&func) |
Record a static StringID for getting translated later. | |
static void | AddStringForMapping (GRFStringID source, StringID *target) |
Record a static StringID for getting translated later. | |
static StringID | TTDPStringIDToOTTDStringIDMapping (GRFStringID str) |
Perform a mapping from TTDPatch's string IDs to OpenTTD's string IDs, but only for the ones we are aware off; the rest like likely unused and will show a warning. | |
StringID | MapGRFStringID (uint32_t grfid, GRFStringID str) |
Used when setting an object's property to map to the GRF's strings while taking in consideration the "drift" between TTDPatch string system and OpenTTD's one. | |
static void | SetNewGRFOverride (uint32_t source_grfid, uint32_t target_grfid) |
Set the override for a NewGRF. | |
static GRFFile * | GetCurrentGRFOverride () |
Get overridden GRF for current GRF if present. | |
static Engine * | GetNewEngine (const GRFFile *file, VehicleType type, uint16_t internal_id, bool static_access=false) |
Returns the engine associated to a certain internal_id, resp. | |
EngineID | GetNewEngineID (const GRFFile *file, VehicleType type, uint16_t internal_id) |
Return the ID of a new engine. | |
static void | MapSpriteMappingRecolour (PalSpriteID *grf_sprite) |
Map the colour modifiers of TTDPatch to those that Open is using. | |
static TileLayoutFlags | ReadSpriteLayoutSprite (ByteReader &buf, bool read_flags, bool invert_action1_flag, bool use_cur_spritesets, int feature, PalSpriteID *grf_sprite, uint16_t *max_sprite_offset=nullptr, uint16_t *max_palette_offset=nullptr) |
Read a sprite and a palette from the GRF and convert them into a format suitable to OpenTTD. | |
static void | ReadSpriteLayoutRegisters (ByteReader &buf, TileLayoutFlags flags, bool is_parent, NewGRFSpriteLayout *dts, uint index) |
Preprocess the TileLayoutFlags and read register modifiers from the GRF. | |
static bool | ReadSpriteLayout (ByteReader &buf, uint num_building_sprites, bool use_cur_spritesets, uint8_t feature, bool allow_var10, bool no_z_position, NewGRFSpriteLayout *dts) |
Read a spritelayout from the GRF. | |
static CargoTypes | TranslateRefitMask (uint32_t refit_mask) |
Translate the refit mask. | |
static void | ConvertTTDBasePrice (uint32_t base_pointer, const char *error_location, Price *index) |
Converts TTD(P) Base Price pointers into the enum used by OTTD See http://wiki.ttdpatch.net/tiki-index.php?page=BaseCosts. | |
static ChangeInfoResult | CommonVehicleChangeInfo (EngineInfo *ei, int prop, ByteReader &buf) |
Define properties common to all vehicles. | |
static ChangeInfoResult | RailVehicleChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for rail vehicles. | |
static ChangeInfoResult | RoadVehicleChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for road vehicles. | |
static ChangeInfoResult | ShipVehicleChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for ships. | |
static ChangeInfoResult | AircraftVehicleChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for aircraft. | |
static ChangeInfoResult | StationChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for stations. | |
static ChangeInfoResult | CanalChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for water features. | |
static ChangeInfoResult | BridgeChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for bridges. | |
static ChangeInfoResult | IgnoreTownHouseProperty (int prop, ByteReader &buf) |
Ignore a house property. | |
static ChangeInfoResult | TownHouseChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for houses. | |
template<typename T , typename TGetTableFunc > | |
static ChangeInfoResult | LoadTranslationTable (uint first, uint last, ByteReader &buf, TGetTableFunc gettable, std::string_view name) |
Load a cargo- or railtype-translation table. | |
static std::string | ReadDWordAsString (ByteReader &reader) |
Helper to read a DWord worth of bytes from the reader and to return it as a valid string. | |
static ChangeInfoResult | GlobalVarChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for global variables. | |
static ChangeInfoResult | GlobalVarReserveInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | CargoChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for cargoes. | |
static ChangeInfoResult | SoundEffectChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for sound effects. | |
static ChangeInfoResult | IgnoreIndustryTileProperty (int prop, ByteReader &buf) |
Ignore an industry tile property. | |
static ChangeInfoResult | IndustrytilesChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for industry tiles. | |
static ChangeInfoResult | IgnoreIndustryProperty (int prop, ByteReader &buf) |
Ignore an industry property. | |
static bool | ValidateIndustryLayout (const IndustryTileLayout &layout) |
Validate the industry layout; e.g. | |
static ChangeInfoResult | IndustriesChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for industries. | |
static ChangeInfoResult | AirportChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for airports. | |
static ChangeInfoResult | IgnoreObjectProperty (uint prop, ByteReader &buf) |
Ignore properties for objects. | |
static ChangeInfoResult | ObjectChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for objects. | |
static ChangeInfoResult | RailTypeChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
Define properties for railtypes. | |
static ChangeInfoResult | RailTypeReserveInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | RoadTypeChangeInfo (uint first, uint last, int prop, ByteReader &buf, RoadTramType rtt) |
Define properties for roadtypes. | |
static ChangeInfoResult | RoadTypeChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | TramTypeChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | RoadTypeReserveInfo (uint first, uint last, int prop, ByteReader &buf, RoadTramType rtt) |
static ChangeInfoResult | RoadTypeReserveInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | TramTypeReserveInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | AirportTilesChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
static ChangeInfoResult | IgnoreRoadStopProperty (uint prop, ByteReader &buf) |
Ignore properties for roadstops. | |
static ChangeInfoResult | RoadStopChangeInfo (uint first, uint last, int prop, ByteReader &buf) |
static bool | HandleChangeInfoResult (const char *caller, ChangeInfoResult cir, uint8_t feature, uint8_t property) |
static void | FeatureChangeInfo (ByteReader &buf) |
static void | SafeChangeInfo (ByteReader &buf) |
static void | ReserveChangeInfo (ByteReader &buf) |
static void | NewSpriteSet (ByteReader &buf) |
static void | SkipAct1 (ByteReader &buf) |
static const SpriteGroup * | GetCallbackResultGroup (uint16_t value) |
static const SpriteGroup * | GetGroupFromGroupID (uint8_t setid, uint8_t type, uint16_t groupid) |
static const SpriteGroup * | CreateGroupFromGroupID (uint8_t feature, uint8_t setid, uint8_t type, uint16_t spriteid) |
Helper function to either create a callback or a result sprite group. | |
static void | NewSpriteGroup (ByteReader &buf) |
std::span< const CargoLabel > | GetCargoTranslationTable (const GRFFile &grffile) |
Get the cargo translation table to use for the given GRF file. | |
static CargoType | TranslateCargo (uint8_t feature, uint8_t ctype) |
static bool | IsValidGroupID (uint16_t groupid, const char *function) |
static void | VehicleMapSpriteGroup (ByteReader &buf, uint8_t feature, uint8_t idcount) |
static void | CanalMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | StationMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | TownHouseMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | IndustryMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | IndustrytileMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | CargoMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | ObjectMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | RailTypeMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | RoadTypeMapSpriteGroup (ByteReader &buf, uint8_t idcount, RoadTramType rtt) |
static void | AirportMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | AirportTileMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | RoadStopMapSpriteGroup (ByteReader &buf, uint8_t idcount) |
static void | FeatureMapSpriteGroup (ByteReader &buf) |
static void | FeatureNewName (ByteReader &buf) |
static uint16_t | SanitizeSpriteOffset (uint16_t &num, uint16_t offset, int max_sprites, const std::string_view name) |
Sanitize incoming sprite offsets for Action 5 graphics replacements. | |
std::span< const Action5Type > | GetAction5Types () |
Get list of all action 5 types. | |
static void | GraphicsNew (ByteReader &buf) |
static void | SkipAct5 (ByteReader &buf) |
bool | GetGlobalVariable (uint8_t param, uint32_t *value, const GRFFile *grffile) |
Reads a variable common to VarAction2 and Action7/9/D. | |
static uint32_t | GetParamVal (uint8_t param, uint32_t *cond_val) |
static void | CfgApply (ByteReader &buf) |
static void | DisableStaticNewGRFInfluencingNonStaticNewGRFs (GRFConfig &c) |
Disable a static NewGRF when it is influencing another (non-static) NewGRF as this could cause desyncs. | |
static void | SkipIf (ByteReader &buf) |
static void | ScanInfo (ByteReader &buf) |
static void | GRFInfo (ByteReader &buf) |
static bool | IsGRMReservedSprite (SpriteID first_sprite, uint16_t num_sprites) |
Check if a sprite ID range is within the GRM reversed range for the currently loading NewGRF. | |
static void | SpriteReplace (ByteReader &buf) |
static void | SkipActA (ByteReader &buf) |
static void | GRFLoadError (ByteReader &buf) |
static void | GRFComment (ByteReader &buf) |
static void | SafeParamSet (ByteReader &buf) |
static uint32_t | GetPatchVariable (uint8_t param) |
static uint32_t | PerformGRM (uint32_t *grm, uint16_t num_ids, uint16_t count, uint8_t op, uint8_t target, const char *type) |
static void | ParamSet (ByteReader &buf) |
Action 0x0D: Set parameter. | |
static void | SafeGRFInhibit (ByteReader &buf) |
static void | GRFInhibit (ByteReader &buf) |
static void | FeatureTownName (ByteReader &buf) |
Action 0x0F - Define Town names. | |
static void | DefineGotoLabel (ByteReader &buf) |
Action 0x10 - Define goto label. | |
static void | ImportGRFSound (SoundEntry *sound) |
Process a sound import from another GRF file. | |
static void | LoadGRFSound (size_t offs, SoundEntry *sound) |
Load a sound from a file. | |
static void | GRFSound (ByteReader &buf) |
static void | SkipAct11 (ByteReader &buf) |
static void | LoadFontGlyph (ByteReader &buf) |
Action 0x12. | |
static void | SkipAct12 (ByteReader &buf) |
Action 0x12 (SKIP) | |
static void | TranslateGRFStrings (ByteReader &buf) |
Action 0x13. | |
static bool | ChangeGRFName (uint8_t langid, std::string_view str) |
Callback function for 'INFO'->'NAME' to add a translation to the newgrf name. | |
static bool | ChangeGRFDescription (uint8_t langid, std::string_view str) |
Callback function for 'INFO'->'DESC' to add a translation to the newgrf description. | |
static bool | ChangeGRFURL (uint8_t langid, std::string_view str) |
Callback function for 'INFO'->'URL_' to set the newgrf url. | |
static bool | ChangeGRFNumUsedParams (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'NPAR' to set the number of valid parameters. | |
static bool | ChangeGRFPalette (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'PALS' to set the number of valid parameters. | |
static bool | ChangeGRFBlitter (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'BLTR' to set the blitter info. | |
static bool | ChangeGRFVersion (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'VRSN' to the version of the NewGRF. | |
static bool | ChangeGRFMinVersion (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'MINV' to the minimum compatible version of the NewGRF. | |
static bool | ChangeGRFParamName (uint8_t langid, std::string_view str) |
Callback function for 'INFO'->'PARAM'->param_num->'NAME' to set the name of a parameter. | |
static bool | ChangeGRFParamDescription (uint8_t langid, std::string_view str) |
Callback function for 'INFO'->'PARAM'->param_num->'DESC' to set the description of a parameter. | |
static bool | ChangeGRFParamType (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'PARAM'->param_num->'TYPE' to set the typeof a parameter. | |
static bool | ChangeGRFParamLimits (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'PARAM'->param_num->'LIMI' to set the min/max value of a parameter. | |
static bool | ChangeGRFParamMask (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'PARAM'->param_num->'MASK' to set the parameter and bits to use. | |
static bool | ChangeGRFParamDefault (size_t len, ByteReader &buf) |
Callback function for 'INFO'->'PARAM'->param_num->'DFLT' to set the default value. | |
static bool | SkipUnknownInfo (ByteReader &buf, uint8_t type) |
Try to skip the current node and all subnodes (if it's a branch node). | |
static bool | HandleNodes (ByteReader &buf, std::span< const AllowedSubtags > subtags) |
Handle the contents of a 'C' choice of an Action14. | |
static bool | ChangeGRFParamValueNames (ByteReader &buf) |
Callback function for 'INFO'->'PARA'->param_num->'VALU' to set the names of some parameter values (type uint/enum) or the names of some bits (type bitmask). | |
static bool | HandleParameterInfo (ByteReader &buf) |
Callback function for 'INFO'->'PARA' to set extra information about the parameters. | |
static bool | HandleNode (uint8_t type, uint32_t id, ByteReader &buf, std::span< const AllowedSubtags > subtags) |
Handle the nodes of an Action14. | |
static void | StaticGRFInfo (ByteReader &buf) |
Handle Action 0x14. | |
static void | GRFUnsafe (ByteReader &) |
Set the current NewGRF as unsafe for static use. | |
static void | InitializeGRFSpecial () |
Initialize the TTDPatch flags. | |
static void | ResetCustomStations () |
Reset and clear all NewGRF stations. | |
static void | ResetCustomHouses () |
Reset and clear all NewGRF houses. | |
static void | ResetCustomAirports () |
Reset and clear all NewGRF airports. | |
static void | ResetCustomIndustries () |
Reset and clear all NewGRF industries. | |
static void | ResetCustomObjects () |
Reset and clear all NewObjects. | |
static void | ResetCustomRoadStops () |
static void | ResetNewGRF () |
Reset and clear all NewGRFs. | |
static void | ResetNewGRFErrors () |
Clear all NewGRF errors. | |
void | ResetNewGRFData () |
Reset all NewGRF loaded data. | |
void | ResetPersistentNewGRFData () |
Reset NewGRF data which is stored persistently in savegames. | |
static void | BuildCargoTranslationMap () |
Construct the Cargo Mapping. | |
static void | InitNewGRFFile (const GRFConfig &config) |
Prepare loading a NewGRF file with its config. | |
static CargoLabel | GetActiveCargoLabel (const std::initializer_list< CargoLabel > &labels) |
Find first cargo label that exists and is active from a list of cargo labels. | |
static CargoLabel | GetActiveCargoLabel (const std::variant< CargoLabel, MixedCargoType > &label) |
Get active cargo label from either a cargo label or climate-dependent mixed cargo type. | |
static void | CalculateRefitMasks () |
Precalculate refit masks from cargo classes for all vehicles. | |
static void | FinaliseCanals () |
Set to use the correct action0 properties for each canal feature. | |
static void | FinaliseEngineArray () |
Check for invalid engines. | |
void | FinaliseCargoArray () |
Check for invalid cargoes. | |
static bool | IsHouseSpecValid (HouseSpec *hs, const HouseSpec *next1, const HouseSpec *next2, const HouseSpec *next3, const std::string &filename) |
Check if a given housespec is valid and disable it if it's not. | |
static void | EnsureEarlyHouse (HouseZones bitmask) |
Make sure there is at least one house available in the year 0 for the given climate / housezone combination. | |
static void | FinaliseHouseArray () |
Add all new houses to the house array. | |
static void | FinaliseIndustriesArray () |
Add all new industries to the industry array. | |
static void | FinaliseObjectsArray () |
Add all new objects to the object array. | |
static void | FinaliseAirportsArray () |
Add all new airports to the airport array. | |
static void | DecodeSpecialSprite (uint8_t *buf, uint num, GrfLoadingStage stage) |
static void | LoadNewGRFFileFromFile (GRFConfig &config, GrfLoadingStage stage, SpriteFile &file) |
Load a particular NewGRF from a SpriteFile. | |
void | LoadNewGRFFile (GRFConfig &config, GrfLoadingStage stage, Subdirectory subdir, bool temporary) |
Load a particular NewGRF. | |
static void | ActivateOldShore () |
Relocates the old shore sprites at new positions. | |
static void | ActivateOldTramDepot () |
Replocate the old tram depot sprites to the new position, if no new ones were loaded. | |
static void | FinalisePriceBaseMultipliers () |
Decide whether price base multipliers of grfs shall apply globally or only to the grf specifying them. | |
void | InitGRFTownGeneratorNames () |
Allocate memory for the NewGRF town names. | |
static void | AfterLoadGRFs () |
Finish loading NewGRFs and execute needed post-processing. | |
void | LoadNewGRF (SpriteID load_index, uint num_baseset) |
Load all the NewGRFs. | |
Variables | |
static std::vector< GRFFile * > | _grf_files |
List of all loaded GRF files. | |
uint8_t | _misc_grf_features = 0 |
Miscellaneous GRF features, set by Action 0x0D, parameter 0x9E. | |
static uint32_t | _ttdpatch_flags [8] |
32 * 8 = 256 flags. | |
GRFLoadedFeatures | _loaded_newgrf_features |
Indicates which are the newgrf features currently loaded ingame. | |
static const uint | MAX_SPRITEGROUP = UINT8_MAX |
Maximum GRF-local ID for a spritegroup. | |
static GrfProcessingState | _cur |
static const uint | NUM_STATIONS_PER_GRF = UINT16_MAX - 1 |
The maximum amount of stations a single GRF is allowed to add. | |
static std::vector< GRFTempEngineData > | _gted |
Temporary engine data used during NewGRF loading. | |
static uint32_t | _grm_engines [256] |
Contains the GRF ID of the owner of a vehicle if it has been reserved. | |
static uint32_t | _grm_cargoes [NUM_CARGO *2] |
Contains the GRF ID of the owner of a cargo if it has been reserved. | |
static std::map< GRFLocation, std::pair< SpriteID, uint16_t > > | _grm_sprites |
static GRFLineToSpriteOverride | _grf_line_to_action6_sprite_override |
static std::vector< StringIDMapping > | _string_to_grf_mapping |
Strings to be mapped during load. | |
static std::map< uint32_t, uint32_t > | _grf_id_overrides |
static std::vector< CachedCallback > | _cached_callback_groups |
Sorted list of cached callback result spritegroups. | |
static constexpr auto | _action5_types |
The information about action 5 types. | |
static GRFParameterInfo * | _cur_parameter |
The parameter which info is currently changed by the newgrf. | |
static constexpr AllowedSubtags | _tags_parameters [] |
Action14 parameter tags. | |
static constexpr AllowedSubtags | _tags_info [] |
Action14 tags for the INFO node. | |
static constexpr AllowedSubtags | _tags_root [] |
Action14 root tags. | |
Base of all NewGRF support.
Definition in file newgrf.cpp.
#define TEXTID_TO_STRINGID | ( | begin, | |
end, | |||
stringid, | |||
stringend | |||
) |
typedef bool(* BranchHandler) (ByteReader &) |
Type of callback function for branch nodes.
Definition at line 8399 of file newgrf.cpp.
using CachedCallback = std::pair<uint16_t, SpriteGroupID> |
Definition at line 5189 of file newgrf.cpp.
using ChangeInfoHandler = ChangeInfoResult(uint first, uint last, int prop, ByteReader &buf) |
Definition at line 1008 of file newgrf.cpp.
typedef bool(* DataHandler) (size_t, ByteReader &) |
Type of callback function for binary nodes.
Definition at line 8397 of file newgrf.cpp.
typedef std::map<GRFLocation, std::vector<uint8_t> > GRFLineToSpriteOverride |
Definition at line 377 of file newgrf.cpp.
typedef void(* SpecialSpriteHandler) (ByteReader &buf) |
Definition at line 309 of file newgrf.cpp.
typedef bool(* TextHandler) (uint8_t, std::string_view str) |
Type of callback function for text nodes.
Definition at line 8398 of file newgrf.cpp.
enum ChangeInfoResult : uint8_t |
Possible return values for the FeatureChangeInfo functions.
Definition at line 1000 of file newgrf.cpp.
|
static |
Relocates the old shore sprites at new positions.
Definition at line 9779 of file newgrf.cpp.
References _loaded_newgrf_features, GRFLoadedFeatures::shore, SHORE_REPLACE_ACTION_5, SHORE_REPLACE_ACTION_A, SHORE_REPLACE_NONE, and SPR_SHORE_BASE.
Referenced by AfterLoadGRFs().
|
static |
Replocate the old tram depot sprites to the new position, if no new ones were loaded.
Definition at line 9816 of file newgrf.cpp.
References _loaded_newgrf_features, GRFLoadedFeatures::tram, and TRAMWAY_REPLACE_DEPOT_WITH_TRACK.
Referenced by AfterLoadGRFs().
|
static |
Record a static StringID for getting translated later.
source | Source grf-local GRFStringID. |
func | Function to call to set the mapping result. |
Definition at line 473 of file newgrf.cpp.
References _string_to_grf_mapping, and GrfProcessingState::grffile.
Referenced by AddStringForMapping(), AirportChangeInfo(), BridgeChangeInfo(), CargoChangeInfo(), GlobalVarChangeInfo(), IndustriesChangeInfo(), ObjectChangeInfo(), RailTypeChangeInfo(), RoadTypeChangeInfo(), StationChangeInfo(), and TownHouseChangeInfo().
|
static |
Record a static StringID for getting translated later.
source | Source grf-local GRFStringID. |
target | Destination for the mapping result. |
Definition at line 484 of file newgrf.cpp.
References AddStringForMapping().
|
static |
Finish loading NewGRFs and execute needed post-processing.
Definition at line 9947 of file newgrf.cpp.
References _cached_callback_groups, _gted, _string_to_grf_mapping, ActivateOldShore(), ActivateOldTramDepot(), BindAirportSpecs(), BuildIndustriesLegend(), BuildLinkStatsLegend(), CalculateRefitMasks(), EngineInfo::climates, CommitVehicleListOrderChanges(), FinaliseAirportsArray(), FinaliseCanals(), FinaliseCargoArray(), FinaliseEngineArray(), FinaliseHouseArray(), FinaliseIndustriesArray(), FinaliseObjectsArray(), FinalisePriceBaseMultipliers(), Engine::GetGRF(), GetRailTypeByLabel(), GetRoadTypeByLabel(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, InitGRFTownGeneratorNames(), InitializeSortedCargoSpecs(), InitRailTypes(), InitRoadTypes(), RailVehicleInfo::intended_railtype, INVALID_RAILTYPE, INVALID_ROADTYPE, Engine::IterateType(), MapGRFStringID(), RoadVehicleInfo::max_speed, EngineInfo::misc_flags, RailVehicleInfo::railtype, RoadIsTram, RoadVehicleInfo::roadtype, GRFFile::roadtype_list, ROADTYPE_ROAD, ROADTYPE_TRAM, SetYearEngineAgingStops(), SortIndustryTypes(), EnumBitSet< Tenum, Tstorage >::Test(), GRFFile::tramtype_list, VEH_ROAD, and VEH_TRAIN.
Referenced by LoadNewGRF().
|
static |
Define properties for aircraft.
first | Local ID of the first vehicle. |
last | Local ID of the last vehicle. |
prop | The property to change. |
buf | The property value. |
Definition at line 1782 of file newgrf.cpp.
References _gted, _loaded_newgrf_features, AlterVehicleListOrder(), AssignBit(), EnumBitSet< Tenum, Tstorage >::base(), EngineInfo::base_intro, EngineInfo::callback_mask, EngineInfo::cargo_age_period, CIR_INVALID_ID, CIR_SUCCESS, CommonVehicleChangeInfo(), GetCargoTranslation(), GetNewEngine(), GetNewGRFSoundID(), GrfProcessingState::grffile, GRFLoadedFeatures::has_2CC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsValidCargoType(), AircraftVehicleInfo::mail_capacity, AircraftVehicleInfo::max_range, AircraftVehicleInfo::max_speed, EngineInfo::misc_flags, AircraftVehicleInfo::passenger_capacity, PROP_AIRCRAFT_CARGO_AGE_PERIOD, PROP_AIRCRAFT_COST_FACTOR, PROP_AIRCRAFT_MAIL_CAPACITY, PROP_AIRCRAFT_PASSENGER_CAPACITY, PROP_AIRCRAFT_RANGE, PROP_AIRCRAFT_RUNNING_COST_FACTOR, PROP_AIRCRAFT_SPEED, EngineInfo::retire_early, SB(), SetBit(), AircraftVehicleInfo::subtype, EnumBitSet< Tenum, Tstorage >::Test(), TranslateRefitMask(), Uses2CC, EngineInfo::variant_id, and VEH_AIRCRAFT.
|
static |
Define properties for airports.
first | Local ID of the first airport. |
last | Local ID of the last airport. |
prop | The property to change. |
buf | The property value. |
Definition at line 3971 of file newgrf.cpp.
References OverrideManagerBase::Add(), AddStringForMapping(), CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, Clamp(), DIR_E, DIR_W, AirportSpec::enabled, GB(), OverrideManagerBase::GetID(), AirportSpec::GetWithoutOverride(), GrfProcessingState::grffile, INVALID_AIRPORTTILE, MAX_CATCHMENT, TimerGameConst< struct Calendar >::MAX_YEAR, NEW_AIRPORT_OFFSET, and NUM_AIRPORTS_PER_GRF.
|
static |
Definition at line 6092 of file newgrf.cpp.
|
static |
Definition at line 6124 of file newgrf.cpp.
|
static |
Definition at line 4735 of file newgrf.cpp.
|
static |
Define properties for bridges.
first | Local ID of the first bridge. |
last | Local ID of the last bridge. |
prop | The property to change. |
buf | The property value. |
Definition at line 2275 of file newgrf.cpp.
References _bridge, AddStringForMapping(), BridgeSpec::avail_year, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, Clamp(), BridgeSpec::flags, MapSpriteMappingRecolour(), BridgeSpec::material, MAX_BRIDGES, BridgeSpec::max_length, TimerGameConst< struct Calendar >::MAX_YEAR, BridgeSpec::min_length, TimerGameConst< struct Calendar >::MIN_YEAR, TimerGameConst< struct Calendar >::ORIGINAL_BASE_YEAR, PalSpriteID::pal, BridgeSpec::price, BridgeSpec::speed, PalSpriteID::sprite, BridgeSpec::sprite_table, SPRITES_PER_BRIDGE_PIECE, and BridgeSpec::transport_name.
|
static |
Construct the Cargo Mapping.
Definition at line 8920 of file newgrf.cpp.
References GRFFile::cargo_map, find_index(), GetCargoTranslationTable(), GrfProcessingState::grffile, and CargoSpec::Iterate().
Referenced by LoadNewGRF().
|
static |
Precalculate refit masks from cargo classes for all vehicles.
< Set if the vehicle shall carry only the default cargo
Definition at line 9029 of file newgrf.cpp.
References _cargo_mask, _gted, _settings_game, _standard_cargo_mask, CALLBACK_FAILED, EngineInfo::callback_mask, RailVehicleInfo::capacity, GRFFile::cargo_list, GRFFile::cargo_map, CBID_VEHICLE_CUSTOM_REFIT, CC_ARMOURED, CC_BULK, CC_EXPRESS, CC_LIQUID, CC_MAIL, CC_PASSENGERS, CC_PIECE_GOODS, CC_REFRIGERATED, EngineInfo::climates, ClrBit(), CT_INVALID, CT_PASSENGERS, CustomRefit, ErrorUnknownCallbackResult(), FindFirstBit(), GameSettings::game_creation, GetActiveCargoLabel(), Engine::GetGRF(), GetVehicleCallback(), HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsDefaultCargo(), IsValidCargoType(), CargoSpec::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Iterate(), GameCreationSettings::landscape, GRFTempEngineData::NONEMPTY, NUM_CARGO, ShipVehicleInfo::old_refittable, RAILVEH_WAGON, SetBit(), EnumBitSet< Tenum, Tstorage >::Test(), Engine::type, VEH_AIRCRAFT, VEH_SHIP, and VEH_TRAIN.
Referenced by AfterLoadGRFs().
|
static |
Define properties for water features.
first | Local ID of the first water feature. |
last | Local ID of the last water feature. |
prop | The property to change. |
buf | The property value. |
Definition at line 2237 of file newgrf.cpp.
References CanalProperties::callback_mask, GRFFile::canal_local_properties, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, CanalProperties::flags, and GrfProcessingState::grffile.
|
static |
Definition at line 5758 of file newgrf.cpp.
|
static |
Define properties for cargoes.
first | ID of the first cargo. |
last | ID of the last cargo. |
prop | The property to change. |
buf | The property value. |
Definition at line 3085 of file newgrf.cpp.
References _cargo_mask, CargoSpec::abbrev, AddStringForMapping(), CargoSpec::bitnum, BuildCargoLabelMap(), CargoSpec::callback_mask, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, CargoSpec::classes, ClrBit(), CargoSpec::Get(), CargoSpec::grffile, GrfProcessingState::grffile, CargoSpec::initial_payment, CargoSpec::is_freight, CargoSpec::IsValid(), CargoSpec::label, CargoSpec::multiplier, CargoSpec::name, CargoSpec::name_single, NUM_CARGO, CargoSpec::quantifier, SetBit(), CargoSpec::sprite, TAE_FOOD, TAE_GOODS, TAE_MAIL, TAE_NONE, TAE_PASSENGERS, TAE_WATER, CargoSpec::town_acceptance_effect, CargoSpec::town_production_effect, CargoSpec::town_production_multiplier, TPE_MAIL, TPE_NONE, TPE_PASSENGERS, CargoSpec::units_volume, and CargoSpec::weight.
|
static |
Definition at line 5939 of file newgrf.cpp.
|
static |
Definition at line 6794 of file newgrf.cpp.
|
static |
Callback function for 'INFO'->'BLTR' to set the blitter info.
Definition at line 8254 of file newgrf.cpp.
References GrfProcessingState::grfconfig, GRFP_BLT_32BPP, GRFP_BLT_UNSET, and GRFConfig::palette.
|
static |
Callback function for 'INFO'->'DESC' to add a translation to the newgrf description.
Definition at line 8202 of file newgrf.cpp.
References AddGRFTextToList(), GrfProcessingState::grfconfig, GRFIdentifier::grfid, GRFConfig::ident, and GRFConfig::info.
|
static |
Callback function for 'INFO'->'MINV' to the minimum compatible version of the NewGRF.
Definition at line 8289 of file newgrf.cpp.
References GrfProcessingState::grfconfig, GRFConfig::min_loadable_version, and GRFConfig::version.
|
static |
Callback function for 'INFO'->'NAME' to add a translation to the newgrf name.
Definition at line 8195 of file newgrf.cpp.
References AddGRFTextToList(), GrfProcessingState::grfconfig, GRFIdentifier::grfid, GRFConfig::ident, and GRFConfig::name.
|
static |
Callback function for 'INFO'->'NPAR' to set the number of valid parameters.
Definition at line 8216 of file newgrf.cpp.
References GrfProcessingState::grfconfig, and GRFConfig::num_valid_params.
|
static |
Callback function for 'INFO'->'PALS' to set the number of valid parameters.
Definition at line 8228 of file newgrf.cpp.
References GrfProcessingState::grfconfig, GRFP_GRF_ANY, GRFP_GRF_DOS, GRFP_GRF_UNSET, GRFP_GRF_WINDOWS, and GRFConfig::palette.
|
static |
Callback function for 'INFO'->'PARAM'->param_num->'DFLT' to set the default value.
Definition at line 8385 of file newgrf.cpp.
References _cur_parameter, GRFParameterInfo::def_value, GrfProcessingState::grfconfig, and GRFConfig::has_param_defaults.
|
static |
Callback function for 'INFO'->'PARAM'->param_num->'DESC' to set the description of a parameter.
Definition at line 8318 of file newgrf.cpp.
References _cur_parameter, AddGRFTextToList(), GRFParameterInfo::desc, GrfProcessingState::grfconfig, GRFIdentifier::grfid, and GRFConfig::ident.
|
static |
Callback function for 'INFO'->'PARAM'->param_num->'LIMI' to set the min/max value of a parameter.
Definition at line 8342 of file newgrf.cpp.
References _cur_parameter, GRFParameterInfo::max_value, GRFParameterInfo::min_value, PTYPE_UINT_ENUM, and GRFParameterInfo::type.
|
static |
Callback function for 'INFO'->'PARAM'->param_num->'MASK' to set the parameter and bits to use.
Definition at line 8364 of file newgrf.cpp.
References _cur_parameter, GRFParameterInfo::first_bit, GRFParameterInfo::num_bit, and GRFParameterInfo::param_nr.
|
static |
Callback function for 'INFO'->'PARAM'->param_num->'NAME' to set the name of a parameter.
Definition at line 8311 of file newgrf.cpp.
References _cur_parameter, AddGRFTextToList(), GrfProcessingState::grfconfig, GRFIdentifier::grfid, GRFConfig::ident, and GRFParameterInfo::name.
|
static |
Callback function for 'INFO'->'PARAM'->param_num->'TYPE' to set the typeof a parameter.
Definition at line 8325 of file newgrf.cpp.
References _cur_parameter, PTYPE_END, and GRFParameterInfo::type.
|
static |
Callback function for 'INFO'->'PARA'->param_num->'VALU' to set the names of some parameter values (type uint/enum) or the names of some bits (type bitmask).
In both cases the format is the same: Each subnode should be a text node with the value/bit number as id.
Definition at line 8425 of file newgrf.cpp.
References _cur_parameter, AddGRFTextToList(), GrfProcessingState::grfconfig, GRFIdentifier::grfid, GRFConfig::ident, GRFParameterInfo::max_value, SkipUnknownInfo(), and GRFParameterInfo::value_names.
|
static |
Callback function for 'INFO'->'URL_' to set the newgrf url.
Definition at line 8209 of file newgrf.cpp.
References AddGRFTextToList(), GrfProcessingState::grfconfig, GRFIdentifier::grfid, GRFConfig::ident, and GRFConfig::url.
|
static |
Callback function for 'INFO'->'VRSN' to the version of the NewGRF.
Definition at line 8276 of file newgrf.cpp.
References GrfProcessingState::grfconfig, GRFConfig::min_loadable_version, and GRFConfig::version.
|
static |
Reset all NewGRFData that was used only while processing data.
Definition at line 422 of file newgrf.cpp.
References GRFFile::labels.
Referenced by DisableGrf(), and LoadNewGRF().
|
static |
Define properties common to all vehicles.
ei | Engine info. |
prop | The property to change. |
buf | The property value. |
Definition at line 1017 of file newgrf.cpp.
References EngineInfo::base_intro, EngineInfo::base_life, CIR_SUCCESS, CIR_UNKNOWN, EngineInfo::climates, TimerGameConst< struct Calendar >::DAYS_TILL_ORIGINAL_BASE_YEAR, EngineInfo::lifelength, and PROP_VEHICLE_LOAD_AMOUNT.
Referenced by AircraftVehicleChangeInfo(), RailVehicleChangeInfo(), RoadVehicleChangeInfo(), and ShipVehicleChangeInfo().
|
static |
Converts TTD(P) Base Price pointers into the enum used by OTTD See http://wiki.ttdpatch.net/tiki-index.php?page=BaseCosts.
base_pointer | TTD(P) Base Price Pointer | |
error_location | Function name for grf error messages | |
[out] | index | If base_pointer is valid, index is assigned to the matching price; else it is left unchanged |
< Position of first base price
< Size of each base price record
Definition at line 980 of file newgrf.cpp.
Referenced by RailVehicleChangeInfo(), and RoadVehicleChangeInfo().
|
static |
Helper function to either create a callback or a result sprite group.
feature | GrfSpecFeature to define spritegroup for. |
setid | SetID of the currently being parsed Action2. (only for debug output) |
type | Type of the currently being parsed Action2. (only for debug output) |
spriteid | Raw value from the GRF for the new spritegroup; describes either the return value or the referenced spritegroup. |
Definition at line 5235 of file newgrf.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_spritegroup_pool >::CanAllocateItem(), GrfProcessingState::GetNumEnts(), GrfProcessingState::GetSprite(), HasBit(), GrfProcessingState::IsValidSpriteSet(), and GrfProcessingState::spriteid.
|
static |
Definition at line 9571 of file newgrf.cpp.
|
static |
Action 0x10 - Define goto label.
Definition at line 7915 of file newgrf.cpp.
References GrfProcessingState::file, RandomAccessFile::GetPos(), GrfProcessingState::grffile, GRFFile::labels, and GrfProcessingState::nfo_line.
Disable a GRF.
message | Error message or STR_NULL. |
config | GRFConfig to disable, nullptr for current. |
Definition at line 433 of file newgrf.cpp.
References ClearTemporaryNewGRFData(), GCS_DISABLED, GetFileByGRFID(), GrfProcessingState::grfconfig, GrfProcessingState::grffile, GrfProcessingState::nfo_line, and GrfProcessingState::skip_sprites.
Referenced by DisableStaticNewGRFInfluencingNonStaticNewGRFs(), FeatureTownName(), IndustriesChangeInfo(), IndustrytilesChangeInfo(), LoadNewGRFFileFromFile(), ParamSet(), ReadSpriteLayout(), ReadSpriteLayoutRegisters(), ReadSpriteLayoutSprite(), TownHouseChangeInfo(), and TranslateGRFStrings().
|
static |
Disable a static NewGRF when it is influencing another (non-static) NewGRF as this could cause desyncs.
We could just tell the NewGRF querying that the file doesn't exist, but that might give unwanted results. Disabling the NewGRF gives the best result as no NewGRF author can complain about that.
c | The NewGRF to disable. |
Definition at line 6896 of file newgrf.cpp.
References GRFError::data, DisableGrf(), GRFConfig::GetName(), and GrfProcessingState::grfconfig.
Referenced by ParamSet().
|
static |
Make sure there is at least one house available in the year 0 for the given climate / housezone combination.
bitmask | The climate and housezone to check for. Exactly one climate bit and one housezone bit should be set. |
Definition at line 9379 of file newgrf.cpp.
References HouseSpec::building_availability, HouseSpec::enabled, TimerGameConst< struct Calendar >::MAX_YEAR, HouseSpec::min_year, TimerGameConst< struct Calendar >::MIN_YEAR, and HouseSpec::Specs().
Referenced by FinaliseHouseArray().
|
static |
Definition at line 4977 of file newgrf.cpp.
|
static |
Definition at line 6215 of file newgrf.cpp.
|
static |
Definition at line 6324 of file newgrf.cpp.
|
static |
Action 0x0F - Define Town names.
Definition at line 7837 of file newgrf.cpp.
References AddGRFString(), NamePartList::bitcount, NamePartList::bitstart, ClrBit(), DisableGrf(), GB(), GrfProcessingState::grffile, HasBit(), NamePart::id, GRFTownName::MAX_LISTS, NamePartList::maxprob, GRFTownName::partlists, NamePartList::parts, NamePart::prob, GRFTownName::styles, NamePart::text, and TranslateTTDPatchCodes().
|
static |
Add all new airports to the airport array.
Airport properties can be set at any time in the GRF file, so we can only add a airport spec to the airport array after the file has finished loading.
Definition at line 9548 of file newgrf.cpp.
References _grf_files, and AirportSpec::enabled.
Referenced by AfterLoadGRFs().
|
static |
Set to use the correct action0 properties for each canal feature.
Definition at line 9225 of file newgrf.cpp.
References _water_feature.
Referenced by AfterLoadGRFs().
void FinaliseCargoArray | ( | ) |
Check for invalid cargoes.
Definition at line 9303 of file newgrf.cpp.
Referenced by AfterLoadGRFs().
|
static |
Check for invalid engines.
Definition at line 9236 of file newgrf.cpp.
References _loaded_newgrf_features, _settings_game, EngineInfo::climates, GameSettings::game_creation, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), GetEngineLiveryScheme(), Engine::GetGRF(), GetNewEngineID(), Engine::grf_prop, GRFFilePropsBase< Tcnt >::grffile, HasVariants, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_ENGINE, IsFolded, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Iterate(), GameCreationSettings::landscape, GRFFilePropsBase< Tcnt >::local_id, RAILVEH_WAGON, SetBit(), EngineInfo::string_id, EnumBitSet< Tenum, Tstorage >::Test(), Engine::type, GRFLoadedFeatures::used_liveries, EngineInfo::variant_id, and VEH_TRAIN.
Referenced by AfterLoadGRFs().
|
static |
Add all new houses to the house array.
House properties can be set at any time in the GRF file, so we can only add a house spec to the house array after the file has finished loading. We also need to check the dates, due to the TTDPatch behaviour described below that we need to emulate.
Definition at line 9404 of file newgrf.cpp.
References _grf_files, _settings_game, HouseSpec::accepts_cargo, HouseSpec::accepts_cargo_label, HouseSpec::building_flags, HouseSpec::cargo_acceptance, EnsureEarlyHouse(), RandomAccessFile::filename, GameSettings::game_creation, HouseSpec::Get(), HZ_SUBARTC_ABOVE, HZ_ZON1, HZ_ZON5, IsHouseSpecValid(), IsValidCargoType(), GameCreationSettings::landscape, lengthof, NUM_HOUSES, HouseOverrideManager::SetEntitySpec(), HouseSpec::Specs(), and to_underlying().
Referenced by AfterLoadGRFs().
|
static |
Add all new industries to the industry array.
Industry properties can be set at any time in the GRF file, so we can only add a industry spec to the industry array after the file has finished loading.
Definition at line 9482 of file newgrf.cpp.
References _grf_files, IndustrySpec::accepts_cargo, IndustryTileSpec::accepts_cargo, IndustrySpec::accepts_cargo_label, IndustryTileSpec::accepts_cargo_label, IndustrySpec::conflicting, IndustrySpec::enabled, GetActiveCargoLabel(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grfid, GRFFilePropsBase< Tcnt >::HasGrfFile(), IsValidCargoType(), MapNewGRFIndustryType(), IndustrySpec::name, IndustrySpec::produced_cargo_label, and IndustryOverrideManager::SetEntitySpec().
Referenced by AfterLoadGRFs().
|
static |
Add all new objects to the object array.
Object properties can be set at any time in the GRF file, so we can only add an object spec to the object array after the file has finished loading.
Definition at line 9530 of file newgrf.cpp.
References _grf_files, ObjectSpec::BindToClasses(), and ObjectOverrideManager::SetEntitySpec().
Referenced by AfterLoadGRFs().
|
static |
Decide whether price base multipliers of grfs shall apply globally or only to the grf specifying them.
Features, to which '_grf_id_overrides' applies. Currently vehicle features only.
Definition at line 9831 of file newgrf.cpp.
References _grf_files, Debug, PriceBaseSpec::fallback_price, RandomAccessFile::filename, find_index(), GetFileByGRFID(), PriceBaseSpec::grf_feature, GRFFile::grf_features, HasBit(), GRFFile::price_base_multipliers, and SetPriceBaseMultiplier().
Referenced by AfterLoadGRFs().
std::span< const Action5Type > GetAction5Types | ( | ) |
Get list of all action 5 types.
Definition at line 6501 of file newgrf.cpp.
References _action5_types.
Referenced by SpriteAlignerWindow::SetStringParameters().
|
static |
Find first cargo label that exists and is active from a list of cargo labels.
labels | List of cargo labels. |
Definition at line 8994 of file newgrf.cpp.
References CT_INVALID.
Referenced by CalculateRefitMasks(), FinaliseIndustriesArray(), and GetActiveCargoLabel().
|
static |
Get active cargo label from either a cargo label or climate-dependent mixed cargo type.
label | Cargo label or climate-dependent mixed cargo type. |
Definition at line 9008 of file newgrf.cpp.
References GetActiveCargoLabel(), MCT_GRAIN_WHEAT_MAIZE, MCT_LIVESTOCK_FRUIT, and MCT_VALUABLES_GOLD_DIAMONDS.
const std::vector< GRFFile * > & GetAllGRFFiles | ( | ) |
Definition at line 72 of file newgrf.cpp.
|
static |
Definition at line 5192 of file newgrf.cpp.
std::span< const CargoLabel > GetCargoTranslationTable | ( | const GRFFile & | grffile | ) |
Get the cargo translation table to use for the given GRF file.
grffile | GRF file. |
Definition at line 5625 of file newgrf.cpp.
References GRFFile::cargo_list, GetClimateDependentCargoTranslationTable(), and GetClimateIndependentCargoTranslationTable().
Referenced by BuildCargoTranslationMap().
|
static |
Get overridden GRF for current GRF if present.
Definition at line 609 of file newgrf.cpp.
References GetFileByGRFID(), and GrfProcessingState::grffile.
Referenced by LoadTranslationTable().
|
static |
Obtain a NewGRF file by its filename.
filename | The filename to obtain the file for. |
Definition at line 413 of file newgrf.cpp.
References _grf_files.
Referenced by InitNewGRFFile(), and LoadNewGRFFile().
|
static |
Obtain a NewGRF file by its grfID.
grfid | The grfID to obtain the file for |
Definition at line 400 of file newgrf.cpp.
References _grf_files.
Referenced by DisableGrf(), FinalisePriceBaseMultipliers(), GetCurrentGRFOverride(), LanguageMap::GetLanguageMap(), GetNewEngine(), ImportGRFSound(), LoadNewGRF(), and ParamSet().
bool GetGlobalVariable | ( | uint8_t | param, |
uint32_t * | value, | ||
const GRFFile * | grffile | ||
) |
Reads a variable common to VarAction2 and Action7/9/D.
Returns VarAction2 variable 'param' resp. Action7/9/D variable '0x80 + param'. If a variable is not accessible from all four actions, it is handled in the action specific functions.
param | variable number (as for VarAction2, for Action7/9/D you have to subtract 0x80 first). |
value | returns the value of the variable. |
grffile | NewGRF querying the variable |
Definition at line 6618 of file newgrf.cpp.
References _misc_grf_features, _settings_game, Clamp(), GameSettings::construction, TimerGameCalendar::ConvertDateToYMD(), TimerGameCalendar::ConvertYMDToDate(), TimerGameTick::counter, TimerGameCalendar::date, TimerGameCalendar::date_fract, TimerGameConst< struct Calendar >::DAYS_TILL_ORIGINAL_BASE_YEAR, VehicleSettings::disable_elrails, GameSettings::game_creation, GB(), GetRailTypeInfo(), GetSnowLine(), GMB_TRAIN_WIDTH_32_PIXELS, GrfProcessingState::grfconfig, GrfProcessingState::grffile, GRFP_USE_MASK, HasBit(), TimerGame< struct Calendar >::IsLeapYear(), GameCreationSettings::landscape, ConstructionSettings::map_height_limit, TimerGameConst< struct Calendar >::ORIGINAL_BASE_YEAR, TimerGameConst< struct Calendar >::ORIGINAL_MAX_YEAR, GRFConfig::palette, RAILTYPE_ELECTRIC, RAILTYPE_MAGLEV, RAILTYPE_MONO, RAILTYPE_RAIL, VehicleSettings::road_side, SB(), SetBit(), SP_CUSTOM, TILE_HEIGHT, to_underlying(), GRFFile::traininfo_vehicle_pitch, GRFFile::traininfo_vehicle_width, GameSettings::vehicle, and TimerGameCalendar::year.
|
static |
Definition at line 5215 of file newgrf.cpp.
|
static |
Returns the engine associated to a certain internal_id, resp.
allocates it.
file | NewGRF that wants to change the engine. |
type | Vehicle type. |
internal_id | Engine ID inside the NewGRF. |
static_access | If the engine is not present, return nullptr instead of allocating a new engine. (Used for static Action 0x04). |
Definition at line 627 of file newgrf.cpp.
References _engine_counts, _gted, _settings_game, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::CanAllocateItem(), VehicleSettings::dynamic_engines, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), GetFileByGRFID(), EngineOverrideManager::GetID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::GetPoolSize(), GetRailTypeInfo(), Engine::grf_prop, GRFFilePropsBase< Tcnt >::grffile, GRFFilePropsBase< Tcnt >::grfid, GRFFilePropsBase< Tcnt >::HasGrfFile(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_ENGINE, RailTypeInfo::label, RailVehicleInfo::railtype, EngineOverrideManager::UseUnreservedID(), VEH_TRAIN, and GameSettings::vehicle.
Referenced by AircraftVehicleChangeInfo(), RailVehicleChangeInfo(), RoadVehicleChangeInfo(), and ShipVehicleChangeInfo().
EngineID GetNewEngineID | ( | const GRFFile * | file, |
VehicleType | type, | ||
uint16_t | internal_id | ||
) |
Return the ID of a new engine.
file | The NewGRF file providing the engine. |
type | The Vehicle type. |
internal_id | NewGRF-internal ID of the engine. |
Definition at line 711 of file newgrf.cpp.
References _settings_game, VehicleSettings::dynamic_engines, EngineOverrideManager::GetID(), and GameSettings::vehicle.
Referenced by FinaliseEngineArray(), and GetNextArticulatedPart().
|
static |
Definition at line 6749 of file newgrf.cpp.
|
static |
Definition at line 7361 of file newgrf.cpp.
|
static |
Define properties for global variables.
first | ID of the first global var. |
last | ID of the last global var. |
prop | The property to change. |
buf | The property value. |
Definition at line 2784 of file newgrf.cpp.
References _currency_specs, _settings_game, AddStringForMapping(), GRFFile::cargo_list, CIR_SUCCESS, CIR_UNKNOWN, GameSettings::construction, CURRENCY_END, GB(), LanguagePackHeader::GetCaseIndex(), LanguagePackHeader::GetGenderIndex(), GetLanguage(), GetNewgrfCurrencyIdConverted(), GrfProcessingState::grffile, IsSnowLineSet(), GRFFile::language_map, ConstructionSettings::map_height_limit, MAX_LANG, MAX_NUM_CASES, MAX_NUM_GENDERS, LanguageMap::Mapping::newgrf_id, NFO_UTF8_IDENTIFIER, LanguageMap::Mapping::openttd_id, GRFFile::price_base_multipliers, GRFFile::railtype_list, ReadDWordAsString(), GRFFile::roadtype_list, SetSnowLine(), SNOW_LINE_DAYS, SNOW_LINE_MONTHS, StrMakeValid(), GRFFile::tramtype_list, and Utf8Decode().
|
static |
Definition at line 3007 of file newgrf.cpp.
|
static |
Definition at line 6507 of file newgrf.cpp.
|
static |
Definition at line 7329 of file newgrf.cpp.
|
static |
Definition at line 7113 of file newgrf.cpp.
|
static |
Definition at line 7814 of file newgrf.cpp.
|
static |
Definition at line 7221 of file newgrf.cpp.
void GrfMsgI | ( | int | severity, |
const std::string & | msg | ||
) |
Debug() function dedicated to newGRF debugging messages Function is essentially the same as Debug(grf, severity, ...) with the addition of file:line information when parsing grf files.
NOTE: for the above reason(s) GrfMsg() should ONLY be used for loading/parsing grf files, not for runtime debug messages as there is no file information available during that time.
severity | debugging severity level, see debug.h |
msg | the message |
Definition at line 390 of file newgrf.cpp.
References Debug, GRFConfig::filename, GrfProcessingState::grfconfig, and GrfProcessingState::nfo_line.
|
static |
Definition at line 7980 of file newgrf.cpp.
|
static |
Set the current NewGRF as unsafe for static use.
Definition at line 8637 of file newgrf.cpp.
References GRFConfig::flags, GrfProcessingState::grfconfig, EnumBitSet< Tenum, Tstorage >::Set(), GrfProcessingState::skip_sprites, and Unsafe.
|
static |
Definition at line 4947 of file newgrf.cpp.
|
static |
Handle the nodes of an Action14.
type | Type of node. |
id | ID. |
buf | Buffer. |
subtags | Allowed subtags. |
Definition at line 8559 of file newgrf.cpp.
References HandleNodes(), and SkipUnknownInfo().
Referenced by HandleNodes().
|
static |
Handle the contents of a 'C' choice of an Action14.
buf | Buffer. |
subtags | List of subtags. |
Definition at line 8612 of file newgrf.cpp.
References HandleNode().
Referenced by HandleNode(), HandleParameterInfo(), and StaticGRFInfo().
|
static |
Callback function for 'INFO'->'PARA' to set extra information about the parameters.
Each subnode of 'INFO'->'PARA' should be a branch node with the parameter number as id. The first parameter has id 0. The maximum parameter that can be changed is set by 'INFO'->'NPAR' which defaults to 80.
Definition at line 8468 of file newgrf.cpp.
References _cur_parameter, _tags_parameters, GrfProcessingState::grfconfig, HandleNodes(), GRFConfig::num_valid_params, GRFConfig::param_info, and SkipUnknownInfo().
|
static |
Ignore an industry property.
prop | The property to ignore. |
buf | The property value. |
Definition at line 3473 of file newgrf.cpp.
References CIR_SUCCESS, CIR_UNKNOWN, and INDUSTRY_ORIGINAL_NUM_INPUTS.
Referenced by IndustriesChangeInfo().
|
static |
Ignore an industry tile property.
prop | The property to ignore. |
buf | The property value. |
Definition at line 3298 of file newgrf.cpp.
References CIR_SUCCESS, and CIR_UNKNOWN.
Referenced by IndustrytilesChangeInfo().
|
static |
Ignore properties for objects.
prop | The property to ignore. |
buf | The property value. |
Definition at line 4124 of file newgrf.cpp.
References CIR_SUCCESS, and CIR_UNKNOWN.
Referenced by ObjectChangeInfo().
|
static |
Ignore properties for roadstops.
prop | The property to ignore. |
buf | The property value. |
Definition at line 4826 of file newgrf.cpp.
References CIR_SUCCESS, and CIR_UNKNOWN.
|
static |
Ignore a house property.
prop | Property to read. |
buf | Property value. |
Definition at line 2385 of file newgrf.cpp.
References CIR_SUCCESS, and CIR_UNKNOWN.
Referenced by TownHouseChangeInfo().
|
static |
Process a sound import from another GRF file.
sound | Destination for sound. |
Definition at line 7933 of file newgrf.cpp.
References GrfProcessingState::file, GetFileByGRFID(), RandomAccessFile::ReadDword(), and RandomAccessFile::ReadWord().
|
static |
Define properties for industries.
first | Local ID of the first industry. |
last | Local ID of the last industry. |
prop | The property to change. |
buf | The property value. |
Definition at line 3596 of file newgrf.cpp.
References _settings_game, OverrideManagerBase::Add(), AddStringForMapping(), CHECK_NOTHING, CIR_DISABLED, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, CT_INVALID, DisableGrf(), IndustrySpec::enabled, GameSettings::game_creation, GB(), GetCargoTranslation(), OverrideManagerBase::GetID(), GFX_WATERTILE_SPECIALCHECK, GrfProcessingState::grffile, IgnoreIndustryProperty(), INDUSTRY_ORIGINAL_NUM_INPUTS, INDUSTRY_ORIGINAL_NUM_OUTPUTS, INVALID_INDUSTRYTILE, GameCreationSettings::landscape, lengthof, NEW_INDUSTRYOFFSET, NUM_INDUSTRYTYPES_PER_GRF, GRFError::param_value, SB(), to_underlying(), ValidateIndustryLayout(), TileIndexDiffC::x, and TileIndexDiffC::y.
|
static |
Definition at line 5875 of file newgrf.cpp.
|
static |
Definition at line 5907 of file newgrf.cpp.
|
static |
Define properties for industry tiles.
first | Local ID of the first industry tile. |
last | Local ID of the last industry tile. |
prop | The property to change. |
buf | The property value. |
Definition at line 3338 of file newgrf.cpp.
References OverrideManagerBase::Add(), OverrideManagerBase::AddEntityID(), CIR_DISABLED, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, Clamp(), CT_INVALID, DisableGrf(), GB(), GetCargoTranslation(), GrfProcessingState::grffile, IgnoreIndustryTileProperty(), INDUSTRYTILE_NOANIM, NEW_INDUSTRYTILEOFFSET, NUM_INDUSTRYTILES_PER_GRF, and GRFError::param_value.
|
extern |
Allocate memory for the NewGRF town names.
Definition at line 81 of file newgrf_townname.cpp.
References GRFTownName::styles.
Referenced by AfterLoadGRFs().
|
static |
Initialize the TTDPatch flags.
Definition at line 8647 of file newgrf.cpp.
References _generating_world, _settings_game, _ttdpatch_flags, EconomySettings::allow_town_roads, ConstructionSettings::build_on_slopes, GameSettings::construction, VehicleSettings::disable_elrails, VehicleSettings::dynamic_engines, GameSettings::economy, VehicleSettings::freight_trains, OrderSettings::gradual_loading, OrderSettings::improved_load, EconomySettings::inflation, ConstructionSettings::max_bridge_length, StationSettings::never_expire_airports, VehicleSettings::never_expire_vehicles, GameSettings::order, GameSettings::station, EconomySettings::station_noise_level, ConstructionSettings::train_signal_side, GameSettings::vehicle, and VehicleSettings::wagon_speed_limits.
Referenced by LoadNewGRF().
|
static |
Prepare loading a NewGRF file with its config.
config | The NewGRF configuration struct with name, id, parameters and alike. |
Definition at line 8939 of file newgrf.cpp.
References _grf_files, GRFConfig::filename, GetFileByFilename(), and GrfProcessingState::grffile.
Referenced by LoadNewGRF().
|
static |
Check if a sprite ID range is within the GRM reversed range for the currently loading NewGRF.
first_sprite | First sprite of range. |
num_sprites | Number of sprites in the range. |
Definition at line 7149 of file newgrf.cpp.
References GrfProcessingState::grffile.
|
static |
Check if a given housespec is valid and disable it if it's not.
The housespecs that follow it are used to check the validity of multitile houses.
hs | The housespec to check. |
next1 | The housespec that follows hs . |
next2 | The housespec that follows next1 . |
next3 | The housespec that follows next2 . |
filename | The filename of the newgrf this house was defined in. |
Definition at line 9333 of file newgrf.cpp.
References EnumBitSet< Tenum, Tstorage >::Any(), HouseSpec::building_availability, HouseSpec::building_flags, Debug, HouseSpec::enabled, HouseSpec::Get(), HouseSpec::grf_prop, HZ_CLIMALL, HZ_ZONALL, GRFFilePropsBase< Tcnt >::local_id, and HouseSpec::population.
Referenced by FinaliseHouseArray().
|
static |
Definition at line 5669 of file newgrf.cpp.
|
inlinestatic |
Helper to check whether an image index is valid for a particular NewGRF vehicle.
T | The type of vehicle. |
image_index | The image index to check. |
Definition at line 208 of file newgrf.cpp.
|
static |
Action 0x12.
Definition at line 8085 of file newgrf.cpp.
References GrfProcessingState::file, LoadNextSprite(), GrfProcessingState::nfo_line, SetUnicodeGlyph(), and GrfProcessingState::spriteid.
|
static |
Load a sound from a file.
offs | File offset to read sound from. |
sound | Destination for sound. |
Definition at line 7964 of file newgrf.cpp.
References GrfProcessingState::file, SpriteFile::GetContainerVersion(), and SoundEntry::grf_container_ver.
void LoadNewGRF | ( | SpriteID | load_index, |
uint | num_baseset | ||
) |
Load all the NewGRFs.
load_index | The offset for the first sprite to add. |
num_baseset | Number of NewGRFs at the front of the list to look up in the baseset dir instead of the newgrf dir. |
Definition at line 10070 of file newgrf.cpp.
References _display_opt, _grfconfig, _networking, _settings_game, AfterLoadGRFs(), BASESET_DIR, BuildCargoTranslationMap(), GrfProcessingState::ClearDataForNextFile(), ClearTemporaryNewGRFData(), TimerGameCalendar::ConvertYMDToDate(), TimerGameEconomy::ConvertYMDToDate(), TimerGameTick::counter, TimerGameCalendar::date, TimerGameEconomy::date, TimerGameCalendar::date_fract, TimerGameEconomy::date_fract, Debug, GRFConfig::error, GRFConfig::filename, FioCheckFileExists(), GRFConfig::flags, GameSettings::game_creation, GCS_ACTIVATED, GCS_DISABLED, GCS_INITIALISED, GCS_NOT_FOUND, GCS_UNKNOWN, GetFileByGRFID(), GrfProcessingState::grffile, GRFIdentifier::grfid, GRFConfig::ident, InitializeGRFSpecial(), InitNewGRFFile(), InitOnly, LoadNewGRFFile(), NETWORK_MAX_GRF_COUNT, NEWGRF_DIR, Reserved, EnumBitSet< Tenum, Tstorage >::Reset(), ResetNewGRFData(), EnumBitSet< Tenum, Tstorage >::Set(), SetNewGRFOverride(), GrfProcessingState::spriteid, GrfProcessingState::stage, GameCreationSettings::starting_year, Static, GRFConfig::status, System, EnumBitSet< Tenum, Tstorage >::Test(), TimerGameCalendar::year, and TimerGameEconomy::year.
void LoadNewGRFFile | ( | GRFConfig & | config, |
GrfLoadingStage | stage, | ||
Subdirectory | subdir, | ||
bool | temporary | ||
) |
Load a particular NewGRF.
config | The configuration of the to be loaded NewGRF. |
stage | The loading stage of the NewGRF. |
subdir | The sub directory to find the NewGRF in. |
temporary | The NewGRF/sprite file is to be loaded temporarily and should be closed immediately, contrary to loading the SpriteFile and having it cached by the SpriteCache. |
Definition at line 9743 of file newgrf.cpp.
References GRFConfig::filename, GRFConfig::flags, GCS_INITIALISED, GetFileByFilename(), GrfProcessingState::grffile, GRFP_USE_MASK, LoadNewGRFFileFromFile(), OpenCachedSpriteFile(), GRFConfig::palette, Reserved, GRFConfig::status, and EnumBitSet< Tenum, Tstorage >::Test().
Referenced by FillGRFDetails(), and LoadNewGRF().
|
static |
Load a particular NewGRF from a SpriteFile.
config | The configuration of the to be loaded NewGRF. |
stage | The loading stage of the NewGRF. |
file | The file to load the GRF data from. |
Definition at line 9654 of file newgrf.cpp.
References ReusableBuffer< T >::Allocate(), GrfProcessingState::ClearDataForNextFile(), Debug, DisableGrf(), GrfProcessingState::file, GRFConfig::filename, SpriteFile::GetContainerVersion(), GrfProcessingState::grfconfig, GrfProcessingState::nfo_line, RandomAccessFile::ReadByte(), RandomAccessFile::ReadDword(), ReadGRFSpriteOffsets(), RandomAccessFile::ReadWord(), GrfProcessingState::skip_sprites, RandomAccessFile::SkipBytes(), and SkipSpriteData().
Referenced by LoadNewGRFFile().
|
static |
Load a cargo- or railtype-translation table.
first | ID of the first translation table entry. |
last | ID of the last translation table entry. |
buf | The property value. |
gettable | Function to get storage for the translation table. |
name | Name of the table for debug output. |
Definition at line 2738 of file newgrf.cpp.
References CIR_INVALID_ID, CIR_SUCCESS, GetCurrentGRFOverride(), and GrfProcessingState::grffile.
StringID MapGRFStringID | ( | uint32_t | grfid, |
GRFStringID | str | ||
) |
Used when setting an object's property to map to the GRF's strings while taking in consideration the "drift" between TTDPatch string system and OpenTTD's one.
grfid | Id of the grf file. |
str | StringID that we want to have the equivalent in OoenTTD. |
Definition at line 560 of file newgrf.cpp.
References GetGRFStringID(), IsInsideMM(), and TTDPStringIDToOTTDStringIDMapping().
Referenced by AfterLoadGRFs(), ChangeIndustryProduction(), RemapNewGRFStringControlCode(), and TranslateTTDPatchCodes().
|
static |
Map the colour modifiers of TTDPatch to those that Open is using.
grf_sprite | Pointer to the structure been modified. |
Definition at line 728 of file newgrf.cpp.
References ClrBit(), HasBit(), PalSpriteID::pal, PALETTE_MODIFIER_COLOUR, PALETTE_MODIFIER_TRANSPARENT, SetBit(), PalSpriteID::sprite, and SPRITE_MODIFIER_OPAQUE.
Referenced by BridgeChangeInfo(), and ReadSpriteLayoutSprite().
|
static |
Definition at line 5255 of file newgrf.cpp.
|
static |
Definition at line 5124 of file newgrf.cpp.
|
static |
Define properties for objects.
first | Local ID of the first object. |
last | Local ID of the last object. |
prop | The property to change. |
buf | The property value. |
Definition at line 4171 of file newgrf.cpp.
References _loaded_newgrf_features, AddStringForMapping(), NewGRFClass< Tspec, Tindex, Tmax >::Allocate(), CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, GB(), NewGRFClass< Tspec, Tindex, Tmax >::Get(), GrfProcessingState::grffile, GRFLoadedFeatures::has_2CC, IgnoreObjectProperty(), NewGRFClass< Tspec, Tindex, Tmax >::name, NUM_OBJECTS_PER_GRF, OBJECT_SIZE_1X1, and Uses2CC.
|
static |
Definition at line 5966 of file newgrf.cpp.
|
static |
Action 0x0D: Set parameter.
Definition at line 7487 of file newgrf.cpp.
References _engine_counts, _engine_offsets, _grm_cargoes, _grm_engines, _misc_grf_features, _networking, _settings_game, ClrBit(), RailTypeInfo::cost_multiplier, VehicleSettings::disable_elrails, DisableGrf(), DisableStaticNewGRFInfluencingNonStaticNewGRFs(), VehicleSettings::dynamic_engines, GRFConfig::flags, GB(), GCS_DISABLED, GetFileByGRFID(), GetGRFConfig(), GRFFile::GetParam(), GMB_TRAIN_WIDTH_32_PIXELS, GrfProcessingState::grfconfig, GrfProcessingState::grffile, HasBit(), GrfProcessingState::nfo_line, NUM_CARGO, RAILTYPE_ELECTRIC, RAILTYPE_END, RAILTYPE_MAGLEV, RAILTYPE_MONO, RAILTYPE_RAIL, SetBit(), GrfProcessingState::skip_sprites, GrfProcessingState::spriteid, GrfProcessingState::stage, Static, GRFConfig::status, EnumBitSet< Tenum, Tstorage >::Test(), GRFFile::traininfo_vehicle_pitch, GRFFile::traininfo_vehicle_width, GameSettings::vehicle, and GRFConfig::version.
|
static |
Definition at line 7439 of file newgrf.cpp.
|
static |
Define properties for railtypes.
first | Local ID of the first railtype. |
last | Local ID of the last railtype. |
prop | The property to change. |
buf | The property value. |
Definition at line 4301 of file newgrf.cpp.
References RailTypeInfo::acceleration_type, AddStringForMapping(), RailTypeInfo::build_caption, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, Clamp(), RailTypeInfo::compatible_railtypes, RailTypeInfo::cost_multiplier, RailTypeInfo::curve_speed, RailTypeInfo::fallback_railtype, RailTypeInfo::flags, GetRailTypeByLabel(), GrfProcessingState::grffile, RailTypeInfo::introduces_railtypes, RailTypeInfo::introduction_date, RailTypeInfo::introduction_required_railtypes, INVALID_RAILTYPE, RailTypeInfo::maintenance_multiplier, RailTypeInfo::map_colour, RailTypeInfo::max_speed, RailTypeInfo::menu_text, RailTypeInfo::name, RailTypeInfo::new_loco, RailTypeInfo::powered_railtypes, RAILTYPE_END, RailTypeInfo::replace_text, SetBit(), RailTypeInfo::sorting_order, RailTypeInfo::strings, and RailTypeInfo::toolbar_caption.
|
static |
Definition at line 6026 of file newgrf.cpp.
|
static |
Definition at line 4431 of file newgrf.cpp.
|
static |
Define properties for rail vehicles.
first | Local ID of the first vehicle. |
last | Local ID of the last vehicle. |
prop | The property to change. |
buf | The property value. |
Definition at line 1060 of file newgrf.cpp.
References _gted, _loaded_newgrf_features, RailVehicleInfo::ai_passenger_only, RailVehicleInfo::air_drag, AlterVehicleListOrder(), EnumBitSet< Tenum, Tstorage >::base(), EngineInfo::base_intro, EngineInfo::callback_mask, RailVehicleInfo::capacity, EngineInfo::cargo_age_period, CIR_INVALID_ID, CIR_SUCCESS, CommonVehicleChangeInfo(), ConvertTTDBasePrice(), RailVehicleInfo::cost_factor, CT_INVALID, RailVehicleInfo::curve_speed_mod, EC_DIESEL, EC_ELECTRIC, EC_MAGLEV, EC_MONORAIL, EC_STEAM, RailVehicleInfo::engclass, GetCargoTranslation(), GetNewEngine(), GrfProcessingState::grffile, GRFLoadedFeatures::has_2CC, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsValidCargoType(), RailVehicleInfo::max_speed, EngineInfo::misc_flags, RailVehicleInfo::pow_wag_power, RailVehicleInfo::pow_wag_weight, RailVehicleInfo::power, PROP_TRAIN_CARGO_AGE_PERIOD, PROP_TRAIN_CARGO_CAPACITY, PROP_TRAIN_COST_FACTOR, PROP_TRAIN_CURVE_SPEED_MOD, PROP_TRAIN_POWER, PROP_TRAIN_RUNNING_COST_FACTOR, PROP_TRAIN_SHORTEN_FACTOR, PROP_TRAIN_SPEED, PROP_TRAIN_TRACTIVE_EFFORT, PROP_TRAIN_USER_DATA, PROP_TRAIN_WEIGHT, GRFFile::railtype_list, RAILVEH_MULTIHEAD, RAILVEH_SINGLEHEAD, RAILVEH_WAGON, EngineInfo::retire_early, RailVehicleInfo::running_cost, SB(), SetBit(), RailVehicleInfo::shorten_factor, EnumBitSet< Tenum, Tstorage >::Test(), RailVehicleInfo::tractive_effort, TranslateRefitMask(), RailVehicleInfo::user_def_data, Uses2CC, EngineInfo::variant_id, VE_DEFAULT, VE_DISABLE_EFFECT, VE_TYPE_COUNT, VE_TYPE_START, VEH_TRAIN, RailVehicleInfo::visual_effect, and RailVehicleInfo::weight.
|
static |
Helper to read a DWord worth of bytes from the reader and to return it as a valid string.
reader | The source of the DWord. |
Definition at line 2769 of file newgrf.cpp.
References StrMakeValid().
Referenced by GlobalVarChangeInfo().
|
static |
Read a spritelayout from the GRF.
buf | Input |
num_building_sprites | Number of building sprites to read |
use_cur_spritesets | Whether to use currently referenceable action 1 sets. |
feature | GrfSpecFeature to use spritesets from. |
allow_var10 | Whether the spritelayout may specify var10 values for resolving multiple action-1-2-3 chains |
no_z_position | Whether bounding boxes have no Z offset |
dts | Layout container to output into |
Definition at line 870 of file newgrf.cpp.
References NewGRFSpriteLayout::Allocate(), NewGRFSpriteLayout::AllocateRegisters(), ClrBit(), NewGRFSpriteLayout::consistent_max_offset, DrawTileSeqStruct::delta_x, DrawTileSeqStruct::delta_z, DisableGrf(), DrawTileSprites::ground, HasBit(), DrawTileSeqStruct::IsParentSprite(), TileLayoutRegisters::max_palette_offset, TileLayoutRegisters::max_sprite_offset, ReadSpriteLayoutRegisters(), ReadSpriteLayoutSprite(), DrawTileSprites::seq, GrfProcessingState::skip_sprites, TLF_KNOWN_FLAGS, and TLF_NON_GROUND_FLAGS.
Referenced by StationChangeInfo().
|
static |
Preprocess the TileLayoutFlags and read register modifiers from the GRF.
buf | Input stream. |
flags | TileLayoutFlags to process. |
is_parent | Whether the sprite is a parentsprite with a bounding box. |
dts | Sprite layout to insert data into. |
index | Sprite index to process; 0 for ground sprite. |
Definition at line 817 of file newgrf.cpp.
References NewGRFSpriteLayout::AllocateRegisters(), TileLayoutRegisters::child, DisableGrf(), TileLayoutRegisters::dodraw, TileLayoutRegisters::flags, TileLayoutRegisters::palette, TileLayoutRegisters::palette_var10, TileLayoutRegisters::parent, TileLayoutRegisters::sprite, TileLayoutRegisters::sprite_var10, TLF_BB_XY_OFFSET, TLF_BB_Z_OFFSET, TLF_CHILD_X_OFFSET, TLF_CHILD_Y_OFFSET, TLF_DODRAW, TLF_DRAWING_FLAGS, TLF_PALETTE, TLF_PALETTE_VAR10, TLF_SPRITE, TLF_SPRITE_VAR10, and TLR_MAX_VAR10.
Referenced by ReadSpriteLayout().
|
static |
Read a sprite and a palette from the GRF and convert them into a format suitable to OpenTTD.
buf | Input stream. | |
read_flags | Whether to read TileLayoutFlags. | |
invert_action1_flag | Set to true, if palette bit 15 means 'not from action 1'. | |
use_cur_spritesets | Whether to use currently referenceable action 1 sets. | |
feature | GrfSpecFeature to use spritesets from. | |
[out] | grf_sprite | Read sprite and palette. |
[out] | max_sprite_offset | Optionally returns the number of sprites in the spriteset of the sprite. (0 if no spritset) |
[out] | max_palette_offset | Optionally returns the number of sprites in the spriteset of the palette. (0 if no spritset) |
Definition at line 759 of file newgrf.cpp.
References ClrBit(), DisableGrf(), GB(), GrfProcessingState::GetNumEnts(), GrfProcessingState::GetSprite(), HasBit(), GrfProcessingState::IsValidSpriteSet(), MapSpriteMappingRecolour(), PalSpriteID::pal, SB(), SetBit(), PalSpriteID::sprite, SPRITE_MODIFIER_CUSTOM_SPRITE, SPRITE_WIDTH, TLF_CUSTOM_PALETTE, TLF_PALETTE_REG_FLAGS, TLF_PALETTE_VAR10, TLF_SPRITE_REG_FLAGS, and TLF_SPRITE_VAR10.
Referenced by ReadSpriteLayout(), and StationChangeInfo().
|
static |
Definition at line 5082 of file newgrf.cpp.
|
static |
Reset and clear all NewGRF airports.
Definition at line 8752 of file newgrf.cpp.
References _grf_files.
Referenced by ResetNewGRFData().
|
static |
Reset and clear all NewGRF houses.
Definition at line 8744 of file newgrf.cpp.
References _grf_files.
Referenced by ResetNewGRFData().
|
static |
Reset and clear all NewGRF industries.
Definition at line 8761 of file newgrf.cpp.
References _grf_files.
Referenced by ResetNewGRFData().
|
static |
Reset and clear all NewObjects.
Definition at line 8770 of file newgrf.cpp.
References _grf_files.
Referenced by ResetNewGRFData().
|
static |
Definition at line 8777 of file newgrf.cpp.
|
static |
Reset and clear all NewGRF stations.
Definition at line 8736 of file newgrf.cpp.
References _grf_files.
Referenced by ResetNewGRFData().
|
static |
Reset and clear all NewGRFs.
Definition at line 8785 of file newgrf.cpp.
References _grf_files, and GrfProcessingState::grffile.
Referenced by ResetNewGRFData().
void ResetNewGRFData | ( | ) |
Reset all NewGRF loaded data.
Definition at line 8806 of file newgrf.cpp.
References _cached_callback_groups, _grm_cargoes, _grm_engines, _gted, _loaded_newgrf_features, _misc_grf_features, _settings_game, _water_feature, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::CleanPool(), CleanUpStrings(), ClearSnowLine(), GameSettings::game_creation, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::GetPoolSize(), GetRailTypeInfo(), GRFLoadedFeatures::has_2CC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Engine::IterateType(), RailTypeInfo::label, GameCreationSettings::landscape, RailVehicleInfo::railtype, NewGRFClass< Tspec, Tindex, Tmax >::Reset(), AirportSpec::ResetAirports(), AirportTileSpec::ResetAirportTiles(), ResetBridges(), ResetCurrencies(), ResetCustomAirports(), ResetCustomHouses(), ResetCustomIndustries(), ResetCustomObjects(), ResetCustomStations(), ResetGenericCallbacks(), ResetIndustries(), ResetNewGRF(), ResetNewGRFErrors(), ResetObjects(), ResetPriceBaseMultipliers(), ResetRailTypes(), ResetRoadTypes(), SetupCargoForClimate(), SetupEngines(), GRFLoadedFeatures::shore, SHORE_REPLACE_NONE, GRFLoadedFeatures::tram, TRAMWAY_REPLACE_DEPOT_NONE, GRFLoadedFeatures::used_liveries, and VEH_TRAIN.
Referenced by LoadNewGRF(), and ShutdownGame().
|
static |
Clear all NewGRF errors.
Definition at line 8796 of file newgrf.cpp.
References _grfconfig, and GRFConfig::error.
Referenced by ResetNewGRFData().
void ResetPersistentNewGRFData | ( | ) |
Reset NewGRF data which is stored persistently in savegames.
Definition at line 8905 of file newgrf.cpp.
References OverrideManagerBase::ResetMapping(), and EngineOverrideManager::ResetToDefaultMapping().
|
static |
Definition at line 4860 of file newgrf.cpp.
|
static |
Definition at line 6156 of file newgrf.cpp.
|
static |
Definition at line 4636 of file newgrf.cpp.
|
static |
Define properties for roadtypes.
first | Local ID of the first roadtype. |
last | Local ID of the last roadtype. |
prop | The property to change. |
buf | The property value. |
Definition at line 4519 of file newgrf.cpp.
References AddStringForMapping(), RoadTypeInfo::build_caption, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, RoadTypeInfo::cost_multiplier, RoadTypeInfo::flags, GetRoadTypeByLabel(), GrfProcessingState::grffile, RoadTypeInfo::introduces_roadtypes, RoadTypeInfo::introduction_date, RoadTypeInfo::introduction_required_roadtypes, INVALID_ROADTYPE, RoadTypeInfo::maintenance_multiplier, RoadTypeInfo::map_colour, RoadTypeInfo::max_speed, RoadTypeInfo::menu_text, RoadTypeInfo::name, RoadTypeInfo::new_engine, RoadTypeInfo::powered_roadtypes, RoadTypeInfo::replace_text, ROADTYPE_END, SetBit(), RoadTypeInfo::sorting_order, RoadTypeInfo::strings, and RoadTypeInfo::toolbar_caption.
|
static |
Definition at line 6058 of file newgrf.cpp.
|
static |
Definition at line 4725 of file newgrf.cpp.
|
static |
Definition at line 4647 of file newgrf.cpp.
|
static |
Define properties for road vehicles.
first | Local ID of the first vehicle. |
last | Local ID of the last vehicle. |
prop | The property to change. |
buf | The property value. |
Definition at line 1374 of file newgrf.cpp.
References _gted, _loaded_newgrf_features, RoadVehicleInfo::air_drag, AlterVehicleListOrder(), EnumBitSet< Tenum, Tstorage >::base(), EngineInfo::base_intro, EngineInfo::callback_mask, EngineInfo::cargo_age_period, CIR_INVALID_ID, CIR_SUCCESS, CommonVehicleChangeInfo(), ConvertTTDBasePrice(), CT_INVALID, GetCargoTranslation(), GetNewEngine(), GetNewGRFSoundID(), GrfProcessingState::grffile, GRFLoadedFeatures::has_2CC, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsValidCargoType(), RoadVehicleInfo::max_speed, EngineInfo::misc_flags, RoadVehicleInfo::power, PROP_ROADVEH_CARGO_AGE_PERIOD, PROP_ROADVEH_CARGO_CAPACITY, PROP_ROADVEH_COST_FACTOR, PROP_ROADVEH_POWER, PROP_ROADVEH_RUNNING_COST_FACTOR, PROP_ROADVEH_SHORTEN_FACTOR, PROP_ROADVEH_SPEED, PROP_ROADVEH_TRACTIVE_EFFORT, PROP_ROADVEH_WEIGHT, EngineInfo::retire_early, SB(), SetBit(), RoadVehicleInfo::shorten_factor, EnumBitSet< Tenum, Tstorage >::Test(), RoadVehicleInfo::tractive_effort, TranslateRefitMask(), Uses2CC, EngineInfo::variant_id, VE_DEFAULT, VE_DISABLE_EFFECT, VE_TYPE_COUNT, VE_TYPE_START, VEH_ROAD, RoadVehicleInfo::visual_effect, and RoadVehicleInfo::weight.
|
static |
Definition at line 5045 of file newgrf.cpp.
|
static |
Definition at line 7789 of file newgrf.cpp.
|
static |
Definition at line 7342 of file newgrf.cpp.
|
static |
Sanitize incoming sprite offsets for Action 5 graphics replacements.
num | The number of sprites to load. |
offset | Offset from the base. |
max_sprites | The maximum number of sprites that can be loaded in this action 5. |
name | Used for error warnings. |
Definition at line 6445 of file newgrf.cpp.
|
static |
Definition at line 7085 of file newgrf.cpp.
|
static |
Set the override for a NewGRF.
source_grfid | The grfID which wants to override another NewGRF. |
target_grfid | The grfID which is being overridden. |
Definition at line 594 of file newgrf.cpp.
Referenced by LoadNewGRF().
|
static |
Define properties for ships.
first | Local ID of the first vehicle. |
last | Local ID of the last vehicle. |
prop | The property to change. |
buf | The property value. |
Definition at line 1585 of file newgrf.cpp.
References _gted, _loaded_newgrf_features, ShipVehicleInfo::acceleration, AlterVehicleListOrder(), EnumBitSet< Tenum, Tstorage >::base(), EngineInfo::base_intro, EngineInfo::callback_mask, ShipVehicleInfo::canal_speed_frac, EngineInfo::cargo_age_period, CIR_INVALID_ID, CIR_SUCCESS, CommonVehicleChangeInfo(), CT_INVALID, GetCargoTranslation(), GetNewEngine(), GetNewGRFSoundID(), GrfProcessingState::grffile, GRFLoadedFeatures::has_2CC, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsValidCargoType(), ShipVehicleInfo::max_speed, EngineInfo::misc_flags, ShipVehicleInfo::ocean_speed_frac, ShipVehicleInfo::old_refittable, PROP_SHIP_CARGO_AGE_PERIOD, PROP_SHIP_CARGO_CAPACITY, PROP_SHIP_COST_FACTOR, PROP_SHIP_RUNNING_COST_FACTOR, PROP_SHIP_SPEED, EngineInfo::retire_early, SB(), SetBit(), EnumBitSet< Tenum, Tstorage >::Test(), TranslateRefitMask(), Uses2CC, EngineInfo::variant_id, VE_DEFAULT, VE_DISABLE_EFFECT, VE_TYPE_COUNT, VE_TYPE_START, VEH_SHIP, and ShipVehicleInfo::visual_effect.
|
static |
Definition at line 5171 of file newgrf.cpp.
|
static |
Definition at line 8073 of file newgrf.cpp.
|
static |
Action 0x12 (SKIP)
Definition at line 8116 of file newgrf.cpp.
References GrfProcessingState::skip_sprites.
|
static |
Definition at line 6596 of file newgrf.cpp.
|
static |
Definition at line 7206 of file newgrf.cpp.
|
static |
Definition at line 6904 of file newgrf.cpp.
|
static |
Try to skip the current node and all subnodes (if it's a branch node).
buf | Buffer. |
type | The node type to skip. |
Definition at line 8519 of file newgrf.cpp.
References SkipUnknownInfo().
Referenced by ChangeGRFParamValueNames(), HandleNode(), HandleParameterInfo(), and SkipUnknownInfo().
|
static |
Define properties for sound effects.
first | Local ID of the first sound. |
last | Local ID of the last sound. |
prop | The property to change. |
buf | The property value. |
Definition at line 3243 of file newgrf.cpp.
References CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, Clamp(), GrfProcessingState::grffile, and ORIGINAL_SAMPLE_COUNT.
|
static |
Definition at line 7159 of file newgrf.cpp.
|
static |
Handle Action 0x14.
buf | Buffer. |
Definition at line 8627 of file newgrf.cpp.
References _tags_root, and HandleNodes().
|
static |
Define properties for stations.
first | Local ID of the first station. |
last | Local ID of the last station. |
prop | The property to change. |
buf | The property value. |
Definition at line 1957 of file newgrf.cpp.
References AddStringForMapping(), NewGRFClass< Tspec, Tindex, Tmax >::Allocate(), StationSpec::Blocked, CIR_DISABLED, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, NewGRFSpriteLayout::Clone(), NewGRFSpriteLayout::consistent_max_offset, DrawTileSeqStruct::delta_x, DrawTileSeqStruct::delta_z, NewGRFClass< Tspec, Tindex, Tmax >::Get(), GetStationLayoutKey(), GrfProcessingState::grffile, DrawTileSprites::ground, HasBit(), DrawTileSeqStruct::IsTerminator(), StationSpec::layouts, MemSetT(), NewGRFClass< Tspec, Tindex, Tmax >::name, StationSpec::NoWires, NUM_STATIONS_PER_GRF, StationSpec::Pylons, ReadSpriteLayout(), ReadSpriteLayoutSprite(), StationSpec::renderdata, GrfProcessingState::skip_sprites, and TranslateRefitMask().
|
static |
Definition at line 5784 of file newgrf.cpp.
|
static |
Define properties for houses.
first | Local ID of the first house. |
last | Local ID of the last house. |
prop | The property to change. |
buf | The property value. |
Definition at line 2452 of file newgrf.cpp.
References _settings_game, abs(), OverrideManagerBase::Add(), AddStringForMapping(), CIR_DISABLED, CIR_INVALID_ID, CIR_SUCCESS, CIR_UNKNOWN, Clamp(), CT_INVALID, DisableGrf(), HouseSpec::enabled, GameSettings::game_creation, GB(), HouseSpec::Get(), GetCargoTranslation(), GrfProcessingState::grffile, HOUSE_ORIGINAL_NUM_ACCEPTS, IgnoreTownHouseProperty(), IsValidCargoType(), GameCreationSettings::landscape, lengthof, TimerGameConst< struct Calendar >::MAX_YEAR, NEW_HOUSE_OFFSET, NUM_HOUSES_PER_GRF, TimerGameConst< struct Calendar >::ORIGINAL_BASE_YEAR, GRFError::param_value, SB(), and SetBit().
|
static |
Definition at line 5843 of file newgrf.cpp.
|
static |
Definition at line 4641 of file newgrf.cpp.
|
static |
Definition at line 4730 of file newgrf.cpp.
|
static |
Definition at line 5637 of file newgrf.cpp.
|
static |
Action 0x13.
Definition at line 8142 of file newgrf.cpp.
References AddGRFString(), GRFError::data, DisableGrf(), GCS_ACTIVATED, GCS_INITIALISED, GetGRFConfig(), GetString(), GrfProcessingState::grffile, and GRFConfig::status.
|
static |
Translate the refit mask.
refit_mask is uint32_t as it has not been mapped to CargoTypes.
Definition at line 963 of file newgrf.cpp.
References GetCargoTranslation(), GrfProcessingState::grffile, IsValidCargoType(), and SetBit().
Referenced by AircraftVehicleChangeInfo(), RailVehicleChangeInfo(), RoadVehicleChangeInfo(), ShipVehicleChangeInfo(), and StationChangeInfo().
|
static |
Perform a mapping from TTDPatch's string IDs to OpenTTD's string IDs, but only for the ones we are aware off; the rest like likely unused and will show a warning.
str | Grf-local GRFStringID to convert. |
Definition at line 496 of file newgrf.cpp.
References Debug, and IsInsideMM().
Referenced by MapGRFStringID().
|
static |
Validate the industry layout; e.g.
to prevent duplicate tiles.
layout | The layout to check. |
Definition at line 3563 of file newgrf.cpp.
References GFX_WATERTILE_SPECIALCHECK.
Referenced by IndustriesChangeInfo().
|
static |
Definition at line 5679 of file newgrf.cpp.
|
staticconstexpr |
The information about action 5 types.
Definition at line 6467 of file newgrf.cpp.
Referenced by GetAction5Types().
|
static |
Sorted list of cached callback result spritegroups.
Definition at line 5190 of file newgrf.cpp.
Referenced by AfterLoadGRFs(), and ResetNewGRFData().
|
static |
Definition at line 198 of file newgrf.cpp.
|
static |
The parameter which info is currently changed by the newgrf.
Definition at line 8308 of file newgrf.cpp.
Referenced by ChangeGRFParamDefault(), ChangeGRFParamDescription(), ChangeGRFParamLimits(), ChangeGRFParamMask(), ChangeGRFParamName(), ChangeGRFParamType(), ChangeGRFParamValueNames(), and HandleParameterInfo().
|
static |
List of all loaded GRF files.
Definition at line 70 of file newgrf.cpp.
Referenced by FinaliseAirportsArray(), FinaliseHouseArray(), FinaliseIndustriesArray(), FinaliseObjectsArray(), FinalisePriceBaseMultipliers(), GetFileByFilename(), GetFileByGRFID(), InitNewGRFFile(), ResetCustomAirports(), ResetCustomHouses(), ResetCustomIndustries(), ResetCustomObjects(), ResetCustomStations(), and ResetNewGRF().
|
static |
Definition at line 587 of file newgrf.cpp.
|
static |
Definition at line 378 of file newgrf.cpp.
|
static |
Contains the GRF ID of the owner of a cargo if it has been reserved.
Definition at line 357 of file newgrf.cpp.
Referenced by ParamSet(), and ResetNewGRFData().
|
static |
Contains the GRF ID of the owner of a vehicle if it has been reserved.
GRM for vehicles is only used if dynamic engine allocation is disabled, so 256 is the number of original engines.
Definition at line 354 of file newgrf.cpp.
Referenced by ParamSet(), and ResetNewGRFData().
|
static |
Definition at line 376 of file newgrf.cpp.
|
static |
Temporary engine data used during NewGRF loading.
Definition at line 348 of file newgrf.cpp.
Referenced by AfterLoadGRFs(), AircraftVehicleChangeInfo(), CalculateRefitMasks(), GetNewEngine(), RailVehicleChangeInfo(), ResetNewGRFData(), RoadVehicleChangeInfo(), and ShipVehicleChangeInfo().
GRFLoadedFeatures _loaded_newgrf_features |
Indicates which are the newgrf features currently loaded ingame.
Definition at line 84 of file newgrf.cpp.
Referenced by ActivateOldShore(), ActivateOldTramDepot(), AircraftVehicleChangeInfo(), DrawRoadDepotSprite(), DrawTile_Road(), SelectCompanyLiveryWindow::DrawWidget(), FinaliseEngineArray(), ObjectChangeInfo(), SelectCompanyLiveryWindow::OnClick(), SelectCompanyLiveryWindow::OnDropdownSelect(), SelectCompanyLiveryWindow::OnInvalidateData(), RailVehicleChangeInfo(), ResetNewGRFData(), RoadVehicleChangeInfo(), ShipVehicleChangeInfo(), and SelectCompanyLiveryWindow::UpdateWidgetSize().
uint8_t _misc_grf_features = 0 |
Miscellaneous GRF features, set by Action 0x0D, parameter 0x9E.
Definition at line 78 of file newgrf.cpp.
Referenced by GetGlobalVariable(), HasGrfMiscBit(), ParamSet(), and ResetNewGRFData().
|
static |
Strings to be mapped during load.
Definition at line 466 of file newgrf.cpp.
Referenced by AddStringForMapping(), and AfterLoadGRFs().
|
staticconstexpr |
Action14 tags for the INFO node.
Definition at line 8495 of file newgrf.cpp.
|
staticconstexpr |
Action14 parameter tags.
Definition at line 8452 of file newgrf.cpp.
Referenced by HandleParameterInfo().
|
staticconstexpr |
Action14 root tags.
Definition at line 8508 of file newgrf.cpp.
Referenced by StaticGRFInfo().
|
static |
32 * 8 = 256 flags.
Apparently TTDPatch uses this many..
Definition at line 81 of file newgrf.cpp.
Referenced by InitializeGRFSpecial().
|
static |
Maximum GRF-local ID for a spritegroup.
Definition at line 86 of file newgrf.cpp.
|
static |
The maximum amount of stations a single GRF is allowed to add.
Definition at line 312 of file newgrf.cpp.
Referenced by StationChangeInfo().