Files
@ r12162:c4894f5339c3
Branch filter:
Location: cpp/openttd-patchpack/source/src/newgrf_config.h - annotation
r12162:c4894f5339c3
4.5 KiB
text/x-c
(svn r16583) -Update: the order of the language files so it's in sync with english.txt. Normally WT2 would do this, but only with activity for those languages. Now we'd like to the order to match so we can more easily spot import bugs while developing WT3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r9111:983de9c5a848 r6348:a905c3e6d8fa r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r8142:8414f11ec81b r6139:0128edd33976 r8799:2ce178790a9f r6248:b940b09d7ab8 r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r8799:2ce178790a9f r6248:b940b09d7ab8 r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6248:b940b09d7ab8 r6229:a69564e4eb2e r9704:108fa337b182 r9704:108fa337b182 r9704:108fa337b182 r11346:032b1fd8218f r9704:108fa337b182 r9704:108fa337b182 r8799:2ce178790a9f r9704:108fa337b182 r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r6248:b940b09d7ab8 r6229:a69564e4eb2e r8799:2ce178790a9f r6248:b940b09d7ab8 r8799:2ce178790a9f r8799:2ce178790a9f r6248:b940b09d7ab8 r5765:cfade44195bc r8799:2ce178790a9f r6248:b940b09d7ab8 r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r11828:ec9e606e896e r11828:ec9e606e896e r6248:b940b09d7ab8 r6139:0128edd33976 r8799:2ce178790a9f r6248:b940b09d7ab8 r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r5475:3f5cd13d1b63 r8799:2ce178790a9f r8799:2ce178790a9f r9704:108fa337b182 r8799:2ce178790a9f r8799:2ce178790a9f r10066:d73a08a8dd72 r5475:3f5cd13d1b63 r8799:2ce178790a9f r7882:cdf03a4ac84a r7882:cdf03a4ac84a r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r8799:2ce178790a9f r5475:3f5cd13d1b63 r6247:96e840dbefcc r5646:df89a7ff5d5e r10781:758b3ae29fdd r6956:6398843f1341 r5475:3f5cd13d1b63 r6108:580a9fc2a546 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6247:96e840dbefcc r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6348:a905c3e6d8fa r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 | /* $Id$ */
/** @file newgrf_config.h Functions to find and configure NewGRFs. */
#ifndef NEWGRF_CONFIG_H
#define NEWGRF_CONFIG_H
#include "strings_type.h"
/** GRF config bit flags */
enum GCF_Flags {
GCF_SYSTEM, ///< GRF file is an openttd-internal system grf
GCF_UNSAFE, ///< GRF file is unsafe for static usage
GCF_STATIC, ///< GRF file is used statically (can be used in any MP game)
GCF_COMPATIBLE, ///< GRF file does not exactly match the requested GRF (different MD5SUM), but grfid matches)
GCF_COPY, ///< The data is copied from a grf in _all_grfs
GCF_INIT_ONLY, ///< GRF file is processed up to GLS_INIT
GCF_RESERVED, ///< GRF file passed GLS_RESERVE stage
};
/** Status of GRF */
enum GRFStatus {
GCS_UNKNOWN, ///< The status of this grf file is unknown
GCS_DISABLED, ///< GRF file is disabled
GCS_NOT_FOUND, ///< GRF file was not found in the local cache
GCS_INITIALISED, ///< GRF file has been initialised
GCS_ACTIVATED ///< GRF file has been activated
};
/** Encountered GRF bugs */
enum GRFBugs {
GBUG_VEH_LENGTH, ///< Length of rail vehicle changes when not inside a depot
GBUG_VEH_REFIT, ///< Articulated vehicles carry different cargos resp. are differently refittable than specified in purchase list
};
/** Status of post-gameload GRF compatibility check */
enum GRFListCompatibility {
GLC_ALL_GOOD, ///< All GRF needed by game are present
GLC_COMPATIBLE, ///< Compatible (eg. the same ID, but different chacksum) GRF found in at least one case
GLC_NOT_FOUND ///< At least one GRF couldn't be found (higher priority than GLC_COMPATIBLE)
};
/** Basic data to distinguish a GRF. Used in the server list window */
struct GRFIdentifier {
uint32 grfid; ///< GRF ID (defined by Action 0x08)
uint8 md5sum[16]; ///< MD5 checksum of file to distinguish files with the same GRF ID (eg. newer version of GRF)
};
/** Information about why GRF had problems during initialisation */
struct GRFError {
char *custom_message; ///< Custom message (if present)
char *data; ///< Additional data for message and custom_message
StringID message; ///< Default message
StringID severity; ///< Info / Warning / Error / Fatal
uint8 num_params; ///< Number of additinal parameters for message and custom_message (0, 1 or 2)
uint32 param_value[2]; ///< Values of GRF parameters to show for message and custom_message
};
/** Information about GRF, used in the game and (part of it) in savegames */
struct GRFConfig : public GRFIdentifier {
char *filename; ///< Filename - either with or without full path
char *name; ///< NOSAVE: GRF name (Action 0x08)
char *info; ///< NOSAVE: GRF info (author, copyright, ...) (Action 0x08)
GRFError *error; ///< NOSAVE: Error/Warning during GRF loading (Action 0x0B)
uint8 flags; ///< NOSAVE: GCF_Flags, bitset
GRFStatus status; ///< NOSAVE: GRFStatus, enum
uint32 grf_bugs; ///< NOSAVE: bugs in this GRF in this run, @see enum GRFBugs
uint32 param[0x80]; ///< GRF parameters
uint8 num_params; ///< Number of used parameters
bool windows_paletted; ///< Whether the NewGRF is Windows paletted or not
struct GRFConfig *next; ///< NOSAVE: Next item in the linked list
bool IsOpenTTDBaseGRF() const;
};
extern GRFConfig *_all_grfs; ///< First item in list of all scanned NewGRFs
extern GRFConfig *_grfconfig; ///< First item in list of current GRF set up
extern GRFConfig *_grfconfig_newgame; ///< First item in list of default GRF set up
extern GRFConfig *_grfconfig_static; ///< First item in list of static GRF set up
void ScanNewGRFFiles();
const GRFConfig *FindGRFConfig(uint32 grfid, const uint8 *md5sum = NULL);
GRFConfig *GetGRFConfig(uint32 grfid, uint32 mask = 0xFFFFFFFF);
GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src, bool init_only);
void AppendStaticGRFConfigs(GRFConfig **dst);
void AppendToGRFConfigList(GRFConfig **dst, GRFConfig *el);
void ClearGRFConfig(GRFConfig **config);
void ClearGRFConfigList(GRFConfig **config);
void ResetGRFConfig(bool defaults);
GRFListCompatibility IsGoodGRFConfigList();
bool FillGRFDetails(GRFConfig *config, bool is_static);
char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last);
/* In newgrf_gui.cpp */
void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfig **config);
#ifdef ENABLE_NETWORK
/* For communication about GRFs over the network */
#define UNKNOWN_GRF_NAME_PLACEHOLDER "<Unknown>"
char *FindUnknownGRFName(uint32 grfid, uint8 *md5sum, bool create);
#endif /* ENABLE_NETWORK */
#endif /* NEWGRF_CONFIG_H */
|