mirror of https://github.com/OpenTTD/OpenTTD
(svn r3665) Add a function to turn a tile into a clear tile
parent
f369dcef51
commit
f6d48379d8
12
clear.h
12
clear.h
|
@ -4,6 +4,7 @@
|
||||||
#define CLEAR_H
|
#define CLEAR_H
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
#include "tile.h"
|
||||||
|
|
||||||
/* ground type, m5 bits 2...4
|
/* ground type, m5 bits 2...4
|
||||||
* valid densities (bits 0...1) in comments after the enum
|
* 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 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 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
|
#endif
|
||||||
|
|
14
landscape.c
14
landscape.c
|
@ -239,12 +239,7 @@ void DrawFoundation(TileInfo *ti, uint f)
|
||||||
|
|
||||||
void DoClearSquare(TileIndex tile)
|
void DoClearSquare(TileIndex tile)
|
||||||
{
|
{
|
||||||
SetTileType(tile, MP_CLEAR);
|
MakeClear(tile, CL_GRASS, _generating_world ? 3 : 0);
|
||||||
SetTileOwner(tile, OWNER_NONE);
|
|
||||||
_m[tile].m2 = 0;
|
|
||||||
_m[tile].m3 = 0;
|
|
||||||
_m[tile].m4 = 0;
|
|
||||||
SetClearGroundDensity(tile, CL_GRASS, _generating_world ? 3 : 0);
|
|
||||||
MarkTileDirtyByTile(tile);
|
MarkTileDirtyByTile(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,12 +433,7 @@ void InitializeLandscape(void)
|
||||||
|
|
||||||
map_size = MapSize();
|
map_size = MapSize();
|
||||||
for (i = 0; i < map_size; i++) {
|
for (i = 0; i < map_size; i++) {
|
||||||
_m[i].type_height = MP_CLEAR << 4;
|
MakeClear(i, CL_GRASS, 3);
|
||||||
_m[i].m1 = OWNER_NONE;
|
|
||||||
_m[i].m2 = 0;
|
|
||||||
_m[i].m3 = 0;
|
|
||||||
_m[i].m4 = 0;
|
|
||||||
_m[i].m5 = 3;
|
|
||||||
_m[i].extra = 0;
|
_m[i].extra = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,8 +82,7 @@ static void GenerateRockyArea(TileIndex end, TileIndex start)
|
||||||
|
|
||||||
BEGIN_TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
|
BEGIN_TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
|
||||||
if (IsTileType(tile, MP_CLEAR) || IsTileType(tile, MP_TREES)) {
|
if (IsTileType(tile, MP_CLEAR) || IsTileType(tile, MP_TREES)) {
|
||||||
SetTileType(tile, MP_CLEAR);
|
MakeClear(tile, CL_ROCKS, 3);
|
||||||
SetClearGroundDensity(tile, CL_ROCKS, 3);
|
|
||||||
MarkTileDirtyByTile(tile);
|
MarkTileDirtyByTile(tile);
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -515,12 +515,10 @@ static void TileLoop_Trees(TileIndex tile)
|
||||||
SetTreeGrowth(tile, 3);
|
SetTreeGrowth(tile, 3);
|
||||||
} else {
|
} else {
|
||||||
/* just one tree, change type into MP_CLEAR */
|
/* just one tree, change type into MP_CLEAR */
|
||||||
SetTileType(tile, MP_CLEAR);
|
|
||||||
SetTileOwner(tile, OWNER_NONE);
|
|
||||||
switch (GetTreeGround(tile)) {
|
switch (GetTreeGround(tile)) {
|
||||||
case TR_GRASS: SetClearGroundDensity(tile, CL_GRASS, 3); break;
|
case TR_GRASS: MakeClear(tile, CL_GRASS, 3); break;
|
||||||
case TR_ROUGH: SetClearGroundDensity(tile, CL_ROUGH, 3); break;
|
case TR_ROUGH: MakeClear(tile, CL_ROUGH, 3); break;
|
||||||
default: SetClearGroundDensity(tile, CL_SNOW, GetTreeDensity(tile)); break;
|
default: MakeClear(tile, CL_SNOW, GetTreeDensity(tile)); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue