    SECURITY MOTION-DETECTORS
    Author: KTGOW

    Started 08/10/96
    Version 1 ready : 08/11/96
    Version 1 released: 08/12/96

Description:
    Impulse 15 places a motion detector.

    Motion detectors are small objects placed by the player.  They drop to
    the floor, then go into "Security Mode."
    While in a security mode, the motion detector will fire a stream of
    shots at any monsters or players that are a)moving, and b)within a
    2000-unit radius.  The motion detectors do a fairly good job of
    anticipating the movement of a target.

    Motion detectors can be destroyed.  When they are destroyed, they
    explode like a grenade.

    If 2 or more motion detectors within a 750-unit radius of each other can
    see each other, each will destroy itself upon activation.

    Once the motion detector is attached to a surface, there is a 10-second
    delay for you to run away before it kills you;

    A motion detector requires 50 nails, 95 health, and 1 rocket to create.
    This is nonrefundable.
    You may be wondering why the requirements are so great.  Play around
    with the detectors for a while.  Then let me know if I'm asking too
    much.

    Motion detectors originally start with 50 shots.  Once they are out
    of ammo, their rate of fire slows to 1 shot every 2 seconds.
    Impulse 16 reloads a Detector in 25-nail increments (taken from
    your own ammo supply).  Detectors can store a maximum of 200 shots.

    Motion detectors kill people indiscriminantly.  A motion detector will
    kill its owner.  Nobody gets credit for a kill done by a motion detector.

To use this patch:
    1) Create a subdirectory off of your Quake directory.  I use MOTION,
       for example.
    2) Create the subdirectory PROGS off of the MOTION subdirectory.
    3) Copy all the QuakeC source files (*.QC) from Quake into this
       directory.
    4) Copy the modified QuakeC files from MOTION.ZIP into the PROGS
       directory (overwrite any files that already exist).
    5) Copy PROGS.SRC from MOTION.ZIP into the PROGS directory.
    6) Run the QuakeC compiler from the PROGS directory.  The file 
       PROGS.DAT should be created in the MOTION directory.
    7) Start Quake with "quake -game motion".

Impulses added:
  15  -- Drop a Motion Detector.
  16  -- Give nails to a Motion Detector.

Files modified:
 PROGS.SRC  --  Placed MOTION.QC right before WEAPONS.QC.
 DEFS.QC    --  Added the necessary variables to the end of the file.
                1 float used for detecting monster movement.
 WEAPONS.QC --  Precached a sound and a model.  Added impulses 15 and 16.
 AI.QC      --  Modified all the monster movement functions so that
                detectors could determine whether or not monsters were
                moving.
 CLIENT.QC  --  Modified the Client Obituary to add Motion Detector deaths.
 MOTION.QC  --  This contains all the new Motion Detector functions.

Functions added:
MOTION.QC: All of them.

Functions modified:
WEAPONS.QC: void() W_Precache;
    -- Precached a sound and a model.
WEAPONS.QC: void() ImpulseCommands;
    -- Added the necessary impulses.
CLIENT.QC : void(entity targ, entity attacker) ClientObituary;
    -- Added messages for Motion Detector kills.
AI.QC     : void(float dist) ai_forward; void(float dist) ai_back;
            void(float dist) ai_pain; void(float dist) ai_painforward;
            void(float dist) ai_walk; void() ai_stand; void() ai_turn;
            void() ai_run_melee; void() ai_run_missile;
            void() ai_run_slide; void(float dist) ai_run;
    -- Set or unset the new variable "moving_now" so that motion
       detectors could determine whether or not a monster is moving.



MANY thanks go out to:
id, of course.
The people on the Quake-C mailing list.  Thanks for all the mail!  :J



-KTGOW
ktgow@cory.eecs.berkeley.edu
