(svn r24628) -Fix: Document and enforce precondition start != end for ScriptRoad::RemoveRoad and ScriptRoad::RemoveRoadFull

pull/155/head
zuu 12 years ago
parent 8eeb6dee59
commit 0760a490f4

@ -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));

@ -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.

Loading…
Cancel
Save