Serious-Engine/Sources/EntitiesMP/Eruptor.cpp
2016-03-11 15:57:17 +02:00

396 lines
19 KiB
C++

/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#line 4 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
#include "StdH.h"
#include <EntitiesMP/Eruptor.h>
#include <EntitiesMP/Eruptor_tables.h>
void CEruptor::SetDefaultProperties(void) {
m_fStretchAll = 1.0f;
m_fStretchX = 1.0f;
m_fStretchY = 1.0f;
m_fStretchZ = 1.0f;
m_bRandomStretch = FALSE ;
m_fStretchHeight = 0.2f;
m_fStretchWidth = 0.2f;
m_fStretchDepth = 0.2f;
m_fAngle = 45.0f;
m_fMaxSpeed = 20.0f;
m_fMinSpeed = 10.0f;
m_fTime = 1.0f;
m_fRandomWait = 0.0f;
m_ptType = PRT_LAVA_COMET ;
m_bShootInArc = TRUE ;
m_fProjectileStretch = 1.0f;
CModelHolder2::SetDefaultProperties();
}
#line 44 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
void CEruptor::Precache(void) {
#line 45 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
PrecacheClass (CLASS_PROJECTILE , m_ptType );
#line 46 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 49 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
void CEruptor::CalculateAngularLaunchParams(
#line 50 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
CMovableEntity * penTarget,
#line 51 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vShooting,
#line 52 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vTarget,FLOAT3D vSpeedDest,
#line 53 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
ANGLE aPitch,
#line 54 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
ANGLE & aHeading,
#line 55 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT & fLaunchSpeed)
#line 56 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
{
#line 57 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vNewTarget = vTarget ;
#line 58 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D & vGravity = penTarget -> en_vGravityDir ;
#line 59 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fa = TanFast (AngleDeg (aPitch ));
#line 60 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vd , vyd0 ;
#line 61 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fd , fyd0 ;
#line 62 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fTime = 0.0f;
#line 63 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fLastTime = 0.0f;
#line 65 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
INDEX iIterations = 0;
#line 67 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
do
#line 68 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
{
#line 69 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
iIterations ++;
#line 70 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vDistance = vNewTarget - vShooting ;
#line 71 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
GetParallelAndNormalComponents (vDistance , vGravity , vyd0 , vd );
#line 72 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fd = vd . Length ();
#line 73 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fyd0 = vyd0 . Length ();
#line 74 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fLastTime = fTime ;
#line 75 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fTime = Sqrt (2.0f) * Sqrt ((fa * fd - fyd0 ) / penTarget -> en_fGravityA );
#line 76 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
vNewTarget = vTarget + vSpeedDest * fTime ;
#line 77 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 78 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
while(Abs (fTime - fLastTime ) > _pTimer -> TickQuantum && iIterations < 10);
#line 81 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fLaunchSpeed = 0.707108f * fd /
#line 82 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
(Cos (AngleDeg (aPitch )) * Sqrt ((fa * fd - fyd0 ) / penTarget -> en_fGravityA ));
#line 84 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vDir = (vNewTarget - vShooting ) . Normalize ();
#line 85 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
ANGLE3D aAngles ;
#line 86 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
DirectionVectorToAngles (vDir , aAngles );
#line 87 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
aHeading = aAngles (1);
#line 88 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 91 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
void CEruptor::SpawnShoot(CEntity * penTarget)
#line 92 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
{
#line 94 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(penTarget == NULL || ! (penTarget -> GetPhysicsFlags () & EPF_MOVABLE )){
#line 96 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
return ;
#line 97 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 99 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
CPlacement3D plLava = GetPlacement ();
#line 101 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fSpeed = (m_fMaxSpeed - m_fMinSpeed ) * FRnd () + m_fMinSpeed ;
#line 104 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_bShootInArc ){
#line 106 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fPitch = GetPlacement () . pl_OrientationAngle (2);
#line 107 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fHeading ;
#line 108 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
CalculateAngularLaunchParams ((CMovableEntity *) penTarget ,
#line 109 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
GetPlacement () . pl_PositionVector ,
#line 110 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
penTarget -> GetPlacement () . pl_PositionVector ,
#line 111 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
((CMovableEntity *) penTarget ) -> en_vCurrentTranslationAbsolute ,
#line 112 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fPitch , fHeading , fSpeed );
#line 115 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (NormalizeAngle (GetPlacement () . pl_OrientationAngle (1) - fHeading )) > m_fAngle ){
#line 117 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
return ;
#line 118 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 119 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
plLava . pl_OrientationAngle (1) = fHeading ;
#line 121 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}else {
#line 123 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vTargetDir = (penTarget -> GetPlacement () . pl_PositionVector -
#line 124 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
GetPlacement () . pl_PositionVector ) . Normalize ();
#line 125 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vShootDir ;
#line 126 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
AnglesToDirectionVector (GetPlacement () . pl_OrientationAngle , vShootDir );
#line 129 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (vTargetDir % vShootDir ) < Cos (m_fAngle )){
#line 131 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
return ;
#line 132 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 134 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
DirectionVectorToAngles (vTargetDir , plLava . pl_OrientationAngle );
#line 135 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 138 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SpawnProjectile (plLava , fSpeed );
#line 139 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 142 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
void CEruptor::SpawnRandom(void)
#line 143 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
{
#line 145 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT fSpeed = (m_fMaxSpeed - m_fMinSpeed ) * FRnd () + m_fMinSpeed ;
#line 146 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
ANGLE3D aAngle ((FRnd () * 2 - 1) * m_fAngle , (FRnd () * 2 - 1) * m_fAngle , 0);
#line 148 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
CPlacement3D plLava (FLOAT3D (0 , 0 , 0) , aAngle );
#line 149 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
plLava . RelativeToAbsolute (GetPlacement ());
#line 151 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SpawnProjectile (plLava , fSpeed );
#line 152 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 155 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
void CEruptor::SpawnProjectile(const CPlacement3D & pl,FLOAT fSpeed)
#line 156 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
{
#line 157 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
CEntityPointer penLava = CreateEntity (pl , CLASS_PROJECTILE );
#line 160 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
ELaunchProjectile eLaunch ;
#line 161 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
eLaunch . penLauncher = this ;
#line 162 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
eLaunch . prtType = m_ptType ;
#line 163 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
eLaunch . fSpeed = fSpeed ;
#line 164 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
eLaunch . fStretch = m_fProjectileStretch ;
#line 165 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
penLava -> Initialize (eLaunch );
#line 168 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(! (penLava -> GetFlags () & ENF_DELETED )){
#line 169 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D fStretchRandom (1 , 1 , 1);
#line 170 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_bRandomStretch ){
#line 171 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fStretchRandom (1) = (FRnd () * m_fStretchWidth * 2 - m_fStretchWidth ) + 1;
#line 172 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fStretchRandom (2) = (FRnd () * m_fStretchHeight * 2 - m_fStretchHeight ) + 1;
#line 173 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
fStretchRandom (3) = (FRnd () * m_fStretchDepth * 2 - m_fStretchDepth ) + 1;
#line 174 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 175 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
FLOAT3D vOldStretch = penLava -> GetModelObject () -> mo_Stretch ;
#line 176 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
penLava -> GetModelObject () -> mo_Stretch = FLOAT3D (
#line 177 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
m_fStretchAll * m_fStretchX * fStretchRandom (1) * vOldStretch (1) ,
#line 178 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
m_fStretchAll * m_fStretchY * fStretchRandom (2) * vOldStretch (2) ,
#line 179 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
m_fStretchAll * m_fStretchZ * fStretchRandom (3) * vOldStretch (3));
#line 180 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
penLava -> ModelChangeNotify ();
#line 181 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
#line 182 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}
BOOL CEruptor::
#line 188 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Active(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEruptor_Active
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEruptor::Active expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 190 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00d50001, FALSE, EBegin());return TRUE;}BOOL CEruptor::H0x00d50001_Active_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50001
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
Call(STATE_CURRENT, STATE_CEruptor_AutoSpawns, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EEnvironmentStop):{const EEnvironmentStop&e= (EEnvironmentStop&)__eeInput;
Jump(STATE_CURRENT, STATE_CEruptor_Inactive, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 193 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}return TRUE;}BOOL CEruptor::H0x00d50002_Active_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50002
ASSERT(FALSE); return TRUE;};BOOL CEruptor::
#line 197 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Inactive(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEruptor_Inactive
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEruptor::Inactive expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 199 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00d50004, FALSE, EBegin());return TRUE;}BOOL CEruptor::H0x00d50004_Inactive_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50004
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EEnvironmentStart):{const EEnvironmentStart&e= (EEnvironmentStart&)__eeInput;
Jump(STATE_CURRENT, STATE_CEruptor_Active, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}return TRUE;}BOOL CEruptor::H0x00d50005_Inactive_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50005
ASSERT(FALSE); return TRUE;};BOOL CEruptor::
#line 206 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
AutoSpawns(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEruptor_AutoSpawns
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEruptor::AutoSpawns expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 208 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Jump(STATE_CURRENT,0x00d5000c, FALSE, EInternal());return TRUE;}BOOL CEruptor::H0x00d5000c_AutoSpawns_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d5000c
if(!(TRUE )){ Jump(STATE_CURRENT,0x00d5000d, FALSE, EInternal());return TRUE;}
#line 210 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SetTimerAfter(m_fTime );
Jump(STATE_CURRENT, 0x00d50007, FALSE, EBegin());return TRUE;}BOOL CEruptor::H0x00d50007_AutoSpawns_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50007
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x00d50008, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEruptor::H0x00d50008_AutoSpawns_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50008
;
#line 213 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SpawnRandom ();
#line 216 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(!(m_fRandomWait > 0.0f)){ Jump(STATE_CURRENT,0x00d5000b, FALSE, EInternal());return TRUE;}SetTimerAfter(m_fRandomWait );
Jump(STATE_CURRENT, 0x00d50009, FALSE, EBegin());return TRUE;}BOOL CEruptor::H0x00d50009_AutoSpawns_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50009
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x00d5000a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEruptor::H0x00d5000a_AutoSpawns_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d5000a
;Jump(STATE_CURRENT,0x00d5000b, FALSE, EInternal());return TRUE;}BOOL CEruptor::H0x00d5000b_AutoSpawns_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d5000b
Jump(STATE_CURRENT,0x00d5000c, FALSE, EInternal());return TRUE;
#line 217 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}BOOL CEruptor::H0x00d5000d_AutoSpawns_07(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d5000d
ASSERT(FALSE); return TRUE;};BOOL CEruptor::
#line 226 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
MainLoop(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEruptor_MainLoop
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEruptor::MainLoop expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 227 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00d5000f, FALSE, EBegin());return TRUE;}BOOL CEruptor::H0x00d5000f_MainLoop_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d5000f
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 229 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Call(STATE_CURRENT, STATE_CEruptor_Inactive, TRUE, EVoid());return TRUE;
#line 230 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETrigger):{const ETrigger&eTrigger= (ETrigger&)__eeInput;
#line 232 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
SpawnShoot (eTrigger . penCaused );
#line 233 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
return TRUE;
#line 234 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}ASSERT(FALSE);break;default:{return TRUE;}ASSERT(FALSE);break;
#line 236 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
}return TRUE;}BOOL CEruptor::H0x00d50010_MainLoop_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d50010
#line 239 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Destroy ();
#line 241 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Return(STATE_CURRENT,EVoid());
#line 241 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CEruptor::
#line 244 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEruptor_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEruptor::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 246 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
CModelHolder2 :: InitModelHolder ();
#line 249 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fTime <= 0.0f){m_fTime = 0.05f;}
#line 250 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fMaxSpeed < m_fMinSpeed ){m_fMaxSpeed = m_fMinSpeed ;}
#line 251 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fAngle < 0.0f){m_fAngle = 0.0f;}
#line 254 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (m_fStretchX ) < 0.01f){m_fStretchX = 0.01f;}
#line 255 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (m_fStretchY ) < 0.01f){m_fStretchY = 0.01f;}
#line 256 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (m_fStretchZ ) < 0.01f){m_fStretchZ = 0.01f;}
#line 257 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchAll < 0.01f){m_fStretchAll = 0.01f;}
#line 259 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (m_fStretchX ) > 100.0f){m_fStretchX = 100.0f * Sgn (m_fStretchX );}
#line 260 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (m_fStretchY ) > 100.0f){m_fStretchY = 100.0f * Sgn (m_fStretchY );}
#line 261 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(Abs (m_fStretchZ ) > 100.0f){m_fStretchZ = 100.0f * Sgn (m_fStretchZ );}
#line 262 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchAll > 100.0f){m_fStretchAll = 100.0f;}
#line 264 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchWidth < 0.0f){m_fStretchWidth = 0.0f;};
#line 265 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchHeight < 0.0f){m_fStretchHeight = 0.0f;};
#line 266 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchDepth < 0.0f){m_fStretchDepth = 0.0f;};
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchWidth > 1.0f){m_fStretchWidth = 1.0f;};
#line 268 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchHeight > 1.0f){m_fStretchHeight = 1.0f;};
#line 269 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
if(m_fStretchDepth > 1.0f){m_fStretchDepth = 1.0f;};
#line 271 "D:/SE1_GPL/Sources/EntitiesMP/Eruptor.es"
Jump(STATE_CURRENT, STATE_CEruptor_MainLoop, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};