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.29 by root, Mon Sep 11 23:33:29 2006 UTC vs.
Revision 1.30 by root, Tue Sep 12 01:09:53 2006 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines