Subject: moveto & mail

From: Loyd Blankenship <[email-masked]>
Date: Fri, 5 Nov 1993 11:03:13 -0800

When people try to send mail (or use any editor, for that matter) inside
a room with .free_entry==0, they can't be moved back into the room once
they're done mailing/editing/etc. 

Has anyone already fixed this? If not, I was planning on patching moveto:
to check and see if the caller was related to the generic editor, and if
so, ignore the free_entry flag. I don't want to hassle with it if someone
else has done it already and can dump the code here. :-)

Thanks,
Loyd

* Loyd Blankenship        [email-masked]                  ^              *
* Steve Jackson Games     CI$: [73407,515]              / \             *
* PO Box 18957            GEnie: SJGAMES               / O \            *
* Austin, TX  78760       512/447-7866                /_____\           *

---

From: "Jacqueline D. Hamilton" <[email-masked]>
Date: Fri, 5 Nov 1993 11:39:47 -0800

> they're done mailing/editing/etc. 

Actually I always figured it was an accept problem, since your player
moveto only calls a move() which will have to go through the accept
anyway and still not allow them into the start room.

At any rate.  The HT solution.  Its spammy, but it works.

Object #187 does not define that verb, but its ancestor #3 does.
#3:"accept"   this none this
 1:  what = args[1];
 2:  editor = 0;
 3:  if ($object_utils:isa(what.location, $generic_editor))
 4:    edt = what.location;
 5:    which = what in edt.active;
 6:    if (edt.original[which] == this)
 7:      editor = 1;
 8:    endif
 9:  endif
10:  return this:is_unlocked_for(what) && (this.free_entry || 
(what == this.blessed_object && task_id() == this.blessed_task) ||
what.owner == this.owner || (typeof(this.residents) == LIST && what in 
this.residents) || editor || $object_utils:isa(what,$ref.wagon) || 
(valid(what.location) && what.location.location == this) || 
(what.race == "firelizard" && caller == $ref.between));

Line 10 needs changing since most MOOs wont have firelizards :) 
It had formerly not included lines 2-9 but then we found that
people could just move into an editor then move() themselves 
anywhere on the moo if all you do is check to see if theyre IN
an editor, and not whether they're moving to the room they started
from.

I had also added the what.location.location == this so people could
drop things in !free_entry rooms.

-j.