summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2005-03-17 16:31:18 +0000
committertron <tron@openttd.org>2005-03-17 16:31:18 +0000
commitcb084f59c2fbd58d38b15cee53d563816fcbf1c7 (patch)
treea8ab35ffc0001490f3be8c86769df00012ac5716
parentf1f70501db9a1fd69bfabc03f6a880ac6befc453 (diff)
downloadopenttd-cb084f59c2fbd58d38b15cee53d563816fcbf1c7.tar.xz
(svn r2020) Reduce code duplication in the minimap code a bit
-rw-r--r--smallmap_gui.c74
1 files changed, 16 insertions, 58 deletions
diff --git a/smallmap_gui.c b/smallmap_gui.c
index ce464c52b..52d07f879 100644
--- a/smallmap_gui.c
+++ b/smallmap_gui.c
@@ -305,14 +305,14 @@ static const AndOr _smallmap_vegetation_andor[] = {
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)},
};
-static inline uint32 GetSmallMapContoursPixels(TileIndex tile)
+
+static inline TileType GetEffectiveTileType(TileIndex tile)
{
- uint t;
+ TileType t = GetTileType(tile);
- t = GetTileType(tile);
if (t == MP_TUNNELBRIDGE) {
t = _map5[tile];
- if ((t & 0x80) == 0) t>>=1;
+ if ((t & 0x80) == 0) t >>= 1;
if ((t & 6) == 0) {
t = MP_RAILWAY;
} else if ((t & 6) == 2) {
@@ -321,6 +321,13 @@ static inline uint32 GetSmallMapContoursPixels(TileIndex tile)
t = MP_WATER;
}
}
+ return t;
+}
+
+
+static inline uint32 GetSmallMapContoursPixels(TileIndex tile)
+{
+ TileType t = GetEffectiveTileType(tile);
return
ApplyMask(_map_height_bits[TileHeight(tile)], &_smallmap_contours_andor[t]);
@@ -338,20 +345,8 @@ static void DrawSmallMapContours(byte *dst, uint xc, uint yc, int pitch, int rep
static inline uint32 GetSmallMapVehiclesPixels(TileIndex tile)
{
- uint t;
+ TileType t = GetEffectiveTileType(tile);
- t = GetTileType(tile);
- if (t == MP_TUNNELBRIDGE) {
- t = _map5[tile];
- if ((t & 0x80) == 0) t>>=1;
- if ((t & 6) == 0) {
- t = MP_RAILWAY;
- } else if ((t & 6) == 2) {
- t = MP_STREET;
- } else {
- t = MP_WATER;
- }
- }
return ApplyMask(MKCOLOR(0x54545454), &_smallmap_vehicles_andor[t]);
}
@@ -391,24 +386,12 @@ static const byte _industry_smallmap_colors[175] = {
static inline uint32 GetSmallMapIndustriesPixels(TileIndex tile)
{
- int t;
+ TileType t = GetEffectiveTileType(tile);
- t = GetTileType(tile);
if (t == MP_INDUSTRY) {
byte color = _industry_smallmap_colors[_map5[tile]];
return color + (color << 8) + (color << 16) + (color << 24);
} else {
- if (t == MP_TUNNELBRIDGE) {
- t = _map5[tile];
- if ((t & 0x80) == 0) t>>=1;
- if ((t & 6) == 0) {
- t = MP_RAILWAY;
- } else if ((t & 6) == 2) {
- t = MP_STREET;
- } else {
- t = MP_WATER;
- }
- }
return ApplyMask(MKCOLOR(0x54545454), &_smallmap_vehicles_andor[t]);
}
}
@@ -423,10 +406,9 @@ static void DrawSmallMapIndustries(byte *dst, uint xc, uint yc, int pitch, int r
static inline uint32 GetSmallMapRoutesPixels(TileIndex tile)
{
- int t;
+ TileType t = GetEffectiveTileType(tile);
uint32 bits;
- t = GetTileType(tile);
if (t == MP_STATION) {
byte m5 = _map5[tile];
(bits = MKCOLOR(0x56565656), m5 < 8) || // 8 - railroad station (green)
@@ -437,17 +419,6 @@ static inline uint32 GetSmallMapRoutesPixels(TileIndex tile)
(bits = MKCOLOR(0xB8B8B8B8), m5 < 0x73) || // 115 - airport (red) (new airports)
(bits = MKCOLOR(0xFFFFFFFF), true); // all others
} else {
- if (t == MP_TUNNELBRIDGE) {
- t = _map5[tile];
- if ((t & 0x80) == 0) t>>=1;
- if ((t & 6) == 0) {
- t = MP_RAILWAY;
- } else if ((t & 6) == 2) {
- t = MP_STREET;
- } else {
- t = MP_WATER;
- }
- }
// ground color
bits = ApplyMask(MKCOLOR(0x54545454), &_smallmap_contours_andor[t]);
}
@@ -479,11 +450,10 @@ static const uint32 _vegetation_clear_bits[4 + 7] = {
static inline uint32 GetSmallMapVegetationPixels(TileIndex tile)
{
+ TileType t = GetEffectiveTileType(tile);
int i;
- TileType t;
uint32 bits;
- t = GetTileType(tile);
switch (t) {
case MP_CLEAR:
i = (_map5[tile] & 0x1F) - 4;
@@ -503,17 +473,6 @@ static inline uint32 GetSmallMapVegetationPixels(TileIndex tile)
break;
default:
- if (t == MP_TUNNELBRIDGE) {
- t = _map5[tile];
- if ((t & 0x80) == 0) t>>=1;
- if ((t & 6) == 0) {
- t = MP_RAILWAY;
- } else if ((t & 6) == 2) {
- t = MP_STREET;
- } else {
- t = MP_WATER;
- }
- }
bits = ApplyMask(MKCOLOR(0x54545454), &_smallmap_vehicles_andor[t]);
break;
}
@@ -535,9 +494,8 @@ static uint32 _owner_colors[256];
static inline uint32 GetSmallMapOwnerPixels(TileIndex tile)
{
- int t;
+ TileType t = GetTileType(tile);
- t = GetTileType(tile);
if (t == MP_HOUSE || _map_owner[tile] == OWNER_TOWN) {
t = 0x80;
} else if (t == MP_INDUSTRY) {