#if defined entWatch_core_included
	#endinput
#endif

#define entWatch_core_included

/* REGISTERS */
#define REGISTER_WEAPON         1
#define REGISTER_BUTTON         2
#define REGISTER_TRIGGER        3

/* SLOTS */
#define SLOT_NONE               0
#define SLOT_PRIMARY            1
#define SLOT_SECONDARY          2
#define SLOT_KNIFE              3
#define SLOT_GRENADES           4

/* MODES */
#define MODE_COOLDOWN           1
#define MODE_MAXUSES            2
#define MODE_COOLDOWNMAXUSES    3
#define MODE_COOLDOWNCHARGES    4

/* CLASSES */
#include <basic>
#include "entWatch/CConfig.inc"
#include "entWatch/CItem.inc"

public SharedPlugin __pl_entWatch_core =
{
	name = "entWatch-core",
	file = "entWatch-core.smx",

	#if defined REQUIRE_PLUGIN
		required = 1
	#else
		required = 0
	#endif
};

#if !defined REQUIRE_PLUGIN
	public void __pl_entWatch_core_SetNTVOptional()
	{
		MarkNativeAsOptional("EW_GetItemCount");
		MarkNativeAsOptional("EW_GetItemData");
		MarkNativeAsOptional("EW_ClientHasItem");
	}
#endif

native int EW_GetItemCount();

native CItem EW_GetItemData(int index);

native bool EW_ClientHasItem(int client);

forward void EW_OnClientItemDrop(int client, int index);
forward void EW_OnClientItemDeath(int client, int index);
forward void EW_OnClientItemPickup(int client, int index);
forward void EW_OnClientItemActivate(int client, int index);
forward void EW_OnClientItemDisconnect(int client, int index);

forward Action EW_OnClientItemCanPickup(int client, int index);
forward Action EW_OnClientItemCanActivate(int client, int index);
