Switch to edit mode.
Name(s): @mode*s @flag*s1: "@flags/@modes dobj"
2: " displays a list of flags or modes on dobj."
3: "@flags/@modes dobj.flag/mode name"
4: " toggles flag/mode on or off"
5: dobjs = {$iso, $phobias, $madness}
6: isflags = verb[1..5] == "@flag"
7: cp = callers() ? caller_perms() | player
8: if (!(cp in this.residents))
9: raise(E_PERM)
10: elseif (!argstr)
11: return player:tell("Need an object to display.")
12: endif
13: if (index(argstr, ".") && (x = $code_utils:parse_propref(argstr)))
14: dobj = player:my_match_object(x[1])
15: argstr = x[2]
16: else
17: dobj = player:my_match_object(argstr)
18: endif
19: if (!$recycler:valid(dobj))
20: return player:tell("Invalid Object: ", dobj)
21: elseif (!(dobj in dobjs))
22: return player:tell("You can only edit the flags on ", $su:nn_list(dobjs))
23: elseif (isflags && !dobj:has_property("flags_valid") || (!isflags && !dobj:has_property("modes_valid")))
24: return player:tell("Object ", $su:nn(dobj), " doesn't have any ", isflags ? "flags." | "modes.")
25: endif
26: modes = flags = {}
27: isflags ? flags = dobj.flags_valid | (modes = dobj.modes_valid)
28: if (!(argstr in modes) && !(argstr in flags))
29: player:tell(isflags ? "FLAGS:" | "MODES:")
30: for x in (isflags ? flags | modes)
31: info = isflags ? tostr(x in dobj.flags ? "* " | " ", x) | tostr(dobj.mode == x ? "* " | " ", x)
32: player:tell(info)
33: endfor
34: return
35: elseif (argstr in modes)
36: dobj.mode = argstr
37: player:tell("Mode is now: ", argstr)
38: else
39: if (x = argstr in dobj.flags)
40: dobj.flags = setremove(dobj.flags, argstr)
41: else
42: dobj.flags = {@dobj.flags, argstr}
43: endif
44: player:tell("Flag ", argstr, " now ", x ? "OFF" | "ON")
45: endif
46: "Last modified by Eve (#2633) on Mon Oct 16 19:19:57 2000 MDT."