changeset 11868:4f029fd2d3e5 draft

(svn r16262) -Fix [NoAI]: Check slopes passed to the API better for validity
author yexo <yexo@openttd.org>
date Sat, 09 May 2009 19:45:02 +0000
parents 8bf4312f1a12
children 6d78be1df586
files src/ai/api/ai_tile.cpp
diffstat 1 files changed, 3 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/api/ai_tile.cpp
+++ b/src/ai/api/ai_tile.cpp
@@ -73,14 +73,14 @@
 
 /* static */ bool AITile::IsSteepSlope(Slope slope)
 {
-	if (slope == SLOPE_INVALID) return false;
+	if ((slope & ~(SLOPE_ELEVATED | SLOPE_STEEP | SLOPE_HALFTILE_MASK)) != 0) return false;
 
 	return ::IsSteepSlope((::Slope)slope);
 }
 
 /* static */ bool AITile::IsHalftileSlope(Slope slope)
 {
-	if (slope == SLOPE_INVALID) return false;
+	if ((slope & ~(SLOPE_ELEVATED | SLOPE_STEEP | SLOPE_HALFTILE_MASK)) != 0) return false;
 
 	return ::IsHalftileSlope((::Slope)slope);
 }
@@ -124,9 +124,7 @@
 
 /* static */ AITile::Slope AITile::GetComplementSlope(Slope slope)
 {
-	if (slope == SLOPE_INVALID) return SLOPE_INVALID;
-	if (IsSteepSlope(slope)) return SLOPE_INVALID;
-	if (IsHalftileSlope(slope)) return SLOPE_INVALID;
+	if ((slope & ~SLOPE_ELEVATED) != 0) return SLOPE_INVALID;
 
 	return (Slope)::ComplementSlope((::Slope)slope);
 }