/* NetHack 3.5 sys.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ /* NetHack 3.5 sys.c $Date: 2012/03/10 02:22:07 $ $Revision: 1.12 $ */ /* Copyright (c) Kenneth Lorber, Kensington, Maryland, 2008. */ /* NetHack may be freely redistributed. See license for details. */ #include "hack.h" /* for KR1ED config, WIZARD is 0 or 1 and WIZARD_NAME is a string; for usual config, WIZARD is the string; forcing WIZARD_NAME to match it eliminates conditional testing for which one to use in string ops */ struct sysopt sysopt; void sys_early_init(){ sysopt.support = NULL; sysopt.recover = NULL; #ifdef SYSCF sysopt.wizards = NULL; #else sysopt.wizards = WIZARD_NAME; #endif sysopt.debugfiles = NULL; sysopt.shellers = NULL; sysopt.maxplayers = 0; /* XXX eventually replace MAX_NR_OF_PLAYERS */ /* record file */ sysopt.persmax = PERSMAX; sysopt.entrymax = ENTRYMAX; sysopt.pointsmin = POINTSMIN; sysopt.pers_is_uid = PERS_IS_UID; /* sanity checks */ if(PERSMAX<1) sysopt.persmax = 1; if(ENTRYMAX<10) sysopt.entrymax = 10; if(POINTSMIN<1) sysopt.pointsmin = 1; if(PERS_IS_UID != 0 && PERS_IS_UID != 1) panic("config error: PERS_IS_UID must be either 0 or 1"); #ifdef PANICTRACE /* panic options */ sysopt.gdbpath = dupstr(GDBPATH); sysopt.greppath = dupstr(GREPPATH); # ifdef BETA sysopt.panictrace_gdb = 1; # ifdef PANICTRACE_LIBC sysopt.panictrace_libc = 2; # endif # else sysopt.panictrace_gdb = 0; # ifdef PANICTRACE_LIBC sysopt.panictrace_libc = 0; # endif # endif #endif sysopt.seduce = 1; /* if it's compiled in, default to on */ sysopt_seduce_set(sysopt.seduce); } extern struct attack sa_yes[NATTK]; extern struct attack sa_no[NATTK]; void sysopt_seduce_set(val) int val; { struct attack *setval = val ? sa_yes : sa_no; int x; for(x=0; x