heretic2-sdk/Toolkit/Programming/GameCode/game/m_gkrokon.h
1998-11-24 00:00:00 +00:00

142 lines
3.7 KiB
C

//==============================================================================
//
// m_gkrokon.h
//
// Heretic II
// Copyright 1998 Raven Software
//
//==============================================================================
#define GKROKON_JUMP_VELOCITY 300.0
#define GKROKON_HOP_VELOCITY 128.0
#define GKROKON_SPOO_SPEED 450.0
#define GKROKON_SPOO_ARC 150.0
// ****************************************************************************
// The Gkrokon's animations.
// ****************************************************************************
typedef enum AnimID_e
{
ANIM_STAND1,
ANIM_STAND2,
ANIM_STAND3,
ANIM_STAND4,
ANIM_CROUCH1,
ANIM_CROUCH2,
ANIM_CROUCH3,
ANIM_WALK1,
ANIM_RUN1,
ANIM_RUN2,
ANIM_JUMP1,
ANIM_FJUMP,
ANIM_MELEE1,
ANIM_MELEE2,
ANIM_MISSILE1,
ANIM_EAT1,
ANIM_EAT2,
ANIM_EAT3,
ANIM_PAIN1,
ANIM_DIE1,
ANIM_HOP,
ANIM_RUNAWAY,
ANIM_SNEEZE,
ANIM_DELAY,
NUM_ANIMS
} AnimID_t;
// ****************************************************************************
// The Gkrokon's sounds.
// ****************************************************************************
typedef enum SoundID_e
{
SND_PAIN1,
SND_PAIN2,
SND_DIE,
SND_GIB,
SND_SPOO,
SND_IDLE1,
SND_IDLE2,
SND_SIGHT,
SND_WALK1,
SND_WALK2,
SND_FLEE,
SND_ANGRY,
SND_EATING,
SND_BITEHIT1,
SND_BITEHIT2,
SND_BITEMISS1,
SND_BITEMISS2,
NUM_SOUNDS
} SoundID_t;
extern animmove_t GkrokonMoveStand1;
extern animmove_t GkrokonMoveStand2;
extern animmove_t GkrokonMoveStand3;
extern animmove_t GkrokonMoveStand4;
extern animmove_t GkrokonMoveCrouch1;
extern animmove_t GkrokonMoveCrouch2;
extern animmove_t GkrokonMoveCrouch3;
extern animmove_t GkrokonMoveWalk1;
extern animmove_t GkrokonMoveRun1;
extern animmove_t GkrokonMoveRun2;
extern animmove_t GkrokonMoveRunAway;
extern animmove_t GkrokonMoveJump1;
extern animmove_t GkrokonMoveForcedJump;
extern animmove_t GkrokonMoveMeleeAttack1;
extern animmove_t GkrokonMoveMeleeAttack2;
extern animmove_t GkrokonMoveMissileAttack1;
extern animmove_t GkrokonMoveMissileAttack2;
extern animmove_t GkrokonMoveEat1;
extern animmove_t GkrokonMoveEat2;
extern animmove_t GkrokonMoveEat3;
extern animmove_t GkrokonMovePain1;
extern animmove_t GkrokonMoveDeath1;
//extern animmove_t GkrokonMoveDeath_hold;
extern animmove_t GkrokonMoveHop1;
extern animmove_t GkrokonMoveDelay;
void GkrokonSpooTouch2(edict_t *self,trace_t *trace);
void GkrokonPause(edict_t *self);
void gkrokonSound(edict_t *self, float channel, float sndindex, float atten);
void gkrokonRandomWalkSound (edict_t *self);
void GkrokonSpoo(edict_t *self);
void GkrokonDead(edict_t *self);
void extrapolateFiredir (edict_t *self,vec3_t p1,float pspeed,edict_t *targ,float accept,vec3_t vec2);
void create_gkrokon_spoo(edict_t *Spoo);
void BecomeDebris(edict_t *self);
void GkrokonSpooThink(edict_t *self);
void GkrokonSpooTouch(edict_t *self,edict_t *Other,cplane_t *Plane,csurface_t *Surface);
trace_t trace_dir(edict_t *self, vec3_t source, vec3_t angles, float dist);
void GkrokonStaticsInit(void);
void GkrokonInit(void);
void beetle_ai_stand(edict_t *self, float dist);
float MG_FaceGoal (edict_t *self, qboolean doturn);
void beetle_idle_sound(edict_t *self);
void beetle_to_stand (edict_t *self);
void beetle_to_crouch (edict_t *self);
void GkrokonBite(edict_t *self, float value);
#define BIT_WAIT1 0
#define BIT_SHELLA_P1 1
#define BIT_SPIKE_P1 2
#define BIT_HEAD_P1 4
#define BIT_RPINCHERA_P1 8
#define BIT_RPINCHERB_P1 16
#define BIT_LPINCHERA_P1 32
#define BIT_LPINCHERB_P1 64
#define BIT_LARM_P1 128
#define BIT_RARM_P1 256
#define BIT_ABDOMEN_P1 512
#define BIT_LTHIGH_P1 1024
#define BIT_RTHIGH_P1 2048
#define BIT_SHELLB_P1 4096