… | |
… | |
306 | || (type == SPELL_EFFECT |
306 | || (type == SPELL_EFFECT |
307 | && (subtype == SP_BULLET || subtype == SP_MAGIC_MISSILE)); } |
307 | && (subtype == SP_BULLET || subtype == SP_MAGIC_MISSILE)); } |
308 | |
308 | |
309 | MTH bool has_active_speed () const { return FABS(speed) >= MIN_ACTIVE_SPEED; } |
309 | MTH bool has_active_speed () const { return FABS(speed) >= MIN_ACTIVE_SPEED; } |
310 | |
310 | |
311 | // temporary: wether the objetc can be saved in a map file |
311 | // temporary: wether the object can be saved in a map file |
312 | // contr => is a player |
312 | // contr => is a player |
313 | // head => only save head of a multitile object |
313 | // head => only save head of a multitile object |
314 | // owner => can not reference owner yet |
314 | // owner => can not reference owner yet |
315 | MTH bool can_map_save () const { return !contr && !head && !owner; } |
315 | MTH bool can_map_save () const { return !contr && !head && !owner; } |
316 | |
316 | |
… | |
… | |
361 | operator object *() const { return item; } |
361 | operator object *() const { return item; } |
362 | |
362 | |
363 | object *operator ->() const { return item; } |
363 | object *operator ->() const { return item; } |
364 | object &operator * () const { return *item; } |
364 | object &operator * () const { return *item; } |
365 | }; |
365 | }; |
|
|
366 | |
|
|
367 | MTH unsigned int random_seed () const |
|
|
368 | { |
|
|
369 | return (unsigned int)uuid.seq; |
|
|
370 | } |
366 | |
371 | |
367 | // depth-first recursive iterator |
372 | // depth-first recursive iterator |
368 | struct depth_iterator : iterator_base |
373 | struct depth_iterator : iterator_base |
369 | { |
374 | { |
370 | depth_iterator (object *container); |
375 | depth_iterator (object *container); |