12 #ifndef NEWGRF_CONFIG_H 13 #define NEWGRF_CONFIG_H 96 if (this->grfid != grfid)
return false;
97 if (md5sum == NULL)
return true;
98 return memcmp(md5sum, this->md5sum,
sizeof(this->md5sum)) == 0;
112 uint32 param_value[2];
139 uint32 GetValue(
struct GRFConfig *config)
const;
140 void SetValue(
struct GRFConfig *config, uint32 value);
159 uint8 original_md5sum[16];
185 const char *
GetURL()
const;
212 virtual void OnNewGRFsScanned() = 0;
232 #ifdef ENABLE_NETWORK 234 #define UNKNOWN_GRF_NAME_PLACEHOLDER "<Unknown>" char * GRFBuildParamList(char *dst, const GRFConfig *c, const char *last)
Build a string containing space separated parameter values, and terminate.
GRFConfig ** CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src, bool init_only)
Copy a GRF Config list.
The parameter allows a range of numbers, each of which can have a special name.
Subdirectory
The different kinds of subdirectories OpenTTD uses.
CCountedPtr - smart pointer implementation.
GRF file is processed up to GLS_INIT.
All GRF needed by game are present.
void SetParameterDefaults()
Set the default value for all parameters as specified by action14.
Compatible (eg. the same ID, but different checksum) GRF found in at least one case.
Capacity of vehicle changes when not refitting or arranging.
GRFParameterType type
The type of this parameter.
GRFPalette
Information that can/has to be stored about a GRF's palette.
GRFConfig * _grfconfig
First item in list of current GRF set up.
The NewGRF prefers a 32 bpp blitter.
GRF file has been initialised.
uint32 def_value
Default value of this parameter.
GRFStatus status
NOSAVE: GRFStatus, enum.
struct GRFText * text
The actual text.
const GRFConfig * FindGRFConfig(uint32 grfid, FindGRFConfigMode mode, const uint8 *md5sum=NULL, uint32 desired_version=0)
Find a NewGRF in the scanned list.
GRF file is used statically (can be used in any MP game)
uint8 num_valid_params
NOSAVE: Number of valid parameters (action 0x14)
char * custom_message
Custom message (if present)
GRFError * error
NOSAVE: Error/Warning during GRF loading (Action 0x0B)
The NewGRF provided no information.
byte param_nr
GRF parameter to store content in.
void AppendStaticGRFConfigs(GRFConfig **dst)
Appends the static GRFs to a list of GRFs.
GRFConfig * _grfconfig_static
First item in list of static GRF set up.
StringID severity
Info / Warning / Error / Fatal.
GRF file was not found in the local cache.
Helper types related to the allocation of memory.
GRFIdentifier ident
grfid and md5sum to uniquely identify newgrfs
void ScanNewGRFFiles(NewGRFScanCallback *callback)
Scan for all NewGRFs.
size_t GRFGetSizeOfDataSection(FILE *f)
Get the data section size of a GRF.
Basic data to distinguish a GRF.
SmallVector< GRFParameterInfo *, 4 > param_info
NOSAVE: extra information about the parameters.
GRFParameterType
The possible types of a newgrf parameter.
struct GRFConfig * next
NOSAVE: Next item in the linked list.
GRFConfig * _all_grfs
First item in list of all scanned NewGRFs.
Simple mapping class targeted for small sets of data.
Types for Standard In/Out file operations.
The offset of the GRFP_GRF data.
struct GRFText * desc
The description of this parameter.
GRFConfig * GetGRFConfig(uint32 grfid, uint32 mask=0xFFFFFFFF)
Retrieve a NewGRF from the current config by its grfid.
uint32 grf_bugs
NOSAVE: bugs in this GRF in this run,.
uint8 num_params
Number of used parameters.
The NewGRF says any palette can be used.
GRF file is an openttd-internal system grf.
The size of the GRFP_BLT data.
Information about GRF, used in the game and (part of it) in savegames.
Bitmask to get only the use palette use states.
bool has_param_defaults
NOSAVE: did this newgrf specify any defaults for it's parameters.
const char * GetDescription() const
Get the grf info.
void CopyParams(const GRFConfig &src)
Copy the parameter information from the src config.
byte num_bit
Number of bits to use for this parameter.
SmallMap< uint32, struct GRFText *, 8 > value_names
Names for each value.
The palette state is set to use the Windows palette.
The data is copied from a grf in _all_grfs.
Information about why GRF had problems during initialisation.
uint32 max_value
The maximal value of this parameter.
GCF_Flags
GRF config bit flags.
uint8 flags
NOSAVE: GCF_Flags, bitset.
GRF is unusable with this version of OpenTTD.
GRFBugs
Encountered GRF bugs.
The NewGRF provided no information or doesn't care about a 32 bpp blitter.
void ClearGRFConfigList(GRFConfig **config)
Clear a GRF Config list, freeing all nodes.
Find newest Grf, ignoring Grfs with GCF_INVALID set.
GRFConfig * _grfconfig_newgame
First item in list of default GRF set up.
void AppendToGRFConfigList(GRFConfig **dst, GRFConfig *el)
Appends an element to a list of GRFs.
A callback returned an unknown/invalid result.
TextfileType
Additional text files accompanying Tar archives.
StringID message
Default message.
Reference counted wrapper around a GRFText pointer.
void FinalizeParameterInfo()
Finalize Action 14 info after file scan is finished.
Element of the linked list.
Base class that provides memory initialization on dynamically created objects.
uint32 StringID
Numeric value that represents a string, independent of the selected language.
bool HasGrfIdentifier(uint32 grfid, const uint8 *md5sum) const
Does the identification match the provided values?
The offset of the GRFP_BLT data.
Subdirectory for all NewGRFs.
The status of this grf file is unknown.
Articulated vehicles carry different cargoes resp. are differently refittable than specified in purch...
void ResetGRFConfig(bool defaults)
Reset the current GRF Config to either blank or newgame settings.
uint32 version
NOSAVE: Version a NewGRF can set so only the newest NewGRF is shown.
The palette state is set to use the DOS palette.
GRFTextWrapper * url
NOSAVE: URL belonging to this GRF.
GRF file passed GLS_RESERVE stage.
The NewGRF says the Windows palette can be used.
Callback for NewGRF scanning.
const char * GetURL() const
Get the grf url.
byte first_bit
First bit to use in the GRF parameter.
void UpdateNewGRFScanStatus(uint num, const char *name)
Update the NewGRF scan status.
void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfig **config)
Setup the NewGRF gui.
Information about one grf parameter.
GRFListCompatibility
Status of post-gameload GRF compatibility check.
uint8 palette
GRFPalette, bitset.
bool complete_labels
True if all values have a label.
At least one GRF couldn't be found (higher priority than GLC_COMPATIBLE)
GRF file is unsafe for static usage.
Powered wagon changed poweredness state when not inside a depot.
void CDECL error(const char *s,...)
Error handling for fatal non-user errors.
GRFTextWrapper * FindUnknownGRFName(uint32 grfid, uint8 *md5sum, bool create)
Finds the name of a NewGRF in the list of names for unknown GRFs.
char * filename
Filename - either with or without full path.
Bitmask to only get the blitter information.
FindGRFConfigMode
Method to find GRFs using FindGRFConfig.
void SetSuitablePalette()
Set the palette of this GRFConfig to something suitable.
GRFTextWrapper * name
NOSAVE: GRF name (Action 0x08)
The NewGRF says the DOS palette can be used.
uint32 min_loadable_version
NOSAVE: Minimum compatible version a NewGRF can define.
uint _missing_extra_graphics
Number of sprites provided by the fallback extra GRF, i.e. missing in the baseset.
Types related to strings.
The parameter is either 0 or 1.
uint32 min_value
The minimal value this parameter can have.
const char * GetName() const
Get the name of this grf.
uint32 grfid
GRF ID (defined by Action 0x08)
char * data
Additional data for message and custom_message.
struct GRFText * name
The name of this parameter.
The size of the GRFP_GRF data.
GRF file has been activated.
GRFListCompatibility IsGoodGRFConfigList(GRFConfig *grfconfig)
Check if all GRFs in the GRF config from a savegame can be loaded.
GRF file does not exactly match the requested GRF (different MD5SUM), but grfid matches) ...
Bitmask to get only the NewGRF supplied information.
The bit used for storing the palette to use.
Length of rail vehicle changes when not inside a depot.
uint8 md5sum[16]
MD5 checksum of file to distinguish files with the same GRF ID (eg. newer version of GRF) ...
const char * GetTextfile(TextfileType type, Subdirectory dir, const char *filename)
Search a textfile file next to the given content.
Only find Grfs matching md5sum.
bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir=NEWGRF_DIR)
Find the GRFID of a given grf, and calculate its md5sum.
virtual ~NewGRFScanCallback()
Make sure the right destructor gets called.
Types related to textfiles.
Find best compatible Grf wrt. desired_version.
bool UpdateNewGRFConfigPalette(int32 p1=0)
Update the palettes of the graphics from the config file.
GRFTextWrapper * info
NOSAVE: GRF info (author, copyright, ...) (Action 0x08)