… | |
… | |
472 | MTH bool has_dialogue () const { return *&msg == '@'; } |
472 | MTH bool has_dialogue () const { return *&msg == '@'; } |
473 | |
473 | |
474 | // returns the outermost owner, never returns 0 |
474 | // returns the outermost owner, never returns 0 |
475 | MTH object *outer_owner () |
475 | MTH object *outer_owner () |
476 | { |
476 | { |
|
|
477 | object *op; |
|
|
478 | |
477 | for (object *op = this; ; op = op->owner) |
479 | for (op = this; op->owner; op = op->owner) |
478 | if (!op->owner) |
480 | ; |
|
|
481 | |
479 | return op; |
482 | return op; |
480 | } |
483 | } |
481 | |
484 | |
482 | // returns the outermost environment, never returns 0 |
485 | // returns the outermost environment, never returns 0 |
483 | MTH object *outer_env () |
486 | MTH object *outer_env () |
484 | { |
487 | { |
|
|
488 | object *op; |
|
|
489 | |
485 | for (object *op = this; ; op = op->env) |
490 | for (op = this; op->env; op = op->env) |
486 | if (!op->env) |
491 | ; |
|
|
492 | |
487 | return op; |
493 | return op; |
488 | } |
494 | } |
489 | |
495 | |
490 | // returns the player that has this object in his inventory, or 0 |
496 | // returns the player that has this object in his inventory, or 0 |
491 | // we assume the player is always the outer env |
497 | // we assume the player is always the outer env |
492 | MTH object *in_player () |
498 | MTH object *in_player () |