42e @verb #1619:"reboot reset" this none none rxdo #833 @program #1619:"reboot reset" this none none if (callers()) $perm_utils:is_called_from(#1619, "_kick") || $perm_utils:can_hack() || raise(E_PERM) else if (!(this.location in {player, player.location})) $msg:mtell("not_here", this) return endif endif if (!this.rebooting) this.rebooting = 1 fork (1) $msg:mtell("reboot") "Remove invalid modules." for module in (this.modules) if (!`$code_utils:verb_or_property(module, "module_ok", this) ! E_PROPNF, $failed_match => 0') this:rmmodule(module) endif endfor "Make sure current module is valid." if (!(this.module in this.modules)) this:_set_listening(0) this:setmodule(`this.modules[1] ! E_RANGE => #-1') endif "Update .listen_in_location2" this:_set_listening() "Reset crash data." this.crashdata = 0 this.rebooting = 0 endfork endif return 1 "By returning true, one can do thins like '... badness && this:reboot() && raise(...);'." . 0