From 1f764f51f0a146ee797dd21bda65507d361c79da Mon Sep 17 00:00:00 2001 From: zuu Date: Thu, 25 Oct 2012 19:25:31 +0000 Subject: (svn r24628) -Fix: Document and enforce precondition start != end for ScriptRoad::RemoveRoad and ScriptRoad::RemoveRoadFull --- src/script/api/script_road.cpp | 2 ++ src/script/api/script_road.hpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/script/api/script_road.cpp b/src/script/api/script_road.cpp index 19db9a901..137ae7618 100644 --- a/src/script/api/script_road.cpp +++ b/src/script/api/script_road.cpp @@ -537,6 +537,7 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia /* static */ bool ScriptRoad::RemoveRoad(TileIndex start, TileIndex end) { EnforcePrecondition(false, ScriptObject::GetCompany() != OWNER_DEITY); + EnforcePrecondition(false, start != end); EnforcePrecondition(false, ::IsValidTile(start)); EnforcePrecondition(false, ::IsValidTile(end)); EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end)); @@ -548,6 +549,7 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia /* static */ bool ScriptRoad::RemoveRoadFull(TileIndex start, TileIndex end) { EnforcePrecondition(false, ScriptObject::GetCompany() != OWNER_DEITY); + EnforcePrecondition(false, start != end); EnforcePrecondition(false, ::IsValidTile(start)); EnforcePrecondition(false, ::IsValidTile(end)); EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end)); diff --git a/src/script/api/script_road.hpp b/src/script/api/script_road.hpp index 9818fa55c..6f928e25c 100644 --- a/src/script/api/script_road.hpp +++ b/src/script/api/script_road.hpp @@ -418,6 +418,7 @@ public: * Removes a road from the center of tile start to the center of tile end. * @param start The start tile of the road. * @param end The end tile of the road. + * @pre 'start' is not equal to 'end'. * @pre ScriptMap::IsValidTile(start). * @pre ScriptMap::IsValidTile(end). * @pre 'start' and 'end' are in a straight line, i.e. @@ -437,6 +438,7 @@ public: * included). * @param start The start tile of the road. * @param end The end tile of the road. + * @pre 'start' is not equal to 'end'. * @pre ScriptMap::IsValidTile(start). * @pre ScriptMap::IsValidTile(end). * @pre 'start' and 'end' are in a straight line, i.e. -- cgit v1.2.3-54-g00ecf