(svn r14591) -Fix [FS#2388](r14528): cached nearest town could be invalid after importing older savegame and during town generation

-Codechange: rewrite parts of code responsible for caching index of nearest town
This commit is contained in:
smatz
2008-11-18 22:43:59 +00:00
parent e1a36e90a4
commit 07e3c096b3
7 changed files with 70 additions and 41 deletions

View File

@@ -189,10 +189,21 @@ static inline void SetRoadOwner(TileIndex t, RoadType rt, Owner o)
static inline bool IsRoadOwner(TileIndex t, RoadType rt, Owner o)
{
assert(rt == ROADTYPE_ROAD || HasTileRoadType(t, rt));
assert(HasTileRoadType(t, rt));
return (GetRoadOwner(t, rt) == o);
}
/** Checks if given tile has town owned road
* @param t tile to check
* @return true iff tile has road and the road is owned by a town
* @pre IsTileType(t, MP_ROAD)
*/
static inline bool HasTownOwnedRoad(TileIndex t)
{
assert(IsTileType(t, MP_ROAD));
return HasTileRoadType(t, ROADTYPE_ROAD) && IsRoadOwner(t, ROADTYPE_ROAD, OWNER_TOWN);
}
/** Which directions are disallowed ? */
enum DisallowedRoadDirections {
DRD_NONE, ///< None of the directions are disallowed