generic letter (#55)

(an instance of generic note made by The_Mayor)

     Some writing on the letter explains that you should 'read letter', and when you've finished, 'burn letter'.



VERB SOURCE CODE:

burn:
result = this:do_burn();
player:tell(result ? this:burn_succeeded_msg() | this:burn_failed_msg());
if (msg = result ? this:oburn_succeeded_msg() | this:oburn_failed_msg())
    player.location:announce(player.name, " ", msg);
endif
.


burn_succeeded_msg oburn_succeeded_msg burn_failed_msg oburn_failed_msg:
return (msg = this.(verb)) ? $string_utils:pronoun_sub(msg) | "";
.


do_burn:
c = callers();
while (c && c[1][3].wizard)
    c = listdelete(c, 1);
endwhile
if (c)
    who = c[1][3];
else
    who = player;
endif
if ((this != $letter) && ($perm_utils:controls(who, this) || this:is_readable_by(who)))
    fork (0)
        $recycler:_recycle(this);
    endfork
    return 1;
else
    return E_PERM;
endif
.



PROPERTY DATA:
      oburn_succeeded_msg
      oburn_failed_msg
      burn_failed_msg
      burn_succeeded_msg

CHILDREN:
diary Calling_Card