6be @verb #56:"indirect_move" this none this rxdo #55 @program #56:"indirect_move" this none this !caller_perms():controls(this) && raise(E_PERM) {where} = args this.last_commands = setadd(this.last_commands, "Moving to " + tostr(where)) if (where == this.location) return endif this.last_active = time() try if (p = `$room_db:path_between(this.location, where, this) ! E_NACC') try this.last_commands = setadd(this.last_commands, tostr("Exit path: ", $su:nn_list(p))) except kaboom (E_TYPE) #7407:tell(tostr("Path_Between caused ", kaboom[1], " insanity for ", this, ". Loc = ", this.location, ", To = ", where, " RetVal = ", toliteral(p))) endtry for e in (p) if (!e.dest:accept(this)) break endif e:move(this) suspend(1) if (this.location != e.dest) this:_move_obj(this, tostr(e.dest)) endif endfor if (this.location == where) this.last_commands = setadd(this.last_commands, "this.location == where after exit path loop.") return 1 endif else this.last_commands = setadd(this.last_commands, "Unable to find exit path. _move_obj..") this:_move_obj(this, tostr(where)) endif if (this.location == where) this.last_commands = setadd(this.last_commands, "this.location == where after _move_obj..") return 1 else this.last_commands = setadd(this.last_commands, "move()ing to dest..") move(this, where) this.last_commands = setadd(this.last_commands, "location is now " + tostr(this.location)) "Last resort..." return 1 endif except (E_RECMOVE) return 0 endtry "Last modified by Cecil (#7407) on Mon Mar 25 09:42:54 2002 MST." . 0