initial commit, lordsawar source, slightly modified
[lordsawar] / src / UniquelyIdentified.h
1 // Copyright (C) 2001, 2002, 2003 Michael Bartl
2 // Copyright (C) 2004, 2005 Ulf Lorenz
3 // Copyright (C) 2004, 2006 Andrea Paternesi
4 // Copyright (C) 2007, 2008, 2009 Ben Asselstine
5 // Copyright (C) 2007 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 UNIQUELYIDENTIFIED_H
23 #define UNIQUELYIDENTIFIED_H
24
25 #include <gtkmm.h>
26 #include "vector.h"
27 #include "rectangle.h"
28
29 class XML_Helper;
30
31 //! A game object that has a unique numeric identifier.
32 class UniquelyIdentified
33 {
34  public:
35     //! Default constructor.
36     UniquelyIdentified();
37
38     //! Copy constructor.
39     UniquelyIdentified(const UniquelyIdentified&);
40
41     //! non-default constructor. 
42     UniquelyIdentified(guint32 id);
43
44     //! Loading constructor.
45     UniquelyIdentified(XML_Helper* helper);
46
47     //! Destructor.
48     virtual ~UniquelyIdentified();
49
50
51     // Get Methods
52
53     //! Returns the unique numeric identifer of this object.
54     guint32 getId() const {return d_id;}
55
56
57     //Methods that operate on class data and modify the class.
58
59     //! Make the counter aware of this object by syncing it to one after this.
60     void syncNewId();
61
62     //! Go get a new unique identifier for this object.
63     void assignNewId();
64         
65  protected:
66
67     //! A unique numeric identifier for an object in the game.
68     guint32 d_id;
69
70     //! Whether or not this id is actually unique.
71     bool d_unique;
72 };
73
74 #endif
75
76 // End of file