#ifndef _GLOCK_H
#define _GLOCK_H


typedef struct
{
	// first two fields must be the same
	char    *name;
	void    (*use)(struct userInventory_s *ptr, userEntity_t *user);
	void	*(*command)(struct userInventory_s *ptr, char *commandStr, void *data);
	void	*precache;
	void	*dummy3;
	void	*dummy4;

	ammo_t	*ammo;
	int		clip;
} glockWeapon_t;

typedef struct
{

	int     shell_stop;
	long    my_count;
	float   rotate_x;
	float   reload;
	float	remove_time;
	float	last_touch_time;
	float	last_water;
	float	change_time;
	float   rotation_scale;
		
	Vector	last_pos;
	Vector	hit_water_pos;
	Vector  forward;
	Vector  right;
	Vector  up;

} weapHook_t;

extern weaponInfo_t glockWeaponInfo;

void			glock_select (userEntity_t *self);
userInventory_t *glock_give (userEntity_t *self);
int				glock_reload (userEntity_t *self);
void			glock_ammo(userEntity_t *self);
void			glock_use (userInventory_s *ptr, userEntity_t *self);
static	void *glock_command (struct userInventory_s *ptr, char *commandStr, void *data);

int		glock_load_init (void);
void	glock_level_init (void);

#endif