(svn r8014) -Codechange (r7573): When a tile is cleared, empty the general purpose bits in

extra as well, unless they are (or could be) used for bridges. This means these
bits don't have to be cleared seperately when non-bridgeable tiles are removed.
This commit is contained in:
maedhros
2007-01-09 21:43:32 +00:00
parent c5867c93f7
commit cfcf0c2451
3 changed files with 6 additions and 5 deletions

View File

@@ -5,6 +5,7 @@
#include "macros.h"
#include "tile.h"
#include "bridge_map.h"
/* ground type, m5 bits 2...4
* valid densities (bits 0...1) in comments after the enum
@@ -123,12 +124,17 @@ static inline void SetFenceSW(TileIndex t, uint h)
static inline void MakeClear(TileIndex t, ClearGround g, uint density)
{
/* If this is a non-bridgeable tile, clear the bridge bits while the rest
* of the tile information is still here. */
if (!MayHaveBridgeAbove(t)) SB(_m[t].extra, 6, 2, 0);
SetTileType(t, MP_CLEAR);
SetTileOwner(t, OWNER_NONE);
_m[t].m2 = 0;
_m[t].m3 = 0;
_m[t].m4 = 0 << 5 | 0 << 2;
SetClearGroundDensity(t, g, density);
SB(_m[t].extra, 2, 4, 0);
}