From 8d22e4bec3d21f2f99c2d6094d14aaa88865bcb8 Mon Sep 17 00:00:00 2001 From: yexo Date: Sat, 9 May 2009 19:45:02 +0000 Subject: [PATCH] (svn r16262) -Fix [NoAI]: Check slopes passed to the API better for validity --- src/ai/api/ai_tile.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/ai/api/ai_tile.cpp b/src/ai/api/ai_tile.cpp index f5bf96f1a8..70bb1fb835 100644 --- 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); }