object manipulator #251

Parent #72Owner #361Flags readSource hellcore/hellcore.db

Aliases: object manipulator

28 verbs · 11 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
_verbname_or_invargthis none thisrxd#2514
describethis none thisrxd#2517
dothis none thisrxd#2517
cannotthis none thisrxd#2517
set_propertythis none thisrxd#2517
_do_set_propertythis none thisrxd#2513
_cannot_set_propertythis none thisrxd#2518
_describe_set_propertythis none thisrxd#2512
add_propertythis none thisrxd#2517
_do_add_propertythis none thisrxd#2513
_cannot_add_propertythis none thisrxd#2518
_describe_add_propertythis none thisrxd#2512
add_verbthis none thisrxd#2517
_do_add_verbthis none thisrxd#2514
_cannot_add_verbthis none thisrxd#25111
_describe_add_verbthis none thisrxd#2512
set_verbthis none thisrxd#2517
_do_set_verbthis none thisrxd#2513
_cannot_set_verbthis none thisrxd#2518
_describe_set_verbthis none thisrxd#2512
delete_verbthis none thisrxd#2517
_do_delete_verbthis none thisrxd#2513
_cannot_delete_verbthis none thisrxd#2518
_describe_delete_verbthis none thisrxd#2512
delete_propertythis none thisrxd#2517
_do_delete_propertythis none thisrxd#2513
_cannot_delete_propertythis none thisrxd#2518
_describe_delete_propertythis none thisrxd#2512

Properties

PropertyDefinerFlagsOwnerValue
help_msg#72rc#361<clear>
aliases#1rc#361{"object manipulator"}
description#1rc#361<clear>
object_size#1r#29{14131, 1298434579}
hidden_verbs#1rc#361<clear>
phelp_msg#1rc#361<clear>
weight#1rc#361<clear>
owner_verbs#1rc#361<clear>
plural_name#1rc#361<clear>
client_image#1rc#361<clear>
listening#1rc#361<clear>

Ancestry

Ancestors (nearest first): #72 Generic Utilities Package#1 root

Children: none

Call graph

calls n251_1 #251:describe n251_0 #251:_verbname_or_invarg n251_1->n251_0 n251_2 #251:do n251_2->n251_0 n251_3 #251:cannot n251_3->n251_0 n251_6 #251:_cannot_set_property n20_59 #20:name_and_number n251_6->n20_59 n251_7 #251:_describe_set_property n251_7->n20_59 n251_10 #251:_cannot_add_property n251_10->n20_59 n45_0 #45:has_property n251_10->n45_0 n251_11 #251:_describe_add_property n251_11->n20_59 n251_13 #251:_do_add_verb n20_5 #20:from_list n251_13->n20_5 n17_41 #17:set_verb_code n251_13->n17_41 n251_14 #251:_cannot_add_verb n251_14->n20_59 n45_2 #45:has_verb n251_14->n45_2 n251_15 #251:_describe_add_verb n251_15->n20_59 n251_15->n20_5 n251_17 #251:_do_set_verb n251_17->n17_41 n251_18 #251:_cannot_set_verb n251_18->n20_59 n251_19 #251:_describe_set_verb n251_19->n20_59 n251_22 #251:_cannot_delete_verb n251_22->n20_59 n251_23 #251:_describe_delete_verb n251_23->n20_59 n251_26 #251:_cannot_delete_property n251_26->n20_59 n251_27 #251:_describe_delete_property n251_27->n20_59

Source

_verbname_or_invarg

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

Source

1":_verbname_or_invarg(name) => Return NAME if there is a verb this:name, otherwise raise E_INVARG.";
2{name} = args;
3`verb_info(this, name) ! E_VERBNF => raise(E_INVARG)';
4return name;

describe

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":describe(manipulator) => Return a textual description of the action performed by manipulator.";
2{manipulator} = args;
3if ((typeof(manipulator) != LIST) || (length(manipulator) <= 2))
4raise(E_INVARG);
5else
6return this:(this:_verbname_or_invarg("_describe_" + manipulator[1]))(@manipulator[2..$]);
7endif

do

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":do(manipulator) => Carry out the action defined by manipulator.";
2{manipulator} = args;
3if ((typeof(manipulator) != LIST) || (length(manipulator) <= 2))
4raise(E_INVARG);
5else
6return this:("_do_" + this:_verbname_or_invarg(manipulator[1]))(@manipulator[2..$]);
7endif

cannot

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":cannot_do(manipulator) => Return a textual description of why manipulator cannot be done, or the empty string if it can.";
2{manipulator} = args;
3if ((typeof(manipulator) != LIST) || (length(manipulator) <= 2))
4raise(E_INVARG);
5else
6return this:("_cannot_" + this:_verbname_or_invarg(manipulator[1]))(@manipulator[2..$]) || "";
7endif

set_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":set_property(obj, propertyname, newval) => <obj>.(<propertyname>) = <newval>";
2{OBJ, propertyname, newval} = args;
3if (valid(OBJ) && (typeof(propertyname) == STR))
4return {verb, OBJ, propertyname, newval};
5else
6raise(E_TYPE);
7endif

_do_set_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{OBJ, propertyname, newval} = args;
2set_task_perms(caller_perms());
3OBJ.(propertyname) = newval;

_cannot_set_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{OBJ, propertyname, newval} = args;
2if (`info = property_info(OBJ, propertyname) ! E_PROPNF => {}')
3if (((!player.wizard) && (player != info[1])) && (!index(info[2], "w")))
4return ((($su:nn(player) + " has insufficient permissions to modify the property '") + propertyname) + "' on ") + $su:nn(OBJ);
5endif
6else
7return (($su:nn(OBJ) + " has no non-builtin property '") + propertyname) + "'";
8endif

_describe_set_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{OBJ, propertyname, newval} = args;
2return ((($su:nn(OBJ) + ".") + propertyname) + " = ") + toliteral(newval);

add_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":add_property(obj, propertyname, defvalue, owner, permissions) => Create a property with the given attributes.";
2{OBJ, propertyname, defvalue, owner, permissions} = args;
3if (((valid(OBJ) && (typeof(propertyname) == STR)) && valid(owner)) && (typeof(permissions) == STR))
4return {verb, OBJ, propertyname, defvalue, owner, permissions};
5else
6raise(E_TYPE);
7endif

_do_add_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, property, value, owner, permissions} = args;
2set_task_perms(caller_perms());
3add_property(object, property, value, {owner, permissions});

_cannot_add_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{OBJ, property, value, owner, permissions} = args;
2if ($ou:has_property(OBJ, property))
3return (($su:nn(OBJ) + ".") + property) + " already exists";
4elseif ((!player.wizard) && (player != OBJ.owner))
5return ((($su:nn(player) + " has insufficient permissions to add the property '") + property) + "' on ") + $su:nn(OBJ);
6elseif ((!player.wizard) && (player != owner))
7return "non-wizards cannot add properties owned by anyone but themselves";
8endif

_describe_add_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{OBJ, property, defvalue, owner, permissions} = args;
2return (((((((("add " + $su:nn(OBJ)) + ".") + property) + " with value ") + toliteral(defvalue)) + ", owned by ") + $su:nn(owner)) + " with permissions ") + permissions;

add_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":add_verb(obj, names, code, args, owner, permissions) => Add a verb with the given attributes.";
2{OBJ, names, code, args, owner, permissions} = args;
3if ((((valid(OBJ) && (typeof(names) == LIST)) && valid(owner)) && (typeof(permissions) == STR)) && (typeof(args) == LIST))
4return {verb, OBJ, names, code, args, owner, permissions};
5else
6raise(E_TYPE);
7endif

_do_add_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{OBJECT, names, code, args, owner, permissions} = args;
2set_task_perms(caller_perms());
3add_verb(OBJECT, {owner, permissions, $su:from_list(names, " ")}, args);
4$wiz_utils:set_verb_code(OBJECT, names[1], code);

_cannot_add_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, names, code, args, owner, permissions} = args;
2for name in (names)
3if ($ou:has_verb(object, name) == {object})
4return (($su:nn(object) + ":") + name) + " already exists";
5endif
6endfor
7if ((!player.wizard) && (player != object.owner))
8return ((($su:nn(player) + " has insufficient permissions to add the verb '") + names[1]) + "' on ") + $su:nn(object);
9elseif ((!player.wizard) && (player != owner))
10return "non-wizards cannot add verbs owned by anyone but themselves";
11endif

_describe_add_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, names, code, args, owner, permissions} = args;
2return ((((((((((("add " + $su:nn(object)) + ":\"") + $su:from_list(names, " ")) + "\" ") + $su:from_list(args, " ")) + ", owned by ") + $su:nn(owner)) + " with permissions ") + permissions) + " and ") + tostr(length(code))) + " lines of code";

set_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":set_verb(obj, name, code) => Set the code for a the given verb.";
2{OBJ, name, code} = args;
3if ((valid(OBJ) && (typeof(name) == STR)) && (typeof(code) == LIST))
4return {verb, OBJ, name, code};
5else
6raise(E_TYPE);
7endif

_do_set_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name, code} = args;
2set_task_perms(caller_perms());
3$wiz_utils:set_verb_code(object, name, code);

_cannot_set_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name, code} = args;
2if (`info = verb_info(object, name) ! E_VERBNF => {}')
3if ((!player.wizard) && (player != info[1]))
4return ((($su:nn(player) + " has insufficient permissions to modify the verb '") + name) + "' on ") + $su:nn(object);
5endif
6else
7return (($su:nn(object) + ":") + name) + " doesn't exist";
8endif

_describe_set_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name, code} = args;
2return ((((("set " + $su:nn(object)) + ":") + name) + " to ") + tostr(length(code))) + " lines of code";

delete_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":delete_verb(obj, name [, shallow]) => Delete the given verb from the object.";
2{OBJ, name} = args;
3if (valid(OBJ) && (typeof(name) == STR))
4return {verb, OBJ, name};
5else
6raise(E_TYPE);
7endif

_do_delete_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name} = args;
2set_task_perms(player);
3delete_verb(object, name);

_cannot_delete_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name} = args;
2if (`info = verb_info(object, name) ! E_VERBNF => {}')
3if ((!player.wizard) && (player != object.owner))
4return ((($su:nn(player) + " has insufficient permissions to delete the verb '") + name) + "' on ") + $su:nn(object);
5endif
6else
7return (($su:nn(object) + ":") + name) + " doesn't exist";
8endif

_describe_delete_verb

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name} = args;
2return (("delete " + $su:nn(object)) + ":") + name;

delete_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1":delete_property(obj, name) => Delete the given property from the object.";
2{OBJ, name} = args;
3if (valid(OBJ) && (typeof(name) == STR))
4return {verb, OBJ, name};
5else
6raise(E_TYPE);
7endif

_do_delete_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name} = args;
2set_task_perms(caller_perms());
3delete_property(object, name);

_cannot_delete_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name} = args;
2if (`info = property_info(object, name) ! E_PROPNF => {}')
3if ((!player.wizard) && (player != info[1]))
4return ((($su:nn(player) + " has insufficient permissions to delete the property '") + name) + "' on ") + $su:nn(object);
5endif
6else
7return (($su:nn(object) + ".") + name) + " doesn't exist";
8endif

_describe_delete_property

Spec this none thisFlags rxdOwner #361Definer #251

Referenced by

none

Source

1{object, name} = args;
2return (("delete " + $su:nn(object)) + ".") + name;