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

917 lines
48 KiB
C++

/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#line 4 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
#include "StdH.h"
#include <EntitiesMP/EnemySpawner.h>
#include <EntitiesMP/EnemySpawner_tables.h>
void CEnemySpawner::SetDefaultProperties(void) {
m_penTarget = NULL;
m_strDescription = "";
m_strName = "Enemy spawner";
m_fInnerCircle = 0.0f;
m_fOuterCircle = 0.0f;
m_tmDelay = 0.0f;
m_tmSingleWait = 0.1f;
m_tmGroupWait = 0.1f;
m_ctGroupSize = 1;
m_ctTotal = 1;
m_penPatrol = NULL;
m_estType = EST_SIMPLE ;
m_bTelefrag = FALSE ;
m_bSpawnEffect = TRUE ;
m_bDoubleInSerious = FALSE ;
m_penSeriousTarget = NULL;
m_bFirstPass = TRUE ;
m_soSpawn.SetOwner(this);
m_soSpawn.Stop_internal();
m_iInGroup = 0;
m_iEnemiesTriggered = 0;
m_penTacticsHolder = NULL;
m_bTacticsAutostart = TRUE ;
CRationalEntity::SetDefaultProperties();
}
#line 68 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
void CEnemySpawner::Precache(void)
#line 69 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 70 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
PrecacheClass (CLASS_BASIC_EFFECT , BET_TELEPORT );
#line 71 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 74 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
const CTString & CEnemySpawner::GetDescription(void)const
#line 75 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 76 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
((CTString &) m_strDescription ) . PrintF ("-><none>");
#line 77 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penTarget != NULL ){
#line 78 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
((CTString &) m_strDescription ) . PrintF ("->%s" , m_penTarget -> GetName ());
#line 79 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penSeriousTarget != NULL ){
#line 80 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
((CTString &) m_strDescription ) . PrintF ("->%s, %s" ,
#line 81 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_penTarget -> GetName () , m_penSeriousTarget -> GetName ());
#line 82 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 83 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 84 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
((CTString &) m_strDescription ) = EnemySpawnerType_enum . NameForValue (INDEX (m_estType ))
#line 85 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
+ m_strDescription ;
#line 86 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return m_strDescription ;
#line 87 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 91 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
BOOL CEnemySpawner::CheckTemplateValid(CEntity * pen)
#line 92 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 93 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(pen == NULL || ! IsDerivedFromClass (pen , "Enemy Base")){
#line 94 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return FALSE ;
#line 95 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 96 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_estType == EST_TELEPORTER ){
#line 97 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return ! (((CEnemyBase &) * pen ) . m_bTemplate );
#line 98 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}else {
#line 99 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return ((CEnemyBase &) * pen ) . m_bTemplate ;
#line 100 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 101 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 103 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
BOOL CEnemySpawner::IsTargetValid(SLONG slPropertyOffset,CEntity * penTarget)
#line 104 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 105 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(slPropertyOffset == offsetof (CEnemySpawner , m_penTarget ))
#line 106 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 107 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return CheckTemplateValid (penTarget );
#line 108 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 109 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
else if(slPropertyOffset == offsetof (CEnemySpawner , m_penPatrol ))
#line 110 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 111 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return (penTarget != NULL && IsDerivedFromClass (penTarget , "Enemy Marker"));
#line 112 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 113 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
else if(slPropertyOffset == offsetof (CEnemySpawner , m_penSeriousTarget ))
#line 114 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 115 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return CheckTemplateValid (penTarget );
#line 116 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 117 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
else if(slPropertyOffset == offsetof (CEnemySpawner , m_penTacticsHolder ))
#line 118 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 119 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(IsOfClass (penTarget , "TacticsHolder")){return TRUE ;}
#line 120 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
else {return FALSE ;}
#line 121 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 122 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return CEntity :: IsTargetValid (slPropertyOffset , penTarget );
#line 123 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 127 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
BOOL CEnemySpawner::FillEntityStatistics(EntityStats * pes)
#line 128 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 129 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penTarget == NULL ){return FALSE ;}
#line 130 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_penTarget -> FillEntityStatistics (pes );
#line 131 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pes -> es_ctCount = m_ctTotal ;
#line 132 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pes -> es_strName += " (spawned)";
#line 133 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penSeriousTarget != NULL ){
#line 134 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pes -> es_strName += " (has serious)";
#line 135 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 136 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE ;
#line 137 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 140 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
void CEnemySpawner::SpawnEntity(BOOL bCopy) {
#line 142 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(CheckTemplateValid (m_penTarget )){
#line 144 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
CEntity * pen = NULL ;
#line 145 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(bCopy ){
#line 147 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pen = GetWorld () -> CopyEntityInWorld (* m_penTarget ,
#line 148 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
CPlacement3D (FLOAT3D (- 32000.0f + FRnd () * 200.0f , - 32000.0f + FRnd () * 200.0f , 0) , ANGLE3D (0 , 0 , 0)));
#line 151 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pen -> End ();
#line 152 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
CEnemyBase * peb = ((CEnemyBase *) pen );
#line 153 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
peb -> m_bTemplate = FALSE ;
#line 154 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_estType == EST_RESPAWNER
#line 155 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
|| m_estType == EST_MAINTAINGROUP || m_estType == EST_RESPAWNGROUP ){
#line 156 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
peb -> m_penSpawnerTarget = this ;
#line 157 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 158 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penPatrol != NULL ){
#line 159 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
peb -> m_penMarker = m_penPatrol ;
#line 160 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 161 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pen -> Initialize ();
#line 162 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}else {
#line 163 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pen = m_penTarget ;
#line 164 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_penTarget = NULL ;
#line 165 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 168 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOAT fEntityR = 0;
#line 169 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(pen -> en_pciCollisionInfo != NULL ){
#line 170 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
fEntityR = pen -> en_pciCollisionInfo -> GetMaxFloorRadius ();
#line 171 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 172 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOAT fOuterCircle = ClampDn (m_fOuterCircle - fEntityR , 0.0f);
#line 173 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOAT fInnerCircle = ClampUp (m_fInnerCircle + fEntityR , fOuterCircle );
#line 175 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOAT fR = fInnerCircle + FRnd () * (fOuterCircle - fInnerCircle );
#line 176 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOAT fA = FRnd () * 360.0f;
#line 177 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
CPlacement3D pl (FLOAT3D (CosFast (fA ) * fR , 0.05f , SinFast (fA ) * fR ) , ANGLE3D (0 , 0 , 0));
#line 178 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pl . RelativeToAbsolute (GetPlacement ());
#line 181 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pen -> Teleport (pl , m_bTelefrag );
#line 184 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_bSpawnEffect ){
#line 185 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
ESpawnEffect ese ;
#line 186 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
ese . colMuliplier = C_WHITE | CT_OPAQUE ;
#line 187 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
ese . betType = BET_TELEPORT ;
#line 188 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
ese . vNormal = FLOAT3D (0 , 1 , 0);
#line 189 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOATaabbox3D box ;
#line 190 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
pen -> GetBoundingBox (box );
#line 191 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
FLOAT fEntitySize = box . Size () . MaxNorm () * 2;
#line 192 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
ese . vStretch = FLOAT3D (fEntitySize , fEntitySize , fEntitySize );
#line 193 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
CEntityPointer penEffect = CreateEntity (pl , CLASS_BASIC_EFFECT );
#line 194 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
penEffect -> Initialize (ese );
#line 195 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 198 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penTacticsHolder != NULL ){
#line 199 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(IsOfClass (m_penTacticsHolder , "TacticsHolder")){
#line 200 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
CEnemyBase * peb = ((CEnemyBase *) pen );
#line 201 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
peb -> m_penTacticsHolder = m_penTacticsHolder ;
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_bTacticsAutostart ){
#line 204 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
peb -> StartTacticsNow ();
#line 205 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 206 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 207 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 209 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 210 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 213 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
BOOL CEnemySpawner::HandleEvent(const CEntityEvent & ee)
#line 214 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 215 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(ee . ee_slEvent == EVENTCODE_ETrigger )
#line 216 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 217 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
ETrigger eTrigger = ((ETrigger &) ee );
#line 218 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(IsDerivedFromClass (eTrigger . penCaused , "Enemy Base")
#line 219 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
&& (m_estType == EST_MAINTAINGROUP || m_estType == EST_RESPAWNGROUP )){
#line 220 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_iEnemiesTriggered ++;
#line 221 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 222 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 223 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return CRationalEntity :: HandleEvent (ee );
#line 224 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 228 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SLONG CEnemySpawner::GetUsedMemory(void)
#line 229 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
{
#line 231 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SLONG slUsedMemory = sizeof (CEnemySpawner ) - sizeof (CRationalEntity ) + CRationalEntity :: GetUsedMemory ();
#line 233 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
slUsedMemory += m_strDescription . Length ();
#line 234 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
slUsedMemory += m_strName . Length ();
#line 235 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
slUsedMemory += 1 * sizeof (CSoundObject);
#line 236 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return slUsedMemory ;
#line 237 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
BOOL CEnemySpawner::
#line 242 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SpawnGroup(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_SpawnGroup
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::SpawnGroup expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 245 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_iInGroup = 0;
#line 247 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Jump(STATE_CURRENT,0x01300003, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300003_SpawnGroup_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300003
if(!(TRUE )){ Jump(STATE_CURRENT,0x01300004, FALSE, EInternal());return TRUE;}
#line 250 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SpawnEntity (TRUE );
#line 253 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_ctTotal --;
#line 255 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_ctTotal <= 0){
#line 257 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Return(STATE_CURRENT,EEnd ());
#line 257 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE;
#line 258 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 261 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_iInGroup ++;
#line 263 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_iEnemiesTriggered > 0 && m_estType == EST_RESPAWNGROUP ){
#line 264 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(! m_bFirstPass ){
#line 265 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_iEnemiesTriggered --;
#line 266 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}else if(m_iEnemiesTriggered > 0){
#line 268 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_iEnemiesTriggered --;
#line 269 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 272 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_iInGroup >= m_ctGroupSize ){
#line 273 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(! (m_estType == EST_MAINTAINGROUP && m_iEnemiesTriggered > 0)){
#line 275 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Return(STATE_CURRENT,EReturn ());
#line 275 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE;
#line 276 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 277 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 280 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(m_tmSingleWait );
Jump(STATE_CURRENT, 0x01300001, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300001_SpawnGroup_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300001
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300002, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default:{return FALSE;}ASSERT(FALSE);break;
#line 284 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}return TRUE;}BOOL CEnemySpawner::H0x01300002_SpawnGroup_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300002
Jump(STATE_CURRENT,0x01300003, FALSE, EInternal());return TRUE;
#line 285 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}BOOL CEnemySpawner::H0x01300004_SpawnGroup_04(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300004
ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 289 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Simple(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_Simple
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::Simple expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 292 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x01300006, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300006_Simple_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300006
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_ETrigger):{const ETrigger&e= (ETrigger&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300007, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EStart):{const EStart&e= (EStart&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300007, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default:{return FALSE;}ASSERT(FALSE);break;
#line 297 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}return TRUE;}BOOL CEnemySpawner::H0x01300007_Simple_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300007
#line 300 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_tmDelay > 0)){ Jump(STATE_CURRENT,0x0130000a, FALSE, EInternal());return TRUE;}
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(m_tmDelay );
Jump(STATE_CURRENT, 0x01300008, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300008_Simple_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300008
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01300009, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300009_Simple_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300009
;Jump(STATE_CURRENT,0x0130000a, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x0130000a_Simple_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130000a
#line 306 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Jump(STATE_CURRENT,0x0130000f, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x0130000f_Simple_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130000f
if(!(TRUE )){ Jump(STATE_CURRENT,0x01300010, FALSE, EInternal());return TRUE;}
#line 308 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_SpawnGroup, TRUE;
Jump(STATE_CURRENT, 0x0130000b, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130000b_Simple_06(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130000b
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_SpawnGroup, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0130000c, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130000c_Simple_07(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130000c
const EReturn&__e= (EReturn&)__eeInput;
;
#line 310 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(m_tmGroupWait );
Jump(STATE_CURRENT, 0x0130000d, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130000d_Simple_08(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130000d
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0130000e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130000e_Simple_09(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130000e
;Jump(STATE_CURRENT,0x0130000f, FALSE, EInternal());return TRUE;
#line 311 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}BOOL CEnemySpawner::H0x01300010_Simple_11(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300010
ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 315 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Teleporter(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_Teleporter
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::Teleporter expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 318 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x01300012, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300012_Teleporter_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300012
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_ETrigger):{const ETrigger&e= (ETrigger&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300013, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EStart):{const EStart&e= (EStart&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300013, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default:{return FALSE;}ASSERT(FALSE);break;
#line 323 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}return TRUE;}BOOL CEnemySpawner::H0x01300013_Teleporter_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300013
#line 326 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_tmDelay > 0)){ Jump(STATE_CURRENT,0x01300016, FALSE, EInternal());return TRUE;}
#line 328 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(m_tmDelay );
Jump(STATE_CURRENT, 0x01300014, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300014_Teleporter_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300014
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01300015, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300015_Teleporter_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300015
;Jump(STATE_CURRENT,0x01300016, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300016_Teleporter_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300016
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SpawnEntity (FALSE );
#line 335 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Return(STATE_CURRENT,EEnd ());
#line 335 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 339 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Respawner(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_Respawner
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::Respawner expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 342 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Jump(STATE_CURRENT,0x01300031, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300031_Respawner_26(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300031
if(!(TRUE )){ Jump(STATE_CURRENT,0x01300032, FALSE, EInternal());return TRUE;}
#line 344 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x01300018, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300018_Respawner_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300018
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 346 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(! m_bFirstPass && m_iEnemiesTriggered > 0){
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
UnsetTimer();Jump(STATE_CURRENT,0x01300019, FALSE, EInternal());return TRUE;
#line 348 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 349 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE;
#line 350 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETrigger):{const ETrigger&e= (ETrigger&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300019, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EStart):{const EStart&e= (EStart&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x01300019, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default:{return FALSE;}ASSERT(FALSE);break;
#line 354 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}return TRUE;}BOOL CEnemySpawner::H0x01300019_Respawner_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300019
#line 357 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_tmDelay > 0 && m_bFirstPass )){ Jump(STATE_CURRENT,0x0130001c, FALSE, EInternal());return TRUE;}
#line 359 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(m_tmDelay );
Jump(STATE_CURRENT, 0x0130001a, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130001a_Respawner_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130001a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0130001b, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130001b_Respawner_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130001b
;Jump(STATE_CURRENT,0x0130001c, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x0130001c_Respawner_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130001c
#line 362 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_estType == EST_RESPAWNGROUP )){ Jump(STATE_CURRENT,0x0130002e, FALSE, EInternal());return TRUE;}
#line 363 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_bFirstPass )){ Jump(STATE_CURRENT,0x01300026, FALSE, EInternal());return TRUE;}
#line 364 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_SpawnGroup, TRUE;
Jump(STATE_CURRENT, 0x0130001d, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130001d_Respawner_06(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130001d
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_SpawnGroup, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0130001e, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130001e_Respawner_07(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130001e
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x01300025, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300026_Respawner_15(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300026
if(!(m_iEnemiesTriggered >= m_ctGroupSize )){ Jump(STATE_CURRENT,0x01300024, FALSE, EInternal());return TRUE;}
#line 366 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_tmGroupWait > 0)){ Jump(STATE_CURRENT,0x01300021, FALSE, EInternal());return TRUE;}SetTimerAfter(m_tmGroupWait );
Jump(STATE_CURRENT, 0x0130001f, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130001f_Respawner_08(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130001f
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01300020, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300020_Respawner_09(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300020
;Jump(STATE_CURRENT,0x01300021, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300021_Respawner_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300021
#line 367 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_SpawnGroup, TRUE;
Jump(STATE_CURRENT, 0x01300022, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300022_Respawner_11(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300022
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_SpawnGroup, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x01300023, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300023_Respawner_12(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300023
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x01300024, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300024_Respawner_13(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300024
Jump(STATE_CURRENT,0x01300025, FALSE, EInternal());return TRUE;}
BOOL CEnemySpawner::H0x01300025_Respawner_14(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300025
Jump(STATE_CURRENT,0x0130002d, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x0130002e_Respawner_23(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130002e
if(!(TRUE )){ Jump(STATE_CURRENT,0x0130002c, FALSE, EInternal());return TRUE;}
#line 371 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(!(m_tmGroupWait > 0 && ! m_bFirstPass )){ Jump(STATE_CURRENT,0x01300029, FALSE, EInternal());return TRUE;}SetTimerAfter(m_tmGroupWait );
Jump(STATE_CURRENT, 0x01300027, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300027_Respawner_16(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300027
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01300028, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300028_Respawner_17(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300028
;Jump(STATE_CURRENT,0x01300029, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x01300029_Respawner_18(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300029
#line 372 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_SpawnGroup, TRUE;
Jump(STATE_CURRENT, 0x0130002a, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130002a_Respawner_19(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130002a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_SpawnGroup, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0130002b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130002b_Respawner_20(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130002b
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x0130002c, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x0130002c_Respawner_21(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130002c
Jump(STATE_CURRENT,0x0130002d, FALSE, EInternal());return TRUE;}
BOOL CEnemySpawner::H0x0130002d_Respawner_22(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130002d
#line 383 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_estType == EST_MAINTAINGROUP ){
#line 385 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_ctGroupSize = 1;
#line 386 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 389 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_bFirstPass = FALSE ;
#line 392 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(0.1f);
Jump(STATE_CURRENT, 0x0130002f, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130002f_Respawner_24(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130002f
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01300030, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300030_Respawner_25(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300030
;Jump(STATE_CURRENT,0x01300031, FALSE, EInternal());return TRUE;
#line 393 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}BOOL CEnemySpawner::H0x01300032_Respawner_27(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300032
ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 396 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
DestroyableInactive(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_DestroyableInactive
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::DestroyableInactive expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 398 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x01300034, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300034_DestroyableInactive_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300034
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_EActivate: Jump(STATE_CURRENT,0x01300035, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300035_DestroyableInactive_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300035
const EActivate&__e= (EActivate&)__eeInput;
;
#line 399 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Jump(STATE_CURRENT, STATE_CEnemySpawner_DestroyableActive, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 402 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
DestroyableActiveSpawning(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_DestroyableActiveSpawning
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::DestroyableActiveSpawning expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 405 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Jump(STATE_CURRENT,0x0130003b, FALSE, EInternal());return TRUE;}BOOL CEnemySpawner::H0x0130003b_DestroyableActiveSpawning_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130003b
if(!(TRUE )){ Jump(STATE_CURRENT,0x0130003c, FALSE, EInternal());return TRUE;}
#line 407 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_SpawnGroup, TRUE;
Jump(STATE_CURRENT, 0x01300037, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300037_DestroyableActiveSpawning_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300037
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_SpawnGroup, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x01300038, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300038_DestroyableActiveSpawning_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300038
const EReturn&__e= (EReturn&)__eeInput;
;
#line 409 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(m_tmGroupWait );
Jump(STATE_CURRENT, 0x01300039, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300039_DestroyableActiveSpawning_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300039
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0130003a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130003a_DestroyableActiveSpawning_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130003a
;Jump(STATE_CURRENT,0x0130003b, FALSE, EInternal());return TRUE;
#line 410 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}BOOL CEnemySpawner::H0x0130003c_DestroyableActiveSpawning_06(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130003c
ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 412 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
DestroyableActive(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_DestroyableActive
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::DestroyableActive expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 414 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_DestroyableActiveSpawning, TRUE;
Jump(STATE_CURRENT, 0x0130003e, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x0130003e_DestroyableActive_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130003e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_DestroyableActiveSpawning, TRUE, EVoid());return TRUE;case EVENTCODE_EDeactivate: Jump(STATE_CURRENT,0x0130003f, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x0130003f_DestroyableActive_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x0130003f
const EDeactivate&__e= (EDeactivate&)__eeInput;
;
#line 415 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Jump(STATE_CURRENT, STATE_CEnemySpawner_DestroyableInactive, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 419 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Destroyable(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_Destroyable
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::Destroyable expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 422 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
STATE_CEnemySpawner_DestroyableInactive, TRUE;
Jump(STATE_CURRENT, 0x01300041, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300041_Destroyable_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300041
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemySpawner_DestroyableInactive, TRUE, EVoid());return TRUE;case EVENTCODE_EStop: Jump(STATE_CURRENT,0x01300042, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300042_Destroyable_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300042
const EStop&__e= (EStop&)__eeInput;
;
#line 424 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Return(STATE_CURRENT,EEnd ());
#line 424 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CEnemySpawner::
#line 427 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CEnemySpawner_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CEnemySpawner::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 429 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
InitAsEditorModel ();
#line 430 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetPhysicsFlags (EPF_MODEL_IMMATERIAL );
#line 431 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetCollisionFlags (ECF_IMMATERIAL );
#line 434 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetModel (MODEL_ENEMYSPAWNER );
#line 435 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetModelMainTexture (TEXTURE_ENEMYSPAWNER );
#line 437 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_tmSingleWait <= 0.0f){m_tmSingleWait = 0.05f;}
#line 438 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_tmGroupWait <= 0.0f){m_tmGroupWait = 0.05f;}
#line 441 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_fInnerCircle > m_fOuterCircle ){
#line 442 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_fInnerCircle = m_fOuterCircle ;
#line 443 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 445 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_estType == EST_RESPAWNERBYONE ){
#line 446 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_estType = EST_MAINTAINGROUP ;
#line 447 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 450 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penTarget != NULL ){
#line 451 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(! IsDerivedFromClass (m_penTarget , "Enemy Base")){
#line 452 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
WarningMessage ("Target '%s' is of wrong class!" , m_penTarget -> GetName ());
#line 453 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_penTarget = NULL ;
#line 454 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 455 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 456 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penSeriousTarget != NULL ){
#line 457 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(! IsDerivedFromClass (m_penSeriousTarget , "Enemy Base")){
#line 458 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
WarningMessage ("Target '%s' is of wrong class!" , m_penSeriousTarget -> GetName ());
#line 459 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_penSeriousTarget = NULL ;
#line 460 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 461 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 464 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x01300043, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300043_Main_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300043
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01300044, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CEnemySpawner::H0x01300044_Main_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300044
;
#line 467 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(! GetSP () -> sp_bUseExtraEnemies && ! GetSP () -> sp_bSinglePlayer
#line 468 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
&& ! (GetSpawnFlags () & SPF_SINGLEPLAYER )){
#line 469 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Destroy ();
#line 470 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Return(STATE_CURRENT,EVoid());
#line 470 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE;
#line 471 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 473 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_bDoubleInSerious && GetSP () -> sp_gdGameDifficulty == CSessionProperties :: GD_EXTREME ){
#line 474 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_ctGroupSize *= 2;
#line 475 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_ctTotal *= 2;
#line 476 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 477 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_penSeriousTarget != NULL && GetSP () -> sp_gdGameDifficulty == CSessionProperties :: GD_EXTREME ){
#line 478 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_penTarget = m_penSeriousTarget ;
#line 479 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 481 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_estType == EST_MAINTAINGROUP ){
#line 482 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_iEnemiesTriggered = m_ctGroupSize ;
#line 483 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 485 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_bFirstPass = TRUE ;
#line 487 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x01300045, FALSE, EBegin());return TRUE;}BOOL CEnemySpawner::H0x01300045_Main_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300045
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 489 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
if(m_estType == EST_SIMPLE ){
#line 490 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Call(STATE_CURRENT, STATE_CEnemySpawner_Simple, TRUE, EVoid());return TRUE;
#line 491 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}else if(m_estType == EST_TELEPORTER ){
#line 492 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Call(STATE_CURRENT, STATE_CEnemySpawner_Teleporter, TRUE, EVoid());return TRUE;
#line 493 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}else if(m_estType == EST_RESPAWNER
#line 494 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
|| m_estType == EST_TRIGGERED || m_estType == EST_RESPAWNGROUP ){
#line 495 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Call(STATE_CURRENT, STATE_CEnemySpawner_Respawner, TRUE, EVoid());return TRUE;
#line 496 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}else if(m_estType == EST_MAINTAINGROUP ){
#line 497 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
m_ctGroupSize = 1;
#line 498 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Call(STATE_CURRENT, STATE_CEnemySpawner_Respawner, TRUE, EVoid());return TRUE;
#line 499 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 500 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
else if(m_estType == EST_DESTROYABLE ){
#line 501 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Call(STATE_CURRENT, STATE_CEnemySpawner_Destroyable, TRUE, EVoid());return TRUE;
#line 502 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}
#line 503 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}ASSERT(FALSE);break;case(EVENTCODE_EDeactivate):{const EDeactivate&e= (EDeactivate&)__eeInput;
#line 505 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
UnsetTimer();Jump(STATE_CURRENT,0x01300046, FALSE, EInternal());return TRUE;
#line 506 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}ASSERT(FALSE);break;case(EVENTCODE_EStop):{const EStop&e= (EStop&)__eeInput;
#line 508 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
UnsetTimer();Jump(STATE_CURRENT,0x01300046, FALSE, EInternal());return TRUE;
#line 509 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}ASSERT(FALSE);break;case(EVENTCODE_EEnd):{const EEnd&e= (EEnd&)__eeInput;
#line 511 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
UnsetTimer();Jump(STATE_CURRENT,0x01300046, FALSE, EInternal());return TRUE;
#line 512 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}ASSERT(FALSE);break;default: return FALSE; break;
#line 513 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
}return TRUE;}BOOL CEnemySpawner::H0x01300046_Main_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x01300046
#line 515 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Destroy ();
#line 517 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
Return(STATE_CURRENT,EVoid());
#line 517 "D:/SE1_GPL/Sources/EntitiesMP/EnemySpawner.es"
return TRUE; ASSERT(FALSE); return TRUE;};