1 #ifndef CSPRINGMAP_H 2 #define CSPRINGMAP_H 3 4 class CSpringMap : public IMap { 5 public: 6 // 7 CSpringMap(springai::OOAICallback* callback, CSpringGame* game); 8 virtual ~CSpringMap(); 9 10 11 virtual std::string MapName(); 12 13 virtual int SpotCount(); 14 virtual Position GetSpot(int idx); 15 virtual std::vector<Position>& GetMetalSpots(); 16 17 virtual Position MapDimensions(); 18 19 virtual std::vector<IMapFeature*> GetMapFeatures(); 20 virtual std::vector<IMapFeature*> GetMapFeaturesAt(Position p, double radius); 21 22 virtual double MinimumWindSpeed(); 23 virtual double MaximumWindSpeed(); 24 virtual double AverageWind(); 25 26 virtual float MaximumHeight(); 27 virtual float MinimumHeight(); 28 29 virtual double TidalStrength(); 30 31 virtual Position FindClosestBuildSite(IUnitType* t, Position builderPos, double searchRadius, double minimumDistance); 32 virtual Position FindClosestBuildSiteFacing(IUnitType* t, Position builderPos, double searchRadius, double minimumDistance,int facing); 33 34 virtual bool CanBuildHere(IUnitType* t, Position pos); 35 virtual bool CanBuildHereFacing(IUnitType* t, Position pos,int facing); 36 37 springai::Resource* GetMetalResource(); 38 39 protected: 40 std::vector<IMapFeature*>::iterator GetMapFeatureIteratorById(int id); 41 void UpdateMapFeatures(); 42 43 springai::OOAICallback* callback; 44 CSpringGame* game; 45 46 std::vector<Position> metalspots; 47 springai::Resource* metal; 48 springai::Map* map; 49 std::vector< IMapFeature*> mapFeatures; 50 int lastMapFeaturesUpdate; 51 }; 52 53 #endif 54 55 56