![]() |
Terrain.hGo to the documentation of this file.00001 // Terrain.h 00002 // released 2006-09-25 00003 /* 00004 Copyright (C) 2006 Anders Hedstrom (grymse@alhem.net) 00005 00006 This program is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU General Public License 00008 as published by the Free Software Foundation; either version 2 00009 of the License, or (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 */ 00020 #ifndef _TERRAIN_H 00021 #define _TERRAIN_H 00022 00023 #include "Object.h" 00024 00025 00026 namespace db { class Terrain; } 00027 class Area; 00028 00029 typedef std::map<long,std::map<char,db::Terrain *> > terrains_t; 00030 00031 class Database; 00032 00035 class Terrain : public Object 00036 { 00037 public: 00038 Terrain(Database& ,Area& ,char tchar); 00039 ~Terrain(); 00040 00041 bool Exists(); 00042 void Save(); 00043 00044 const std::string& GetColor(); 00045 void SetColor(const std::string&); 00046 const std::string& GetName(); 00047 void SetName(const std::string&); 00048 char GetChar(); 00049 void SetChar(char tchar); 00050 bool IsImpassable(); 00051 void SetImpassable(bool = true); 00052 long GetNum(); 00053 double GetDelay(); 00054 void SetDelay(double); 00055 00056 static db::Terrain *GetTerrain(Database&, Area& ,char tchar); 00057 00058 private: 00059 Area& m_area; 00060 static terrains_t m_terrains; 00061 db::Terrain *m_terrain; 00062 }; 00063 00064 00065 00066 00067 #endif // _TERRAIN_H |