summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-08-26 19:29:20 +0000
committerrubidium <rubidium@openttd.org>2010-08-26 19:29:20 +0000
commit08a41c6ee5f1500fcd472e953b2341ef996cb901 (patch)
tree5a6b472d492733b8747c3b02d7421190d6b08bce
parent327451e820fb4429806e4bcfa2ed824ea3858f5a (diff)
downloadopenttd-08a41c6ee5f1500fcd472e953b2341ef996cb901.tar.xz
(svn r20631) -Codechange: generalise IsIndustryTileOnWater + simplify so related code
-rw-r--r--src/industry_cmd.cpp4
-rw-r--r--src/industry_map.h11
-rw-r--r--src/newgrf_industrytiles.cpp2
-rw-r--r--src/water_cmd.cpp17
-rw-r--r--src/water_map.h13
5 files changed, 21 insertions, 26 deletions
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp
index 81d84b414..c0558427c 100644
--- a/src/industry_cmd.cpp
+++ b/src/industry_cmd.cpp
@@ -338,7 +338,7 @@ static void DrawTile_Industry(TileInfo *ti)
/* If the ground sprite is the default flat water sprite, draw also canal/river borders.
* Do not do this if the tile's WaterClass is 'land'. */
- if (image == SPR_FLAT_WATER_TILE && IsIndustryTileOnWater(ti->tile)) {
+ if (image == SPR_FLAT_WATER_TILE && IsTileOnWater(ti->tile)) {
DrawWaterClassGround(ti);
} else {
DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)));
@@ -791,7 +791,7 @@ static void TileLoopIndustry_BubbleGenerator(TileIndex tile)
static void TileLoop_Industry(TileIndex tile)
{
- if (IsIndustryTileOnWater(tile)) TileLoop_Water(tile);
+ if (IsTileOnWater(tile)) TileLoop_Water(tile);
TriggerIndustryTile(tile, INDTILE_TRIGGER_TILE_LOOP);
diff --git a/src/industry_map.h b/src/industry_map.h
index 39d8169e6..33f60ff5d 100644
--- a/src/industry_map.h
+++ b/src/industry_map.h
@@ -157,17 +157,6 @@ static inline void SetIndustryGfx(TileIndex t, IndustryGfx gfx)
}
/**
- * Tests if the industry tile was built on water.
- * @param t the industry tile
- * @return true iff on water
- */
-static inline bool IsIndustryTileOnWater(TileIndex t)
-{
- assert(IsTileType(t, MP_INDUSTRY));
- return (GetWaterClass(t) != WATER_CLASS_INVALID);
-}
-
-/**
* Returns this indutry tile's construction counter value
* @param tile the tile to query
* @pre IsTileType(tile, MP_INDUSTRY)
diff --git a/src/newgrf_industrytiles.cpp b/src/newgrf_industrytiles.cpp
index c319c44b2..c088a4ea2 100644
--- a/src/newgrf_industrytiles.cpp
+++ b/src/newgrf_industrytiles.cpp
@@ -190,7 +190,7 @@ static void IndustryDrawTileLayout(const TileInfo *ti, const TileLayoutSpriteGro
if (GB(image, 0, SPRITE_WIDTH) != 0) {
/* If the ground sprite is the default flat water sprite, draw also canal/river borders
* Do not do this if the tile's WaterClass is 'land'. */
- if (image == SPR_FLAT_WATER_TILE && IsIndustryTileOnWater(ti->tile)) {
+ if (image == SPR_FLAT_WATER_TILE && IsTileOnWater(ti->tile)) {
DrawWaterClassGround(ti);
} else {
DrawGroundSprite(image, GroundSpritePaletteTransform(image, pal, GENERAL_SPRITE_COLOUR(rnd_colour)));
diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp
index 78d190d69..74483f7ca 100644
--- a/src/water_cmd.cpp
+++ b/src/water_cmd.cpp
@@ -497,7 +497,7 @@ static bool IsWateredTile(TileIndex tile, Direction from)
if ((IsTileType(src_tile, MP_STATION) && IsOilRig(src_tile)) ||
(IsTileType(src_tile, MP_INDUSTRY) && GetIndustryIndex(src_tile) == GetIndustryIndex(tile))) return true;
- return IsIndustryTileOnWater(tile);
+ return IsTileOnWater(tile);
}
case MP_TUNNELBRIDGE: return GetTunnelBridgeTransportType(tile) == TRANSPORT_WATER && ReverseDiagDir(GetTunnelBridgeDirection(tile)) == DirToDiagDir(from);
@@ -932,9 +932,11 @@ FloodingBehaviour GetFloodingBehaviour(TileIndex tile)
if (IsCoast(tile)) {
Slope tileh = GetTileSlope(tile, NULL);
return (IsSlopeWithOneCornerRaised(tileh) ? FLOOD_ACTIVE : FLOOD_DRYUP);
- } else {
- return (GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE;
}
+ /* FALL THROUGH */
+ case MP_STATION:
+ case MP_INDUSTRY:
+ return (GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE;
case MP_RAILWAY:
if (GetRailGroundType(tile) == RAIL_GROUND_WATER) {
@@ -945,15 +947,6 @@ FloodingBehaviour GetFloodingBehaviour(TileIndex tile)
case MP_TREES:
return (GetTreeGround(tile) == TREE_GROUND_SHORE ? FLOOD_DRYUP : FLOOD_NONE);
- case MP_STATION:
- if (IsBuoy(tile) || (IsDock(tile) && GetTileSlope(tile, NULL) == SLOPE_FLAT) || IsOilRig(tile)) {
- return (GetWaterClass(tile) == WATER_CLASS_SEA ? FLOOD_ACTIVE : FLOOD_NONE);
- }
- return FLOOD_NONE;
-
- case MP_INDUSTRY:
- return ((IsIndustryTileOnWater(tile) && GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE);
-
default:
return FLOOD_NONE;
}
diff --git a/src/water_map.h b/src/water_map.h
index a7f685270..852396e32 100644
--- a/src/water_map.h
+++ b/src/water_map.h
@@ -68,6 +68,7 @@ static inline WaterTileType GetWaterTileType(TileIndex t)
/**
* Get the water class at a tile.
* @param t Water tile to query.
+ * @pre IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT)
* @return Water class at the tile.
*/
static inline WaterClass GetWaterClass(TileIndex t)
@@ -80,6 +81,7 @@ static inline WaterClass GetWaterClass(TileIndex t)
* Set the water class at a tile.
* @param t Water tile to change.
* @param wc New water class.
+ * @pre IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT)
*/
static inline void SetWaterClass(TileIndex t, WaterClass wc)
{
@@ -88,6 +90,17 @@ static inline void SetWaterClass(TileIndex t, WaterClass wc)
}
/**
+ * Tests if the tile was built on water.
+ * @param t the tile to check
+ * @pre IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT)
+ * @return true iff on water
+ */
+static inline bool IsTileOnWater(TileIndex t)
+{
+ return (GetWaterClass(t) != WATER_CLASS_INVALID);
+}
+
+/**
* Is it a plain water tile?
* @param t Water tile to query.
* @return \c true if any type of clear water like ocean, river, or canal.