(svn r8954) -Codechange: remove direct map accesses from non-map-accessor headers.

This commit is contained in:
rubidium 2007-03-01 13:35:40 +00:00
parent ef9b0bdd88
commit 05fe6d2362
3 changed files with 12 additions and 5 deletions

View File

@ -9,6 +9,9 @@
#include "oldpool.h"
#include "tile.h"
#include "variables.h"
#include "road_map.h"
#include "rail_map.h"
#include "water_map.h"
struct Depot {
TileIndex xy;
@ -68,16 +71,16 @@ static inline bool IsTileDepotType(TileIndex tile, TransportType type)
{
switch (type) {
case TRANSPORT_RAIL:
return IsTileType(tile, MP_RAILWAY) && (_m[tile].m5 & 0xFC) == 0xC0;
return IsTileType(tile, MP_RAILWAY) && GetRailTileType(tile) == RAIL_TILE_DEPOT;
case TRANSPORT_ROAD:
return IsTileType(tile, MP_STREET) && (_m[tile].m5 & 0xF0) == 0x20;
return IsTileType(tile, MP_STREET) && GetRoadTileType(tile) == ROAD_TILE_DEPOT;
case TRANSPORT_WATER:
return IsTileType(tile, MP_WATER) && (_m[tile].m5 & ~3) == 0x80;
return IsTileType(tile, MP_WATER) && GetWaterTileType(tile) == WATER_TILE_DEPOT;
default:
assert(0);
NOT_REACHED();
return false;
}
}

View File

@ -113,6 +113,10 @@ static inline TrackBits GetRailWaypointBits(TileIndex t)
return TrackToTrackBits(GetRailWaypointTrack(t));
}
static inline WaypointID GetWaypointIndex(TileIndex t)
{
return (WaypointID)_m[t].m2;
}
typedef enum SignalType {
SIGTYPE_NORMAL = 0, // normal signal

View File

@ -59,7 +59,7 @@ static inline void DeleteWaypoint(Waypoint *wp)
static inline Waypoint *GetWaypointByTile(TileIndex tile)
{
assert(IsTileType(tile, MP_RAILWAY) && IsRailWaypoint(tile));
return GetWaypoint(_m[tile].m2);
return GetWaypoint(GetWaypointIndex(tile));
}
int32 RemoveTrainWaypoint(TileIndex tile, uint32 flags, bool justremove);