mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-08 23:34:15 +00:00
(svn r23705) -Codechange: cache the last processed station in FindStationsAroundTiles() in order to make the code a bit faster
This commit is contained in:
parent
4af8c2d5e1
commit
a90b767995
@ -3407,12 +3407,19 @@ void FindStationsAroundTiles(const TileArea &location, StationList *stations)
|
||||
if (max_x >= MapSizeX()) max_x = MapSizeX() - 1;
|
||||
if (max_y >= MapSizeY()) max_y = MapSizeY() - 1;
|
||||
|
||||
StationID last = INVALID_STATION;
|
||||
|
||||
for (uint cy = min_y; cy < max_y; cy++) {
|
||||
for (uint cx = min_x; cx < max_x; cx++) {
|
||||
TileIndex cur_tile = TileXY(cx, cy);
|
||||
if (!IsTileType(cur_tile, MP_STATION)) continue;
|
||||
|
||||
Station *st = Station::GetByTile(cur_tile);
|
||||
StationID sid = GetStationIndex(cur_tile);
|
||||
/* Stop early if we met the same station again. */
|
||||
if (sid == last) continue;
|
||||
last = sid;
|
||||
|
||||
Station *st = Station::GetIfValid(sid);
|
||||
/* st can be NULL in case of waypoints */
|
||||
if (st == NULL) continue;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user