generic room #3

Parent #1Owner #2Flags obsolete1, read, fertileSource QuestCore.db

Aliases: generic room

45 verbs · 17 properties · 2 children

Verbs

VerbSpecFlagsDefinerLines
confuncthis none thisrxd#35
disfuncthis none thisrxd#38
sayany any anyrx#39
emoteany any anyrxd#35
announcethis none thisrxd#38
match_exitthis none thisrxd#316
add_exitthis none thisrxd#32
tell_contentsthis none thisrxd#334
@exitsnone none nonerxd#318
look_selfthis none thisrxd#36
acceptablethis none thisrxd#32
add_entrancethis none thisrxd#32
bless_for_entrythis none thisrxd#34
@entrancesnone none nonerd#318
goany any anyrxd#319
l*ookany any anyrxd#330
announce_allthis none thisrxd#38
announce_all_butthis none thisrxd#314
enterfuncthis none thisrxd#38
exitfuncthis none thisrxd#31
remove_exitthis none thisrxd#35
remove_entrancethis none thisrxd#35
@add-exitany none nonerd#337
@add-entranceany none nonerd#328
recyclethis none thisrxd#337
e east w west s south n north ne northeast nw northwest se southeast sw southwest u up d down out exit onone none nonerxd#39
@eject @eject! @eject!!any none nonerd#322
ejection_msg oejection_msg victim_ejection_msgthis none thisrxd#31
accept_for_abodethis none thisrxd#32
@resident*sany none nonerd#346
matchthis none thisrxd#32
@remove-exitany none nonerd#318
@remove-entranceany none nonerd#319
movetothis none thisrxd#35
who_location_msgthis none thisrxd#31
exits entrancesthis none thisrxd#35
obvious_exits obvious_entrancesthis none thisrxd#37
here_huhthis none thisrxd#313
room_announce*_all_butthis none thisrxd#31
examine_commands_okthis none thisrxd#31
examine_keythis none thisrxd#37
examine_contentsthis none thisrxd#34
free_entrythis none thisrxd#31
darkthis none thisrxd#31
-* `*any any anyrxd#326

Properties

PropertyDefinerFlagsOwnerValue
who_location_msg#3rc#2"%T"
free_home#3rc#20
victim_ejection_msg#3rc#2"You have been expelled from %i by %n."
ejection_msg#3rc#2"You expel %d from %i."
oejection_msg#3rc#2"%N unceremoniously %{!expels} %d from %i."
residents#3rc#2{}
free_entry#3rc#21
entrances#3c#2{}
blessed_object#3rc#2#-1
blessed_task#3rc#20
exits#3c#2{}
dark#3rc#20
ctype#3rc#23
key#1c#2<clear>
aliases#1rc#2{"generic room"}
description#1rc#2<clear>
object_size#1r#36{29054, 1539462952}

Ancestry

Ancestors (nearest first): #1 Root Class

Children: #50 Generic Editor, #104 RPG room

Call graph

calls n3_0 #3:confunc n42_0 #42:controls n3_0->n42_0 n3_9 #3:look_self n3_0->n3_9 n3_4 #3:announce n3_0->n3_4 n20_34 #20:pronoun_sub n3_0->n20_34 n6_18 #6:tell n3_9->n6_18 n1_29 #1:contents n3_9->n1_29 n3_7 #3:tell_contents n3_9->n3_7 n1_3 #1:title n3_9->n1_3 n1_10 #1:look_self n3_9->n1_10 n3_4->n1_29 n3_1 #3:disfunc n3_1->n42_0 n3_1->n3_4 n3_1->n20_34 n52_5 #52:isa n3_1->n52_5 n71_19 #71:move_players_home n3_1->n71_19 n3_2 #3:say n20_73 #20:get_say_verb n3_2->n20_73 n59_39 #59:argstr n3_2->n59_39 n3_2->n6_18 n35_0 #35:verb_sub n3_2->n35_0 n125_7 #125:announce n3_2->n125_7 n3_2->n1_29 n6_9 #6:titlec n3_2->n6_9 n3_3 #3:emote n3_3->n6_9 n3_16 #3:announce_all n3_3->n3_16 n3_16->n1_29 n3_7->n6_18 n3_8 #3:@exits n3_8->n42_0 n3_8->n6_18 n20_5 #20:from_list n3_8->n20_5 n20_59 #20:name_and_number n3_8->n20_59 n3_10 #3:acceptable n1_17 #1:is_unlocked_for n3_10->n1_17 n3_42 #3:free_entry n3_10->n3_42 n3_13 #3:@entrances n3_13->n42_0 n3_13->n6_18 n3_13->n20_5 n3_13->n20_59 n3_14 #3:go n3_14->n6_18 n3_15 #3:l*ook n3_15->n3_9 n3_15->n6_18 n1_7 #1:match_object n3_15->n1_7 n56_0 #56:object_match_failed n3_15->n56_0 n3_17 #3:announce_all_but n3_17->n1_29 n3_18 #3:enterfunc n3_18->n3_9 n3_22 #3:@add-exit n3_22->n6_18 n3_22->n1_7 n3_22->n56_0 n52_6 #52:ancestors n3_22->n52_6 n3_6 #3:add_exit n3_22->n3_6 n20_6 #20:english_list n3_22->n20_6 n3_23 #3:@add-entrance n3_23->n6_18 n3_23->n1_7 n3_23->n56_0 n3_23->n52_6 n3_23->n20_6 n3_11 #3:add_entrance n3_23->n3_11 n3_24 #3:recycle n3_24->n42_0 n1_1 #1:recycle n3_24->n1_1 n3_25 #3:e n3_25->n6_18 n3_5 #3:match_exit n3_25->n3_5 n3_26 #3:@eject n3_26->n42_0 n3_26->n6_18 n3_26->n56_0 n3_26->n3_17 n3_27 #3:ejection_msg n3_26->n3_27 n41_7 #41:pronoun_sub n3_27->n41_7 n3_28 #3:accept_for_abode n3_28->n42_0 n3_28->n3_10

Showing 48 of 71 verbs; 23 not shown.

Source

confunc

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1if ((((cp = caller_perms()) == player) || $perm_utils:controls(cp, player)) || (caller == this))
2"Need the first check because guests don't control themselves";
3this:look_self(player.brief);
4this:announce($string_utils:pronoun_sub("%N %<has> connected.", player));
5endif

disfunc

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1if ((((cp = caller_perms()) == player) || $perm_utils:controls(cp, player)) || (caller == this))
2this:announce($string_utils:pronoun_sub("%N %<has> disconnected.", player));
3"need the first check since guests don't control themselves";
4if ((this != player.home) && (!$object_utils:isa(player, $guest)))
5"guest disfuncs are handled by $guest:disfunc. Don't add them here";
6$housekeeper:move_players_home(player);
7endif
8endif

say

Spec any any anyFlags rxOwner #2Definer #3

Referenced by

none

Source

1try
2sayverb = $string_utils:get_say_verb(argstr);
3argstr = $code_utils:argstr(verb, args, argstr);
4player:tell("You ", $you:verb_sub(sayverb), ", \"", argstr, "\"");
5$lang_utils:announce(player, setremove(this:contents(), player), tostr(player:titlec(), " ", $gender_utils:get_conj(sayverb, player), ", \"%lang_encrypt\""), argstr);
6except (ANY)
7"Don't really need to do anything but ignore the idiot who has a bad :tell";
8endtry
9return;

emote

Spec any any anyFlags rxdOwner #2Definer #3

Referenced by

none

Source

1if ((argstr != "") && (argstr[1] == ":"))
2this:announce_all(player:titlec(), argstr[2..length(argstr)]);
3else
4this:announce_all(player:titlec(), " ", argstr);
5endif

announce

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1for dude in (setremove(this:contents(), player))
2try
3dude:tell(@args);
4except (ANY)
5"Just skip the dude with the bad :tell";
6continue dude;
7endtry
8endfor

match_exit

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1what = args[1];
2if (what)
3yes = $failed_match;
4for e in (this.exits)
5if (valid(e) && (what in {e.name, @e.aliases}))
6if (yes == $failed_match)
7yes = e;
8elseif (yes != e)
9return $ambiguous_match;
10endif
11endif
12endfor
13return yes;
14else
15return $nothing;
16endif

add_exit

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1set_task_perms(caller_perms());
2return `this.exits = setadd(this.exits, args[1]) ! E_PERM' != E_PERM;

tell_contents

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1{contents, ctype} = args;
2if ((!this.dark) && (contents != {}))
3if (ctype == 0)
4player:tell("Contents:");
5for thing in (contents)
6player:tell("  ", thing:title());
7endfor
8elseif (ctype == 1)
9for thing in (contents)
10if (is_player(thing))
11player:tell($string_Utils:pronoun_sub("%n ", $gender_utils:get_conj("is", thing), " here.", thing));
12else
13player:tell("You see ", thing:title(), " here.");
14endif
15endfor
16elseif (ctype == 2)
17player:tell("You see ", $string_utils:title_list(contents), " here.");
18elseif (ctype == 3)
19players = things = {};
20for x in (contents)
21if (is_player(x))
22players = {@players, x};
23else
24things = {@things, x};
25endif
26endfor
27if (things)
28player:tell("You see ", $string_utils:title_list(things), " here.");
29endif
30if (players)
31player:tell($string_utils:title_listc(players), (length(players) == 1) ? " " + $gender_utils:get_conj("is", players[1]) | " are", " here.");
32endif
33endif
34endif

@exits

Spec none none noneFlags rxdOwner #2Definer #3

Referenced by

none

Source

1if (!$perm_utils:controls(valid(caller_perms()) ? caller_perms() | player, this))
2player:tell("Sorry, only the owner of a room may list its exits.");
3elseif (this.exits == {})
4player:tell("This room has no conventional exits.");
5else
6try
7for exit in (this.exits)
8try
9player:tell(exit.name, " (", exit, ") leads to ", valid(exit.dest) ? exit.dest.name | "???", " (", exit.dest, ") via {", $string_utils:from_list(exit.aliases, ", "), "}.");
10except (ANY)
11player:tell("Bad exit or missing .dest property:  ", $string_utils:nn(exit));
12continue exit;
13endtry
14endfor
15except (E_TYPE)
16player:tell("Bad .exits property. This should be a list of exit objects. Please fix this.");
17endtry
18endif

look_self

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1{?brief = 0} = args;
2player:tell(this:title());
3if (!brief)
4pass();
5endif
6this:tell_contents(setremove(this:contents(), player), this.ctype);

acceptable

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1what = args[1];
2return this:is_unlocked_for(what) && (((this:free_entry(@args) || ((what == this.blessed_object) && (task_id() == this.blessed_task))) || (what.owner == this.owner)) || ((typeof(this.residents) == LIST) && (what in this.residents)));

add_entrance

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1set_task_perms(caller_perms());
2return `this.entrances = setadd(this.entrances, args[1]) ! E_PERM' != E_PERM;

bless_for_entry

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1if (caller in {@this.entrances, this})
2this.blessed_object = args[1];
3this.blessed_task = task_id();
4endif

@entrances

Spec none none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1if (!$perm_utils:controls(valid(caller_perms()) ? caller_perms() | player, this))
2player:tell("Sorry, only the owner of a room may list its entrances.");
3elseif (this.entrances == {})
4player:tell("This room has no conventional entrances.");
5else
6try
7for exit in (this.entrances)
8try
9player:tell(exit.name, " (", exit, ") comes from ", valid(exit.source) ? exit.source.name | "???", " (", exit.source, ") via {", $string_utils:from_list(exit.aliases, ", "), "}.");
10except (ANY)
11player:tell("Bad entrance object or missing .source property: ", $string_utils:nn(exit));
12continue exit;
13endtry
14endfor
15except (E_TYPE)
16player:tell("Bad .entrances property. This should be a list of exit objects. Please fix this.");
17endtry
18endif

go

Spec any any anyFlags rxdOwner #2Definer #3

Referenced by

Source

1if ((!args) || (!(dir = args[1])))
2player:tell("You need to specify a direction.");
3return E_INVARG;
4elseif (valid(exit = player.location:match_exit(dir)))
5exit:invoke();
6if (length(args) > 1)
7old_room = player.location;
8"Now give objects in the room we just entered a chance to act.";
9suspend(0);
10if (player.location == old_room)
11"player didn't move or get moved while we were suspended";
12player.location:go(@listdelete(args, 1));
13endif
14endif
15elseif (exit == $failed_match)
16player:tell("You can't go that way (", dir, ").");
17else
18player:tell("I don't know which direction `", dir, "' you mean.");
19endif

l*ook

Spec any any anyFlags rxdOwner #2Definer #3

Referenced by

none

Source

1if ((dobjstr == "") && (!prepstr))
2this:look_self();
3elseif ((prepstr != "in") && (prepstr != "on"))
4if ((!dobjstr) && (prepstr == "at"))
5dobjstr = iobjstr;
6iobjstr = "";
7else
8dobjstr = dobjstr + (prepstr && ((dobjstr && " ") + prepstr));
9dobjstr = dobjstr + (iobjstr && ((dobjstr && " ") + iobjstr));
10endif
11dobj = this:match_object(dobjstr);
12if (!$command_utils:object_match_failed(dobj, dobjstr))
13dobj:look_self();
14endif
15elseif (!iobjstr)
16player:tell(verb, " ", prepstr, " what?");
17else
18iobj = this:match_object(iobjstr);
19if (!$command_utils:object_match_failed(iobj, iobjstr))
20if (dobjstr == "")
21iobj:look_self();
22elseif ((thing = iobj:match(dobjstr)) == $failed_match)
23player:tell("I don't see any \"", dobjstr, "\" ", prepstr, " ", iobj.name, ".");
24elseif (thing == $ambiguous_match)
25player:tell("There are several things ", prepstr, " ", iobj.name, " one might call \"", dobjstr, "\".");
26else
27thing:look_self();
28endif
29endif
30endif

announce_all

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1for dude in (this:contents())
2try
3dude:tell(@args);
4except (ANY)
5"Just ignore the dude with the stupid :tell";
6continue dude;
7endtry
8endfor

announce_all_but

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1":announce_all_but(LIST objects to ignore, text)";
2{ignore, @text} = args;
3contents = this:contents();
4for l in (ignore)
5contents = setremove(contents, l);
6endfor
7for listener in (contents)
8try
9listener:tell(@text);
10except (ANY)
11"Ignure listener with bad :tell";
12continue listener;
13endtry
14endfor

enterfunc

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1object = args[1];
2if (is_player(object) && (object.location == this))
3player = object;
4this:look_self(player.brief);
5endif
6if (object == this.blessed_object)
7this.blessed_object = #-1;
8endif

exitfunc

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1return;

remove_exit

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1exit = args[1];
2if (caller != exit)
3set_task_perms(caller_perms());
4endif
5return `this.exits = setremove(this.exits, exit) ! E_PERM' != E_PERM;

remove_entrance

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1exit = args[1];
2if (caller != exit)
3set_task_perms(caller_perms());
4endif
5return `this.entrances = setremove(this.entrances, exit) ! E_PERM' != E_PERM;

@add-exit

Spec any none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1set_task_perms(player);
2if (!dobjstr)
3player:tell("Usage:  @add-exit <exit-number>");
4return;
5endif
6exit = this:match_object(dobjstr);
7if ($command_utils:object_match_failed(exit, dobjstr))
8return;
9endif
10if (!($exit in $object_utils:ancestors(exit)))
11player:tell("That doesn't look like an exit object to me...");
12return;
13endif
14try
15dest = exit.dest;
16except (E_PERM)
17player:tell("You can't read the exit's destination to check that it's consistent!");
18return;
19endtry
20try
21source = exit.source;
22except (E_PERM)
23player:tell("You can't read that exit's source to check that it's consistent!");
24return;
25endtry
26if (source != this)
27player:tell("That exit wasn't made to be attached here; it was made as an exit from ", source.name, " (", source, ").");
28return;
29elseif (((typeof(dest) != OBJ) || (!valid(dest))) || (!($room in $object_utils:ancestors(dest))))
30player:tell("That exit doesn't lead to a room!");
31return;
32endif
33if (!this:add_exit(exit))
34player:tell("Sorry, but you must not have permission to add exits to this room.");
35else
36player:tell("You have added ", exit, " as an exit that goes to ", exit.dest.name, " (", exit.dest, ") via ", $string_utils:english_list(setadd(exit.aliases, exit.name)), ".");
37endif

@add-entrance

Spec any none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1set_task_perms(player);
2if (!dobjstr)
3player:tell("Usage:  @add-entrance <exit-number>");
4return;
5endif
6exit = this:match_object(dobjstr);
7if ($command_utils:object_match_failed(exit, dobjstr))
8return;
9endif
10if (!($exit in $object_utils:ancestors(exit)))
11player:tell("That doesn't look like an exit object to me...");
12return;
13endif
14try
15dest = exit.dest;
16except (E_PERM)
17player:tell("You can't read the exit's destination to check that it's consistent!");
18return;
19endtry
20if (dest != this)
21player:tell("That exit doesn't lead here!");
22return;
23endif
24if (!this:add_entrance(exit))
25player:tell("Sorry, but you must not have permission to add entrances to this room.");
26else
27player:tell("You have added ", exit, " as an entrance that gets here via ", $string_utils:english_list(setadd(exit.aliases, exit.name)), ".");
28endif

recycle

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1"Make a mild attempt to keep people and objects from ending up in #-1 when people recycle a room";
2if ((caller == this) || $perm_utils:controls(caller_perms(), this))
3"... first try spilling them out onto the floor of enclosing room if any";
4if (valid(this.location))
5for x in (this.contents)
6try
7x:moveto(this.location);
8except (ANY)
9continue x;
10endtry
11endfor
12endif
13"... try sending them home...";
14for x in (this.contents)
15if (is_player(x))
16if ((typeof(x.home) == OBJ) && valid(x.home))
17try
18x:moveto(x.home);
19except (ANY)
20continue x;
21endtry
22endif
23if (x.location == this)
24move(x, $player_start);
25endif
26elseif (valid(x.owner))
27try
28x:moveto(x.owner);
29except (ANY)
30continue x;
31endtry
32endif
33endfor
34pass(@args);
35else
36return E_PERM;
37endif

e east w west s south n north ne northeast nw northwest se southeast sw southwest u up d down out exit o

Spec none none noneFlags rxdOwner #2Definer #3

Referenced by

Source

1set_task_perms((caller_perms() == #-1) ? player | caller_perms());
2exit = this:match_exit(verb);
3if (valid(exit))
4exit:invoke();
5elseif (exit == $failed_match)
6player:tell("You can't go that way.");
7else
8player:tell("I don't know which direction `", verb, "' you mean.");
9endif

@eject @eject! @eject!!

Spec any none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1set_task_perms(player);
2if ($command_utils:object_match_failed(dobj, dobjstr))
3return;
4elseif (dobj.location != this)
5is = $gender_utils:get_conj("is", dobj);
6player:tell(dobj.name, "(", dobj, ") ", is, " not here.");
7return;
8elseif (!$perm_utils:controls(player, this))
9player:tell("You are not the owner of this room.");
10return;
11elseif (dobj.wizard)
12player:tell("Sorry, you can't ", verb, " a wizard.");
13dobj:tell(player.name, " tried to ", verb, " you.");
14return;
15endif
16iobj = this;
17player:tell(this:ejection_msg());
18this:((verb == "@eject") ? "eject" | "eject_basic")(dobj);
19if (verb != "@eject!!")
20dobj:tell(this:victim_ejection_msg());
21endif
22this:announce_all_but({player, dobj}, this:oejection_msg());

ejection_msg oejection_msg victim_ejection_msg

Spec this none thisFlags rxdOwner #36Definer #3

Referenced by

Source

1return $gender_utils:pronoun_sub(this.(verb));

accept_for_abode

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1who = args[1];
2return (valid(who) && ((this.free_home || $perm_utils:controls(who, this)) || ((typeof(residents = this.residents) == LIST) ? who in this.residents | (who == this.residents)))) && this:acceptable(who);

@resident*s

Spec any none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1if (!$perm_utils:controls(player, this))
2player:tell("You must own this room to manipulate the legal residents list.  Try contacting ", this.owner.name, ".");
3else
4if (typeof(this.residents) != LIST)
5this.residents = {this.residents};
6endif
7if (!dobjstr)
8"First, remove !valid objects from this room...";
9for x in (this.residents)
10if ((typeof(x) != OBJ) || (!valid(x)))
11player:tell("Warning: removing ", x, ", an invalid object, from the residents list.");
12this.residents = setremove(this.residents, x);
13endif
14endfor
15player:tell("Allowable residents in this room:  ", $string_utils:english_list($list_utils:map_prop(this.residents, "name"), "no one"), ".");
16return;
17elseif (dobjstr[1] == "!")
18notflag = 1;
19dobjstr = dobjstr[2..$];
20else
21notflag = 0;
22endif
23result = $string_utils:match_player_or_object(dobjstr);
24if (!result)
25return;
26else
27"a one element list was returned to us if it won.";
28result = result[1];
29if (notflag)
30if (!(result in this.residents))
31player:tell(result.name, " doesn't appear to be in the residents list of ", this.name, ".");
32else
33this.residents = setremove(this.residents, result);
34player:tell(result.name, " removed from the residents list of ", this.name, ".");
35endif
36else
37if (result in this.residents)
38is = $gender_utils:get_conj("is", result);
39player:tell(result.name, " ", is, " already an allowed resident of ", this.name, ".");
40else
41this.residents = {@this.residents, result};
42player:tell(result.name, " added to the residents list of ", this.name, ".");
43endif
44endif
45endif
46endif

match

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1target = {@this:contents(), @this:exits()};
2return $string_utils:match(args[1], target, "name", target, "aliases");

@remove-exit

Spec any none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1set_task_perms(player);
2if (!dobjstr)
3player:tell("Usage:  @remove-exit <exit>");
4return;
5endif
6exit = this:match_object(dobjstr);
7if (!(exit in this.exits))
8if ($command_utils:object_match_failed(exit, dobjstr))
9return;
10endif
11player:tell("Couldn't find \"", dobjstr, "\" in the exits list of ", this.name, ".");
12return;
13elseif (!this:remove_exit(exit))
14player:tell("Sorry, but you do not have permission to remove exits from this room.");
15else
16name = valid(exit) ? exit.name | "<recycled>";
17player:tell("Exit ", exit, " (", name, ") removed from exit list of ", this.name, " (", this, ").");
18endif

@remove-entrance

Spec any none noneFlags rdOwner #2Definer #3

Referenced by

none

Source

1set_task_perms(player);
2if (!dobjstr)
3player:tell("Usage:  @remove-entrance <entrance>");
4return;
5endif
6entrance = $string_utils:match(dobjstr, this.entrances, "name", this.entrances, "aliases");
7if (!valid(entrance))
8"Try again to parse it.  Maybe they gave object number.  Don't complain if it's invalid though; maybe it's been recycled in some nefarious way.";
9entrance = this:match_object(dobjstr);
10endif
11if (!(entrance in this.entrances))
12player:tell("Couldn't find \"", dobjstr, "\" in the entrances list of ", this.name, ".");
13return;
14elseif (!this:remove_entrance(entrance))
15player:tell("Sorry, but you do not have permission to remove entrances from this room.");
16else
17name = valid(entrance) ? entrance.name | "<recycled>";
18player:tell("Entrance ", entrance, " (", name, ") removed from entrance list of ", this.name, " (", this, ").");
19endif

moveto

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1if ((caller in {this, this.owner}) || $perm_utils:controls(caller_perms(), this))
2return pass(@args);
3else
4return E_PERM;
5endif

who_location_msg

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1return (msg = `this.(verb) ! ANY') ? $string_utils:pronoun_sub(msg, args[1]) | "";

exits entrances

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1if ((caller == this) || $perm_utils:controls(caller_perms(), this))
2return this.(verb);
3else
4return E_PERM;
5endif

obvious_exits obvious_entrances

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1exits = {};
2for exit in (`(verb == "obvious_exits") ? this.exits | this.entrances ! ANY => {}')
3if (`exit.obvious ! ANY')
4exits = setadd(exits, exit);
5endif
6endfor
7return exits;

here_huh

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

Source

1":here_huh(verb,args)  -- room-specific :huh processing.  This should return 1 if it finds something interesting to do and 0 otherwise; see $command_utils:do_huh.";
2"For the generic room, we check for the case of the caller specifying an exit for which a corresponding verb was never defined.";
3set_task_perms(caller_perms());
4if (args[2] || ($failed_match == (exit = this:match_exit(verb = args[1]))))
5"... okay, it's not an exit.  we give up...";
6return 0;
7elseif (valid(exit))
8exit:invoke();
9else
10"... ambiguous exit ...";
11player:tell("I don't know which direction `", verb, "' you mean.");
12endif
13return 1;

room_announce*_all_but

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1this:(verb[6..$])(@args);

examine_commands_ok

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1return this == args[1].location;

examine_key

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1"examine_key(examiner)";
2"return a list of strings to be told to the player, indicating what the key on this type of object means, and what this object's key is set to.";
3"the default will only tell the key to a wizard or this object's owner.";
4who = args[1];
5if (((caller == this) && $perm_utils:controls(who, this)) && (this.key != 0))
6return {tostr(this:title(), " will accept only objects matching the following key:"), tostr("  ", $lock_utils:unparse_key(this.key))};
7endif

examine_contents

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1"examine_contents(who)";
2if (caller == this)
3this:tell_contents(this.contents, this.ctype);
4endif

free_entry

Spec this none thisFlags rxdOwner #36Definer #3

Referenced by

Source

1return this.free_entry;

dark

Spec this none thisFlags rxdOwner #2Definer #3

Referenced by

none

Source

1return this.(verb);

-* `*

Spec any any anyFlags rxdOwner #2Definer #3

Referenced by

none

Source

1"USAGE: -<player name> words";
2name = verb[2..$] || "nothing in particular";
3who = player.location:match_object(name);
4sayverb = $string_utils:get_say_verb(argstr);
5preppy = $string_utils:get_say_verb_prep(sayverb);
6argstr = $code_utils:argstr(verb, args, argstr);
7if (!valid(who))
8player:tell("You ", $you:verb_sub(sayverb), preppy, name, ", \"", argstr, "\"");
9player.location:announce(tostr(player:title(), " ", $gender_utils:get_conj(sayverb, player), preppy, name, ", \"", argstr, "\""));
10return;
11elseif (who.location != player.location)
12return player:tell($string_utils:nn(who), " is not at this location.");
13endif
14wilf = $lang_utils:in_line_for($lang_utils:speaking(player), who);
15pilf = `player.speaking.lang_name ! ANY => ""';
16wttell = setremove(setremove(player.location:contents(), who), player);
17if (who == player)
18player:tell("You ", $you:verb_sub(sayverb), preppy, "yourself, \"", argstr, "\" ", pilf);
19$lang_utils:announce(player, wttell, tostr(player:title(), " ", $gender_utils:get_conj(sayverb, player), preppy, $gender_utils:get_pronoun("r", player), ", \"%lang_encrypt\""), argstr);
20else
21player:tell("You ", $you:verb_sub(sayverb), preppy, who:title(), ", \"", argstr, "\" ", pilf);
22if (player.location == who.location)
23who:tell(tostr(player:title(), " ", $gender_utils:get_conj(sayverb, player), preppy, "you, \"", $lang_utils:encrypt(player, who, argstr), "\" ", wilf));
24endif
25$lang_utils:announce(player, wttell, tostr(player:title(), " ", $gender_utils:get_conj(sayverb, player), preppy, who:title(), ", \"%lang_encrypt\""), argstr);
26endif