summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-08-06 18:36:36 +0000
committertron <tron@openttd.org>2006-08-06 18:36:36 +0000
commitd69f80fa29e9f4e3a77be89d5c61ab51f239749f (patch)
treed9114e4a2a499a5e10ca8ddde6990c9e3eaba50e
parentd8b8035f9f17d7eadf6d40845d2afa60a16e92bb (diff)
downloadopenttd-d69f80fa29e9f4e3a77be89d5c61ab51f239749f.tar.xz
(svn r5796) Use DrawTileSprites/DrawTileSeqStruct for road depot drawing data, too
-rw-r--r--road_cmd.c40
-rw-r--r--table/road_land.h27
2 files changed, 29 insertions, 38 deletions
diff --git a/road_cmd.c b/road_cmd.c
index e4a725711..573b5ef6f 100644
--- a/road_cmd.c
+++ b/road_cmd.c
@@ -5,6 +5,7 @@
#include "bridge_map.h"
#include "rail_map.h"
#include "road_map.h"
+#include "sprite.h"
#include "table/sprites.h"
#include "table/strings.h"
#include "functions.h"
@@ -650,14 +651,6 @@ typedef struct DrawRoadTileStruct {
byte subcoord_y;
} DrawRoadTileStruct;
-typedef struct DrawRoadSeqStruct {
- uint32 image;
- byte subcoord_x;
- byte subcoord_y;
- byte width;
- byte height;
-} DrawRoadSeqStruct;
-
#include "table/road_land.h"
@@ -783,19 +776,19 @@ static void DrawTile_Road(TileInfo *ti)
default:
case ROAD_TILE_DEPOT: {
- const DrawRoadSeqStruct* drss;
+ const DrawTileSprites* dts;
+ const DrawTileSeqStruct* dtss;
uint32 palette;
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, ti->tileh);
palette = PLAYER_SPRITE_COLOR(GetTileOwner(ti->tile));
- drss = _road_depot[GetRoadDepotDirection(ti->tile)];
-
- DrawGroundSprite(drss++->image);
+ dts = &_road_depot[GetRoadDepotDirection(ti->tile)];
+ DrawGroundSprite(dts->ground_sprite);
- for (; drss->image != 0; drss++) {
- uint32 image = drss->image;
+ for (dtss = dts->seq; dtss->image != 0; dtss++) {
+ uint32 image = dtss->image;
if (_display_opt & DO_TRANS_BUILDINGS) {
MAKE_TRANSPARENT(image);
@@ -804,8 +797,10 @@ static void DrawTile_Road(TileInfo *ti)
}
AddSortableSpriteToDraw(
- image, ti->x | drss->subcoord_x,
- ti->y | drss->subcoord_y, drss->width, drss->height, 0x14, ti->z
+ image,
+ ti->x + dtss->delta_x, ti->y + dtss->delta_y,
+ dtss->size_x, dtss->size_y,
+ dtss->size_z, ti->z
);
}
break;
@@ -815,19 +810,20 @@ static void DrawTile_Road(TileInfo *ti)
void DrawRoadDepotSprite(int x, int y, DiagDirection dir)
{
- const DrawRoadSeqStruct* dtss = _road_depot[dir];
- uint32 ormod = PLAYER_SPRITE_COLOR(_local_player);
+ uint32 palette = PLAYER_SPRITE_COLOR(_local_player);
+ const DrawTileSprites* dts = &_road_depot[dir];
+ const DrawTileSeqStruct* dtss;
x += 33;
y += 17;
- DrawSprite(dtss++->image, x, y);
+ DrawSprite(dts->ground_sprite, x, y);
- for (; dtss->image != 0; dtss++) {
- Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
+ for (dtss = dts->seq; dtss->image != 0; dtss++) {
+ Point pt = RemapCoords(dtss->delta_x, dtss->delta_y, dtss->delta_z);
uint32 image = dtss->image;
- if (image & PALETTE_MODIFIER_COLOR) image |= ormod;
+ if (image & PALETTE_MODIFIER_COLOR) image |= palette;
DrawSprite(image, x + pt.x, y + pt.y);
}
diff --git a/table/road_land.h b/table/road_land.h
index b1eec6eb7..d09174323 100644
--- a/table/road_land.h
+++ b/table/road_land.h
@@ -1,40 +1,35 @@
/* $Id$ */
-#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 }
+#define TILE_SEQ_LINE(img, dx, dy, sx, sy) { dx, dy, 0, sx, sy, 20, img },
+#define TILE_SEQ_END() { 0, 0, 0, 0, 0, 0, 0 }
-static const DrawRoadSeqStruct _road_depot_NE[] = {
- TILE_SEQ_BEGIN(0xA4A)
+static const DrawTileSeqStruct _road_depot_NE[] = {
TILE_SEQ_LINE(0x584 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1)
TILE_SEQ_END()
};
-static const DrawRoadSeqStruct _road_depot_SE[] = {
- TILE_SEQ_BEGIN(0xA4A)
+static const DrawTileSeqStruct _road_depot_SE[] = {
TILE_SEQ_LINE(0x580, 0, 0, 1, 16)
TILE_SEQ_LINE(0x581 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16)
TILE_SEQ_END()
};
-static const DrawRoadSeqStruct _road_depot_SW[] = {
- TILE_SEQ_BEGIN(0xA4A)
+static const DrawTileSeqStruct _road_depot_SW[] = {
TILE_SEQ_LINE(0x582, 0, 0, 16, 1)
TILE_SEQ_LINE(0x583 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1)
TILE_SEQ_END()
};
-static const DrawRoadSeqStruct _road_depot_NW[] = {
- TILE_SEQ_BEGIN(0xA4A)
+static const DrawTileSeqStruct _road_depot_NW[] = {
TILE_SEQ_LINE(0x585 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16)
TILE_SEQ_END()
};
-static const DrawRoadSeqStruct* const _road_depot[] = {
- _road_depot_NE,
- _road_depot_SE,
- _road_depot_SW,
- _road_depot_NW
+static const DrawTileSprites _road_depot[] = {
+ { 0xA4A, _road_depot_NE },
+ { 0xA4A, _road_depot_SE },
+ { 0xA4A, _road_depot_SW },
+ { 0xA4A, _road_depot_NW }
};
#undef TILE_SEQ_BEGIN