{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural

\f0\fs24 \cf0 /*  Okay, your going to need to add a few things into interp.c & interp.h,\
I believe just bitflag, bitshow & qinfo.  They are at the end of this (the stuff you put into act_info and act_wiz.)  Other than that, read on, add & enjoy.\
\
The only credit I require is keeping the headers in the code, sending me an email letting me know if you liked the code, any bug fixes so I can fix them for everyone and if you want any improvements (I know a bunch of it is long as hell and can probably be done better with a loop or something, but i'm no good with that stuff. :P)\
\
You can reach me via email at learycm@gmail.com\
You can reach me via AIM at cmleary0919\
\
Or you can also log into my mud: swayingbalance.com 9999\
*/\
\
\
\
//Add the following lines into merc.h (or whatever you may have renamed it to)\
\
// Put these wherever you want.\
/*\
 * QST bits for players (tierup/sidequests)\
 */\
#define QST_TIERONE_ONE (A)\
#define QST_TIERTWO_ONE (B)\
#define QST_TIERTHR_ONE (C)\
#define QST_TIERFOU_ONE (D)\
#define QST_TIERFIV_ONE (E)\
#define QST_TIERSIX_ONE (F)\
\
#define SDE_QSTONE_ONE (A)\
#define SDE_QSTTWO_ONE (B)\
/*\
 * RCE_ bits for lpayers (race based quests)\
 */\
#define RCE_MINOTAUR_ONE (A)\
#define RCE_TROLL_ONE   (B)\
#define RCE_CENTAUR_ONE (C)\
#define RCE_IMP_ONE     (D)\
#define RCE_GOBLIN_ONE  (E)\
#define RCE_GNOME_ONE   (F)\
#define RCE_FAERY_ONE   (G)\
#define RCE_AAROK_ONE   (H)\
#define RCE_OGRE_ONE    (I)\
#define RCE_DWARF_ONE   (J)\
#define RCE_ELF_ONE     (K)\
#define RCE_HUMAN_ONE   (L)\
#define RCE_MINOTAUR_TWO (M)\
#define RCE_TROLL_TWO   (N)\
#define RCE_CENTAUR_TWO (O)\
#define RCE_IMP_TWO    (P)\
#define RCE_GOBLIN_TWO (Q)\
#define RCE_GNOME_TWO  (R)\
#define RCE_FAERY_TWO  (S)\
#define RCE_AAROK_TWO  (T)\
#define RCE_OGRE_TWO   (U)\
#define RCE_DWARF_TWO  (V)\
#define RCE_ELF_TWO    (W)\
#define RCE_HUMAN_TWO  (X)\
\
//Under struct     char_data\
    long               qst;\
    long               sde;\
    long               rce;\
//Search for act_bit_name and add these\
char *          qst_bit_name            args( ( int qst_flags ) );\
char *          sde_bit_name            args( ( int sde_flags ) );\
char *          rce_bit_name            args( ( int rce_flags ) );\
\
//Add the following lines into mob_prog.c\
\
//Put these under "act" in the fn_keyword table\
    "qst",              \
    "rce",\
    "sde",\
\
//Search for CHK_ACT\
        case CHK_QST:   \
            return( lval_char != NULL\
                &&  IS_SET(lval_char->qst, flag_lookup(buf, qst_flags)) );\
        case CHK_RCE:\
            return( lval_char != NULL\
                &&  IS_SET(lval_char->rce, flag_lookup(buf, rce_flags)) );\
        case CHK_SDE:   \
            return( lval_char != NULL\
                &&  IS_SET(lval_char->sde, flag_lookup(buf, sde_flags)) );\
//Add the following lines into save.c\
\
//In fread_char\
//Under Case Q\
                     KEY( "Qst", ch->qst, fread_flag (fp));\
//Under Case R\
                KEY ("Rce", ch->rce, fread_flag(fp));\
//Under Case S\
                KEY ("Sde", ch->sde, fread_flag(fp));\
//In fwrite_char, I put them just above vnum/password.\
    if (ch->qst != 0)\
        fprintf (fp, "Qst  %s\\n", print_flags (ch->qst));\
    if (ch->rce != 0)\
        fprintf (fp, "Rce  %s\\n", print_flags (ch->rce));\
    if (ch->sde != 0)\
        fprintf (fp, "Sde  %s\\n", print_flags (ch->sde));\
    if (ch->tog != 0)       \
\
//Add the following lines into handler.c  .. I put them near  act_bit_name\
\
char *sde_bit_name (int sde_flags)\
\{\
    static char buf[512];\
\
    buf[0] = '\\0';\
\
    if (sde_flags & SDE_QSTONE_ONE)\
        strcat (buf, " sideqst11");\
    if (sde_flags & SDE_QSTTWO_ONE)\
        strcat (buf, " sideqst21");\
\
    return (buf[0] != '\\0') ? buf + 1 : "none";\
\}\
char *rce_bit_name (int rce_flags)\
\{\
    static char buf[512];\
\
    buf[0] = '\\0';\
\
    if (rce_flags & RCE_MINOTAUR_ONE) \
        strcat (buf, " minotaur1");\
    if (rce_flags & RCE_TROLL_ONE)\
        strcat (buf, " troll1");\
    if (rce_flags & RCE_CENTAUR_ONE)\
        strcat (buf, " centaur1");\
    if (rce_flags & RCE_IMP_ONE)\
        strcat (buf, " imp1");\
    if (rce_flags & RCE_GOBLIN_ONE)\
        strcat (buf, " goblin1");\
    if (rce_flags & RCE_GNOME_ONE)\
        strcat (buf, " gnome1");\
    if (rce_flags & RCE_FAERY_ONE)\
        strcat (buf, " faery1");\
    if (rce_flags & RCE_AAROK_ONE)\
        strcat (buf, " aarokcra1");\
    if (rce_flags & RCE_OGRE_ONE)\
        strcat (buf, " ogre1");\
    if (rce_flags & RCE_DWARF_ONE)\
        strcat (buf, " dwarf1");\
    if (rce_flags & RCE_ELF_ONE)\
        strcat (buf, " elf1");\
    if (rce_flags & RCE_HUMAN_ONE)\
        strcat (buf, " human1");\
    if (rce_flags & RCE_MINOTAUR_TWO)\
        strcat (buf, " minotaur2");\
    if (rce_flags & RCE_TROLL_TWO)\
        strcat (buf, " troll2");\
    if (rce_flags & RCE_CENTAUR_TWO)\
        strcat (buf, " centaur2");\
    if (rce_flags & RCE_IMP_TWO)\
        strcat (buf, " imp2");\
    if (rce_flags & RCE_GOBLIN_TWO)\
        strcat (buf, " goblin2");\
    if (rce_flags & RCE_GNOME_TWO)\
        strcat (buf, " gnome2");\
    if (rce_flags & RCE_FAERY_TWO)\
        strcat (buf, " faery2");\
    if (rce_flags & RCE_AAROK_TWO)\
        strcat (buf, " aarokcra2");\
    if (rce_flags & RCE_OGRE_TWO)\
        strcat (buf, " ogre2");\
    if (rce_flags & RCE_DWARF_TWO)\
        strcat (buf, " dwarf2");\
    if (rce_flags & RCE_ELF_TWO)\
        strcat (buf, " elf2");\
    if (rce_flags & RCE_HUMAN_TWO)\
        strcat (buf, " human2");\
\
    return (buf[0] != '\\0') ? buf + 1 : "none";\
\}\
char *qst_bit_name (int qst_flags)\
\{\
    static char buf[512];\
\
    buf[0] = '\\0';\
\
    if (qst_flags & QST_TIERONE_ONE)\
        strcat (buf, " tier1-1");\
    if (qst_flags & QST_TIERTWO_ONE)\
        strcat (buf, " tier2-1");\
    if (qst_flags & QST_TIERTHR_ONE)\
        strcat (buf, " tier3-1");\
    if (qst_flags & QST_TIERFOU_ONE)\
        strcat (buf, " tier4-1");\
    if (qst_flags & QST_TIERFIV_ONE)\
        strcat (buf, " tier5-1");\
    if (qst_flags & QST_TIERSIX_ONE)\
        strcat (buf, " tier6-1");\
    return (buf[0] != '\\0') ? buf + 1 : "none";\
\}\
\
\
//Add the following line into your mobprog mob command table in mob_cmds.c\
\
    \{   "bitflag",      do_bitflag      \},\
\
// Add the following line into your mob_cmds.h command table, look for something like DECLARE_DO_FUN( do_\
\
DECLARE_DO_FUN( do_bitflag);\
\
//Add the following into tables.h\
\
extern  const   struct  flag_type       sde_flags[];\
extern  const   struct  flag_type       rce_flags[];\
extern  const   struct  flag_type       qst_flags[];\
\
//Add the following tables into table.c\
\
const struct flag_type sde_flags[] = \{\
        \{"sideqst11",   A,      TRUE\},\
        \{"sideqst21",   B,      TRUE\},\
        \{NULL,          0,      TRUE\}\
\};  \
const struct flag_type rce_flags[] = \{\
        \{"minotaurone",         A,      TRUE\},\
        \{"trollone",    B,      TRUE\},\
        \{"centaurone",  C,      TRUE\},\
        \{"impone",      D,      TRUE\},\
        \{"goblinone",   E,      TRUE\},\
        \{"gnomeone",    F,      TRUE\},\
        \{"faeryone",    G,      TRUE\},\
        \{"aarokcraone", H,      TRUE\},\
        \{"ogreone",     I,      TRUE\},\
        \{"dwarfone",    J,      TRUE\},\
        \{"elfone",      K,      TRUE\},\
        \{"humanone",    L,      TRUE\},\
        \{"minotaurtwo", M,      TRUE\},\
        \{"trolltwo",    N,      TRUE\},\
        \{"centaurtwo",  O,      TRUE\},\
        \{"imptwo",      P,      TRUE\},\
        \{"goblintwo",   Q,      TRUE\},\
        \{"gnometwo",    R,      TRUE\},\
        \{"faerytwo",    S,      TRUE\},\
        \{"aarokcratwo", T,      TRUE\},\
        \{"ogretwo",     U,      TRUE\},\
        \{"ogretwo",     V,      TRUE\},\
        \{"dwarftwo",    W,      TRUE\},\
        \{"elftwo",      X,      TRUE\},\
        \{"humantwo",    Y,      TRUE\},\
        \{NULL,          0,      TRUE\}\
\};  \
const struct flag_type qst_flags[] = \{\
        \{"tier11",      A,      TRUE\},\
        \{"tier21",      B,      TRUE\},\
        \{"tier31",      C,      TRUE\},\
        \{"tier41",      D,      TRUE\},\
        \{"tier51",      E,      TRUE\},\
        \{"tier61",      F,      TRUE\},\
        \{NULL,          0,      TRUE\}\
\};\
\
// Add this into act_info.c, anywhere.  It is alot, but there is one more thing to do after this, so be careful.\
\
/*\
 * Mortal command to show them which quests they have completed.\
 */\
    \
void do_mqstshow (CHAR_DATA *ch, char *argument)\
\{\
 char arg[MAX_INPUT_LENGTH];\
    \
 argument = one_argument (argument, arg);\
             \
   if (arg[0] == '\\0' || argument[0] == '\\0')\
   \{\
    send_to_char("\{GCompleted Quests\{W\\n\\r", ch);\
    send_to_char("\{W----------------\{x\\n\\r", ch);\
\
    send_to_char("\{GTier Quests\{W:\{g\\n\\r", ch);\
\
    if(IS_SET(ch->qst, QST_TIERONE_ONE))\
     send_to_char("\{gYou have completed the first part of the tier one quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->qst, QST_TIERTWO_ONE))\
     send_to_char("\{gYou have completed the first part of the tier two quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->qst, QST_TIERTHR_ONE))\
     send_to_char("\{gYou have completed the first part of the tier three quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->qst, QST_TIERFOU_ONE))\
     send_to_char("\{gYou have completed the first part of the tier four quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->qst, QST_TIERFIV_ONE))\
     send_to_char("\{gYou have completed the first part of the tier five quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->qst, QST_TIERSIX_ONE))\
     send_to_char("\{gYou have completed the first part of the tier six quest.\{x\\n\\r", ch);\
    if(!IS_SET(ch->qst, QST_TIERONE_ONE) &&\
        !IS_SET(ch->qst, QST_TIERTWO_ONE) &&\
        !IS_SET(ch->qst, QST_TIERTHR_ONE) &&\
        !IS_SET(ch->qst, QST_TIERFOU_ONE) &&\
        !IS_SET(ch->qst, QST_TIERFIV_ONE) &&\
        !IS_SET(ch->qst, QST_TIERSIX_ONE))\
    send_to_char("\{gYou have not completed any of the tier based quests.\{x\\n\\r", ch);\
    send_to_char("\{G\\n\\rRacial Quests\{W:\{g\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_MINOTAUR_ONE))\
     send_to_char("\{gYou have completed the first part of the minotaur quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_TROLL_ONE))\
     send_to_char("\{gYou have completed the first part of the troll quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_CENTAUR_ONE))\
     send_to_char("\{gYou have completed the first part of the centaur quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_IMP_ONE))\
     send_to_char("\{gYou have completed the first part of the imp quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_GOBLIN_ONE))\
     send_to_char("\{gYou have completed the first part of the goblin quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_GNOME_ONE))\
     send_to_char("\{gYou have completed the first part of the gnome quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_FAERY_ONE))\
     send_to_char("\{gYou have completed the first part of the faery quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_AAROK_ONE))\
     send_to_char("\{gYou have completed the first part of the aarokcra quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_OGRE_ONE))\
     send_to_char("\{gYou have completed the first part of the ogre quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_DWARF_ONE))\
     send_to_char("\{gYou have completed the first part of the dwarf quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_ELF_ONE))\
     send_to_char("\{gYou have completed the first part of the elf quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_HUMAN_ONE))\
     send_to_char("\{gYou have completed the first part of the human quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_MINOTAUR_TWO))\
     send_to_char("\{gYou have completed the second part of the minotaur quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_TROLL_TWO))\
     send_to_char("\{gYou have completed the second part of the troll quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_CENTAUR_TWO))\
     send_to_char("\{gYou have completed the second part of the centaur quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_IMP_TWO))\
     send_to_char("\{gYou have completed the second part of the imp quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_GOBLIN_TWO))\
     send_to_char("\{gYou have completed the second part of the goblin quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_GNOME_TWO))\
     send_to_char("\{gYou have completed the second part of the gnome quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_FAERY_TWO))\
     send_to_char("\{gYou have completed the second part of the faery quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_AAROK_TWO))\
     send_to_char("\{gYou have completed the second part of the aarokcra quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_OGRE_TWO))\
     send_to_char("\{gYou have completed the second part of the ogre quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_DWARF_TWO))\
     send_to_char("\{gYou have completed the second part of the dwarf quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_ELF_TWO))\
     send_to_char("\{gYou have completed the second part of the elf quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->rce, RCE_HUMAN_TWO))\
     send_to_char("\{gYou have completed the second part of the human quest.\{x\\n\\r", ch);\
    if(!IS_SET(ch->rce, RCE_MINOTAUR_ONE) &&\
        !IS_SET(ch->rce, RCE_TROLL_ONE) &&\
        !IS_SET(ch->rce, RCE_CENTAUR_ONE) &&\
        !IS_SET(ch->rce, RCE_IMP_ONE) &&\
        !IS_SET(ch->rce, RCE_GOBLIN_ONE) &&\
        !IS_SET(ch->rce, RCE_GNOME_ONE) &&\
        !IS_SET(ch->rce, RCE_FAERY_ONE) &&\
        !IS_SET(ch->rce, RCE_AAROK_ONE) &&\
        !IS_SET(ch->rce, RCE_OGRE_ONE) &&\
        !IS_SET(ch->rce, RCE_DWARF_ONE) &&\
        !IS_SET(ch->rce, RCE_ELF_ONE) &&\
        !IS_SET(ch->rce, RCE_HUMAN_ONE) &&\
        !IS_SET(ch->rce, RCE_MINOTAUR_TWO) &&\
        !IS_SET(ch->rce, RCE_TROLL_TWO) &&\
        !IS_SET(ch->rce, RCE_CENTAUR_TWO) &&\
        !IS_SET(ch->rce, RCE_IMP_TWO) &&\
        !IS_SET(ch->rce, RCE_GOBLIN_TWO) &&\
        !IS_SET(ch->rce, RCE_GNOME_TWO) &&\
        !IS_SET(ch->rce, RCE_FAERY_TWO) &&\
        !IS_SET(ch->rce, RCE_AAROK_TWO) &&\
        !IS_SET(ch->rce, RCE_OGRE_TWO) &&\
        !IS_SET(ch->rce, RCE_DWARF_TWO) &&\
        !IS_SET(ch->rce, RCE_ELF_TWO) &&\
        !IS_SET(ch->rce, RCE_HUMAN_TWO))\
    send_to_char("\{gYou have not completed any of the racial quests yet.\\n\\r\{x", ch);\
\
    send_to_char("\{G\\n\\rSide Quests\{W:\{g\\n\\r", ch);\
    if(IS_SET(ch->sde, SDE_QSTONE_ONE))\
     send_to_char("\{gYou have completed the first side quest.\{x\\n\\r", ch);\
    if(IS_SET(ch->sde, SDE_QSTTWO_ONE))\
     send_to_char("\{gYou have completed the second side quest.\{x\\n\\r", ch);\
    if(!IS_SET(ch->sde, SDE_QSTONE_ONE) &&\
        !IS_SET(ch->sde, SDE_QSTTWO_ONE))\
     send_to_char("\{gYou have not completed any of the side quests yet.\\n\\r\{x", ch);\
    \}\
\}\
\
// Now add everything below this line into the bottom of act_wiz.c and your done.\
\
// Add the following into act_wiz.c at the bottom\
\
/***************************************************************************************\
 *                                                                                     *\
 * The following two commands are for use with the new bit flag QST_XX_XX to go with   *\
 * the quest system for tiering up and possible side quests which was coded in Jan 07. *\
 *                                                                                     *\
 * Other files of interest for QST_ Flags: swaybal.h, handler.c, interp.c, interp.h       *\
 * mob_cmds.c, mob_cmds.h, tables.c, act_info.c (qinfo)                                *\
 *                                                                                     *\
 ***************************************************************************************/\
// This command is also used for the RCE_ and SDE_ and soon to be CLS_ quests. \
/* \
 * do_bitflag by Taemos 01/07: Used to set QST_ flags\
 * \
 * Other files: interp.c, interp.h, mob_cmds.c, mob_cmds.h, tables.c, tables.h\
 * mob_prog.c\
 * \
 * Thanks to Skol from Ansalon (ansalonmud.com:8679) for help w/ debugging.\
 */\
   \
void do_bitflag (CHAR_DATA * ch, char *argument)\
\{\
 char buf[MSL];\
 char arg1[MIL];\
 char arg2[MIL];                \
 CHAR_DATA *victim; \
    \
 argument = one_argument(argument, arg1);\
 argument = one_argument(argument, arg2); \
\
   if (arg1[0] == '\\0' || arg2[0] == '\\0') \
   \{\
    send_to_char("Syntax: bitflag <player> <qstflag>\\n\\r", ch);\
    return;    \
   \}\
   /* Checking to see if the player is logged in. */\
   if ((victim = get_char_world (ch, arg1)) == NULL)\
   \{\
    send_to_char ("Players must be logged in to have a bit flag set.\\n\\r", ch);\
    return;\
   \}    \
   /* Mobs arent coded for QST_ flags. */\
   if (IS_NPC (victim))\
   \{\
    send_to_char ("Mobiles cannot have quest bit flags set.\\n\\r", ch);\
    return;\
   \}\
   /* No reason to use the argument of all. */\
   if ( !str_cmp( arg1, "all" ) )\
   \{\
    send_to_char("That will NOT be done.", ch);\
   \}\
   /*Checking to see for QST_TIERONE_ONE */\
   if (!str_cmp (arg2, "tieroneone") || !str_cmp (arg2, "tier11"))\
   \{\
     if(IS_SET(victim->qst, QST_TIERONE_ONE))\
     \{\
      send_to_char("QST_TIERONE_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->qst, QST_TIERONE_ONE);\
      return;\
     \}\
     send_to_char("QST_TIERONE_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->qst, QST_TIERONE_ONE);\
     return;\
   \}\
 /*Checking to see for QST_TIERTWO_ONE */\
  if (!str_cmp (arg2, "tiertwoone") || !str_cmp (arg2, "tier21"))\
   \{\
     if(IS_SET(victim->qst, QST_TIERTWO_ONE))\
     \{\
      send_to_char("QST_TIERTWO_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->qst, QST_TIERTWO_ONE);\
      return;\
     \}\
     send_to_char("QST_TIERTWO_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->qst, QST_TIERTWO_ONE);\
     return;\
   \}\
  /*Checking to see for QST_TIERTHR_ONE */\
  if (!str_cmp (arg2, "tierthreeone") || !str_cmp (arg2, "tier31"))\
   \{\
    if(IS_SET(victim->qst, QST_TIERTHR_ONE))\
     \{\
      send_to_char("QST_TIERTHR_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->qst, QST_TIERTHR_ONE);\
      return;\
     \}\
     send_to_char("QST_TIERTHR_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->qst, QST_TIERTHR_ONE);\
     return;\
   \}\
  /*Checking to see for QST_TIERFOU_ONE */\
  if (!str_cmp (arg2, "tierfourone") || !str_cmp (arg2, "tier41"))\
   \{\
     if(IS_SET(victim->qst, QST_TIERFOU_ONE))\
     \{\
      send_to_char("QST_TIERFOU_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->qst, QST_TIERFOU_ONE);\
      return;\
     \}\
     send_to_char("QST_TIERFOU_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->qst, QST_TIERFOU_ONE);\
     return;\
   \}\
  /*Checking to see for QST_TIERFIV_ONE */\
  if (!str_cmp (arg2, "tierfiveone") || !str_cmp (arg2, "tier51"))\
   \{\
     if(IS_SET(victim->qst, QST_TIERFIV_ONE))\
     \{\
      send_to_char("QST_TIERFIV_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->qst, QST_TIERFIV_ONE);\
      return;\
     \}\
     send_to_char("QST_TIERFIV_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->qst, QST_TIERFIV_ONE);\
     return;\
   \}\
  /*Checking to see for QST_TIERSIX_ONE */\
  if (!str_cmp (arg2, "tiersixone") || !str_cmp (arg2, "tier61"))\
   \{\
     if(IS_SET(victim->qst, QST_TIERSIX_ONE))\
     \{\
      send_to_char("QST_TIERSIX_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->qst, QST_TIERSIX_ONE);\
      return;\
     \}\
     send_to_char("QST_TIERSIX_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->qst, QST_TIERSIX_ONE);\
     return;\
   \}\
/* CHECKING FOR RACE QUEST BIT FLAGS */\
  /*Checking to see for RCE_MINOTAUR_ONE */\
  if (!str_cmp (arg2, "minotaur1") || !str_cmp (arg2, "minotaurone"))\
   \{\
     if(IS_SET(victim->rce, RCE_MINOTAUR_ONE))\
     \{\
      send_to_char("RCE_MINOTAUR_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_MINOTAUR_ONE);\
      return;\
     \}\
     send_to_char("RCE_MINOTAUR_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_MINOTAUR_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_MINOTAUR_TWO */\
  if (!str_cmp (arg2, "minotaur2") || !str_cmp (arg2, "minotaurtwo"))\
   \{\
     if(IS_SET(victim->rce, RCE_MINOTAUR_TWO))\
     \{\
      send_to_char("RCE_MINOTAUR_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_MINOTAUR_TWO);\
      return;\
     \}\
     send_to_char("RCE_MINOTAUR_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_MINOTAUR_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_TROLL_ONE */\
  if (!str_cmp (arg2, "troll1") || !str_cmp (arg2, "trollone"))\
   \{\
     if(IS_SET(victim->rce, RCE_TROLL_ONE))\
     \{\
      send_to_char("RCE_TROLL_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_TROLL_ONE);\
      return;\
     \}\
     send_to_char("RCE_TROLL_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_TROLL_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_CENTAUR_ONE*/\
  if (!str_cmp (arg2, "centaur1") || !str_cmp (arg2, "centaurone"))\
   \{\
     if(IS_SET(victim->rce, RCE_CENTAUR_ONE))\
     \{\
      send_to_char("RCE_CENTAUR_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_CENTAUR_ONE);\
      return;\
     \}\
     send_to_char("RCE_CENTAUR_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_CENTAUR_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_CENTAUR_TWO*/\
  if (!str_cmp (arg2, "centaur2") || !str_cmp (arg2, "centaurtwo"))\
   \{\
     if(IS_SET(victim->rce, RCE_CENTAUR_TWO))\
     \{\
      send_to_char("RCE_CENTAUR_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_CENTAUR_TWO);\
      return;\
     \}\
     send_to_char("RCE_CENTAUR_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_CENTAUR_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_IMP_ONE*/\
  if (!str_cmp (arg2, "imp1") || !str_cmp (arg2, "impone"))\
   \{\
     if(IS_SET(victim->rce, RCE_IMP_ONE))\
     \{\
      send_to_char("RCE_IMP_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_IMP_ONE);\
      return;\
     \}\
     send_to_char("RCE_IMP_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_IMP_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_IMP_TWO*/\
  if (!str_cmp (arg2, "imp2") || !str_cmp (arg2, "imptwo"))\
   \{\
     if(IS_SET(victim->rce, RCE_IMP_TWO))\
     \{\
      send_to_char("RCE_IMP_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_IMP_TWO);\
      return;\
     \}\
     send_to_char("RCE_IMP_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_IMP_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_GOBLIN_ONE*/\
  if (!str_cmp (arg2, "goblin1") || !str_cmp (arg2, "goblinone"))\
   \{\
     if(IS_SET(victim->rce, RCE_GOBLIN_ONE))\
     \{\
      send_to_char("RCE_GOBLIN_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_GOBLIN_ONE);\
      return;\
     \}\
     send_to_char("RCE_GOBLIN_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_GOBLIN_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_GOBLIN_TWO*/\
  if (!str_cmp (arg2, "goblin2") || !str_cmp (arg2, "goblintwo"))\
   \{\
     if(IS_SET(victim->rce, RCE_GOBLIN_TWO))\
     \{\
      send_to_char("RCE_GOBLIN_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_GOBLIN_TWO);\
      return;\
     \}\
     send_to_char("RCE_GOBLIN_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_GOBLIN_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_GNOME_ONE*/\
  if (!str_cmp (arg2, "gnome1") || !str_cmp (arg2, "gnomeone"))\
   \{\
     if(IS_SET(victim->rce, RCE_GNOME_ONE))\
     \{\
      send_to_char("RCE_GNOME_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_GNOME_ONE);\
      return;\
     \}\
     send_to_char("RCE_GNOME_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_GNOME_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_GNOME_TWO*/\
  if (!str_cmp (arg2, "gnome2") || !str_cmp (arg2, "gnometwo"))\
   \{\
     if(IS_SET(victim->rce, RCE_GNOME_TWO))\
     \{\
      send_to_char("RCE_GNOME_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_GNOME_TWO);\
      return;\
     \}\
     send_to_char("RCE_GNOME_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_GNOME_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_FAERY_ONE*/\
  if (!str_cmp (arg2, "faery1") || !str_cmp (arg2, "faeryone"))\
   \{\
     if(IS_SET(victim->rce, RCE_FAERY_ONE))\
     \{\
      send_to_char("RCE_FAERY_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_FAERY_ONE);\
      return;\
     \}\
     send_to_char("RCE_FAERY_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_FAERY_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_FAERY_TWO*/\
  if (!str_cmp (arg2, "faerytwo") || !str_cmp (arg2, "faery2"))\
   \{\
     if(IS_SET(victim->rce, RCE_FAERY_TWO))\
     \{\
      send_to_char("RCE_FAERY_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_FAERY_TWO);\
      return;\
     \}\
     send_to_char("RCE_FAERY_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_FAERY_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_AAROK_ONE*/\
  if (!str_cmp (arg2, "aarokcra1") || !str_cmp (arg2, "aarokcraone"))\
   \{\
     if(IS_SET(victim->rce, RCE_AAROK_ONE))\
     \{\
      send_to_char("RCE_AAROK_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_AAROK_ONE);\
      return;\
     \}\
     send_to_char("RCE_AAROK_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_AAROK_ONE);\
     return;\
   \}\
/*Checking to see for RCE_AAROK_TWO */\
  if (!str_cmp (arg2, "aarokcra2") || !str_cmp (arg2, "aarokcratwo"))\
   \{\
     if(IS_SET(victim->rce, RCE_AAROK_TWO))\
     \{\
      send_to_char("RCE_AAROK_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_AAROK_TWO);\
      return;\
     \}\
     send_to_char("RCE_AAROK_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_AAROK_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_OGRE_ONE*/\
  if (!str_cmp (arg2, "ogreone") || !str_cmp (arg2, "ogre1"))\
   \{\
     if(IS_SET(victim->rce, RCE_OGRE_ONE))\
     \{\
      send_to_char("RCE_OGRE_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_OGRE_ONE);\
      return;\
     \}\
     send_to_char("RCE_OGRE_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_OGRE_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_OGRE_TWO*/\
  if (!str_cmp (arg2, "ogretwo") || !str_cmp (arg2, "ogre2"))\
   \{\
     if(IS_SET(victim->rce, RCE_OGRE_TWO))\
     \{\
      send_to_char("RCE_OGRE_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_OGRE_TWO);\
      return;\
     \}\
     send_to_char("RCE_OGRE_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_OGRE_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_DWARF_ONE*/\
  if (!str_cmp (arg2, "dwarfone") || !str_cmp (arg2, "dwarf1"))\
   \{\
     if(IS_SET(victim->rce, RCE_DWARF_ONE))\
     \{\
      send_to_char("RCE_DWARF_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_DWARF_ONE);\
      return;\
     \}\
     send_to_char("RCE_DWARF_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_DWARF_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_DWARF_TWO*/\
  if (!str_cmp (arg2, "dwarftwo") || !str_cmp (arg2, "dwarf2"))\
   \{\
     if(IS_SET(victim->rce, RCE_DWARF_TWO))\
     \{\
      send_to_char("RCE_DWARF_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_DWARF_TWO);\
      return;\
     \}\
     send_to_char("RCE_DWARF_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_DWARF_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_ELF_ONE*/\
  if (!str_cmp (arg2, "elfone") || !str_cmp (arg2, "elf1"))\
   \{\
     if(IS_SET(victim->rce, RCE_ELF_ONE))\
     \{\
      send_to_char("RCE_ELF_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_ELF_ONE);\
      return;\
     \}\
     send_to_char("RCE_ELF_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_ELF_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_ELF_TWO*/\
  if (!str_cmp (arg2, "elftwo") || !str_cmp (arg2, "elf2"))\
   \{\
     if(IS_SET(victim->rce, RCE_ELF_TWO))\
     \{\
      send_to_char("RCE_ELF_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_ELF_TWO);\
      return;\
     \}\
     send_to_char("RCE_ELF_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_ELF_TWO);\
     return;\
   \}\
  /*Checking to see for RCE_HUMAN_ONE*/\
  if (!str_cmp (arg2, "humanone") || !str_cmp (arg2, "human1"))\
   \{\
     if(IS_SET(victim->rce, RCE_HUMAN_ONE))\
     \{\
      send_to_char("RCE_HUMAN_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_HUMAN_ONE);\
      return;\
     \}\
     send_to_char("RCE_HUMAN_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_HUMAN_ONE);\
     return;\
   \}\
  /*Checking to see for RCE_HUMAN_TWO*/\
  if (!str_cmp (arg2, "humantwo") || !str_cmp (arg2, "human2"))\
   \{\
     if(IS_SET(victim->rce, RCE_HUMAN_TWO))\
     \{\
      send_to_char("RCE_HUMAN_TWO is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->rce, RCE_HUMAN_TWO);\
      return;\
     \}\
     send_to_char("RCE_HUMAN_TWO is being set.\\n\\r", ch);\
     SET_BIT(victim->rce, RCE_HUMAN_TWO);\
     return;\
   \}\
\
/* CHECKING FOR SIDE QUEST BIT FLAGS */\
\
  /*Checking to see for SDE_QSTONE_ONE */\
  if (!str_cmp (arg2, "sidequestoneone") || !str_cmp (arg2, "sq11"))\
   \{\
     if(IS_SET(victim->sde, SDE_QSTONE_ONE))\
     \{\
      send_to_char("SDE_QSTONE_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->sde, SDE_QSTONE_ONE);\
      return;\
     \}\
     send_to_char("SDE_QSTONE_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->sde, SDE_QSTONE_ONE);\
     return;\
   \}\
  /*Checking to see for SDE_QSTTWO_ONE */\
  if (!str_cmp (arg2, "sidequesttwoone") || !str_cmp (arg2, "sq21"))\
   \{\
     if(IS_SET(victim->sde, SDE_QSTTWO_ONE))\
     \{\
      send_to_char("SDE_QSTTWO_ONE is being removed.\\n\\r", ch);\
      REMOVE_BIT(victim->sde, SDE_QSTTWO_ONE);\
      return;\
     \}\
     send_to_char("SDE_QSTTWO_ONE is being set.\\n\\r", ch);\
     SET_BIT(victim->sde, SDE_QSTTWO_ONE);\
     return;\
   \}\
 /* Testing to see why this wont work. */\
 sprintf(buf, "Player %s and flag %s are invalid arguments, please see help bitflag.", arg1, arg2);\
 send_to_char (buf,ch);\
\}\
\
/* \
 * do_bitshow by Taemos 01/07 (Used to display a player's QST_, RCE_, and SDE_ flags\
 * \
 * Other Files: interp.c, interp.h\
 */  \
     \
void do_bitshow (CHAR_DATA *ch, char *argument)\
\{    \
 char buf[MAX_STRING_LENGTH];\
 char arg[MAX_INPUT_LENGTH];\
 CHAR_DATA *victim;\
     \
 argument = one_argument (argument, arg);\
   /* Making sure the player is logged in. */\
   if ((victim = get_char_world (ch, arg)) == NULL)\
   \{ \
    send_to_char ("They aren't here.\\n\\r", ch);\
    return;\
   \}\
   /* Showing the victim's QST_, RCE_, and SDE_ flags */\
   if (arg[0] == '\\0' || argument[0] == '\\0')\
   \{    \
    sprintf (buf, "\{gBit Flags for \{G%s\{x:\\n\\r\{g-------------------------\{x\\n\\r", victim->name);\
        send_to_char(buf, ch);\
    sprintf (buf, "  \{GTier \{W:\{g %s\{x\\n\\r", qst_bit_name (victim->qst));\
        send_to_char(buf, ch);\
    sprintf (buf, "\{GRacial \{W:\{g %s\{x\\n\\r", rce_bit_name (victim->rce));\
        send_to_char(buf, ch);\
    sprintf (buf, "\{G  Side \{W:\{g %s\\n\\r",   sde_bit_name (victim->sde));\
        send_to_char(buf, ch);\
    return;\
   \}  \
   /* Would be waaay too spammy. */\
   if (!str_cmp (arg, "all") || !str_cmp (argument, "all"))\
   \{  \
    send_to_char ("We wont be doing that.", ch);\
    return;\
   \}\
   /* Making sure the command says something if syntax is invalid. */\
   send_to_char ("Check who's questflags?", ch);\
   return;\
\}\
}