summaryrefslogtreecommitdiff
path: root/src/ai/api
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-01-04 18:39:46 +0000
committerrubidium <rubidium@openttd.org>2010-01-04 18:39:46 +0000
commit9dfa2db455067bf3232da568b36f4522cf6029bb (patch)
treed4cfa4f1c330a065007da4b6303d192d73beb9c7 /src/ai/api
parent740585c219043f289c724777483555228f3691c1 (diff)
downloadopenttd-9dfa2db455067bf3232da568b36f4522cf6029bb.tar.xz
(svn r18721) -Codechange: simplify adding/removing rectangles of tiles from AITileLists
Diffstat (limited to 'src/ai/api')
-rw-r--r--src/ai/api/ai_tilelist.cpp31
-rw-r--r--src/ai/api/ai_tilelist.hpp10
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.