// wizmakerd.c
// This daemon is called by the room in which players apply to be promoted
// to wizard. If a player has satisfactorily completed the wiz requirements,
// he goes to the application room (/d/Fooland/hall2 in the default lib) and
// applies. That room checks his qualifications and calls promote_wiz in the
// daemon. The daemon verifies that it was called from an acceptable room
// and if so, promotes the wizard.
// This rather elaborate scheme is for security reasons: a lot of
// wizards have access to domain files and you don't want any domain room
// to be able to promote to wizard. So we keep this daemon running with a
// hardcoded list of acceptable rooms, in a secure directory.
// Written by Mobydick@TMI-2, 12-3-92.
// We give full wizard powers right away. You may want to NOT give /cmds/xtra
// to newbie wizards: that way they can read the doc files without being
// able to clone, dest, or otherwise interfere. Depends how you want things
// to be run at your MUD: if you don't give /cmds/xtra right away you need
// to set up some policy about when you do give it.
// 93-07-22 Pallando moved the define of NEW_WIZ_PATH to config.h
#define PROMOTION_ROOMS ({ "/d/Fooland/hall2" })
#include <config.h>
#include <mudlib.h>
inherit DAEMON ;
int promote_wiz (object ob) {
string prev ;
object link ;
prev = file_name(previous_object()) ;
if (member_array(prev,PROMOTION_ROOMS)==-1) {
return 0 ;
}
link = ob->query_link() ;
link->set("wizard", 1) ;
ob->enable_me() ;
ob->set("PATH", NEW_WIZ_PATH);
return 1 ;
}