newgrf.h
author matthijs
Sat, 07 May 2005 22:00:36 +0000
changeset 1777 f703cf05b5b9
parent 1477 9389baf2bf3c
child 2186 db48cf29b983
permissions -rw-r--r--
(svn r2281) - Fix: [ 1115204 ] [NPF] When pressing the goto depot button, trains will now also look behind it if there is no depot in front. If so, the train reverses immediately. This also work anywhere, not just at stations.
- Add: [NPF] Reversing inside of depots now has a penalty. It also applies to trains only, other vehicles shouldn't bother reversing.
- Fix: [NPF] When checking whether to reverse a train, the trackdir of the first loc was used instead of the last vehicle as a starting node for pathfindig.
This might have caused some trains not reversing when they should have (or vice versa). Typo introduced when converting to GetVehicleTrackdir() in r2256.
- CodeChange: [NPF] Removed duplicate code by letting NPFRouteTjoStationOrTile() call NPFRouteToStationOrTileTwoWay().
- Add: [NPF] NPFRouteToDepotBreadthFirstTwoWay() to find a depot while also looking backwards.
- Add: It is now possibly to specify a path cost for aystar starting nodes.
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     1
#ifndef NEWGRF_H
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     2
#define NEWGRF_H
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     3
463
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
     4
#include "sprite.h"
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
     5
#include "station.h"
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
     6
1477
9389baf2bf3c (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
     7
typedef struct GRFFile GRFFile;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     8
struct GRFFile {
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
     9
	char *filename;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    10
	uint32 grfid;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    11
	uint16 flags;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    12
	uint16 sprite_offset;
1477
9389baf2bf3c (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    13
	GRFFile *next;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    14
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    15
	/* 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
    16
	 * 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
    17
	 * 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
    18
	 * documentation, contributing to the global confusion.
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    19
	 *
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    20
	 * 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
    21
	 * 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
    22
	 * 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
    23
	 * 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
    24
	 * 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
    25
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    26
	int spriteset_start;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    27
	int spriteset_numsets;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    28
	int spriteset_numents;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    29
	int spriteset_feature;
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    30
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    31
	int spritegroups_count;
1477
9389baf2bf3c (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    32
	SpriteGroup *spritegroups;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    33
1477
9389baf2bf3c (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    34
	StationSpec stations[256];
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    35
};
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    36
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    37
extern int _grffile_count;
1477
9389baf2bf3c (svn r1981) Typedef some structs and enums
tron
parents: 463
diff changeset
    38
extern GRFFile *_first_grffile;
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    39
463
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
    40
void InitNewGRFFile(const char *filename, int sprite_offset);
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
    41
void DecodeSpecialSprite(const char *filename, int num, int spriteid, int stage);
97ec66c280f2 (svn r687) Export InitNewGRFFile() and DecodeSpecialSprite() properly.
pasky
parents: 455
diff changeset
    42
455
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    43
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    44
#endif /* NEWGRF_H */
b151d55203bf (svn r665) code fixes for newgrf.c/newgrf.h
dominik
parents: 453
diff changeset
    45