00001 /* $Id: ai_map.hpp 15912 2009-04-01 14:24:54Z rubidium $ */ 00002 00005 #ifndef AI_MAP_HPP 00006 #define AI_MAP_HPP 00007 00008 #include "ai_object.hpp" 00009 00013 class AIMap : public AIObject { 00014 public: 00015 #ifdef DEFINE_SCRIPT_FILES 00016 enum MapType { 00017 TILE_INVALID = INVALID_TILE, 00018 }; 00019 #endif /* DEFINE_SCRIPT_FILES */ 00020 #ifdef DOXYGEN_SKIP 00021 const static TileIndex TILE_INVALID; 00022 #endif 00023 00024 static const char *GetClassName() { return "AIMap"; } 00025 00031 static bool IsValidTile(TileIndex tile); 00032 00038 static TileIndex GetMapSize(); 00039 00045 static uint32 GetMapSizeX(); 00046 00052 static uint32 GetMapSizeY(); 00053 00061 static int32 GetTileX(TileIndex tile); 00062 00070 static int32 GetTileY(TileIndex tile); 00071 00080 static TileIndex GetTileIndex(uint32 x, uint32 y); 00081 00091 static int32 DistanceManhattan(TileIndex tile_from, TileIndex tile_to); 00092 00103 static int32 DistanceMax(TileIndex tile_from, TileIndex tile_to); 00104 00115 static int32 DistanceSquare(TileIndex tile_from, TileIndex tile_to); 00116 00123 static int32 DistanceFromEdge(TileIndex tile); 00124 }; 00125 00126 #endif /* AI_MAP_HPP */