1
0
Fork 0

(svn r23723) -Codechange: speedup flood checks a bit

release/1.2
yexo 2012-01-03 00:44:23 +00:00
parent 4027e58ba3
commit b9e19cc6c1
2 changed files with 6 additions and 6 deletions

View File

@ -697,8 +697,8 @@ void GenerateObjects()
assert(tile < MapSize()); assert(tile < MapSize());
break; break;
} }
tile = AddTileIndexDiffCWrap(tile, TileIndexDiffCByDiagDir(dir)); tile += TileOffsByDiagDir(dir);
if (tile == INVALID_TILE) break; if (!IsValidTile(tile)) break;
} }
} }
} }

View File

@ -1148,8 +1148,8 @@ void TileLoop_Water(TileIndex tile)
switch (GetFloodingBehaviour(tile)) { switch (GetFloodingBehaviour(tile)) {
case FLOOD_ACTIVE: case FLOOD_ACTIVE:
for (Direction dir = DIR_BEGIN; dir < DIR_END; dir++) { for (Direction dir = DIR_BEGIN; dir < DIR_END; dir++) {
TileIndex dest = AddTileIndexDiffCWrap(tile, TileIndexDiffCByDir(dir)); TileIndex dest = tile + TileOffsByDir(dir);
if (dest == INVALID_TILE) continue; if (!IsValidTile(dest)) continue;
/* do not try to flood water tiles - increases performance a lot */ /* do not try to flood water tiles - increases performance a lot */
if (IsTileType(dest, MP_WATER)) continue; if (IsTileType(dest, MP_WATER)) continue;
@ -1167,8 +1167,8 @@ void TileLoop_Water(TileIndex tile)
Slope slope_here = GetFoundationSlope(tile) & ~SLOPE_HALFTILE_MASK & ~SLOPE_STEEP; Slope slope_here = GetFoundationSlope(tile) & ~SLOPE_HALFTILE_MASK & ~SLOPE_STEEP;
uint dir; uint dir;
FOR_EACH_SET_BIT(dir, _flood_from_dirs[slope_here]) { FOR_EACH_SET_BIT(dir, _flood_from_dirs[slope_here]) {
TileIndex dest = AddTileIndexDiffCWrap(tile, TileIndexDiffCByDir((Direction)dir)); TileIndex dest = tile + TileOffsByDir(dir);
if (dest == INVALID_TILE) continue; if (!IsValidTile(dest)) continue;
FloodingBehaviour dest_behaviour = GetFloodingBehaviour(dest); FloodingBehaviour dest_behaviour = GetFloodingBehaviour(dest);
if ((dest_behaviour == FLOOD_ACTIVE) || (dest_behaviour == FLOOD_PASSIVE)) return; if ((dest_behaviour == FLOOD_ACTIVE) || (dest_behaviour == FLOOD_PASSIVE)) return;