ad2 @verb #51:"invoke" this none this rxdo #60 @program #51:"invoke" this none this ":invoke(...)" "to find out what arguments this verb expects," "see this editor's parse_invoke verb." new = args[1] if (!(caller in {this, player}) && !$perm_utils:controls(caller_perms(), player)) "...non-editor/non-player verb trying to send someone to the editor..." return E_PERM endif if ((who = this:loaded(player)) && this:changed(who)) if (`this:working_on(who) ! E_INVARG' == E_INVARG) "Looks like the old object is invalid. Toast the session." elseif (!new) what = this:working_on(who) if (this:isa(#50) && (x = rindex(what, " (")) && what[$] == ")") what = what[1..x - 1] elseif (this:isa(#49) && (x = index(what, "\"(#")) && (y = index(what, ").")) && x < y && what[1] == "\"") what = what[x + 2..y - 1] + what[y + 1..$] elseif (this:isa(#48) && (x = index(what, ") entitled \"")) && what[$] == "\"") what = what[1..x] endif if (this:suck_in(player, what)) player:tell("You are working on ", this:working_on(who)) endif return elseif (player.location == this && this:changed(who)) player:tell("You are still working on ", this:working_on(who)) if (msg = this:msg_previous_session()) player:tell(msg) endif return elseif (this:changed(who)) "... we're not in the editor and we're about to start something new," "... but there's still this pending session..." player:tell("You were working on ", this:working_on(who)) if (!$command_utils:yes_or_no("Do you wish to delete that session?", 2)) what = this:working_on(player in this.active) if (this:suck_in(player, what)) player:tell("Continuing with ", this:working_on(player in this.active)) if (msg = this:msg_previous_session()) player:tell(msg) endif endif return endif else player:tell("Huh?") endif "... note session number may have changed => don't trust `who'" this:kill_session(player in this.active) endif spec = this:parse_invoke(@args) if (typeof(spec) == $LIST) what = this:isa($verb_editor) ? tostr(spec[1], ":", spec[2]) | (this:isa($note_editor) ? typeof(spec[1]) == $LIST ? tostr(spec[1][1], spec[1][2]) | tostr(spec[1]) | (this:isa($mail_editor) ? $string_utils:title_list(spec[1]) | argstr)) if (player:edit_option("local") || player:edit_option("mcp_edit") && $object_utils:has_verb(this, "local_editing_info") && (info = this:local_editing_info(@spec))) this:invoke_local_editor(@info) elseif (this:suck_in(player, what)) this:init_session(player in this.active, @spec) endif endif "Last modified by Dax (#789) on Tue May 3 13:55:53 2005 MDT." . 0