… | |
… | |
377 | // info must hold 256 * 3 bytes currently |
377 | // info must hold 256 * 3 bytes currently |
378 | const char *debug_desc (char *info) const; |
378 | const char *debug_desc (char *info) const; |
379 | MTH const char *debug_desc () const; // uses at least 3 round-robin buffers |
379 | MTH const char *debug_desc () const; // uses at least 3 round-robin buffers |
380 | const char *flag_desc (char *desc, int len) const; |
380 | const char *flag_desc (char *desc, int len) const; |
381 | |
381 | |
382 | int number_of () const |
382 | MTH int number_of () const |
383 | { |
383 | { |
384 | return nrof ? nrof : 1; |
384 | return nrof ? nrof : 1; |
385 | } |
385 | } |
386 | |
386 | |
387 | uint64 total_weight () const |
387 | MTH sint32 total_weight () const |
388 | { |
388 | { |
389 | return weight * number_of () + carrying; |
389 | return weight * number_of () + carrying; |
390 | } |
390 | } |
|
|
391 | |
|
|
392 | MTH void update_weight (); |
391 | |
393 | |
392 | // return the dominant material of this item, always return something |
394 | // return the dominant material of this item, always return something |
393 | const materialtype_t *dominant_material () const; |
395 | const materialtype_t *dominant_material () const; |
394 | |
396 | |
395 | // return the volume of this object in cm³ |
397 | // return the volume of this object in cm³ |
396 | uint64 volume () const |
398 | MTH uint64 volume () const |
397 | { |
399 | { |
398 | return total_weight () |
400 | return total_weight () |
399 | * 1000 |
401 | * 1000 |
400 | * (type == CONTAINER ? 1000 : 1) |
402 | * (type == CONTAINER ? 1000 : 1) |
401 | / dominant_material ()->density; |
403 | / dominant_material ()->density; |
… | |
… | |
424 | |
426 | |
425 | /* This return true if object has still randomitems which |
427 | /* This return true if object has still randomitems which |
426 | * could be expanded. |
428 | * could be expanded. |
427 | */ |
429 | */ |
428 | MTH bool has_random_items () const { return randomitems && !flag [FLAG_IS_A_TEMPLATE]; } |
430 | MTH bool has_random_items () const { return randomitems && !flag [FLAG_IS_A_TEMPLATE]; } |
|
|
431 | |
|
|
432 | // returns the outermost environment, never returns 0 |
|
|
433 | MTH object *outer_env () |
|
|
434 | { |
|
|
435 | for (object *op = this; ; op = op->env) |
|
|
436 | if (!op->env) |
|
|
437 | return op; |
|
|
438 | } |
429 | |
439 | |
430 | // returns the player that has this object in his inventory, or 0 |
440 | // returns the player that has this object in his inventory, or 0 |
431 | MTH object *in_player () const |
441 | MTH object *in_player () const |
432 | { |
442 | { |
433 | for (object *op = env; op; op = op->env) |
443 | for (object *op = env; op; op = op->env) |