initial commit, lordsawar source, slightly modified
[lordsawar] / src / heroproto.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 HERO_PROTO_H
19 #define HERO_PROTO_H
20
21 #include <string>
22
23
24 class XML_Helper;
25
26 #include "armyproto.h"
27 #include "hero.h"
28 #include "OwnerId.h"
29
30 class ArmyProto;
31
32 class HeroProto : public ArmyProto, public OwnerId
33 {
34     public:
35
36         //! The xml tag of this object in a saved-game file.
37         static std::string d_tag; 
38
39         //! Copy constructor.
40         HeroProto(const HeroProto& heroproto);
41
42         //! Copy constructor.
43         HeroProto(const ArmyProto& heroproto);
44
45         //! Create an empty hero prototype.
46         HeroProto();
47
48         //! Loading constructor.
49         HeroProto(XML_Helper* helper);
50
51         //! Destructor.
52         ~HeroProto();
53
54         //! Set the gender of the hero.
55         void setGender(Hero::Gender gender){d_gender = gender;}
56
57         //! Return the gender of the hero.
58         guint32 getGender() const {return d_gender;}
59         
60         //! Saves the hero prototype to an action
61         virtual bool save(XML_Helper* helper) const;
62     private:
63
64         //! Gender of the hero
65         Hero::Gender d_gender;
66 };
67
68 #endif // HERO_PROTO_H