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