diff options
-rw-r--r-- | vehicle.c | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -514,15 +514,16 @@ static bool CanFillVehicle_FullLoadAny(Vehicle *v) bool CanFillVehicle(Vehicle *v) { - byte *t = &_map_type_and_height[v->tile]; - - if (t[0] >> 4 == MP_STATION || - (v->type == VEH_Ship && - (t[TILE_XY(1,0)] >> 4 == MP_STATION || - t[TILE_XY(-1,0)] >> 4 == MP_STATION || - t[TILE_XY(0,1)] >> 4 == MP_STATION || - t[TILE_XY(0,-1)] >> 4 == MP_STATION || - t[TILE_XY(-2,0)] >> 4 == MP_STATION))) { + TileIndex tile = v->tile; + + if (IsTileType(tile, MP_STATION) || + (v->type == VEH_Ship && ( + IsTileType(TILE_ADDXY(tile, 1, 0), MP_STATION) || + IsTileType(TILE_ADDXY(tile, -1, 0), MP_STATION) || + IsTileType(TILE_ADDXY(tile, 0, 1), MP_STATION) || + IsTileType(TILE_ADDXY(tile, 0, -1), MP_STATION) || + IsTileType(TILE_ADDXY(tile, -2, 0), MP_STATION) + ))) { // If patch is active, use alternative CanFillVehicle-function if (_patches.full_load_any) |