parent $foundation
object $messaged
var $root child_index 0
var $root owners [$messaged]
var $root owned [$messaged]
var $root fertile 1
var $root inited 1
var $root manager $messaged
var $root writable [$messaged]
var $root readable ['parameters, 'methods, 'code]
var $messaged messages 0
var $root info ["$messaged stores messages for various objects. For example, $exit messages such as would be displayed when a being attempts to travers an exit, but fails would be stored in a $messaged parameter, but could be overridden on a particular exit."]
var $root dbref 'messaged
method messages
.perms(sender(), 'this);
return messages || #[];
.
method all_messages
var msg, all;
// For message to call when inheriting, or something
.perms(sender(), 'this);
all = (| pass() |) || #[];
for msg in (.messages()) {
if (msg in dict_keys(all))
all = $dict.replace(all, msg, (.messages())[msg]);
else
all = dict_add(all, msg, (.messages())[msg]);
}
return all;
.
method message
arg id;
var ret;
ret = (| (.all_messages())[id] |);
if (type(ret) == 'error)
throw(~msgnf, "Message not found.");
return ret;
.
method add_message
arg id, msg;
.perms(sender());
if (.has_message(id))
throw(~msgexists, "Message already defined.");
messages = dict_add(messages, id, msg);
.
method set_message
arg id, msg;
.perms(sender());
if (.defines_msg(id))
messages = $dict.replace(messages, id, msg);
else
.add_message(id, msg);
.
method has_message
arg id;
return id in dict_keys(.all_messages());
.
method defines_msg
arg id;
return id in dict_keys(.messages());
.
method init_messaged
.perms(caller(), $root);
messages = #[];
.