author | Darkvater |
Sat, 15 Apr 2006 21:27:59 +0000 | |
changeset 3561 | 2f67415d44aa |
parent 3501 | 0a0c5bcc9a72 |
child 3628 | 69646d0924a5 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
455 | 3 |
#ifndef NEWGRF_H |
4 |
#define NEWGRF_H |
|
5 |
||
463
97ec66c280f2
(svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents:
455
diff
changeset
|
6 |
#include "sprite.h" |
97ec66c280f2
(svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents:
455
diff
changeset
|
7 |
#include "station.h" |
97ec66c280f2
(svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents:
455
diff
changeset
|
8 |
|
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
|
9 |
typedef struct GRFLabel { |
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
|
10 |
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
|
11 |
uint32 nfo_line; |
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
|
12 |
uint32 pos; |
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
|
13 |
struct GRFLabel *next; |
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
|
14 |
} GRFLabel; |
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
|
15 |
|
1477 | 16 |
typedef struct GRFFile GRFFile; |
455 | 17 |
struct GRFFile { |
18 |
char *filename; |
|
19 |
uint32 grfid; |
|
20 |
uint16 flags; |
|
21 |
uint16 sprite_offset; |
|
2625
19bf7f695537
(svn r3167) - NewGRF: Start moving custom station code to separate files.
peter1138
parents:
2548
diff
changeset
|
22 |
SpriteID first_spriteset; ///< Holds the first spriteset's sprite offset. |
1477 | 23 |
GRFFile *next; |
455 | 24 |
|
25 |
/* A sprite group contains all sprites of a given vehicle (or multiple |
|
26 |
* vehicles) when carrying given cargo. It consists of several sprite |
|
27 |
* sets. Group ids are refered as "cargo id"s by TTDPatch |
|
28 |
* documentation, contributing to the global confusion. |
|
29 |
* |
|
30 |
* A sprite set contains all sprites of a given vehicle carrying given |
|
31 |
* cargo at a given *stage* - that is usually its load stage. Ie. you |
|
32 |
* can have a spriteset for an empty wagon, wagon full of coal, |
|
33 |
* half-filled wagon etc. Each spriteset contains eight sprites (one |
|
34 |
* per direction) or four sprites if the vehicle is symmetric. */ |
|
35 |
||
36 |
int spriteset_start; |
|
37 |
int spriteset_numsets; |
|
38 |
int spriteset_numents; |
|
39 |
int spriteset_feature; |
|
40 |
||
41 |
int spritegroups_count; |
|
2444
5998cd7b06e7
(svn r2970) - Newgrf: Allocate spritegroups dynamically; this allows a cargo ID to reference the previous definition of the same cargo ID, instead of causing loops.
peter1138
parents:
2345
diff
changeset
|
42 |
SpriteGroup **spritegroups; |
455 | 43 |
|
3501
0a0c5bcc9a72
(svn r4352) - NewGRF Codechange: dynamically allocate the memory used to store custom station data. This saves us approximately 40KB per GRF file, if there are no stations defined.
peter1138
parents:
2766
diff
changeset
|
44 |
uint num_stations; |
0a0c5bcc9a72
(svn r4352) - NewGRF Codechange: dynamically allocate the memory used to store custom station data. This saves us approximately 40KB per GRF file, if there are no stations defined.
peter1138
parents:
2766
diff
changeset
|
45 |
StationSpec *stations; |
2345 | 46 |
|
47 |
uint32 param[0x80]; |
|
48 |
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
|
49 |
|
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
|
50 |
GRFLabel *label; ///< Pointer to the first label. This is a linked list, not an array. |
455 | 51 |
}; |
52 |
||
1477 | 53 |
extern GRFFile *_first_grffile; |
455 | 54 |
|
463
97ec66c280f2
(svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents:
455
diff
changeset
|
55 |
|
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
|
56 |
void LoadNewGRF(uint load_index, uint file_index); |
455 | 57 |
|
58 |
#endif /* NEWGRF_H */ |