(svn r6424) -Codechange: [autoreplace] removed a loop though all vehicles from each time the window is redrawn
To do this, the player struct contains an array, that contains the count of each engine type that the player owns
Those arrays are updated each time a vehicle is build or deleted and is calculated on load (it's not saved)
It's possible to access the arrays outside of the autoreplace GUI, so feel free to read from them in other patches as well
/* $Id$ */
#ifndef SPRITE_H
#define SPRITE_H
/* The following describes bunch of sprites to be drawn together in a single 3D
* bounding box. Used especially for various multi-sprite buildings (like
* depots or stations): */
typedef struct DrawTileSeqStruct {
int8 delta_x; // 0x80 is sequence terminator
int8 delta_y;
int8 delta_z;
byte size_x;
byte size_y;
byte size_z;
uint32 image;
} DrawTileSeqStruct;
typedef struct DrawTileSprites {
SpriteID ground_sprite;
const DrawTileSeqStruct* seq;
} DrawTileSprites;
/**
* This structure is the same for both Industries and Houses.
* Buildings here reference a general type of construction
*/
typedef struct DrawBuildingsTileStruct {
SpriteID ground;
SpriteID building;
byte subtile_x:4;
byte subtile_y:4;
byte width:4;
byte height:4;
byte dz;
byte draw_proc; /* this allows to specify a special drawing procedure.*/
} DrawBuildingsTileStruct;
// Iterate through all DrawTileSeqStructs in DrawTileSprites.
#define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++)
#endif /* SPRITE_H */