src/newgrf.h
author Tero Marttila <terom@fixme.fi>
Fri, 19 Dec 2008 02:20:26 +0200
changeset 10441 d09735696a9e
parent 9390 88d36f907e96
permissions -rw-r--r--
don't generate a heightmap for <64 tile maps
2186
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 1477
diff changeset
     1
/* $Id$ */
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 1477
diff changeset
     2
9111
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 8787
diff changeset
     3
/** @file newgrf.h Base for the NewGRF implementation. */
6348
6dd01da7a02b (svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas
parents: 6332
diff changeset
     4
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     5
#ifndef NEWGRF_H
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     6
#define NEWGRF_H
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     7
8213
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 8194
diff changeset
     8
#include "town_type.h"
5228
26dc9acf7d94 (svn r7348) -Feature: Initial support for saving NewGRF settings with savegames. Back up your savegames...
peter1138
parents: 5225
diff changeset
     9
#include "newgrf_config.h"
6143
dbca54e64e01 (svn r8886) -Codechange: (NewGRF) Add (partial) cargo translation table support, applied to action 3s only.
peter1138
parents: 5587
diff changeset
    10
#include "cargotype.h"
8213
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 8194
diff changeset
    11
#include "industry_type.h"
8787
41d9d5adbe87 (svn r12495) -Codechange: reduce the dependency on newgrf_station.h (especially because newgrf_station.h includes a lot of stuff).
rubidium
parents: 8785
diff changeset
    12
#include "station_type.h"
463
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
    13
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
    14
enum GrfLoadingStage {
5228
26dc9acf7d94 (svn r7348) -Feature: Initial support for saving NewGRF settings with savegames. Back up your savegames...
peter1138
parents: 5225
diff changeset
    15
	GLS_FILESCAN,
5329
9c5e8061ea0f (svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents: 5234
diff changeset
    16
	GLS_SAFETYSCAN,
5225
af5d9de16c8d (svn r7345) -Codechange: enumification of NewGRF loading stage, and move enum definition to header for future use.
peter1138
parents: 5210
diff changeset
    17
	GLS_LABELSCAN,
af5d9de16c8d (svn r7345) -Codechange: enumification of NewGRF loading stage, and move enum definition to header for future use.
peter1138
parents: 5210
diff changeset
    18
	GLS_INIT,
6359
8527262c4cf8 (svn r9411) -Codechange: Add support for loading of newcargo data.
peter1138
parents: 6348
diff changeset
    19
	GLS_RESERVE,
5225
af5d9de16c8d (svn r7345) -Codechange: enumification of NewGRF loading stage, and move enum definition to header for future use.
peter1138
parents: 5210
diff changeset
    20
	GLS_ACTIVATION,
af5d9de16c8d (svn r7345) -Codechange: enumification of NewGRF loading stage, and move enum definition to header for future use.
peter1138
parents: 5210
diff changeset
    21
	GLS_END,
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
    22
};
5225
af5d9de16c8d (svn r7345) -Codechange: enumification of NewGRF loading stage, and move enum definition to header for future use.
peter1138
parents: 5210
diff changeset
    23
5587
167d9a91ef02 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents: 5475
diff changeset
    24
DECLARE_POSTFIX_INCREMENT(GrfLoadingStage);
167d9a91ef02 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents: 5475
diff changeset
    25
6541
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    26
enum GrfMiscBit {
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    27
	GMB_DESERT_TREES_FIELDS    = 0, // Unsupported.
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    28
	GMB_DESERT_PAVED_ROADS     = 1,
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    29
	GMB_FIELD_BOUNDING_BOX     = 2, // Unsupported.
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    30
	GMB_TRAIN_WIDTH_32_PIXELS  = 3,
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    31
	GMB_AMBIENT_SOUND_CALLBACK = 4, // Unsupported.
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    32
	GMB_CATENARY_ON_3RD_TRACK  = 5, // Unsupported.
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
    33
};
5587
167d9a91ef02 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents: 5475
diff changeset
    34
8541
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    35
enum GrfSpecFeature {
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    36
	GSF_TRAIN,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    37
	GSF_ROAD,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    38
	GSF_SHIP,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    39
	GSF_AIRCRAFT,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    40
	GSF_STATION,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    41
	GSF_CANAL,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    42
	GSF_BRIDGE,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    43
	GSF_TOWNHOUSE,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    44
	GSF_GLOBALVAR,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    45
	GSF_INDUSTRYTILES,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    46
	GSF_INDUSTRIES,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    47
	GSF_CARGOS,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    48
	GSF_SOUNDFX,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    49
	GSF_END,
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    50
};
85d5b340f766 (svn r12119) -Codechange: Rename grfspec_feature to match code style, and expose in header for use elsewhere.
peter1138
parents: 8403
diff changeset
    51
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
    52
struct GRFLabel {
3561
2f67415d44aa (svn r4439) - NewGRF: Add support for Action 0x10. This also required an extra pre-stage (before initialize and activation) to scan the GRF file for GOTO labels. Big thanks for peter1138 for the guidance and answers, as well as parts of the code.
Darkvater
parents: 3501
diff changeset
    53
	byte label;
2f67415d44aa (svn r4439) - NewGRF: Add support for Action 0x10. This also required an extra pre-stage (before initialize and activation) to scan the GRF file for GOTO labels. Big thanks for peter1138 for the guidance and answers, as well as parts of the code.
Darkvater
parents: 3501
diff changeset
    54
	uint32 nfo_line;
9390
88d36f907e96 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium
parents: 9111
diff changeset
    55
	size_t pos;
3561
2f67415d44aa (svn r4439) - NewGRF: Add support for Action 0x10. This also required an extra pre-stage (before initialize and activation) to scan the GRF file for GOTO labels. Big thanks for peter1138 for the guidance and answers, as well as parts of the code.
Darkvater
parents: 3501
diff changeset
    56
	struct GRFLabel *next;
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
    57
};
3561
2f67415d44aa (svn r4439) - NewGRF: Add support for Action 0x10. This also required an extra pre-stage (before initialize and activation) to scan the GRF file for GOTO labels. Big thanks for peter1138 for the guidance and answers, as well as parts of the code.
Darkvater
parents: 3501
diff changeset
    58
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
    59
struct GRFFile {
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    60
	char *filename;
8164
a448bc7576a5 (svn r11726) -Feature[newGRF]: Extend the Action 5, feature 0D usage. Patch by BigBB
belugas
parents: 8130
diff changeset
    61
	bool is_ottdfile;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    62
	uint32 grfid;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    63
	uint16 sprite_offset;
3640
afe6a5032f6a (svn r4549) - NewGRF: store the grf version from Action 0x08.
peter1138
parents: 3638
diff changeset
    64
	byte grf_version;
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
    65
	GRFFile *next;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    66
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    67
	/* A sprite group contains all sprites of a given vehicle (or multiple
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    68
	 * vehicles) when carrying given cargo. It consists of several sprite
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    69
	 * sets.  Group ids are refered as "cargo id"s by TTDPatch
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    70
	 * documentation, contributing to the global confusion.
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    71
	 *
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    72
	 * A sprite set contains all sprites of a given vehicle carrying given
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    73
	 * cargo at a given *stage* - that is usually its load stage. Ie. you
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    74
	 * can have a spriteset for an empty wagon, wagon full of coal,
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    75
	 * half-filled wagon etc.  Each spriteset contains eight sprites (one
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    76
	 * per direction) or four sprites if the vehicle is symmetric. */
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    77
3707
7dc7e4d2487e (svn r4650) - NewGRF: use the correct type for _cur_spriteid
peter1138
parents: 3640
diff changeset
    78
	SpriteID spriteset_start;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    79
	int spriteset_numsets;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    80
	int spriteset_numents;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    81
	int spriteset_feature;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    82
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    83
	int spritegroups_count;
3865
b80b50f14fcd (svn r4901) - Codechange: change 'SpriteGroup *' to 'struct SpriteGroup *' within StationSpec and GRFFile struct declarations. Now only code which actually references those pointers needs to know about the SpriteGroup struct. Remove some unnecessary lingering header dependencies.
peter1138
parents: 3775
diff changeset
    84
	struct SpriteGroup **spritegroups;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    85
4656
9c1d8c4d3e60 (svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents: 3865
diff changeset
    86
	uint sound_offset;
9c1d8c4d3e60 (svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents: 3865
diff changeset
    87
3768
5194cf3c57b1 (svn r4760) - Newstations: change the way custom stations are allocated when loading from GRF, as the current way was flawed (reallocing memory which is referenced elsewhere)
peter1138
parents: 3707
diff changeset
    88
	StationSpec **stations;
6332
f3f436dcd7d0 (svn r9315) -Merge: The newhouses branch. With this merge comes almost complete support for
maedhros
parents: 6248
diff changeset
    89
	HouseSpec **housespec;
6759
cd55b02175dd (svn r9994) -Codechange: Add pointers for Industry and Industry Tiles in the grf file.
belugas
parents: 6541
diff changeset
    90
	IndustrySpec **industryspec;
cd55b02175dd (svn r9994) -Codechange: Add pointers for Industry and Industry Tiles in the grf file.
belugas
parents: 6541
diff changeset
    91
	IndustryTileSpec **indtspec;
2345
f7251bd99942 (svn r2871) -Feature/Fix: Per GRF parameter lists
tron
parents: 2342
diff changeset
    92
f7251bd99942 (svn r2871) -Feature/Fix: Per GRF parameter lists
tron
parents: 2342
diff changeset
    93
	uint32 param[0x80];
6348
6dd01da7a02b (svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas
parents: 6332
diff changeset
    94
	uint param_end;  ///< one more than the highest set parameter
3561
2f67415d44aa (svn r4439) - NewGRF: Add support for Action 0x10. This also required an extra pre-stage (before initialize and activation) to scan the GRF file for GOTO labels. Big thanks for peter1138 for the guidance and answers, as well as parts of the code.
Darkvater
parents: 3501
diff changeset
    95
2f67415d44aa (svn r4439) - NewGRF: Add support for Action 0x10. This also required an extra pre-stage (before initialize and activation) to scan the GRF file for GOTO labels. Big thanks for peter1138 for the guidance and answers, as well as parts of the code.
Darkvater
parents: 3501
diff changeset
    96
	GRFLabel *label; ///< Pointer to the first label. This is a linked list, not an array.
6143
dbca54e64e01 (svn r8886) -Codechange: (NewGRF) Add (partial) cargo translation table support, applied to action 3s only.
peter1138
parents: 5587
diff changeset
    97
dbca54e64e01 (svn r8886) -Codechange: (NewGRF) Add (partial) cargo translation table support, applied to action 3s only.
peter1138
parents: 5587
diff changeset
    98
	uint8 cargo_max;
dbca54e64e01 (svn r8886) -Codechange: (NewGRF) Add (partial) cargo translation table support, applied to action 3s only.
peter1138
parents: 5587
diff changeset
    99
	CargoLabel *cargo_list;
6147
ee050ca3889f (svn r8890) -Codechange: (NewGRF) add cargo translation support to engine var 47
peter1138
parents: 6143
diff changeset
   100
	uint8 cargo_map[NUM_CARGO];
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6247
diff changeset
   101
};
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
   102
1477
9389baf2bf3c (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
   103
extern GRFFile *_first_grffile;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
   104
8403
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   105
enum ShoreReplacement {
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   106
	SHORE_REPLACE_NONE,       ///< No shore sprites were replaced.
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   107
	SHORE_REPLACE_ACTION_5,   ///< Shore sprites were replaced by Action5.
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   108
	SHORE_REPLACE_ACTION_A,   ///< Shore sprites were replaced by ActionA (using grass tiles for the corner-shores).
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   109
	SHORE_REPLACE_ONLY_NEW,   ///< Only corner-shores were loaded by Action5 (openttd(w/d).grf only).
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   110
};
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   111
6914
6219e65dd7bf (svn r10167) -Codechange: Change the flagging system of grf loaded feature from a bitset to a bool evaluation.
belugas
parents: 6769
diff changeset
   112
struct GRFLoadedFeatures {
6219e65dd7bf (svn r10167) -Codechange: Change the flagging system of grf loaded feature from a bitset to a bool evaluation.
belugas
parents: 6769
diff changeset
   113
	bool has_2CC;             ///< Set if any vehicle is loaded which uses 2cc (two company colours).
6219e65dd7bf (svn r10167) -Codechange: Change the flagging system of grf loaded feature from a bitset to a bool evaluation.
belugas
parents: 6769
diff changeset
   114
	bool has_newhouses;       ///< Set if there are any newhouses loaded.
6219e65dd7bf (svn r10167) -Codechange: Change the flagging system of grf loaded feature from a bitset to a bool evaluation.
belugas
parents: 6769
diff changeset
   115
	bool has_newindustries;   ///< Set if there are any newindustries loaded.
8403
44f101c68312 (svn r11973) -Fix (r11726, r11947)[FS#1683]: Use grass tiles for corner shores, if shores got replaced by ActionA.
frosch
parents: 8213
diff changeset
   116
	ShoreReplacement shore;   ///< It which way shore sprites were replaced.
6769
13ccbd0f86b3 (svn r10005) -Codechange: Merge two flags (2cc and newhouses) indicating some newgrf features have been loaded, and introduce the newindustry one.
belugas
parents: 6759
diff changeset
   117
};
13ccbd0f86b3 (svn r10005) -Codechange: Merge two flags (2cc and newhouses) indicating some newgrf features have been loaded, and introduce the newindustry one.
belugas
parents: 6759
diff changeset
   118
13ccbd0f86b3 (svn r10005) -Codechange: Merge two flags (2cc and newhouses) indicating some newgrf features have been loaded, and introduce the newindustry one.
belugas
parents: 6759
diff changeset
   119
/* Indicates which are the newgrf features currently loaded ingame */
6914
6219e65dd7bf (svn r10167) -Codechange: Change the flagging system of grf loaded feature from a bitset to a bool evaluation.
belugas
parents: 6769
diff changeset
   120
extern GRFLoadedFeatures _loaded_newgrf_features;
463
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
   121
8194
46b8e23a8f44 (svn r11757) -Fix(r11727): Don't use a function's default parameter when the value can be (more adequately, even better) computed from another source.
belugas
parents: 8164
diff changeset
   122
void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage);
2342
aae24c9661ba (svn r2868) Change the way NewGRFs are loaded: The loading process i no longer bolted onto the normal graphics loading.
tron
parents: 2186
diff changeset
   123
void LoadNewGRF(uint load_index, uint file_index);
6348
6dd01da7a02b (svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas
parents: 6332
diff changeset
   124
void ReloadNewGRFData(); // in openttd.cpp
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
   125
5380
8ea58542b6e0 (svn r7565) -Codechange: Rework DEBUG functionality. Look for appropiate debugging levels to
Darkvater
parents: 5352
diff changeset
   126
void CDECL grfmsg(int severity, const char *str, ...);
8ea58542b6e0 (svn r7565) -Codechange: Rework DEBUG functionality. Look for appropiate debugging levels to
Darkvater
parents: 5352
diff changeset
   127
6541
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
   128
bool HasGrfMiscBit(GrfMiscBit bit);
8546
fb64231b2976 (svn r12124) -Codechange: Move newgrf-variables that are common to VarAction2 and Action7/9/D to their own function.
frosch
parents: 8541
diff changeset
   129
bool GetGlobalVariable(byte param, uint32 *value);
6541
dfa5165a5ab7 (svn r9730) -Feature: [NewGRF] Add support for miscellaneous grf feature bit 1 - paved roads on desert tiles.
maedhros
parents: 6359
diff changeset
   130
8656
9731ddde8722 (svn r12317) -Fix [FS#1815]: Map string IDs that are embedded from other strings.
peter1138
parents: 8546
diff changeset
   131
StringID MapGRFStringID(uint32 grfid, StringID str);
9731ddde8722 (svn r12317) -Fix [FS#1815]: Map string IDs that are embedded from other strings.
peter1138
parents: 8546
diff changeset
   132
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
   133
#endif /* NEWGRF_H */