Editing Room #58

Parent #2Owner #10Flags read, writeSource MurpgCore-0.4/MurpgCore-0.4.db

5 verbs · 21 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
exitnone none nonerwd#586
listnone none nonerwd#587
del*eteany none nonerwd#5818
describe_tothis none thisrwxd#584
ins*ertany none nonerwd#5824

Properties

PropertyDefinerFlagsOwnerValue
how_full#2rw#10<clear>
exits#2rw#10<clear>
entrances#2rw#10<clear>
colors#2rw#10<clear>
combatants#2rw#10<clear>
combat_pid#2rw#10<clear>
endurance_cost#2rw#10<clear>
description#1rw#10{"Commands: say, delete, list, insert, exit."}
aliases#1rw#10<clear>
home#1rw#10<clear>
short_desc#1rw#10<clear>
core#1rw#101
handedness#1rw#10<clear>
base_enc#1rw#10<clear>
base_weight#1rw#10<clear>
capacity#1rw#10<clear>
max_fit#1rw#10<clear>
pprep#1rw#10<clear>
gprep#1rw#10<clear>
generic_name#1rw#10<clear>
age#1rw#10<clear>

Ancestry

Ancestors (nearest first): #2 Room Class#11 Game Class#1 Root Class

Children: none

Call graph

calls n58_0 #58:exit n3_2 #3:tell n58_0->n3_2 n1_4 #1:move_to n58_0->n1_4 n58_1 #58:list n58_1->n3_2 n58_2 #58:del*ete n58_2->n3_2 n58_3 #58:describe_to n58_3->n3_2 n2_5 #2:describe_to n58_3->n2_5 n58_4 #58:ins*ert n58_4->n3_2

Source

exit

Spec none none noneFlags rwdOwner #10Definer #58

Referenced by

none

Source

1"$editor:exit none none none";
2player:tell("You are now %Wleaving%w the Editor...");
3player.editing_prop = "";
4player.editing_obj = #-1;
5player:move_to(player.editing_loc);
6player.editing_loc = #-1;

list

Spec none none noneFlags rwdOwner #10Definer #58

Referenced by

none

Source

1"$editor:list none none none";
2x = 1;
3player:tell(((("You are currently editing %W" + tostr(player.editing_obj)) + ".") + player.editing_prop) + "%w.");
4for each in (player.editing_obj.(player.editing_prop))
5player:tell((("%W" + tostr(x)) + ((x == player.insert_point) ? ":^^%w" | ":  %w")) + each);
6x = x + 1;
7endfor

del*ete

Spec any none noneFlags rwdOwner #10Definer #58

Referenced by

none

Source

1"$editor:del*ete any none none";
2if (length(args) == 0)
3player:tell("%Gsyntax: %Wdelete linenum%w");
4else
5linenum = tonum(args[1]);
6if ((linenum == 0) || (linenum > length(player.editing_obj.(player.editing_prop))))
7player:tell(("%W" + args[1]) + "%w is not a valid line number.");
8else
9player.editing_obj.(player.editing_prop) = listdelete(player.editing_obj.(player.editing_prop), linenum);
10player:tell(("Line %W" + tostr(linenum)) + "%w deleted.");
11endif
12endif
13article_length = length(player.editing_obj.(player.editing_prop));
14if (player.insert_point > (article_length + 1))
15player.insert_point = article_length + 1;
16elseif (linenum < player.insert_point)
17player.insert_point = player.insert_point - 1;
18endif

describe_to

Spec this none thisFlags rwxdOwner #10Definer #58

Referenced by

none

Source

1"$editor:describe_to this none this";
2"just like room, but tells you what you are editing";
3pass(@args);
4player:tell(((("You are currently editing %W" + tostr(player.editing_obj)) + ".") + player.editing_prop) + "%w.");

ins*ert

Spec any none noneFlags rwdOwner #10Definer #58

Referenced by

none

Source

1"$editor:insert any none none";
2{?line = "none"} = args;
3article_length = length(player.editing_obj.(player.editing_prop));
4if (article_length == 0)
5player:tell("Property is blank.");
6player.insert_point = 1;
7elseif (line == "none")
8ip = player.insert_point;
9player:tell((("%W" + tostr(ip - 1)) + ":%w  ") + player.editing_obj.(player.editing_prop)[ip - 1]);
10if (ip <= article_length)
11player:tell((("%W" + tostr(ip)) + ":%w^^") + player.editing_obj.(player.editing_prop)[ip]);
12endif
13if ((ip + 1) <= article_length)
14player:tell((("%W" + tostr(ip + 1)) + ":%w  ") + player.editing_obj.(player.editing_prop)[ip + 1]);
15endif
16return;
17elseif (line == "$")
18player.insert_point = article_length + 1;
19elseif ((tonum(line) < 1) || (tonum(line) > (article_length + 1)))
20player:tell("Insertion point out of range.");
21else
22player.insert_point = tonum(line);
23endif
24player:tell(("Insertion point set to before line %W" + tostr(player.insert_point)) + "%w.");