… | |
… | |
285 | |
285 | |
286 | // info must hold 256 * 3 bytes currently |
286 | // info must hold 256 * 3 bytes currently |
287 | const char *debug_desc (char *info) const; |
287 | const char *debug_desc (char *info) const; |
288 | const char *debug_desc () const; |
288 | const char *debug_desc () const; |
289 | |
289 | |
|
|
290 | bool is_weapon () const { return type == ARROW || type == BOW || type == WEAPON; } |
|
|
291 | bool is_armor () const { return type == ARMOUR || type == SHIELD || type == HELMET |
|
|
292 | || type == CLOAK || type == BOOTS || type == GLOVES |
|
|
293 | || type == BRACERS || type == GIRDLE; } |
|
|
294 | bool is_alive () const { return (type == PLAYER |
|
|
295 | || flags [FLAG_MONSTER] |
|
|
296 | || (flags [FLAG_ALIVE] && !flags [FLAG_GENERATOR] && type != DOOR)) |
|
|
297 | && !flags [FLAG_IS_A_TEMPLATE]; } |
|
|
298 | bool is_arrow () const { return type == ARROW |
|
|
299 | || (type == SPELL_EFFECT |
|
|
300 | && (subtype == SP_BULLET || subtype == SP_MAGIC_MISSILE)); } |
|
|
301 | |
|
|
302 | /* This return true if object has still randomitems which |
|
|
303 | * could be expanded. |
|
|
304 | */ |
|
|
305 | bool has_random_items () const { return randomitems && flags [FLAG_IS_A_TEMPLATE]; } |
|
|
306 | |
290 | // fully recursive iterator |
307 | // fully recursive iterator |
291 | struct iterator_base |
308 | struct iterator_base |
292 | { |
309 | { |
293 | object *item; |
310 | object *item; |
294 | |
311 | |