diff options
author | tron <tron@openttd.org> | 2006-02-24 19:56:24 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-02-24 19:56:24 +0000 |
commit | 3cde68077ef40b62836f005c618ab58576206fed (patch) | |
tree | 37affcfcf1a07542085a0de7a63ee252119bb0fb | |
parent | 6b7d4721bd3e769ae27efc569eadf72ad5212d59 (diff) | |
download | openttd-3cde68077ef40b62836f005c618ab58576206fed.tar.xz |
(svn r3665) Add a function to turn a tile into a clear tile
-rw-r--r-- | clear.h | 12 | ||||
-rw-r--r-- | landscape.c | 14 | ||||
-rw-r--r-- | terraform_gui.c | 3 | ||||
-rw-r--r-- | tree_cmd.c | 8 |
4 files changed, 18 insertions, 19 deletions
@@ -4,6 +4,7 @@ #define CLEAR_H #include "macros.h" +#include "tile.h" /* ground type, m5 bits 2...4 * valid densities (bits 0...1) in comments after the enum @@ -43,4 +44,15 @@ static inline void SetFenceSE(TileIndex t, uint h) { SB(_m[t].m4, 2, 3, h); } static inline uint GetFenceSW(TileIndex t) { return GB(_m[t].m4, 5, 3); } static inline void SetFenceSW(TileIndex t, uint h) { SB(_m[t].m4, 5, 3, h); } + +static inline void MakeClear(TileIndex t, ClearGround g, uint density) +{ + SetTileType(t, MP_CLEAR); + SetTileOwner(t, OWNER_NONE); + _m[t].m2 = 0; + _m[t].m3 = 0; + _m[t].m4 = 0 << 5 | 0 << 2; + _m[t].m5 = 0 << 5 | g << 2 | density; +} + #endif diff --git a/landscape.c b/landscape.c index b96c98491..8c01aa524 100644 --- a/landscape.c +++ b/landscape.c @@ -239,12 +239,7 @@ void DrawFoundation(TileInfo *ti, uint f) void DoClearSquare(TileIndex tile) { - SetTileType(tile, MP_CLEAR); - SetTileOwner(tile, OWNER_NONE); - _m[tile].m2 = 0; - _m[tile].m3 = 0; - _m[tile].m4 = 0; - SetClearGroundDensity(tile, CL_GRASS, _generating_world ? 3 : 0); + MakeClear(tile, CL_GRASS, _generating_world ? 3 : 0); MarkTileDirtyByTile(tile); } @@ -438,12 +433,7 @@ void InitializeLandscape(void) map_size = MapSize(); for (i = 0; i < map_size; i++) { - _m[i].type_height = MP_CLEAR << 4; - _m[i].m1 = OWNER_NONE; - _m[i].m2 = 0; - _m[i].m3 = 0; - _m[i].m4 = 0; - _m[i].m5 = 3; + MakeClear(i, CL_GRASS, 3); _m[i].extra = 0; } diff --git a/terraform_gui.c b/terraform_gui.c index 02d6f9490..eeda59bed 100644 --- a/terraform_gui.c +++ b/terraform_gui.c @@ -82,8 +82,7 @@ static void GenerateRockyArea(TileIndex end, TileIndex start) BEGIN_TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) { if (IsTileType(tile, MP_CLEAR) || IsTileType(tile, MP_TREES)) { - SetTileType(tile, MP_CLEAR); - SetClearGroundDensity(tile, CL_ROCKS, 3); + MakeClear(tile, CL_ROCKS, 3); MarkTileDirtyByTile(tile); success = true; } diff --git a/tree_cmd.c b/tree_cmd.c index 076e1efdb..49a2245a8 100644 --- a/tree_cmd.c +++ b/tree_cmd.c @@ -515,12 +515,10 @@ static void TileLoop_Trees(TileIndex tile) SetTreeGrowth(tile, 3); } else { /* just one tree, change type into MP_CLEAR */ - SetTileType(tile, MP_CLEAR); - SetTileOwner(tile, OWNER_NONE); switch (GetTreeGround(tile)) { - case TR_GRASS: SetClearGroundDensity(tile, CL_GRASS, 3); break; - case TR_ROUGH: SetClearGroundDensity(tile, CL_ROUGH, 3); break; - default: SetClearGroundDensity(tile, CL_SNOW, GetTreeDensity(tile)); break; + case TR_GRASS: MakeClear(tile, CL_GRASS, 3); break; + case TR_ROUGH: MakeClear(tile, CL_ROUGH, 3); break; + default: MakeClear(tile, CL_SNOW, GetTreeDensity(tile)); break; } } break; |