(svn r5771) Unify several code paths and data structures for drawing train depots and waypoints

This commit is contained in:
tron
2006-08-05 16:54:55 +00:00
parent 50616a9e13
commit 24ae7a2241
2 changed files with 93 additions and 130 deletions

View File

@@ -1,66 +1,52 @@
/* $Id$ */
typedef struct DrawTrackSeqStruct {
SpriteID image;
byte subcoord_x;
byte subcoord_y;
byte width;
byte height;
} DrawTrackSeqStruct;
#define TILE_SEQ_LINE(img, dx, dy, sx, sy) { dx, dy, 0, sx, sy, 23, img },
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
#define TILE_SEQ_BEGIN(x) { x, 0, 0, 0, 0 },
#define TILE_SEQ_LINE(a, b, c, d, e) { a, b, c, d, e },
#define TILE_SEQ_END() { 0, 0, 0, 0, 0 }
static const DrawTrackSeqStruct _track_depot_layout_table_0[] = {
TILE_SEQ_BEGIN(SPR_FLAT_GRASS_TILE)
static const DrawTileSeqStruct _depot_gfx_NE[] = {
TILE_SEQ_LINE(SPR_RAIL_DEPOT_NE | PALETTE_MODIFIER_COLOR, 2, 13, 13, 1)
TILE_SEQ_END()
};
static const DrawTrackSeqStruct _track_depot_layout_table_1[] = {
TILE_SEQ_BEGIN(SPR_RAIL_TRACK_Y | PALETTE_MODIFIER_COLOR)
static const DrawTileSeqStruct _depot_gfx_SE[] = {
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SE_1 | PALETTE_MODIFIER_COLOR, 2, 2, 1, 13)
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SE_2 | PALETTE_MODIFIER_COLOR, 13, 2, 1, 13)
TILE_SEQ_END()
};
static const DrawTrackSeqStruct _track_depot_layout_table_2[] = {
TILE_SEQ_BEGIN(SPR_RAIL_TRACK_X | PALETTE_MODIFIER_COLOR)
static const DrawTileSeqStruct _depot_gfx_SW[] = {
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SW_1 | PALETTE_MODIFIER_COLOR, 2, 2, 13, 1)
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SW_2 | PALETTE_MODIFIER_COLOR, 2, 13, 13, 1)
TILE_SEQ_END()
};
static const DrawTrackSeqStruct _track_depot_layout_table_3[] = {
TILE_SEQ_BEGIN(SPR_FLAT_GRASS_TILE)
static const DrawTileSeqStruct _depot_gfx_NW[] = {
TILE_SEQ_LINE(SPR_RAIL_DEPOT_NW | PALETTE_MODIFIER_COLOR, 13, 2, 1, 13)
TILE_SEQ_END()
};
static const DrawTrackSeqStruct _track_waypoint_table_0[] = {
TILE_SEQ_BEGIN(SPR_RAIL_TRACK_X | PALETTE_MODIFIER_COLOR)
static const DrawTileSprites const _depot_gfx_table[] = {
{ SPR_FLAT_GRASS_TILE, _depot_gfx_NE },
{ SPR_RAIL_TRACK_Y, _depot_gfx_SE },
{ SPR_RAIL_TRACK_X, _depot_gfx_SW },
{ SPR_FLAT_GRASS_TILE, _depot_gfx_NW }
};
static const DrawTileSeqStruct _waypoint_gfx_X[] = {
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_X_1, 0, 0, 16, 5)
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_X_2, 0, 11, 16, 5)
TILE_SEQ_END()
};
static const DrawTrackSeqStruct _track_waypoint_table_1[] = {
TILE_SEQ_BEGIN(SPR_RAIL_TRACK_Y | PALETTE_MODIFIER_COLOR)
static const DrawTileSeqStruct _waypoint_gfx_Y[] = {
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_Y_1, 0, 0, 5, 16)
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_Y_2, 11, 0, 5, 16)
TILE_SEQ_END()
};
static const DrawTrackSeqStruct* const _track_depot_layout_table[] = {
_track_depot_layout_table_0,
_track_depot_layout_table_1,
_track_depot_layout_table_2,
_track_depot_layout_table_3,
};
static const DrawTrackSeqStruct* const _track_waypoint_layout_table[] = {
_track_waypoint_table_0,
_track_waypoint_table_1,
static const DrawTileSprites const _waypoint_gfx_table[] = {
{ SPR_RAIL_TRACK_X, _waypoint_gfx_X },
{ SPR_RAIL_TRACK_Y, _waypoint_gfx_Y }
};