initial commit, lordsawar source, slightly modified
[lordsawar] / src / SightMap.h
1 // Copyright (C) 2008 Ben Asselstine
2 //
3 //  This program is free software; you can redistribute it and/or modify
4 //  it under the terms of the GNU General Public License as published by
5 //  the Free Software Foundation; either version 3 of the License, or
6 //  (at your option) any later version.
7 //
8 //  This program is distributed in the hope that it will be useful,
9 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 //  GNU Library General Public License for more details.
12 //
13 //  You should have received a copy of the GNU General Public License
14 //  along with this program; if not, write to the Free Software
15 //  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
16 //  02110-1301, USA.
17
18 #ifndef SIGHTMAP_H
19 #define SIGHTMAP_H
20
21 #include <string>
22 #include <gtkmm.h>
23 #include "rectangle.h"
24 #include "Renamable.h"
25 #include "xmlhelper.h"
26
27 //! An object that is given to a player that defogs a portion of the fog map.
28 /** 
29  * This class describes a sightmap.  It is similar to an item except is not 
30  * carried by a hero, and it is not retained in a backpack.  The sightmap is 
31  * used once by a player to defog a portion of the hidden map.
32  */
33
34 class SightMap: public Rectangle, public Renamable
35 {
36     public:
37         //! The xml tag of this object in a saved-game file.
38         static std::string d_tag; 
39
40         //! Loading constructor.
41         SightMap(XML_Helper* helper);
42
43         //! Copy constructor.
44         SightMap(const SightMap& orig);
45
46         //! Default Constructor.  Creates a new sightmap from scratch.
47         /**
48          * @param pos  The top-left corner of the sightmap on the game map.
49          */
50         SightMap(std::string name, Vector<int> pos, guint32 height, guint32 width);
51
52         //! Destructor.
53         ~SightMap();
54         
55
56         // Methods that operate on class data but do not modify the class.
57
58         //! Save the sightmap to the opened saved-game file.
59         bool save(XML_Helper* helper) const;
60
61     private:
62
63 };
64
65 #endif //SIGHTMAP_H