april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
genericactorfactory.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __GENERICACTORFACTORY_INC__
21 #define __GENERICACTORFACTORY_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
30 #include <april/logic/uniqueid.h>
31 
32 /* INCLUDES ============================================================ */
33 //
34 //
35 //
36 //
37 /* DEFINITIONS --------------------------------------------------------- */
38 
39 namespace april {
40 
41 /* DEFINITIONS ========================================================= */
42 //
43 //
44 //
45 //
46 /* CLASS --------------------------------------------------------------- */
47 
54 class
57  BBM_TRACK( GenericActorFactory );
58 
59  //
60  //
61  //
62  //
63  /* DEFINITIONS ----------------------------------------------------- */
64 
65 public:
66 
68  typedef QMap<ID,DNA> IdDnaMap;
69 
71  typedef QMap<ID,DNA>::Iterator IdDnaMapIter;
72 
74  typedef QMap<ID,DNA>::ConstIterator IdDnaMapIterC;
75 
76  /* DEFINITIONS ===================================================== */
77  //
78  //
79  //
80  //
81  /* DATA ------------------------------------------------------------ */
82 
83 private:
84 
86  IdDnaMap list_;
87 
89  DNA dna_invalid_;
90 
91  /* DATA ============================================================ */
92  //
93  //
94  //
95  //
96  /* FUNCTIONS ------------------------------------------------------- */
97 
98 public:
99 
101  GenericActorFactory ( World * w );
102 
103 protected:
104 
106  virtual ~GenericActorFactory( void );
107 
109  virtual FactoryType factoryType ( void )
110  { return FTyGenericActor; }
111 
113  virtual QString factoryName ( void )
114  { return staticName(); }
115 
117 
126  virtual Actor * create ( ID id );
127 
129  virtual bool save ( QSettings & s ) const;
130 
132  virtual bool load ( QSettings & s );
133 
134 public:
135 
137 
144  static GenericActorFactory * findMyself ( World * w );
145 
147  static QString staticName ( void )
148  { return "Actor.Factory.Generic"; }
149 
151  const IdDnaMap & dnaList ( void ) const
152  { return list_; }
153 
155  void addNewKind ( const DNA::InitData & data );
156 
158  DNA & dna ( ID id );
159 
160  /* FUNCTIONS ======================================================= */
161  //
162  //
163  //
164  //
165 
166 }; /* class GenericActorFactory */
167 
168 /* CLASS =============================================================== */
169 //
170 //
171 //
172 //
173 
174 } // namespace april
175 
176 #endif // __GENERICACTORFACTORY_INC__
177 /* ------------------------------------------------------------------------- */
178 /* ========================================================================= */