changeset 8279:f856ab64e41e draft

(svn r11843) -Fix: mark dirty canal tile even in diagonal direction from flooded tile
author smatz <smatz@openttd.org>
date Sun, 13 Jan 2008 22:12:39 +0000
parents 01e6122b492c
children 11c7596b14f3
files src/direction_type.h src/water_cmd.cpp
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/direction_type.h
+++ b/src/direction_type.h
@@ -30,6 +30,9 @@
 	INVALID_DIR = 0xFF,     ///< Flag for an invalid direction
 };
 
+/** Allow incrementing of Direction variables */
+DECLARE_POSTFIX_INCREMENT(Direction);
+
 /** Define basic enum properties */
 template <> struct EnumPropsT<Direction> : MakeEnumPropsT<Direction, byte, DIR_BEGIN, DIR_END, INVALID_DIR> {};
 typedef TinyEnumT<Direction> DirectionByte; //typedefing-enumification of Direction
@@ -77,6 +80,7 @@
 	INVALID_DIAGDIR = 0xFF, ///< Flag for an invalid DiagDirection
 };
 
+/** Allow incrementing of DiagDirection variables */
 DECLARE_POSTFIX_INCREMENT(DiagDirection);
 
 /** Define basic enum properties */
--- a/src/water_cmd.cpp
+++ b/src/water_cmd.cpp
@@ -644,10 +644,9 @@
 			MakeWater(target);
 			MarkTileDirtyByTile(target);
 			/* Mark surrounding canal tiles dirty too to avoid glitches */
-			MarkTileDirtyIfCanal(target + TileDiffXY(0, 1));
-			MarkTileDirtyIfCanal(target + TileDiffXY(1, 0));
-			MarkTileDirtyIfCanal(target + TileDiffXY(0, -1));
-			MarkTileDirtyIfCanal(target + TileDiffXY(-1, 0));
+			for (Direction dir = DIR_BEGIN; dir < DIR_END; dir++) {
+				MarkTileDirtyIfCanal(target + TileOffsByDir(dir));
+			}
 		}
 	}
 }