mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(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:
parent
6c3187213d
commit
e221fef08c
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "tile.h"
|
#include "tile.h"
|
||||||
|
#include "bridge_map.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
|
||||||
@ -123,12 +124,17 @@ static inline void SetFenceSW(TileIndex t, uint h)
|
|||||||
|
|
||||||
static inline void MakeClear(TileIndex t, ClearGround g, uint density)
|
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);
|
SetTileType(t, MP_CLEAR);
|
||||||
SetTileOwner(t, OWNER_NONE);
|
SetTileOwner(t, OWNER_NONE);
|
||||||
_m[t].m2 = 0;
|
_m[t].m2 = 0;
|
||||||
_m[t].m3 = 0;
|
_m[t].m3 = 0;
|
||||||
_m[t].m4 = 0 << 5 | 0 << 2;
|
_m[t].m4 = 0 << 5 | 0 << 2;
|
||||||
SetClearGroundDensity(t, g, density);
|
SetClearGroundDensity(t, g, density);
|
||||||
|
SB(_m[t].extra, 2, 4, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,12 +76,8 @@ 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)) {
|
||||||
switch (GetTileType(tile)) {
|
switch (GetTileType(tile)) {
|
||||||
case MP_CLEAR:
|
case MP_CLEAR:
|
||||||
MakeClear(tile, CLEAR_ROCKS, 3);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MP_TREES:
|
case MP_TREES:
|
||||||
MakeClear(tile, CLEAR_ROCKS, 3);
|
MakeClear(tile, CLEAR_ROCKS, 3);
|
||||||
ClearBridgeMiddle(tile);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: continue;
|
default: continue;
|
||||||
|
@ -587,7 +587,6 @@ static void TileLoop_Trees(TileIndex tile)
|
|||||||
case TREE_GROUND_ROUGH: MakeClear(tile, CLEAR_ROUGH, 3); break;
|
case TREE_GROUND_ROUGH: MakeClear(tile, CLEAR_ROUGH, 3); break;
|
||||||
default: MakeClear(tile, CLEAR_SNOW, GetTreeDensity(tile)); break;
|
default: MakeClear(tile, CLEAR_SNOW, GetTreeDensity(tile)); break;
|
||||||
}
|
}
|
||||||
ClearBridgeMiddle(tile);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user