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 = #[]; .