initial commit, lordsawar source, slightly modified
[lordsawar] / src / armyprodbase.h
1 // Copyright (C) 2000, 2001, 2003 Michael Bartl
2 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Ulf Lorenz
3 // Copyright (C) 2004, 2005 Andrea Paternesi
4 // Copyright (C) 2007, 2008 Ben Asselstine
5 // Copyright (C) 2007, 2008 Ole Laursen
6 //
7 //  This program is free software; you can redistribute it and/or modify
8 //  it under the terms of the GNU General Public License as published by
9 //  the Free Software Foundation; either version 3 of the License, or
10 //  (at your option) any later version.
11 //
12 //  This program is distributed in the hope that it will be useful,
13 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 //  GNU Library General Public License for more details.
16 //
17 //  You should have received a copy of the GNU General Public License
18 //  along with this program; if not, write to the Free Software
19 //  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
20 //  02110-1301, USA.
21
22 #ifndef ARMY_PRODBASE_H
23 #define ARMY_PRODBASE_H
24
25 #include <string>
26
27
28 #include "armyprotobase.h"
29 class ArmyProto;
30
31 class XML_Helper;
32
33 class ArmyProdBase: public ArmyProtoBase
34 {
35     public:
36
37         //! The xml tag of this object in a saved-game file.
38         static std::string d_tag; 
39
40         //! Copy constructor.
41         ArmyProdBase(const ArmyProdBase& prodbase);
42
43         //! Copy constructor.
44         ArmyProdBase(const ArmyProto& prodbase);
45
46         //! Loading constructor.
47         ArmyProdBase(XML_Helper* helper);
48         
49         //! Destructor.
50         ~ArmyProdBase();
51
52         // Methods that operate on the class data and modify the class.
53
54         //! Change the army production base to be just like another army.
55         void morph(const ArmyProto *army);
56
57         // Methods that operate on the class data and do not modify the class.
58
59         //! Saves the Army prototype to an opened armyset file.
60         virtual bool save(XML_Helper* helper) const;
61         
62     private:
63
64 };
65
66 #endif // ARMY_PRODBASE_H