#ifndef _VENOMOUS_H
#define _VENOMOUS_H

//---------------------------------------------------------------------------
// defines
//---------------------------------------------------------------------------
#define VEN_START_SPEED    600
#define VEN_FRICTION_RATE  3

#define VEN_BITE1_FRAME    15
#define VEN_BITE2_FRAME    21

#define MAX_VEN_APPEAR_FRAMES       3
#define MAX_VEN_STAND_FRAMES        9
#define MAX_VEN_DISSIPATE_FRAMES    3

//---------------------------------------------------------------------------
// typedefs
//---------------------------------------------------------------------------
typedef enum venomousMode_s {
   VEN_MODE_APPEAR,
   VEN_MODE_STAND,
   VEN_MODE_DISSIPATE,
} venomousMode_t;

typedef struct {
   weapon_t weapon;                       // weapon_t must be first entry
} venomous_t;

typedef struct {
   float killtime;
   Vector forward;
   short mode;
} venomousHook_t;

//---------------------------------------------------------------------------
// globals
//---------------------------------------------------------------------------
extern weaponInfo_t venomousWeaponInfo;

//---------------------------------------------------------------------------
// function prototypes
//---------------------------------------------------------------------------
static userInventory_t *give(userEntity_t *self);
static void select(userEntity_t *self);
static void *command(struct userInventory_s *ptr, char *commandStr, void *data);
static void use(userInventory_s *ptr, userEntity_t *self);
static void bite_func(userEntity_t *self);
static void blowPoison(userEntity_t *self,Vector &pos);
static void think_poison(userEntity_t *self);
static void touch_poison(userEntity_t *self, userEntity_t *other,cplane_t *plane, csurface_t *surf);
static void shoot_func(userEntity_t *self);

#endif