Files
@ r7377:722cd70012ed
Branch filter:
Location: cpp/openttd-patchpack/source/src/newgrf_config.h - annotation
r7377:722cd70012ed
2.6 KiB
text/x-c
(svn r10746) -Codechange: add a generic superclass for almost all pool items so we do not have to duplicate code for each of the pool item classes and use it for the station and roadstop classes.
r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6348:a905c3e6d8fa r6348:a905c3e6d8fa r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6139:0128edd33976 r6139:0128edd33976 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5647:efd04e64f814 r5647:efd04e64f814 r5647:efd04e64f814 r5647:efd04e64f814 r5475:3f5cd13d1b63 r6956:6398843f1341 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6248:b940b09d7ab8 r6229:a69564e4eb2e r6248:b940b09d7ab8 r6229:a69564e4eb2e r6229:a69564e4eb2e r6229:a69564e4eb2e r6248:b940b09d7ab8 r6229:a69564e4eb2e r6248:b940b09d7ab8 r5765:cfade44195bc r5765:cfade44195bc r6248:b940b09d7ab8 r5765:cfade44195bc r6248:b940b09d7ab8 r6873:011bb2269607 r6873:011bb2269607 r6139:0128edd33976 r6139:0128edd33976 r6139:0128edd33976 r6139:0128edd33976 r6248:b940b09d7ab8 r6139:0128edd33976 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6139:0128edd33976 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6229:a69564e4eb2e r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6247:96e840dbefcc r5646:df89a7ff5d5e r5475:3f5cd13d1b63 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 */
#ifndef NEWGRF_CONFIG_H
#define NEWGRF_CONFIG_H
#include "openttd.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
};
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
};
enum GRFListCompatibility{
GLC_ALL_GOOD,
GLC_COMPATIBLE,
GLC_NOT_FOUND
};
struct GRFIdentifier {
uint32 grfid;
uint8 md5sum[16];
};
struct GRFError {
char *custom_message;
char *data;
StringID message;
StringID severity;
uint8 num_params;
uint8 param_number[2];
};
struct GRFConfig : public GRFIdentifier {
char *filename;
char *name;
char *info;
GRFError *error;
uint8 flags;
GRFStatus status;
uint32 param[0x80];
uint8 num_params;
struct GRFConfig *next;
};
/* First item in list of all scanned NewGRFs */
extern GRFConfig *_all_grfs;
/* First item in list of current GRF set up */
extern GRFConfig *_grfconfig;
/* First item in list of default GRF set up */
extern GRFConfig *_grfconfig_newgame;
/* First item in list of static GRF set up */
extern GRFConfig *_grfconfig_static;
void ScanNewGRFFiles();
const GRFConfig *FindGRFConfig(uint32 grfid, const uint8 *md5sum = NULL);
GRFConfig *GetGRFConfig(uint32 grfid);
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 */
|