(svn r3992) -Fix: Rewrote the code to determine whether a rail-tile can be terraformed.
Fixes a bug where you could terraform a tunnel (fixed by r3228, but reverted that one) Fixes a bug introduced by r3228 which allowed steep rail tiles resulting in ... unwanted effects such as display artifacts. That means the terraform feature should not work as intended; it also uses _valid_tileh_slopes to determine valid configurations instead of hand-brewn stuff. TODO: _terraform_err_tile and similar TileIndices should have INVALID_TILE as "unused", not 0. (0 is a valid tile).
This commit is contained in:
@@ -634,7 +634,7 @@ static void DrawTileSelection(const TileInfo *ti)
|
||||
#endif
|
||||
|
||||
// Draw a red error square?
|
||||
if (_thd.redsq != 0 && _thd.redsq == ti->tile) {
|
||||
if (_thd.redsq != INVALID_TILE && _thd.redsq == ti->tile) {
|
||||
DrawSelectionSprite(PALETTE_TILE_RED_PULSATING | (SPR_SELECT_TILE + _tileh_to_sprite[ti->tileh]), ti);
|
||||
return;
|
||||
}
|
||||
@@ -1812,8 +1812,8 @@ void SetRedErrorSquare(TileIndex tile)
|
||||
_thd.redsq = tile;
|
||||
|
||||
if (tile != old) {
|
||||
if (tile != 0) MarkTileDirtyByTile(tile);
|
||||
if (old != 0) MarkTileDirtyByTile(old);
|
||||
if (tile != INVALID_TILE) MarkTileDirtyByTile(tile);
|
||||
if (old != INVALID_TILE) MarkTileDirtyByTile(old);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user