00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _AREA_H
00021 #define _AREA_H
00022
00023 #include <list>
00024 #include "Object.h"
00025
00026
00027 namespace db { class Area; }
00028 class Database;
00029
00030 typedef std::list<db::Area *> areas_t;
00031
00034 class Area : public Object
00035 {
00036 public:
00037 Area(Database& ,long num);
00038 Area(Database& ,const std::string& name);
00039 ~Area();
00040
00041 bool Exists();
00042 void Save();
00043
00044 int GetWidth();
00045 int GetHeight();
00046 long GetNum();
00047 void SetWidth(int);
00048 void SetHeight(int);
00049 void SetName(const std::string& name);
00050 const std::string& GetName();
00051
00052 void VerifyTerrain();
00053
00054 static db::Area *GetArea(Database&,long num);
00055 static db::Area *GetArea(Database&,const std::string& name);
00056
00057 void GetAreaBorders(int ch_z,int& xmin,int& xmax,int &ymin,int &ymax);
00058
00059 private:
00060 db::Area *m_area;
00061 static areas_t m_areas;
00062 };
00063
00064
00065
00066
00067 #endif // _AREA_H