From: Lars Juul <larsjuul@POST2.TELE.DK>
Subject: Code for Fast agressive mobs

MOB_FAST_AGGR
=============

Add the MOB_FAST_AGGR flag in struch.h and constants.c -
in act.movement.c change do_move to:

ACMD(do_move)
{
  register struct char_data *vict, *tmob;
  int found;

  /*
   * This is basically a mapping of cmd numbers to perform_move indices.
   * It cannot be done in perform_move because perform_move is called
   * by other functions which do not require the remapping.
   */
  perform_move(ch, cmd - 1, 0);

  /* LJ Fast Aggressive */
  for (tmob = world[ch->in_room].people; tmob; tmob = tmob->next_in_room)
  {
    if (!IS_NPC(tmob) || !MOB_FLAGGED(tmob, MOB_FAST_AGGR))
      continue;

    found = FALSE;
    for (vict = world[tmob->in_room].people; vict && !found; vict = vict->next_in_room)
        {
          if (IS_NPC(vict) || !CAN_SEE(tmob, vict) || PRF_FLAGGED(vict, PRF_NOHASSLE))
            continue;
          if (MOB_FLAGGED(tmob, MOB_WIMPY) && AWAKE(vict))
            continue;

          if (MOB_FLAGGED(tmob, MOB_AGGRESSIVE) ||
           (MOB_FLAGGED(tmob, MOB_AGGR_EVIL) && IS_EVIL(vict)) ||
           (MOB_FLAGGED(tmob, MOB_AGGR_NEUTRAL) && IS_NEUTRAL(vict)) ||
           (MOB_FLAGGED(tmob, MOB_AGGR_GOOD) && IS_GOOD(vict))) {
            hit(tmob, vict, TYPE_UNDEFINED);
            found = TRUE;
          }
    }
  }

}
