summaryrefslogtreecommitdiff
path: root/smallmap_gui.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-03-11 17:06:16 +0000
committertron <tron@openttd.org>2006-03-11 17:06:16 +0000
commite63e3bb84c0a74eab9d56489d826102f2beb668e (patch)
tree2a7233a5c11752c627c41179a3f110f51af0970f /smallmap_gui.c
parent929fae7b685a21e2337736084e42731f84cf8cba (diff)
downloadopenttd-e63e3bb84c0a74eab9d56489d826102f2beb668e.tar.xz
(svn r3820) Be a bit more strict with types: use special types instead of generic byte and don't fill arbitrary data into inappropriate types
Diffstat (limited to 'smallmap_gui.c')
-rw-r--r--smallmap_gui.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/smallmap_gui.c b/smallmap_gui.c
index 1820845ca..cfd3cf737 100644
--- a/smallmap_gui.c
+++ b/smallmap_gui.c
@@ -11,6 +11,7 @@
#include "tile.h"
#include "gui.h"
#include "tree_map.h"
+#include "tunnel_map.h"
#include "window.h"
#include "gfx.h"
#include "viewport.h"
@@ -345,12 +346,17 @@ static inline TileType GetEffectiveTileType(TileIndex tile)
TileType t = GetTileType(tile);
if (t == MP_TUNNELBRIDGE) {
- t = _m[tile].m5;
- if ((t & 0x80) == 0) t >>= 1;
- switch (t & 0x06) {
- case 0x00: t = MP_RAILWAY; break;
- case 0x02: t = MP_STREET; break;
- default: t = MP_WATER; break;
+ TransportType tt;
+
+ if (_m[tile].m5 & 0x80) {
+ tt = GB(_m[tile].m5, 1, 2);
+ } else {
+ tt = GetTunnelTransportType(tile);
+ }
+ switch (tt) {
+ case TRANSPORT_RAIL: t = MP_RAILWAY; break;
+ case TRANSPORT_ROAD: t = MP_STREET; break;
+ default: t = MP_WATER; break;
}
}
return t;