/**************************************************************************/ // notenet.cpp - Immortal notification of notes /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with all the licenses * * in licenses.txt... In particular, you may not remove this copyright * * notice. * *************************************************************************** * >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, & Katja Nyboe. * * >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to * * you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com), * * Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) * * >> Oblivion 1.2 is copyright 1996 Wes Wagner * **************************************************************************/ #include "include.h" #include "interp.h" #include "notenet.h" // notenet table and prototype for future flag setting const struct wiznet_type notenet_table[]={ { "noblepkill", NOTE_NOBLEPKILL, IM }, { "immpkill", NOTE_IMMPKILL, IM }, { "immpkilldetails", NOTE_IMMPKILLDETAILS, IM }, { "clannotes", NOTE_CLANNOTES, IM }, { "pkill", NOTE_TO_PKILL, IM }, { "allclan", NOTE_TO_ALLCLAN, IM }, { "admin_rename", NOTE_ADMIN_RENAME, ADMIN }, { "court", NOTE_COURT, IM}, { NULL, 0, 0 } }; /**************************************************************************/ // returns a flag for notenet long notenet_lookup (const char *name) { int flag; // exact match first for (flag = 0; notenet_table[flag].name != NULL; flag++) { if (LOWER(name[0]) == LOWER(notenet_table[flag].name[0]) && !str_cmp(name,notenet_table[flag].name)) return flag; } // substring match for (flag = 0; notenet_table[flag].name != NULL; flag++) { if (LOWER(name[0]) == LOWER(notenet_table[flag].name[0]) && !str_prefix(name,notenet_table[flag].name)) return flag; } return -1; } /**************************************************************************/ void do_notenet( char_data *ch, char *argument ) { int flag, col=1; char buf[MSL], buf2[MSL]; if ( IS_NULLSTR(argument)) // display status { buf[0] = '\0'; strcat(buf," ---==== Current Notenet Filtering Out Settings ====---\r\n"); for (flag = 0; notenet_table[flag].name != NULL; flag++) { if (notenet_table[flag].level <= get_trust(ch)) { sprintf(buf2," %-15s %s",notenet_table[flag].name, (IS_SET(ch->notenet,notenet_table[flag].flag)?"on ":"off ")); strcat(buf,buf2); col++; if (col%2==1) strcat(buf,"\r\n"); } } ch->println(buf); return; } flag = notenet_lookup(argument); if (flag == -1 || get_trust(ch) < notenet_table[flag].level) { ch->println("No such option."); return; } if (IS_SET(ch->notenet,notenet_table[flag].flag)) { ch->printlnf("You will no longer have %s filtered out when reading the default note.", notenet_table[flag].name); REMOVE_BIT(ch->notenet,notenet_table[flag].flag); return; } else { ch->printlnf("You will now have %s filtered out when reading the default note.", notenet_table[flag].name); SET_BIT(ch->notenet,notenet_table[flag].flag); return; } } /**************************************************************************/