Logo
~Sockets~
~Examples~
~Contact~

Terrain.h

Go 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
Page, code, and content Copyright (C) 2006 by Anders Hedström
Generated on Mon Aug 29 20:21:47 2005 for C++ Sockets by  doxygen 1.4.4