ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/object.h
(Generate patch)

Comparing deliantra/server/include/object.h (file contents):
Revision 1.28 by root, Mon Sep 11 20:28:37 2006 UTC vs.
Revision 1.29 by root, Mon Sep 11 23:33:29 2006 UTC

237 void clone (object *destination); 237 void clone (object *destination);
238 238
239 void set_owner (object *owner); 239 void set_owner (object *owner);
240 object *get_owner (); 240 object *get_owner ();
241 241
242 // fully recursive iterator
243 struct iterator_base
244 {
245 object *item;
246
247 iterator_base (object *item)
248 : item(item)
249 {
250 }
251
252 operator object *() const { return item; }
253
254 object *operator ->() const { return item; }
255 object &operator * () const { return *item; }
256 };
257
258 struct deep_iterator : iterator_base
259 {
260 deep_iterator (object *op) : iterator_base (op) { }
261
262 void next ();
263 object *operator ++( ) { next (); return item; }
264 object *operator ++(int) { object *i = item; next (); return i; }
265 };
266
267 object *begin ()
268 {
269 return this->inv ? this->inv : end ();
270 }
271
272 object *end ()
273 {
274 return this->below;
275 }
276
242protected: 277protected:
243 friend struct archetype; 278 friend struct archetype;
244 279
245 void link (); 280 void link ();
246 void unlink (); 281 void unlink ();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines