OpenTTD
|
Base for the NewGRF implementation. More...
#include "cargotype.h"
#include "rail_type.h"
#include "fileio_type.h"
#include "core/bitmath_func.hpp"
#include "core/alloc_type.hpp"
#include "core/smallvec_type.hpp"
Go to the source code of this file.
Data Structures | |
struct | CanalProperties |
Canal properties local to the NewGRF. More... | |
struct | GRFLabel |
struct | GRFFile |
Dynamic data of a loaded NewGRF. More... | |
struct | GRFLoadedFeatures |
Enumerations | |
enum | CanalFeature { CF_WATERSLOPE, CF_LOCKS, CF_DIKES, CF_ICON, CF_DOCKS, CF_RIVER_SLOPE, CF_RIVER_EDGE, CF_RIVER_GUI, CF_BUOY, CF_END } |
List of different canal 'features'. More... | |
enum | GrfLoadingStage { GLS_FILESCAN, GLS_SAFETYSCAN, GLS_LABELSCAN, GLS_INIT, GLS_RESERVE, GLS_ACTIVATION, GLS_END } |
enum | GrfMiscBit { GMB_DESERT_TREES_FIELDS = 0, GMB_DESERT_PAVED_ROADS = 1, GMB_FIELD_BOUNDING_BOX = 2, GMB_TRAIN_WIDTH_32_PIXELS = 3, GMB_AMBIENT_SOUND_CALLBACK = 4, GMB_CATENARY_ON_3RD_TRACK = 5, GMB_SECOND_ROCKY_TILE_SET = 6 } |
enum | GrfSpecFeature { GSF_TRAINS, GSF_ROADVEHICLES, GSF_SHIPS, GSF_AIRCRAFT, GSF_STATIONS, GSF_CANALS, GSF_BRIDGES, GSF_HOUSES, GSF_GLOBALVAR, GSF_INDUSTRYTILES, GSF_INDUSTRIES, GSF_CARGOES, GSF_SOUNDFX, GSF_AIRPORTS, GSF_SIGNALS, GSF_OBJECTS, GSF_RAILTYPES, GSF_AIRPORTTILES, GSF_END, GSF_FAKE_TOWNS = GSF_END, GSF_FAKE_END, GSF_INVALID = 0xFF } |
enum | ShoreReplacement { SHORE_REPLACE_NONE, SHORE_REPLACE_ACTION_5, SHORE_REPLACE_ACTION_A, SHORE_REPLACE_ONLY_NEW } |
Functions | |
static bool | HasGrfMiscBit (GrfMiscBit bit) |
Check for grf miscellaneous bits. More... | |
byte | GetGRFContainerVersion () |
Get the container version of the currently opened GRF file. More... | |
void | LoadNewGRFFile (struct GRFConfig *config, uint file_index, GrfLoadingStage stage, Subdirectory subdir) |
Load a particular NewGRF. More... | |
void | LoadNewGRF (uint load_index, uint file_index, uint num_baseset) |
Load all the NewGRFs. More... | |
void | ReloadNewGRFData () |
Reload all NewGRF files during a running game. More... | |
void | ResetNewGRFData () |
Reset all NewGRF loaded data TODO. | |
void | ResetPersistentNewGRFData () |
Reset NewGRF data which is stored persistently in savegames. | |
void CDECL | grfmsg (int severity, const char *str,...) WARN_FORMAT(2 |
void CDECL bool | GetGlobalVariable (byte param, uint32 *value, const GRFFile *grffile) |
Reads a variable common to VarAction2 and Action7/9/D. More... | |
StringID | MapGRFStringID (uint32 grfid, StringID 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. More... | |
void | ShowNewGRFError () |
Show the first NewGRF error we can find. | |
Variables | |
static const uint32 | INVALID_GRFID = 0xFFFFFFFF |
GRFLoadedFeatures | _loaded_newgrf_features |
Indicates which are the newgrf features currently loaded ingame. | |
Base for the NewGRF implementation.
Definition in file newgrf.h.
enum CanalFeature |
enum GrfMiscBit |
Enumerator | |
---|---|
GMB_TRAIN_WIDTH_32_PIXELS | Use 32 pixels per train vehicle in depot gui and vehicle details. Never set in the global variable;.
|
enum GrfSpecFeature |
enum ShoreReplacement |
void CDECL bool GetGlobalVariable | ( | byte | param, |
uint32 * | 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 5755 of file newgrf.cpp.
References _cur_year, _date, _date_fract, _settings_game, _tick_counter, Clamp(), ConvertDateToYMD(), ConvertYMDToDate(), YearMonthDay::day, DAYS_TILL_ORIGINAL_BASE_YEAR, VehicleSettings::disable_elrails, GameSettings::game_creation, GetRailTypeInfo(), GrfProcessingState::grfconfig, GrfProcessingState::grffile, GRFP_USE_MASK, IsLeapYear(), GameCreationSettings::landscape, max(), YearMonthDay::month, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR, GRFConfig::palette, RAILTYPE_ELECTRIC, RAILTYPE_MAGLEV, RAILTYPE_MONO, RAILTYPE_RAIL, VehicleSettings::road_side, SB(), GRFFile::traininfo_vehicle_pitch, GameSettings::vehicle, and YearMonthDay::year.
Referenced by HasGrfMiscBit().
byte GetGRFContainerVersion | ( | ) |
Get the container version of the currently opened GRF file.
Definition at line 8837 of file newgrf.cpp.
References _grf_cont_v2_sig, FioGetPos(), FioReadByte(), FioReadWord(), FioSeekTo(), and lengthof.
Referenced by HasGrfMiscBit(), LoadGrfFile(), and LoadGrfFileIndexed().
|
inlinestatic |
Check for grf miscellaneous bits.
bit | The bit to check. |
Definition at line 174 of file newgrf.h.
References _loaded_newgrf_features, _misc_grf_features, GetGlobalVariable(), GetGRFContainerVersion(), grfmsg(), HasBit(), LoadNewGRF(), LoadNewGRFFile(), MapGRFStringID(), ReloadNewGRFData(), ResetNewGRFData(), ResetPersistentNewGRFData(), and ShowNewGRFError().
Referenced by AmbientSoundEffect().
void LoadNewGRF | ( | uint | load_index, |
uint | file_index, | ||
uint | num_baseset | ||
) |
Load all the NewGRFs.
load_index | The offset for the first sprite to add. |
file_index | The Fio index of the first NewGRF to load. |
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 9228 of file newgrf.cpp.
References _cur_year, _date, _date_fract, _display_opt, _grfconfig, _networking, _settings_game, _tick_counter, ConvertYMDToDate(), GameSettings::game_creation, GCS_NOT_FOUND, GCS_UNKNOWN, InitializeGRFSpecial(), GRFConfig::next, ResetNewGRFData(), GrfProcessingState::spriteid, GrfProcessingState::stage, and GameCreationSettings::starting_year.
Referenced by HasGrfMiscBit().
void LoadNewGRFFile | ( | GRFConfig * | config, |
uint | file_index, | ||
GrfLoadingStage | stage, | ||
Subdirectory | subdir | ||
) |
Load a particular NewGRF.
config | The configuration of the to be loaded NewGRF. |
file_index | The Fio index of the first NewGRF to load. |
stage | The loading stage of the NewGRF. |
subdir | The sub directory to find the NewGRF in. |
Definition at line 8863 of file newgrf.cpp.
References GRFConfig::filename.
Referenced by FillGRFDetails(), and HasGrfMiscBit().
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 552 of file newgrf.cpp.
References GetGRFStringID(), IsInsideMM(), and TTDPStringIDToOTTDStringIDMapping().
Referenced by AfterLoadGRFs(), and HasGrfMiscBit().
void ReloadNewGRFData | ( | ) |
Reload all NewGRF files during a running game.
This is a cut-down version of AfterLoadGame(). XXX - We need to reset the vehicle position hash because with a non-empty hash AfterLoadVehicles() will loop infinitely. We need AfterLoadVehicles() to recalculate vehicle data as some NewGRF vehicle sets could have been removed or added and changed statistics
Definition at line 3004 of file afterload.cpp.
References GfxLoadSprites(), LoadStringWidthTable(), and RecomputePrices().
Referenced by ClickChangeMaxHlCheat(), HasGrfMiscBit(), NewGRFConfirmationCallback(), and EngineOverrideManager::ResetToCurrentNewGRFConfig().