diff options
author | rubidium <rubidium@openttd.org> | 2010-01-04 18:39:46 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-01-04 18:39:46 +0000 |
commit | 9dfa2db455067bf3232da568b36f4522cf6029bb (patch) | |
tree | d4cfa4f1c330a065007da4b6303d192d73beb9c7 /src/ai | |
parent | 740585c219043f289c724777483555228f3691c1 (diff) | |
download | openttd-9dfa2db455067bf3232da568b36f4522cf6029bb.tar.xz |
(svn r18721) -Codechange: simplify adding/removing rectangles of tiles from AITileLists
Diffstat (limited to 'src/ai')
-rw-r--r-- | src/ai/api/ai_tilelist.cpp | 31 | ||||
-rw-r--r-- | src/ai/api/ai_tilelist.hpp | 10 |
2 files changed, 4 insertions, 37 deletions
diff --git a/src/ai/api/ai_tilelist.cpp b/src/ai/api/ai_tilelist.cpp index d32b22270..12ebb1ead 100644 --- a/src/ai/api/ai_tilelist.cpp +++ b/src/ai/api/ai_tilelist.cpp @@ -14,32 +14,13 @@ #include "../../industry.h" #include "../../station_base.h" -void AITileList::FixRectangleSpan(TileIndex &t1, TileIndex &t2) -{ - uint x1 = ::TileX(t1); - uint x2 = ::TileX(t2); - - uint y1 = ::TileY(t1); - uint y2 = ::TileY(t2); - - if (x1 >= x2) ::Swap(x1, x2); - if (y1 >= y2) ::Swap(y1, y2); - - t1 = ::TileXY(x1, y1); - t2 = ::TileXY(x2, y2); -} - void AITileList::AddRectangle(TileIndex t1, TileIndex t2) { if (!::IsValidTile(t1)) return; if (!::IsValidTile(t2)) return; - this->FixRectangleSpan(t1, t2); - - uint w = TileX(t2) - TileX(t1) + 1; - uint h = TileY(t2) - TileY(t1) + 1; - - TILE_LOOP(t, w, h, t1) this->AddItem(t); + TileArea ta(t1, t2); + TILE_AREA_LOOP(t, ta) this->AddItem(t); } void AITileList::AddTile(TileIndex tile) @@ -54,12 +35,8 @@ void AITileList::RemoveRectangle(TileIndex t1, TileIndex t2) if (!::IsValidTile(t1)) return; if (!::IsValidTile(t2)) return; - this->FixRectangleSpan(t1, t2); - - uint w = TileX(t2) - TileX(t1) + 1; - uint h = TileY(t2) - TileY(t1) + 1; - - TILE_LOOP(t, w, h, t1) this->RemoveItem(t); + TileArea ta(t1, t2); + TILE_AREA_LOOP(t, ta) this->RemoveItem(t); } void AITileList::RemoveTile(TileIndex tile) diff --git a/src/ai/api/ai_tilelist.hpp b/src/ai/api/ai_tilelist.hpp index b30858b07..f3d0755e2 100644 --- a/src/ai/api/ai_tilelist.hpp +++ b/src/ai/api/ai_tilelist.hpp @@ -23,16 +23,6 @@ class AITileList : public AIAbstractList { public: static const char *GetClassName() { return "AITileList"; } -private: - /** - * Make sure t1.x is smaller than t2.x and t1.y is smaller than t2.y. - * They are swapped to ensure they are after calling this function. - * @param t1 one of the corners of the rectangle. - * @param t2 the other corner of the rectangle. - */ - void FixRectangleSpan(TileIndex &t1, TileIndex &t2); - -public: /** * Adds the rectangle between tile_from and tile_to to the to-be-evaluated tiles. * @param tile_from One corner of the tiles to add. |