/*
 * This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
 */

#ifndef _EntitiesMP_AirElemental_INCLUDED
#define _EntitiesMP_AirElemental_INCLUDED 1
#include <EntitiesMP/EnemyBase.h>
#include <EntitiesMP/Twister.h>
#define EVENTCODE_EElementalGrow 0x015b0000
class DECL_DLL EElementalGrow : public CEntityEvent {
public:
EElementalGrow();
CEntityEvent *MakeCopy(void);
};
DECL_DLL inline void ClearToDefault(EElementalGrow &e) { e = EElementalGrow(); } ;
extern "C" DECL_DLL CDLLEntityClass CAirElemental_DLLClass;
class CAirElemental : public CEnemyBase {
public:
  DECL_DLL virtual void SetDefaultProperties(void);
  BOOL m_bFloat;
  FLOAT m_fAttPosY;
  BOOL m_bInitialAnim;
  CEntityPointer m_penTrigger01;
  CEntityPointer m_penTrigger02;
  CEntityPointer m_penTrigger03;
  CEntityPointer m_penTrigger04;
  CEntityPointer m_penTrigger05;
  CEntityPointer m_penTrigger06;
  CEntityPointer m_penTrigger07;
  CEntityPointer m_penTrigger08;
  CEntityPointer m_penTrigger09;
  CEntityPointer m_penTrigger10;
  FLOAT m_fAttSizeCurrent;
  FLOAT m_fAttSizeBegin;
  FLOAT m_fAttSizeEnd;
  FLOAT m_fAttSizeRequested;
  BOOL m_bAttGrow;
  INDEX m_iSize;
  FLOAT m_fLastSize;
  FLOAT m_fTargetSize;
  FLOAT m_fGrowSpeed;
  FLOAT m_tmWindNextFire;
  FLOAT m_fWindFireTimeMin;
  FLOAT m_fWindFireTimeMax;
  INDEX m_iWind;
  BOOL m_bDying;
  FLOAT m_tmDeath;
  FLOAT m_fDeathDuration;
  FLOAT3D m_fWindBlastFirePosBegin;
  FLOAT3D m_fWindBlastFirePosEnd;
  FLOAT m_tmLastAnimation;
  CEntityPointer m_penDeathInflictor;
  BOOL m_bRenderParticles;
  CSoundObject m_soFire;
  CSoundObject m_soVoice;
  COLOR m_colParticles;
CEmiter m_emEmiter;
   
#line 137 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void Read_t(CTStream * istr);
   
#line 143 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void Write_t(CTStream * istr);
  
#line 158 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
virtual CTString GetPlayerKillDescription(const CTString & strPlayerName,const EDeath & eDeath);
  
#line 164 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
virtual const CTFileName & GetComputerMessageName(void)const;
   
#line 169 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void Precache(void);
   
#line 190 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void * GetEntityInfo(void);
   
#line 195 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
CModelObject * ElementalModel(void);
   
#line 201 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void ReceiveDamage(CEntity * penInflictor,enum DamageType dmtType,
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
FLOAT fDamageAmmount,const FLOAT3D & vHitPoint,const FLOAT3D & vDirection);
   
#line 287 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
INDEX AnimForDamage(FLOAT fDamage);
   
#line 293 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void StandingAnimFight(void);
   
#line 298 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void StandingAnim(void);
   
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void WalkingAnim(void);
   
#line 307 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void RunningAnim(void);
   
#line 312 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void RotatingAnim(void);
   
#line 316 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
INDEX AnimForDeath(void);
   
#line 325 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void IdleSound(void);
   
#line 328 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void WoundSound(void);
   
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void SizeModel(void);
   
#line 338 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
BOOL AdjustShadingParameters(FLOAT3D & vLightDirection,COLOR & colLight,COLOR & colAmbient);
   
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void BlowUp(void);
   
#line 367 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void EnemyPostInit(void);
   
#line 374 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void LaunchTwister(FLOAT3D vEnemyOffset);
   
#line 409 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void PreMoving();
   
#line 435 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void GetAirElementalAttachmentData(INDEX iAttachment,FLOATmatrix3D & mRot,FLOAT3D & vPos);
   
#line 446 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
FLOAT GetCurrentStretchRatio(void);
   
#line 454 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
void RenderParticles(void);
#define  STATE_CAirElemental_Die 0x015b0001
  BOOL 
#line 479 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
Die(const CEntityEvent &__eeInput);
  BOOL H0x015b0002_Die_01(const CEntityEvent &__eeInput);
  BOOL H0x015b0003_Die_02(const CEntityEvent &__eeInput);
  BOOL H0x015b0004_Die_03(const CEntityEvent &__eeInput);
  BOOL H0x015b0005_Die_04(const CEntityEvent &__eeInput);
#define  STATE_CAirElemental_Fire 0x015b0006
  BOOL 
#line 503 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
Fire(const CEntityEvent &__eeInput);
  BOOL H0x015b0007_Fire_01(const CEntityEvent &__eeInput);
  BOOL H0x015b0008_Fire_02(const CEntityEvent &__eeInput);
  BOOL H0x015b0009_Fire_03(const CEntityEvent &__eeInput);
  BOOL H0x015b000a_Fire_04(const CEntityEvent &__eeInput);
  BOOL H0x015b000b_Fire_05(const CEntityEvent &__eeInput);
  BOOL H0x015b000c_Fire_06(const CEntityEvent &__eeInput);
  BOOL H0x015b000d_Fire_07(const CEntityEvent &__eeInput);
  BOOL H0x015b000e_Fire_08(const CEntityEvent &__eeInput);
  BOOL H0x015b000f_Fire_09(const CEntityEvent &__eeInput);
  BOOL H0x015b0010_Fire_10(const CEntityEvent &__eeInput);
  BOOL H0x015b0011_Fire_11(const CEntityEvent &__eeInput);
  BOOL H0x015b0012_Fire_12(const CEntityEvent &__eeInput);
  BOOL H0x015b0013_Fire_13(const CEntityEvent &__eeInput);
  BOOL H0x015b0014_Fire_14(const CEntityEvent &__eeInput);
  BOOL H0x015b0015_Fire_15(const CEntityEvent &__eeInput);
  BOOL H0x015b0016_Fire_16(const CEntityEvent &__eeInput);
  BOOL H0x015b0017_Fire_17(const CEntityEvent &__eeInput);
#define  STATE_CAirElemental_Hit 0x015b0018
  BOOL 
#line 580 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
Hit(const CEntityEvent &__eeInput);
#define  STATE_CAirElemental_Death 0x015b0019
  BOOL 
#line 588 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
Death(const CEntityEvent &__eeInput);
  BOOL H0x015b001a_Death_01(const CEntityEvent &__eeInput);
  BOOL H0x015b001b_Death_02(const CEntityEvent &__eeInput);
  BOOL H0x015b001c_Death_03(const CEntityEvent &__eeInput);
  BOOL H0x015b001d_Death_04(const CEntityEvent &__eeInput);
#define  STATE_CAirElemental_Grow 0x015b001e
  BOOL 
#line 603 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
Grow(const CEntityEvent &__eeInput);
  BOOL H0x015b001f_Grow_01(const CEntityEvent &__eeInput);
  BOOL H0x015b0020_Grow_02(const CEntityEvent &__eeInput);
  BOOL H0x015b0021_Grow_03(const CEntityEvent &__eeInput);
  BOOL H0x015b0022_Grow_04(const CEntityEvent &__eeInput);
#define  STATE_CAirElemental_ElementalLoop 0x015b0023
  BOOL 
#line 659 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
ElementalLoop(const CEntityEvent &__eeInput);
  BOOL H0x015b0024_ElementalLoop_01(const CEntityEvent &__eeInput);
  BOOL H0x015b0025_ElementalLoop_02(const CEntityEvent &__eeInput);
#define  STATE_CAirElemental_Main 1
  BOOL 
#line 675 "D:/SE1_GPL/Sources/EntitiesMP/AirElemental.es"
Main(const CEntityEvent &__eeInput);
  BOOL H0x015b0026_Main_01(const CEntityEvent &__eeInput);
  BOOL H0x015b0027_Main_02(const CEntityEvent &__eeInput);
  BOOL H0x015b0028_Main_03(const CEntityEvent &__eeInput);
  BOOL H0x015b0029_Main_04(const CEntityEvent &__eeInput);
  BOOL H0x015b002a_Main_05(const CEntityEvent &__eeInput);
  BOOL H0x015b002b_Main_06(const CEntityEvent &__eeInput);
};
#endif // _EntitiesMP_AirElemental_INCLUDED