//
// Asura_Entity_Event.h
//
// Created by Richard Rice - 07/05/2003
// 
// Copyright (C) 2003 Rebellion, All Rights Reserved.
//


#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef _ASURA_ENTITY_EVENT_H_
#define _ASURA_ENTITY_EVENT_H_

/*
An enumeration of events that entities might send messages on. The first few values have been
set to match those for the trigger objects , because it may be more convenient that way.

Existing entries shouldn't be altered , since they will be saved out in the entity files.

RAR 07/05/03
*/

enum ASURA_ENTITY_EVENT
{
	ASURA_ENTITY_EVENT_ONACTIVATION = 0,
	ASURA_ENTITY_EVENT_ONDEACTIVATION = 1,
	ASURA_ENTITY_EVENT_ONBEINGTRIGGERED = 2,
	ASURA_ENTITY_EVENT_ONDEATH = 3,
	ASURA_ENTITY_EVENT_ONUNTRIGGER = 4,

	ASURA_ENTITY_EVENT_ONSTARTOPENING = 5,
	ASURA_ENTITY_EVENT_ONFULLYOPENED = 6,
	ASURA_ENTITY_EVENT_ONSTARTCLOSING = 7,
	ASURA_ENTITY_EVENT_ONFULLYCLOSED = 8,
	ASURA_ENTITY_EVENT_ONLOCKED = 9,
	ASURA_ENTITY_EVENT_ONUNLOCKED = 10,

	ASURA_ENTITY_EVENT_ONARRIVEDAT = 11,
	ASURA_ENTITY_EVENT_ONFINISHED = 12,

	ASURA_ENTITY_EVENT_ONCOMPLETED = 13,
	ASURA_ENTITY_EVENT_ONFAILED = 14,

	ASURA_ENTITY_EVENT_ONHEALTHPERCENT_0  = 15,
	ASURA_ENTITY_EVENT_ONHEALTHPERCENT_99 = 114,

	ASURA_ENTITY_EVENT_ONDEPARTEDFROM = 115,
	ASURA_ENTITY_EVENT_ONSTARTED = 116,
	ASURA_ENTITY_EVENT_ONSTOPPED = 117,
	ASURA_ENTITY_EVENT_ONREVERSED = 118,

	ASURA_ENTITY_EVENT_ONDESTRUCTION = 119,

	ASURA_ENTITY_EVENT_FIRSTPROJECTSPECIFIC = 10000,//start of project specific events
};


struct Asura_EventAndMessage
{
	unsigned short m_usEventID;//from above enumeration
	unsigned short m_usMessageBlockID;
};


#endif //_ASURA_ENTITY_EVENT_H_
