newgrf.h
author bjarni
Tue, 06 Dec 2005 22:09:28 +0000
changeset 2722 dcbf94a5ad1a
parent 2625 66b3d632dcd2
child 2766 7658ddad65b9
permissions -rw-r--r--
(svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
now PPC code is always compiled before x86 code
strgen and lng files are only compiled once, which results in shorter building time
the makefile now assigns default values to undefined values so much less needs to be set up
the code is now easier to maintain
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 1477
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 1477
diff changeset
     2
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     3
#ifndef NEWGRF_H
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     4
#define NEWGRF_H
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     5
463
91bcad840bcd (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
     6
#include "sprite.h"
91bcad840bcd (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
     7
#include "station.h"
91bcad840bcd (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
     8
1477
2174a73b11c9 (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
     9
typedef struct GRFFile GRFFile;
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    10
struct GRFFile {
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    11
	char *filename;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    12
	uint32 grfid;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    13
	uint16 flags;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    14
	uint16 sprite_offset;
2625
66b3d632dcd2 (svn r3167) - NewGRF: Start moving custom station code to separate files.
peter1138
parents: 2548
diff changeset
    15
	SpriteID first_spriteset; ///< Holds the first spriteset's sprite offset.
1477
2174a73b11c9 (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    16
	GRFFile *next;
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    17
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    18
	/* A sprite group contains all sprites of a given vehicle (or multiple
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    19
	 * vehicles) when carrying given cargo. It consists of several sprite
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    20
	 * sets.  Group ids are refered as "cargo id"s by TTDPatch
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    21
	 * documentation, contributing to the global confusion.
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    22
	 *
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    23
	 * A sprite set contains all sprites of a given vehicle carrying given
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    24
	 * cargo at a given *stage* - that is usually its load stage. Ie. you
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    25
	 * can have a spriteset for an empty wagon, wagon full of coal,
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    26
	 * half-filled wagon etc.  Each spriteset contains eight sprites (one
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    27
	 * per direction) or four sprites if the vehicle is symmetric. */
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    28
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    29
	int spriteset_start;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    30
	int spriteset_numsets;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    31
	int spriteset_numents;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    32
	int spriteset_feature;
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    33
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    34
	int spritegroups_count;
2444
e618726432a4 (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
    35
	SpriteGroup **spritegroups;
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    36
1477
2174a73b11c9 (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    37
	StationSpec stations[256];
2345
8a14ff5d4851 (svn r2871) -Feature/Fix: Per GRF parameter lists
tron
parents: 2342
diff changeset
    38
8a14ff5d4851 (svn r2871) -Feature/Fix: Per GRF parameter lists
tron
parents: 2342
diff changeset
    39
	uint32 param[0x80];
8a14ff5d4851 (svn r2871) -Feature/Fix: Per GRF parameter lists
tron
parents: 2342
diff changeset
    40
	uint param_end; /// one more than the highest set parameter
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    41
};
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    42
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    43
extern int _grffile_count;
1477
2174a73b11c9 (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    44
extern GRFFile *_first_grffile;
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    45
463
91bcad840bcd (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
    46
2342
c19fb4f2df30 (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
    47
void LoadNewGRF(uint load_index, uint file_index);
455
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    48
e7ac799e1437 (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    49
#endif /* NEWGRF_H */