00001 /* $Id: ai_tilelist.hpp 15060 2009-01-13 15:44:36Z smatz $ */ 00002 00005 #ifndef AI_TILELIST_HPP 00006 #define AI_TILELIST_HPP 00007 00008 #include "ai_abstractlist.hpp" 00009 #include "ai_station.hpp" 00010 00015 class AITileList : public AIAbstractList { 00016 public: 00017 static const char *GetClassName() { return "AITileList"; } 00018 00019 private: 00026 void FixRectangleSpan(TileIndex &t1, TileIndex &t2); 00027 00028 public: 00036 void AddRectangle(TileIndex tile_from, TileIndex tile_to); 00037 00043 void AddTile(TileIndex tile); 00044 00052 void RemoveRectangle(TileIndex tile_from, TileIndex tile_to); 00053 00059 void RemoveTile(TileIndex tile); 00060 }; 00061 00067 class AITileList_IndustryAccepting : public AITileList { 00068 public: 00069 static const char *GetClassName() { return "AITileList_IndustryAccepting"; } 00070 00075 AITileList_IndustryAccepting(IndustryID industry_id, uint radius); 00076 }; 00077 00083 class AITileList_IndustryProducing : public AITileList { 00084 public: 00085 static const char *GetClassName() { return "AITileList_IndustryProducing"; } 00086 00091 AITileList_IndustryProducing(IndustryID industry_id, uint radius); 00092 }; 00093 00099 class AITileList_StationType : public AITileList { 00100 public: 00101 static const char *GetClassName() { return "AITileList_StationType"; } 00102 00107 AITileList_StationType(StationID station_id, AIStation::StationType station_type); 00108 }; 00109 00110 #endif /* AI_TILELIST_HPP */