(svn r5796) Use DrawTileSprites/DrawTileSeqStruct for road depot drawing data, too
authortron
Sun, 06 Aug 2006 18:36:36 +0000
changeset 4232 628628eaa4fc
parent 4231 dea6a63dd058
child 4233 572e339d3ceb
(svn r5796) Use DrawTileSprites/DrawTileSeqStruct for road depot drawing data, too
road_cmd.c
table/road_land.h
--- a/road_cmd.c	Sun Aug 06 16:32:49 2006 +0000
+++ b/road_cmd.c	Sun Aug 06 18:36:36 2006 +0000
@@ -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 @@
 	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 @@
 
 		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)];
+			dts =  &_road_depot[GetRoadDepotDirection(ti->tile)];
+			DrawGroundSprite(dts->ground_sprite);
 
-			DrawGroundSprite(drss++->image);
-
-			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 @@
 				}
 
 				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 @@
 
 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);
 	}
--- a/table/road_land.h	Sun Aug 06 16:32:49 2006 +0000
+++ b/table/road_land.h	Sun Aug 06 18:36:36 2006 +0000
@@ -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