dominik@455: #ifndef NEWGRF_H dominik@455: #define NEWGRF_H dominik@455: pasky@463: #include "sprite.h" pasky@463: #include "station.h" pasky@463: dominik@455: struct GRFFile { dominik@455: char *filename; dominik@455: uint32 grfid; dominik@455: uint16 flags; dominik@455: uint16 sprite_offset; dominik@455: struct GRFFile *next; dominik@455: dominik@455: /* A sprite group contains all sprites of a given vehicle (or multiple dominik@455: * vehicles) when carrying given cargo. It consists of several sprite dominik@455: * sets. Group ids are refered as "cargo id"s by TTDPatch dominik@455: * documentation, contributing to the global confusion. dominik@455: * dominik@455: * A sprite set contains all sprites of a given vehicle carrying given dominik@455: * cargo at a given *stage* - that is usually its load stage. Ie. you dominik@455: * can have a spriteset for an empty wagon, wagon full of coal, dominik@455: * half-filled wagon etc. Each spriteset contains eight sprites (one dominik@455: * per direction) or four sprites if the vehicle is symmetric. */ dominik@455: dominik@455: int spriteset_start; dominik@455: int spriteset_numsets; dominik@455: int spriteset_numents; dominik@455: int spriteset_feature; dominik@455: dominik@455: int spritegroups_count; dominik@455: struct SpriteGroup *spritegroups; dominik@455: dominik@455: struct StationSpec stations[256]; dominik@455: }; dominik@455: dominik@455: extern int _grffile_count; dominik@455: extern struct GRFFile *_first_grffile; dominik@455: pasky@463: void InitNewGRFFile(const char *filename, int sprite_offset); pasky@463: void DecodeSpecialSprite(const char *filename, int num, int spriteid, int stage); pasky@463: dominik@455: dominik@455: #endif /* NEWGRF_H */ dominik@455: