diff options
author | tron <tron@openttd.org> | 2005-01-16 14:50:01 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2005-01-16 14:50:01 +0000 |
commit | 022b8cea37b1ae1a3a1745c5373d202a7f267a2d (patch) | |
tree | 187e8c5437b91c17d0f652b2f0d01e30fbd131b4 | |
parent | 8e404a26f65b8851b3dcf067fddf62f188005ee9 (diff) | |
download | openttd-022b8cea37b1ae1a3a1745c5373d202a7f267a2d.tar.xz |
(svn r1545) Add TileHeight() which returns the height (not multiplied by 8)
Replace some direct references to _map_type_and_height with TileHeight()/IsTileType()
-rw-r--r-- | clear_cmd.c | 16 | ||||
-rw-r--r-- | disaster_cmd.c | 2 | ||||
-rw-r--r-- | landscape.c | 13 | ||||
-rw-r--r-- | main_gui.c | 6 | ||||
-rw-r--r-- | map.h | 9 | ||||
-rw-r--r-- | smallmap_gui.c | 2 |
6 files changed, 26 insertions, 22 deletions
diff --git a/clear_cmd.c b/clear_cmd.c index 39ebff4d7..bc6c89e84 100644 --- a/clear_cmd.c +++ b/clear_cmd.c @@ -52,7 +52,7 @@ static int TerraformGetHeightOfTile(TerraformerState *ts, TileIndex tile) return mod->height; } - return _map_type_and_height[tile] & 0xF; + return TileHeight(tile); } static void TerraformAddDirtyTile(TerraformerState *ts, TileIndex tile) @@ -91,7 +91,7 @@ static int TerraformProc(TerraformerState *ts, uint tile, int mode) if ((r=TerraformAllowTileProcess(ts, tile)) <= 0) return r; - if ((_map_type_and_height[tile] >> 4) == MP_RAILWAY) { + if (IsTileType(tile, MP_RAILWAY)) { static const byte _railway_modes[4] = {8, 0x10, 4, 0x20}; static const byte _railway_dangslopes[4] = {0xd, 0xe, 7, 0xb}; static const byte _railway_dangslopes2[4] = {0x2, 0x1, 0x8, 0x4}; @@ -239,25 +239,25 @@ int32 CmdTerraformLand(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (p1 & 1) { if (!TerraformTileHeight(&ts, tile+TILE_XY(1,0), - (_map_type_and_height[tile+TILE_XY(1,0)]&0xF) + direction)) + TileHeight(tile + TILE_XY(1, 0)) + direction)) return CMD_ERROR; } if (p1 & 2) { if (!TerraformTileHeight(&ts, tile+TILE_XY(1,1), - (_map_type_and_height[tile+TILE_XY(1,1)]&0xF) + direction)) + TileHeight(tile + TILE_XY(1, 1)) + direction)) return CMD_ERROR; } if (p1 & 4) { if (!TerraformTileHeight(&ts, tile+TILE_XY(0,1), - (_map_type_and_height[tile+TILE_XY(0,1)]&0xF) + direction)) + TileHeight(tile + TILE_XY(0, 1)) + direction)) return CMD_ERROR; } if (p1 & 8) { if (!TerraformTileHeight(&ts, tile+TILE_XY(0,0), - (_map_type_and_height[tile+TILE_XY(0,0)]&0xF) + direction)) + TileHeight(tile + TILE_XY(0, 0)) + direction)) return CMD_ERROR; } @@ -338,7 +338,7 @@ int32 CmdLevelLand(int ex, int ey, uint32 flags, uint32 p1, uint32 p2) SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION); // remember level height - h = _map_type_and_height[p1]&0xF; + h = TileHeight(p1); ex >>= 4; ey >>= 4; @@ -356,7 +356,7 @@ int32 CmdLevelLand(int ex, int ey, uint32 flags, uint32 p1, uint32 p2) cost = 0; BEGIN_TILE_LOOP(tile2, size_x, size_y, tile) - curh = _map_type_and_height[tile2]&0xF; + curh = TileHeight(tile2); while (curh != h) { ret = DoCommandByTile(tile2, 8, (curh > h)?0:1, flags & ~DC_EXEC, CMD_TERRAFORM_LAND); if (ret == CMD_ERROR) break; diff --git a/disaster_cmd.c b/disaster_cmd.c index d6d10bf0c..0c28ddc0a 100644 --- a/disaster_cmd.c +++ b/disaster_cmd.c @@ -20,7 +20,7 @@ static void DisasterClearSquare(uint tile) if (!EnsureNoVehicle(tile)) return; - type = _map_type_and_height[tile] >> 4; + type = TileType(tile); if (type == MP_RAILWAY) { if (IS_HUMAN_PLAYER(_map_owner[tile])) diff --git a/landscape.c b/landscape.c index c40dd4c1a..1a490a897 100644 --- a/landscape.c +++ b/landscape.c @@ -53,12 +53,12 @@ uint GetTileSlope(uint tile, int *h) assert(tile < MapSize() && TileX(tile) != MapMaxX() && TileY(tile) != MapMaxY()); - min = a = _map_type_and_height[tile] & 0xF; - b = _map_type_and_height[tile+TILE_XY(1,0)] & 0xF; + min = a = TileHeight(tile); + b = TileHeight(tile + TILE_XY(1,0)); if (min >= b) min = b; - c = _map_type_and_height[tile+TILE_XY(0,1)] & 0xF; + c = TileHeight(tile + TILE_XY(0,1)); if (min >= c) min = c; - d = _map_type_and_height[tile+TILE_XY(1,1)] & 0xF; + d = TileHeight(tile + TILE_XY(1,1)); if (min >= d) min = d; r = 0; @@ -634,14 +634,13 @@ static void CreateDesertOrRainForest() { uint tile; const TileIndexDiffC *data; - byte mt; int i; for (tile = 0; tile != MapSize(); ++tile) { for (data = _make_desert_or_rainforest_data; data != endof(_make_desert_or_rainforest_data); ++data) { - mt = _map_type_and_height[TILE_MASK(tile + ToTileIndexDiff(*data))]; - if ((mt & 0xf) >= 4 || (mt >> 4) == MP_WATER) break; + TileIndex t = tile + ToTileIndexDiff(*data); + if (TileHeight(t) >= 4 || IsTileType(t, MP_WATER)) break; } if (data == endof(_make_desert_or_rainforest_data)) SetMapExtraBits(tile, 1); diff --git a/main_gui.c b/main_gui.c index 5922c4557..00452e109 100644 --- a/main_gui.c +++ b/main_gui.c @@ -1147,18 +1147,18 @@ static void CommonRaiseLowerBigLand(uint tile, int mode) /* Raise land */ h = 15; BEGIN_TILE_LOOP(tile2, size, size, tile) - h = min(h, _map_type_and_height[tile2]&0xF); + h = min(h, TileHeight(tile2)); END_TILE_LOOP(tile2, size, size, tile) } else { /* Lower land */ h = 0; BEGIN_TILE_LOOP(tile2, size, size, tile) - h = max(h, _map_type_and_height[tile2]&0xF); + h = max(h, TileHeight(tile2)); END_TILE_LOOP(tile2, size, size, tile) } BEGIN_TILE_LOOP(tile2, size, size, tile) - if ((uint)(_map_type_and_height[tile2]&0xF) == h) { + if (TileHeight(tile2) == h) { DoCommandP(tile2, 8, (uint32)mode, NULL, CMD_TERRAFORM_LAND | CMD_AUTO); } END_TILE_LOOP(tile2, size, size, tile) @@ -73,10 +73,15 @@ static inline TileIndexDiff TileOffsByDir(uint dir) } -static inline uint TilePixelHeight(TileIndex tile) +static inline uint TileHeight(TileIndex tile) { assert(tile < MapSize()); - return (_map_type_and_height[tile] & 0xf) * 8; + return _map_type_and_height[tile] & 0xf; +} + +static inline uint TilePixelHeight(TileIndex tile) +{ + return TileHeight(tile) * 8; } static inline int TileType(TileIndex tile) diff --git a/smallmap_gui.c b/smallmap_gui.c index 0f8c0ff50..8bf155ca7 100644 --- a/smallmap_gui.c +++ b/smallmap_gui.c @@ -310,7 +310,7 @@ static inline uint32 GetSmallMapCountoursPixels(uint tile) } } - return (_map_height_bits[_map_type_and_height[tile] & 0xF] & _smallmap_contours_andor[t][1]) | _smallmap_contours_andor[t][0]; + return (_map_height_bits[TileHeight(tile)] & _smallmap_contours_andor[t][1]) | _smallmap_contours_andor[t][0]; } static void DrawSmallMapContours(byte *dst, uint xc, uint yc, int pitch, int reps, uint32 mask) |