/* vi: set ts=4 sw=4 ai: */ /* * define.h * * Lotos v1.2.3 : (c) 1999-2003 Pavol Hluchy (Lopo) * last update : 30.1.2003 * email : lotos@losys.sk * homepage : lotos.losys.sk */ #ifndef __DEFINE_H__ #define __DEFINE_H__ 1 /* cislo verzie talkra - TVERSION moze mat akekolvek cislo, ostatne musia byt nezmenene */ #define TVERSION "1.0.0" #define OSSVERSION "1.2.3" #define AMNUTSVER "2.2.1" #define NUTSVER "3.3.3" #define USERVER "0.12" #define RUN_VER "122" #define FSTART "???" /* general directories */ #define ROOTDIR "/home/lotos/lotos123" #define DATAFILES ROOTDIR"/datafiles" #define CONFFILES DATAFILES"/conffiles" #define MAPFILES DATAFILES"/mapfiles" #define HELPFILES DATAFILES"/helpfiles" #define PLHELPFILES PLFILES"/helpfiles" #define MAILSPOOL DATAFILES"/mailspool" #define MISCFILES DATAFILES"/miscfiles" #define PICTFILES DATAFILES"/pictfiles" #define MOTDFILES DATAFILES"/motds" #define DUMPFILES ROOTDIR"/dumpfiles" #define TEXTFILES DATAFILES"/textfiles" #define ADMINFILES TEXTFILES"/adminfiles" #define LOGFILES ROOTDIR"/logfiles" #define ROOMFILES DATAFILES"/roomfiles" #define PLFILES DATAFILES"/plfiles" #define TRFILES DATAFILES"/trfiles" #define VOTEFILES DATAFILES"/votefiles" #define TEMPFILES ROOTDIR"/tempfiles" #define FIGLET_FONTS DATAFILES"/fonts" #define KILLMSGS DATAFILES"/killmsgs" #define COUNTFILES DATAFILES"/counters" #define SCRFILES DATAFILES"/screens" #define BINFILES ROOTDIR"/bin" /* user directories */ #define USERFILES ROOTDIR"/userfiles" #define USERMAILS USERFILES"/mail" #define USERPROFILES USERFILES"/profiles" #define USERFRIENDS USERFILES"/friends" #define USERHISTORYS USERFILES"/historys" #define USERCOMMANDS USERFILES"/xgcoms" #define USERMACROS USERFILES"/macros" #define USERROOMS USERFILES"/rooms" #define USERREMINDERS USERFILES"/reminders" #define USERPLDATAS USERFILES"/pldatas" /* files */ #define CONFIGFILE CONFFILES"/config" #define NEWSFILE MISCFILES"/newsfile" #define SITEBAN MISCFILES"/siteban" #define USERBAN MISCFILES"/userban" #define NEWBAN MISCFILES"/newban" #define SUGBOARD MISCFILES"/suggestions" #define RULESFILE MISCFILES"/rules" #define WIZRULESFILE MISCFILES"/wizrules" #define SHOWFILES MISCFILES"/showfiles" #define SHOWAFILES MISCFILES"/showafiles" #define SWEARFILE MISCFILES"/swears" #define LEVELFILE MISCFILES"/levels" #define FAQFILE MISCFILES"/faq" #define TALKERSFILE MISCFILES"/talkers" #define TCOUNTER COUNTFILES"/tcounter" #define MCOUNTER COUNTFILES"/mcounter" #define RESTARTFILE TEMPFILES"/restartx" #define KILLLIST MISCFILES"/killmsgs" #define PICTLIST MISCFILES"/pictlist" #define MAINHELP HELPFILES"/mainhelp" #define FONTLIST MISCFILES"/fontslist" #define CREDITS MISCFILES"/credits" #define PIDFILE ROOTDIR"/star.pid" #define HOSTSFILE MISCFILES"/hostsfile" #define KILLFILE BINFILES"/kill" #define TEMPFILE TEMPFILES"/tempfile" /* fun files */ #define HUGFILE MISCFILES"/hug" #define KISSFILE MISCFILES"/kiss" #define WAKEFILE MISCFILES"/wake" /* system logs */ #define LAST_CMD "last_command" #define LASTCMDLOGS "lastcmdlogs" #define MAINSYSLOG "syslog" #define NETSYSLOG "netlog" #define REQSYSLOG "reqlog" #ifdef DEBUG #define DEBSYSLOG "deblog" #endif #define ERRSYSLOG "errlog" #define SYSLOG 0 #define REQLOG 1 #ifdef NETLINKS #define NETLOG 2 #endif #ifdef DEBUG #define DEBLOG 3 #endif #define ERRLOG 4 /* errors */ /* general defines */ #define OUT_BUFF_SIZE 1000 /* input buffer size */ #define MAX_WORDS 10 /* max. words processed by commands */ #define WORD_LEN 80 /* length of words */ #define ARR_SIZE 1000 /* array chars size */ #define MAX_LINES 20 /* max. lines in editor */ #define REVIEW_LINES 30 /* review conversation buffer lines */ #define REVTELL_LINES 30 /* review .tells buffer lines */ #define REVIEW_LEN 400 /* review conversation buffer line capacity */ #define BUFSIZE 1000 #define ROOM_NAME_LEN 20 /* room name length */ #define PERSONAL_ROOMNAME_LEN 80 #define ROOM_LABEL_LEN 5 /* room label length */ #define SBOFF 0 #define SBMIN 1 #define SBMAX 2 #define LASTLOGON_NUM 5 #define LOGIN_FLOOD_CNT 20 #define MAX_SWEARS 20 /* max. size of swears list */ #define FNAME_LEN 500 /* netlink defines */ #define SITE_NAME_LEN 80 /* site name length */ #ifdef NETLINKS #define SERV_NAME_LEN 80 /* server name length */ #define VERIFY_LEN 20 /* verify string length */ #define UNCONNECTED 0 #define INCOMING 1 #define OUTGOING 2 #define DOWN 0 #define VERIFYING 1 #define UP 2 #define ALL 0 #define IN 1 #define OUT 2 #endif /* user defines */ #define USER_NAME_LEN 12 /* user name maximum length */ #define USER_MIN_LEN 3 /* user name minimum length */ #define USER_DESC_LEN 35 /* user desc length */ #define AFK_MESG_LEN 60 /* max. length of AFK message */ #define PHRASE_LEN 40 /* in/out phrase length */ #define PASS_LEN 20 /* only the 1st 8 chars will be used by crypt() though */ #define PASS_MIN_LEN 3 /* min. password length */ #define ROOM_DESC_LEN (MAX_LINES*100)+MAX_LINES /* MAX_LINES lines of 80 chars each + MAX_LINES nl */ #define TOPIC_LEN 60 /* room topic length */ #define ICQ_LEN 20 #define NEUTER 0 #define MALE 1 #define FEMALE 2 #define NEWBIE_EXPIRES 20 /* days */ #define USER_EXPIRES 40 /* days */ #define SCREEN_WRAP 80 /* how many characters to wrap to */ #define MAX_COPIES 6 /* of smail */ #define MAX_FRIENDS 10 #define MAX_IGNORES 10 /* number of users you can ignore */ #define MAX_XCOMS 10 #define MAX_GCOMS 10 #define MAX_PAGES 1000 /* should be enough! */ #define MAX_REMINDERS 30 #define REMINDER_LEN 70 #define MAX_MUSERS 10 /* maximalny pocet userov - adresatov v jednom prikaze */ /* rooms */ #define MAX_LINKS 20 /* max. links from a room */ #define PUBLIC 0 /* type of rooms access */ #define PRIVATE 1 #define FIXED 2 #define FIXED_PUBLIC 2 #define FIXED_PRIVATE 3 #define PERSONAL_UNLOCKED 4 #define PERSONAL_LOCKED 5 #define ROOT_CONSOLE 10 /* levels */ #define L_0 0 #define L_1 1 #define L_2 2 #define L_3 3 #define L_4 4 #define L_5 5 #define L_6 6 #define L_7 7 #define L_8 8 #define L_9 9 #define L_10 10 #define L_11 11 #define L_12 12 #define JAILED 0 #define NEW 1 #define USER 2 #define SUPER 4 #define WIZ 7 #define ARCH 9 #define GOD 10 #define BOT 11 #define ROOT 12 #define SYSOP 12 #define RETIRE_LIST USERFILES"/retired_wiz" /* user and clone types */ #define USER_TYPE 0 #define CLONE_TYPE 1 #ifdef NETLINKS # define REMOTE_TYPE 2 #endif #define BOT_TYPE 3 #define CLONE_HEAR_NOTHING 0 #define CLONE_HEAR_SWEARS 1 #define CLONE_HEAR_ALL 2 /* logon prompt stuff */ #define LOGIN_ATTEMPTS 3 #define LOGIN_NAME 1 #define LOGIN_PASSWD 2 #define LOGIN_CONFIRM 3 #define LOGIN_PROMPT 4 /* some macros that are used in the code */ /* these are for grammer */ #define PLTEXT_S(n) &"s"[(1==(n))] #define PLTEXT_ES(n) &"es"[(1==(n))<<1] #define PLTEXT_IS(n) ((1==(n))?"is":"are") #define PLTEXT_WAS(n) ((1==(n))?"was":"were") #define SIZEOF(table) (sizeof(table)/sizeof(table[0])) #define MYSTRLEN(x) ((int)strlen(x)) /* Eliminate ANSI problem - pre fonty */ /* these are for bit manipulation */ #define BIT_BOOL(x) (!(!(x))) #define BIT_SET(arg,pos) ((arg) | (1L << (pos))) #define BIT_CLR(arg,pos) ((arg) & ~(1L << (pos))) #define BIT_TEST(arg,pos) BIT_BOOL((arg) & (1L << (pos))) #define BIT_FLIP(arg,pos) ((arg) ^ (1L << (pos))) /* attempt to stop freezing time. Thanks to Arny ('Paris' code creator) and Cygnus ('Ncohafmuta' code creator) for this */ #if !defined(__GLIBC__) || (__GLIBC__ < 2) #define SIGNAL(x,y) signal(x,y) #else #define SIGNAL(x,y) sysv_signal(x,y) #endif /* Define ISO to be 1 for ISO (Mon-Sun) calendars ISO defines the first week with 4 or more days in it to be week #1. */ #ifndef ISO #define ISO 1 #endif #if (ISO!=0 && ISO!=1) #error ISO must be set to either 0 or 1 #endif #define NOLEAVE "noleave" /* oznacenie roomy bez vychodu v configu */ #define NUM_COLMODS 5 /* pocet farebnych modov */ /* Define Modular ColorCode Array Index */ #define CDEFAULT 0 #define CHIGHLIGHT 1 #define CTEXT 2 #define CBOLD 3 #define CSYSTEM 4 #define CSYSBOLD 5 #define CWARNING 6 #define CWHOUSER 7 #define CWHOINFO 8 #define CPEOPLEHI 9 #define CPEOPLE 10 #define CUSER 11 #define CSELF 12 #define CEMOTE 13 #define CSEMOTE 14 #define CPEMOTE 15 #define CTHINK 16 #define CTELLUSER 17 #define CTELLSELF 18 #define CTELL 19 #define CSHOUT 20 #define CMAILHEAD 21 #define CMAILDATE 22 #define CBOARDHEAD 23 #define CBOARDDATE 24 /* Definicie systemovych informacii Lotos */ #define TALKERNAME 1 #define SERIALNUM 2 #define REGUSER 3 #define SERVERDNS 4 #define SERVERIP 5 #define TALKERMAIL 6 #define TALKERHTTP 7 #define SYSOPNAME 8 #define SYSOPUNAME 9 #define PUEBLOWEB 10 #define PUEBLOPIC 11 #define SYSOPPASSWD 12 /* makra */ #define MC_NAME_LEN 10 #define MC_COM_LEN 50 /* prompt */ #define PROMPT_LEN 50 /* figlets - fonty */ #define MAXFIRSTLINELEN 1000 /* spravy */ #define WAKEMSG_LEN 50 /* Restrictions stuff */ #define MAX_RESTRICT 14 /* max. restrictions */ #define RESTRICT_GO 0 /* .go */ #define RESTRICT_MOVE 1 /* .move user */ #define RESTRICT_PROM 2 /* .promote */ #define RESTRICT_DEMO 3 /* .demote */ #define RESTRICT_MUZZ 4 /* .muzzle */ #define RESTRICT_UNMU 5 /* .unmuzzle */ #define RESTRICT_KILL 6 /* .kill */ #define RESTRICT_HELP 7 /* access .help */ #define RESTRICT_SUIC 8 /* .suicide */ #define RESTRICT_WHO 9 /* .who */ #define RESTRICT_RUN 10 /* .run commands - nepouzite*/ #define RESTRICT_CLON 11 /* .create, .destroy clones */ #define RESTRICT_VIEW 12 /* .review, .revtell */ #define RESTRICT_EXEC 13 /* execution of commands */ #define RESTRICT_MASK ".............." /* mask used by load_user_details() */ /* minimum levels */ #define MIN_LEV_AUTORST WIZ /* to set default restrictions */ #define MIN_LEV_NOSWR GOD /* to ignore swear_action() */ #define MIN_LEV_BLIND ARCH /* to use .terminal blind */ /* pre zalohovanie talkra */ #define BACKUPDIR ROOTDIR"/backups" #define BACKUPFILE "backup" /* rezimy set */ #define SET_NONE 0 #define SET_MAIN 1 #define SET_TERM 2 #define SET_BANK 3 /* rozmery struktur */ #define NUM_HELP 3 #define NUM_PROMPT 2 #define NUM_WHO 6 /* error codes used by identify() */ #define ID_OK 0 #define ID_CONNERR -1 #define ID_NOFOUND -2 #define ID_CLOSED -3 #define ID_READERR -4 #define ID_WRITEERR -5 #define ID_NOMEM -6 #define ID_TIMEOUT -7 #define ID_CRAP -8 #define ID_NOUSER -9 #define ID_INVPORT -10 #define ID_UNKNOWNERR -11 #define ID_COMERR -12 #define ID_UNKNOWN -13 #define ID_HIDDENUSER -14 #define ID_BUFFLEN 196 /* max. buffer length for reads and writes in identify() */ #define ID_READTIMEOUT 30 /* number of seconds after a socket read operation is timed out. */ /* money */ #define DEFAULT_MONEY 1000 #define DEFAULT_BANK 3000 #define MAX_DONATION 5000 #define CREDITS_PER_HOUR 10 #define MIN_CREDIT_UPDATE_LEVEL SUPER /* DEBUG inspired by NooK */ #ifdef DEBUG # define CRASH_HISTORY 1024 # define set_crash() { s_crash(__FILE__, __LINE__); } #else # define set_crash() ((void)0) #endif //DEBUG #define PINGINTERVAL 10 #endif /* __DEFINE_H__ */