#ifndef _BOLTER_H
#define _BOLTER_H

typedef struct
{
	// first seven fields must be the same as weapon_t
	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;

	// bolter fields
	int		reload_count;  // can fire twice before reloading
} bolterWeapon_t;

typedef struct
{
	float			remove_time;

	// Content friction hook
	frictionHook_t	*fhook;
} boltHook_t;

extern weaponInfo_t bolterWeaponInfo;

void			bolter_select (userEntity_t *self);
userInventory_t	*bolter_give (userEntity_t *self);
void			bolter_use (userInventory_s *ptr, userEntity_t *self);
void			bolter_detonate(userEntity_t *self);
static	void *bolter_command (struct userInventory_s *ptr, char *commandStr, void *data);

int		bolter_load_init (void);
void	bolter_level_init (void);

#endif