Changeset - r17352:d37da4ff3ec3
[Not reviewed]
master
0 2 0
frosch - 13 years ago 2011-02-19 14:51:46
frosch@openttd.org
(svn r22108) -Codechange: Replace some magic with some other magic though less easy to break.
2 files changed with 24 insertions and 20 deletions:
0 comments (0 inline, 0 general)
src/table/water_land.h
Show inline comments
 
@@ -20,32 +20,34 @@ struct WaterDrawTileStruct {
 
};
 

	
 
#define BEGIN(image) { 0, 0, 0, 0, 0, 0, image }
 
#define END(y) { 0x80, y, 0, 0, 0, 0, 0 }
 

	
 
/** Constructor macro for a terminating WaterDrawTileStruct entry in an array */
 
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
 

	
 
static const WaterDrawTileStruct _shipdepot_display_seq_1[] = {
 
	BEGIN(0xFDD),
 
	{ 0, 15, 0, 16, 1, 0x14, 0xFE8 | (1 << PALETTE_MODIFIER_COLOUR) },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _shipdepot_display_seq_2[] = {
 
	BEGIN(0xFDD),
 
	{ 0,  0, 0, 16, 1, 0x14, 0xFEA },
 
	{ 0, 15, 0, 16, 1, 0x14, 0xFE6 | (1 << PALETTE_MODIFIER_COLOUR) },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _shipdepot_display_seq_3[] = {
 
	BEGIN(0xFDD),
 
	{ 15, 0, 0, 1, 0x10, 0x14, 0xFE9 | (1 << PALETTE_MODIFIER_COLOUR) },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _shipdepot_display_seq_4[] = {
 
	BEGIN(0xFDD),
 
	{  0, 0, 0, 1, 16, 0x14, 0xFEB },
 
	{ 15, 0, 0, 1, 16, 0x14, 0xFE7 | (1 << PALETTE_MODIFIER_COLOUR) },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct * const _shipdepot_display_seq[] = {
 
@@ -59,84 +61,84 @@ static const WaterDrawTileStruct _lock_d
 
	BEGIN(1),
 
	{ 0,   0, 0, 0x10, 1, 0x14, 0 + 1 },
 
	{ 0, 0xF, 0, 0x10, 1, 0x14, 4 + 1 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_1[] = {
 
	BEGIN(0),
 
	{   0, 0, 0, 1, 0x10, 0x14, 0 },
 
	{ 0xF, 0, 0, 1, 0x10, 0x14, 4 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_2[] = {
 
	BEGIN(2),
 
	{ 0,   0, 0, 0x10, 1, 0x14, 0 + 2 },
 
	{ 0, 0xF, 0, 0x10, 1, 0x14, 4 + 2 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_3[] = {
 
	BEGIN(3),
 
	{   0, 0, 0, 1, 0x10, 0x14, 0 + 3 },
 
	{ 0xF, 0, 0, 1, 0x10, 0x14, 4 + 3 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_0b[] = {
 
	BEGIN(0xFDD),
 
	{ 0,   0, 0, 0x10, 1, 0x14, 8 + 1 },
 
	{ 0, 0xF, 0, 0x10, 1, 0x14, 12 + 1 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_1b[] = {
 
	BEGIN(0xFDD),
 
	{   0, 0, 0, 0x1, 0x10, 0x14, 8 },
 
	{ 0xF, 0, 0, 0x1, 0x10, 0x14, 12 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_2b[] = {
 
	BEGIN(0xFDD),
 
	{ 0,   0, 0, 0x10, 1, 0x14, 8 + 2 },
 
	{ 0, 0xF, 0, 0x10, 1, 0x14, 12 + 2 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_3b[] = {
 
	BEGIN(0xFDD),
 
	{   0, 0, 0, 1, 0x10, 0x14, 8 + 3 },
 
	{ 0xF, 0, 0, 1, 0x10, 0x14, 12 + 3 },
 
	END(0)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_0t[] = {
 
	BEGIN(0xFDD),
 
	{ 0,   0, 0, 0x10, 1, 0x14, 16 + 1 },
 
	{ 0, 0xF, 0, 0x10, 1, 0x14, 20 + 1 },
 
	END(8)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_1t[] = {
 
	BEGIN(0xFDD),
 
	{   0, 0, 0, 0x1, 0x10, 0x14, 16 },
 
	{ 0xF, 0, 0, 0x1, 0x10, 0x14, 20 },
 
	END(8)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_2t[] = {
 
	BEGIN(0xFDD),
 
	{ 0,   0, 0, 0x10, 1, 0x14, 16 + 2 },
 
	{ 0, 0xF, 0, 0x10, 1, 0x14, 20 + 2 },
 
	END(8)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct _lock_display_seq_3t[] = {
 
	BEGIN(0xFDD),
 
	{   0, 0, 0, 1, 0x10, 0x14, 16 + 3 },
 
	{ 0xF, 0, 0, 1, 0x10, 0x14, 20 + 3 },
 
	END(8)
 
	TILE_SEQ_END()
 
};
 

	
 
static const WaterDrawTileStruct * const _lock_display_seq[] = {
 
@@ -157,4 +159,4 @@ static const WaterDrawTileStruct * const
 
};
 

	
 
#undef BEGIN
 
#undef END
 
#undef TILE_SEQ_END
src/water_cmd.cpp
Show inline comments
 
@@ -641,7 +641,8 @@ static void DrawWaterTileStruct(const Ti
 
/** Draw a lock tile. */
 
static void DrawWaterLock(const TileInfo *ti)
 
{
 
	const WaterDrawTileStruct *wdts = _lock_display_seq[GetSection(ti->tile)];
 
	int section = GetSection(ti->tile);
 
	const WaterDrawTileStruct *wdts = _lock_display_seq[section];
 

	
 
	/* Draw ground sprite. */
 
	SpriteID image = wdts++->image;
 
@@ -669,7 +670,8 @@ static void DrawWaterLock(const TileInfo
 
	if (base == 0) {
 
		/* If no custom graphics, use defaults. */
 
		base = SPR_LOCK_BASE;
 
		zoffs = ti->z > wdts[3].delta_y ? 24 : 0;
 
		uint8 z_threshold = section >= 8 ? 8 : 0;
 
		zoffs = ti->z > z_threshold ? 24 : 0;
 
	}
 

	
 
	DrawWaterTileStruct(ti, wdts, base, zoffs, PAL_NONE, CF_LOCKS);
0 comments (0 inline, 0 general)