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

4726 lines
237 KiB
C++

/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#line 4 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
#include "StdH.h"
#include "Models/Enemies/Devil/Devil.h"
#include "Models/Enemies/Devil/Weapons/Laser.h"
#include "Models/Weapons/RocketLauncher/RocketLauncherItem.h"
#include "EntitiesMP/Effector.h"
#include "EntitiesMP/WorldSettingsController.h"
#include "EntitiesMP/PyramidSpaceShip.h"
#include "EntitiesMP/BackgroundViewer.h"
#define DEVIL_LASER_SPEED 100.0f
#define DEVIL_ROCKET_SPEED 60.0f
#include <EntitiesMP/Devil.h>
#include <EntitiesMP/Devil_tables.h>
CEntityEvent *EBrushDestroyedByDevil::MakeCopy(void) { CEntityEvent *peeCopy = new EBrushDestroyedByDevil(*this); return peeCopy;}
EBrushDestroyedByDevil::EBrushDestroyedByDevil() : CEntityEvent(EVENTCODE_EBrushDestroyedByDevil) {;
ClearToDefault(vDamageDir);
};
CEntityEvent *ERegenerationImpuls::MakeCopy(void) { CEntityEvent *peeCopy = new ERegenerationImpuls(*this); return peeCopy;}
ERegenerationImpuls::ERegenerationImpuls() : CEntityEvent(EVENTCODE_ERegenerationImpuls) {;
};
CEntityEvent *EDevilCommand::MakeCopy(void) { CEntityEvent *peeCopy = new EDevilCommand(*this); return peeCopy;}
EDevilCommand::EDevilCommand() : CEntityEvent(EVENTCODE_EDevilCommand) {;
ClearToDefault(dctType);
ClearToDefault(penForcedAction);
ClearToDefault(fAttackRadius);
ClearToDefault(vCenterOfAttack);
};
#line 65 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
static FLOAT3D vLastStartPosition;
static FLOAT vLastAttackRadius;
extern INDEX cht_bKillFinalBoss;
extern INDEX cht_bDebugFinalBoss;
extern INDEX cht_bDumpFinalBossData;
extern INDEX cht_bDebugFinalBossAnimations;
#define LIGHT_ANIM_FIRE 3
#define LIGHT_ANIM_NONE 5
// parameters defining boss
#define SIZE 50.0f
#define DEVIL_HOOF_RADIUS 0.25f*SIZE
#define DEVIL_HIT_HOOF_OFFSET FLOAT3D(-0.149021f, 0.084463f, -0.294425f)*SIZE
#define DEVIL_WALK_HOOF_RIGHT_OFFSET FLOAT3D(0.374725f, 0.0776713f, 0.0754253f)*SIZE
#define DEVIL_WALK_HOOF_LEFT_OFFSET FLOAT3D(-0.402306f, 0.0864595f, 0.292397f)*SIZE
#define ATT_PROJECTILE_GUN (FLOAT3D(-0.703544f, 1.12582f, -0.329834f)*SIZE)
#define ATT_LASER (FLOAT3D(0.63626f, 1.13841f, -0.033062f)*SIZE)
#define ATT_ELECTRICITYGUN (FLOAT3D(-0.764868f, 1.27992f, -0.311084f)*SIZE)
#define ATT_ROCKETLAUNCHER (FLOAT3D(0.654788f, 1.30318f, -0.259358f)*SIZE)
#define MAGIC_PROJECTILE_EXIT (FLOAT3D(0.035866f, 1.400f, -0.792264f)*SIZE)
#define ELECTROGUN_PIPE (FLOAT3D(-0.00423616f, -0.0216781f, -0.506613f)*SIZE)
#define LASER_PIPE (FLOAT3D(0.0172566f, -0.123152f, -0.232228f)*SIZE)
#define PROJECTILEGUN_PIPE (FLOAT3D(0.0359023f, -0.000490744f, -0.394403f)*SIZE)
#define ROCKETLAUNCHER_PIPE (FLOAT3D(4.68194e-005f, 0.0483391f, -0.475134f)*SIZE)
#define HEALTH_MULTIPLIER 1.0f
#define BOSS_HEALTH (40000.0f*HEALTH_MULTIPLIER)
#define HEALTH_IMPULSE (10000.0f*HEALTH_MULTIPLIER)
#define HEALTH_CLASS_1 (5000*HEALTH_MULTIPLIER)
#define HEALTH_CLASS_2 (7500*HEALTH_MULTIPLIER)
#define HEALTH_CLASS_3 (10000*HEALTH_MULTIPLIER)
#define HEALTH_CLASS_4 (15000*HEALTH_MULTIPLIER)
#define CLASS_2_CANNON_FACTOR 0.75f
#define CLASS_3_ROCKETLAUNCHER_FACTOR 0.75f
#define CLASS_4_ROCKETLAUNCHER_FACTOR 0.25f
#define TM_HEALTH_IMPULSE 4.0f
// info structure
static EntityInfo eiDevil = {
EIBT_FLESH, 50000.0f,
0.0f, 2.0f*SIZE, 0.0f,
0.0f, 1.4f*SIZE, 0.0f,
};
void CDevil::SetDefaultProperties(void) {
m_iAttID = 0;
m_fDeltaWeaponPitch = 0.0f;
m_fDeltaWeaponHdg = 0.0f;
m_fFireTime = 0.0f;
m_aoLightAnimation.SetData(NULL);
m_penAction = NULL;
m_iFiredProjectiles = 0;
m_iToFireProjectiles = 0;
m_fPauseStretcher = 0;
m_tmLastPause = 0.0f;
m_dsDevilState = DS_NOT_EXISTING ;
m_tmLastAngry = -1.0f;
m_plTeleport = CPlacement3D(FLOAT3D (0 , 0 , 0) , ANGLE3D (0 , 0 , 0));
m_tmTemp = 0;
m_dsLastDevilState = DS_REGENERATION_IMPULSE ;
m_dapAttackPower = DAP_PLAYER_HUNT ;
m_dapLastAttackPower = DAP_NOT_ATTACKING ;
m_bHasUpperWeapons = FALSE ;
m_vElectricitySource = FLOAT3D(0 , 0 , 0);
m_vElectricityTarget = FLOAT3D(0 , 0 , 0);
m_bRenderElectricity = FALSE ;
m_fAdjustWeaponTime = 0.0f;
m_bWasOnceInMainLoop = FALSE ;
m_tmHitBySpaceShipBeam = -1;
m_soLeft.SetOwner(this);
m_soLeft.Stop_internal();
m_soRight.SetOwner(this);
m_soRight.Stop_internal();
m_fLastWalkTime = -1.0f;
m_tmFireBreathStart = UpperLimit(0.0f);
m_tmFireBreathStop = 0.0f;
m_vFireBreathSource = FLOAT3D(0 , 0 , 0);
m_vFireBreathTarget = FLOAT3D(0 , 0 , 0);
m_tmRegenerationStart = UpperLimit(0.0f);
m_tmRegenerationStop = 0.0f;
m_tmNextFXTime = 0.0f;
m_iNextChannel = 0;
m_soWeapon0.SetOwner(this);
m_soWeapon0.Stop_internal();
m_soWeapon1.SetOwner(this);
m_soWeapon1.Stop_internal();
m_soWeapon2.SetOwner(this);
m_soWeapon2.Stop_internal();
m_soWeapon3.SetOwner(this);
m_soWeapon3.Stop_internal();
m_soWeapon4.SetOwner(this);
m_soWeapon4.Stop_internal();
m_iAngryAnim = 0;
m_iAngrySound = 0;
m_tmDeathTime = -1.0f;
m_iLastCurrentAnim = -1;
m_iLastScheduledAnim = -1;
m_dsPreRegenerationDevilState = DS_ENEMY ;
m_soClimb.SetOwner(this);
m_soClimb.Stop_internal();
m_soGrabLowerWeapons.SetOwner(this);
m_soGrabLowerWeapons.Stop_internal();
m_soGrabUpperWeapons.SetOwner(this);
m_soGrabUpperWeapons.Stop_internal();
m_soJumpIntoPyramid.SetOwner(this);
m_soJumpIntoPyramid.Stop_internal();
m_bForMPIntro = FALSE ;
CEnemyBase::SetDefaultProperties();
}
CTString CDevil::GetPlayerKillDescription(const CTString & strPlayerName,const EDeath & eDeath)
#line 241 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 242 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString str ;
#line 243 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
str . PrintF (TRANS ("Ugh Zan killed %s") , strPlayerName );
#line 244 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return str ;
#line 245 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 247 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::Precache(void) {
#line 248 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEnemyBase :: Precache ();
#line 250 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheModel (MODEL_DEVIL );
#line 251 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheTexture (TEXTURE_DEVIL );
#line 254 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheModel (MODEL_LASER );
#line 255 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheTexture (TEXTURE_LASER );
#line 258 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheModel (MODEL_ROCKETLAUNCHER );
#line 259 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheTexture (TEXTURE_ROCKETLAUNCHER );
#line 262 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheModel (MODEL_ELECTRICITYGUN );
#line 263 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheTexture (TEXTURE_ELECTRICITYGUN );
#line 266 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheModel (MODEL_PROJECTILEGUN );
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheTexture (TEXTURE_PROJECTILEGUN );
#line 270 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheClass (CLASS_PROJECTILE , PRT_LAVAMAN_BIG_BOMB );
#line 271 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheClass (CLASS_PROJECTILE , PRT_DEVIL_GUIDED_PROJECTILE );
#line 272 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheClass (CLASS_PROJECTILE , PRT_DEVIL_LASER );
#line 273 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheClass (CLASS_PROJECTILE , PRT_DEVIL_ROCKET );
#line 276 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ANGER01 );
#line 277 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ANGER02 );
#line 278 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ATTACKCLOSE );
#line 279 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_CELEBRATE01 );
#line 280 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_DEATH );
#line 281 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_DRAW_LOWER_WEAPONS );
#line 282 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_DRAW_UPPER_WEAPONS );
#line 283 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_GETUP );
#line 284 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_IDLE );
#line 285 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_PUNCH );
#line 286 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_SMASH );
#line 287 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_WALK_LEFT );
#line 288 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_WALK_RIGHT );
#line 289 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_WOUND );
#line 290 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ATTACK_BREATH_START );
#line 291 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ATTACK_BREATH_FIRE );
#line 292 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ATTACK_BREATH_END );
#line 293 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_HEAL );
#line 294 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ROCKETLAUNCHER );
#line 295 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_LASER );
#line 296 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_LAVABOMB );
#line 297 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_GHOSTBUSTER );
#line 298 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_ATTACK_BREATH_LOOP );
#line 299 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_CLIMB );
#line 300 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_DEATHPARTICLES );
#line 301 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrecacheSound (SOUND_DISAPPEAR );
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 305 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
BOOL CDevil::IsTargetValid(SLONG slPropertyOffset,CEntity * penTarget)
#line 306 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 307 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(penTarget == NULL )
#line 308 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 309 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return FALSE ;
#line 310 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 311 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return (IsDerivedFromClass (penTarget , "Devil Marker"));
#line 312 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 315 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::Read_t(CTStream * istr) {
#line 316 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEnemyBase :: Read_t (istr );
#line 319 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetupLightSource ();
#line 320 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 323 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CLightSource * CDevil::GetLightSource(void) {
#line 324 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! IsPredictor ()){
#line 325 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return & m_lsLightSource ;
#line 326 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}else {
#line 327 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return NULL ;
#line 328 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 329 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::SetupLightSource(void) {
#line 334 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CLightSource lsNew ;
#line 335 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_ulFlags = LSF_NONPERSISTENT | LSF_DYNAMIC ;
#line 336 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_rHotSpot = 2.0f;
#line 337 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_rFallOff = 8.0f;
#line 338 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_colColor = RGBToColor (128 , 128 , 128);
#line 339 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_plftLensFlare = NULL ;
#line 340 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_ubPolygonalMask = 0;
#line 341 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
lsNew . ls_paoLightAnimation = & m_aoLightAnimation ;
#line 343 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_lsLightSource . ls_penEntity = this ;
#line 344 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_lsLightSource . SetLightSource (lsNew );
#line 345 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::PlayLightAnim(INDEX iAnim,ULONG ulFlags) {
#line 348 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_aoLightAnimation . GetData () != NULL ){
#line 349 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_aoLightAnimation . PlayAnim (iAnim , ulFlags );
#line 350 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 351 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 355 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void * CDevil::GetEntityInfo(void) {
#line 356 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return & eiDevil ;
#line 357 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 359 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
BOOL CDevil::ForcesCannonballToExplode(void)
#line 360 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 361 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE ;
#line 362 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 364 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::SetSpeedsToDesiredPosition(const FLOAT3D & vPosDelta,FLOAT fPosDist,BOOL bGoingToPlayer)
#line 365 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 366 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_penEnemy != NULL )
#line 367 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 368 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fEnemyDistance = CalcDist (m_penEnemy );
#line 369 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fRadius1 = 75.0f;
#line 370 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fRadius2 = 200.0f;
#line 371 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fSpeedRadius1 = 6.0f;
#line 372 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fSpeedRadius2 = 14.0f;
#line 374 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fDistanceRatio = CalculateRatio (fEnemyDistance , fRadius1 , fRadius2 , 1 , 0);
#line 375 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(fEnemyDistance >= fRadius2 )
#line 376 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 377 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fDistanceRatio = 1.0f;
#line 378 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 379 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRunSpeed = fSpeedRadius1 + fDistanceRatio * (fSpeedRadius2 - fSpeedRadius1 );
#line 380 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fCloseRunSpeed = m_fAttackRunSpeed ;
#line 381 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 382 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 383 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Enm dist:%g, Speed=%g\n" , fEnemyDistance , m_fAttackRunSpeed );
#line 384 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 385 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 386 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEnemyBase :: SetSpeedsToDesiredPosition (vPosDelta , fPosDist , bGoingToPlayer );
#line 387 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 389 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT CDevil::GetCrushHealth(void)
#line 390 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 391 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return 1000.0f;
#line 392 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 394 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::SelectRandomAnger(void)
#line 395 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 396 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(IRnd () % 2){
#line 397 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAngryAnim = DEVIL_ANIM_ANGER01 ;
#line 398 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAngrySound = SOUND_ANGER01 ;
#line 399 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}else {
#line 400 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAngryAnim = DEVIL_ANIM_ANGER02 ;
#line 401 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAngrySound = SOUND_ANGER02 ;
#line 402 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 403 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
FLOAT CDevil::GetLockRotationSpeed(void)
#line 406 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 407 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return m_aAttackRotateSpeed * 4;
#line 408 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 410 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::ShakeItBaby(FLOAT tmShaketime,FLOAT fPower)
#line 411 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 412 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CWorldSettingsController * pwsc = GetWSC (this );
#line 413 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(pwsc != NULL ){
#line 414 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeStarted = tmShaketime ;
#line 415 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_vShakePos = GetPlacement () . pl_PositionVector ;
#line 416 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeFalloff = 400.0f;
#line 417 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeFade = 3.0f;
#line 419 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeIntensityZ = 0.0f;
#line 420 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeFrequencyZ = 5.0f;
#line 421 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeIntensityY = 0.1f * fPower ;
#line 422 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeFrequencyY = 5.0f;
#line 423 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeIntensityB = 2.5f * fPower ;
#line 424 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeFrequencyB = 7.2f;
#line 426 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_bShakeFadeIn = FALSE ;
#line 427 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 428 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 430 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::ShakeItFarBaby(FLOAT tmShaketime,FLOAT fPower)
#line 431 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 432 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CWorldSettingsController * pwsc = GetWSC (this );
#line 433 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(pwsc != NULL ){
#line 434 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeStarted = tmShaketime ;
#line 435 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_vShakePos = GetPlacement () . pl_PositionVector ;
#line 436 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeFalloff = 2048.0f;
#line 437 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeFade = 2.0f;
#line 439 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeIntensityZ = 0.0f;
#line 440 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeFrequencyZ = 5.0f;
#line 441 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeIntensityY = 0.1f * fPower ;
#line 442 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeFrequencyY = 5.0f;
#line 443 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fShakeIntensityB = 2.5f * fPower ;
#line 444 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmShakeFrequencyB = 7.2f;
#line 446 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_bShakeFadeIn = FALSE ;
#line 447 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 448 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 450 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::InflictHoofDamage(FLOAT3D vOffset)
#line 451 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 453 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vFootRel = vOffset ;
#line 454 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vFootAbs = vFootRel * GetRotationMatrix () + GetPlacement () . pl_PositionVector ;
#line 455 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InflictRangeDamage (this , DMT_IMPACT , 1000.0f , vFootAbs , DEVIL_HOOF_RADIUS , DEVIL_HOOF_RADIUS );
#line 456 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 458 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::ApplyFootQuake(void)
#line 459 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 460 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CModelObject & mo = * GetModelObject ();
#line 461 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TIME tmNow = _pTimer -> CurrentTick ();
#line 462 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmAnim = - 1;
#line 463 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmWalkLen = mo . GetAnimLength (DEVIL_ANIM_WALK );
#line 464 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmLeftFootOffset = 0.4f;
#line 465 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmRightFootOffset = 2.05f;
#line 468 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(mo . ao_iLastAnim == DEVIL_ANIM_WALK && mo . ao_tmAnimStart > tmNow )
#line 469 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 471 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmAnim = mo . ao_tmAnimStart - tmWalkLen ;
#line 472 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 473 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(mo . ao_iCurrentAnim == DEVIL_ANIM_WALK && mo . ao_tmAnimStart <= tmNow )
#line 474 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 475 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmAnim = mo . ao_tmAnimStart ;
#line 476 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 478 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(mo . ao_iLastAnim == DEVIL_ANIM_FROMWALKTOIDLE && mo . ao_tmAnimStart > tmNow )
#line 479 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 481 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmAnim = mo . ao_tmAnimStart - tmWalkLen ;
#line 482 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmLeftFootOffset = 0.6f;
#line 483 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmRightFootOffset = 1.7f;
#line 484 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 485 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(mo . ao_iCurrentAnim == DEVIL_ANIM_FROMWALKTOIDLE && mo . ao_tmAnimStart <= tmNow )
#line 486 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 487 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmAnim = mo . ao_tmAnimStart ;
#line 488 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmLeftFootOffset = 0.6f;
#line 489 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
tmRightFootOffset = 1.7f;
#line 490 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 493 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(tmAnim != - 1)
#line 494 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 495 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmAnimLast = tmAnim + INDEX ((tmNow - tmAnim ) / tmWalkLen ) * tmWalkLen ;
#line 496 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmLeftFootDown = tmAnimLast + tmLeftFootOffset ;
#line 497 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmRightFootDown = tmAnimLast + tmRightFootOffset ;
#line 498 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CWorldSettingsController * pwsc = GetWSC (this );
#line 499 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(pwsc != NULL )
#line 500 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 501 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(tmNow >= tmRightFootDown && pwsc -> m_tmShakeStarted < tmRightFootDown - 0.1f)
#line 502 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 504 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InflictHoofDamage (DEVIL_WALK_HOOF_LEFT_OFFSET );
#line 506 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShakeItBaby (tmRightFootDown , 1.0f);
#line 507 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soRight , SOUND_WALK_RIGHT , SOF_3D );
#line 508 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 509 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(tmNow >= tmLeftFootDown && pwsc -> m_tmShakeStarted < tmLeftFootDown - 0.1f)
#line 510 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 512 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InflictHoofDamage (DEVIL_WALK_HOOF_RIGHT_OFFSET );
#line 514 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShakeItBaby (tmLeftFootDown , 1.0f);
#line 515 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soLeft , SOUND_WALK_LEFT , SOF_3D );
#line 516 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 517 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 518 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 519 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 521 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StopFireBreathParticles(void)
#line 522 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 523 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmFireBreathStop = _pTimer -> CurrentTick ();
#line 524 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 526 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StopRegenerationParticles(void)
#line 527 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 528 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmRegenerationStop = _pTimer -> CurrentTick ();
#line 529 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 531 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::TurnOnPhysics(void)
#line 532 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 533 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetPhysicsFlags (EPF_MODEL_WALKING );
#line 534 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetCollisionFlags (ECF_MODEL );
#line 535 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 537 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::TurnOffPhysics(void)
#line 538 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 539 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetPhysicsFlags (EPF_MODEL_WALKING & ~ EPF_TRANSLATEDBYGRAVITY );
#line 540 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetCollisionFlags (((ECBI_MODEL ) << ECB_TEST ) | ((ECBI_MODEL ) << ECB_PASS ) | ((ECBI_ITEM ) << ECB_IS ));
#line 541 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 544 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::RenderParticles(void)
#line 545 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 546 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_bRenderElectricity )
#line 547 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 549 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Particles_Ghostbuster (m_vElectricitySource , m_vElectricityTarget , 24 , 2.0f , 2.0f , 96.0f);
#line 550 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 553 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(_pTimer -> CurrentTick () > m_tmFireBreathStart )
#line 554 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 556 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX ctRendered = Particles_FireBreath (this , m_vFireBreathSource , m_vFireBreathTarget ,
#line 557 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmFireBreathStart , m_tmFireBreathStop );
#line 559 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(_pTimer -> CurrentTick () > m_tmFireBreathStop && ctRendered == 0)
#line 560 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 561 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmFireBreathStart = UpperLimit (0.0f);
#line 562 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 563 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 566 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(_pTimer -> CurrentTick () > m_tmRegenerationStart )
#line 567 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 569 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX ctRendered = Particles_Regeneration (this , m_tmRegenerationStart , m_tmRegenerationStop , 1.0f , FALSE );
#line 571 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(_pTimer -> CurrentTick () > m_tmRegenerationStop && ctRendered == 0)
#line 572 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 573 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmRegenerationStart = UpperLimit (0.0f);
#line 574 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 575 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 578 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_tmDeathTime != - 1.0f && _pTimer -> CurrentTick () > m_tmDeathTime && _pTimer -> CurrentTick () < m_tmDeathTime + 4.0f)
#line 579 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 580 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX ctRendered = Particles_Regeneration (this , m_tmDeathTime , m_tmDeathTime + 2.0f , 0.25f , TRUE );
#line 581 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 583 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEnemyBase :: RenderParticles ();
#line 584 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 586 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D CDevil::GetWeaponPositionRelative(void)
#line 587 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 588 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 589 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vAttachment = FLOAT3D (0 , 0 , 0);
#line 590 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
switch(m_iAttID )
#line 591 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 592 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_LASER :
#line 593 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_LASER ;
#line 594 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 595 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_PROJECTILEGUN :
#line 596 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_PROJECTILE_GUN ;
#line 597 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 598 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_ELETRICITYGUN :
#line 599 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_ELECTRICITYGUN ;
#line 600 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 601 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_ROCKETLAUNCHER :
#line 602 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_ROCKETLAUNCHER ;
#line 603 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 604 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
default :
#line 605 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ASSERTALWAYS ("Invalid attachment ID");
#line 606 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 607 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return (vAttachment );
#line 608 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 610 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D CDevil::GetWeaponPositionAbsolute(void)
#line 611 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 612 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return GetPlacement () . pl_PositionVector + GetWeaponPositionRelative () * GetRotationMatrix ();
#line 613 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 615 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D CDevil::GetFireingPositionRelative(void)
#line 616 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 617 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 618 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vWeaponPipe = FLOAT3D (0 , 0 , 0);
#line 619 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vAttachment = FLOAT3D (0 , 0 , 0);
#line 620 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
switch(m_iAttID )
#line 621 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 622 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_LASER :
#line 623 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vWeaponPipe = LASER_PIPE ;
#line 624 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_LASER ;
#line 625 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 626 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_PROJECTILEGUN :
#line 627 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vWeaponPipe = PROJECTILEGUN_PIPE ;
#line 628 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_PROJECTILE_GUN ;
#line 629 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 630 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_ELETRICITYGUN :
#line 631 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vWeaponPipe = ELECTROGUN_PIPE ;
#line 632 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_ELECTRICITYGUN ;
#line 633 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 634 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DEVIL_ATTACHMENT_ROCKETLAUNCHER :
#line 635 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vWeaponPipe = ROCKETLAUNCHER_PIPE ;
#line 636 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vAttachment = ATT_ROCKETLAUNCHER ;
#line 637 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 638 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
default :
#line 639 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ASSERTALWAYS ("Invalid attachment ID");
#line 640 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 643 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOATmatrix3D mWpn ;
#line 644 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MakeRotationMatrixFast (mWpn , amo . amo_plRelative . pl_OrientationAngle );
#line 645 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return (vAttachment + vWeaponPipe * mWpn );
#line 646 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 648 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D CDevil::GetFireingPositionAbsolute(void)
#line 649 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 650 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return GetPlacement () . pl_PositionVector + GetFireingPositionRelative () * GetRotationMatrix ();
#line 651 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 663 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::ApplyTickRegeneration(void)
#line 664 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 665 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bKillFinalBoss && GetSP () -> sp_bSinglePlayer )
#line 666 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 667 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
cht_bKillFinalBoss = FALSE ;
#line 668 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetHealth (- 1);
#line 669 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return ;
#line 670 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 672 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dsDevilState == DS_REGENERATION_IMPULSE ||
#line 673 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetHealth () <= 0 || GetHealth () >= HEALTH_CLASS_4 ||
#line 674 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
_pTimer -> CurrentTick () < m_tmHitBySpaceShipBeam + 0.5f)
#line 675 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 676 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return ;
#line 677 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 679 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fDmgRocketsPerTick = 1800.0f / 10.0f * _pTimer -> TickQuantum ;
#line 680 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fDmgCannonsPerTick = 2959.0f / 10.0f * _pTimer -> TickQuantum ;
#line 681 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fRegeneration = 0.0f;
#line 683 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetHealth () < HEALTH_CLASS_1 )
#line 684 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 685 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SendEvent (ERegenerationImpuls ());
#line 686 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 687 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(GetHealth () < HEALTH_CLASS_2 )
#line 688 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 689 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fRegeneration = fDmgCannonsPerTick * CLASS_2_CANNON_FACTOR ;
#line 690 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 691 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(GetHealth () < HEALTH_CLASS_3 )
#line 692 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 693 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fRegeneration = fDmgRocketsPerTick * CLASS_3_ROCKETLAUNCHER_FACTOR ;
#line 694 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 695 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(GetHealth () < HEALTH_CLASS_4 )
#line 696 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 697 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fRegeneration = fDmgRocketsPerTick * CLASS_4_ROCKETLAUNCHER_FACTOR ;
#line 698 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 700 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetHealth (GetHealth () + fRegeneration );
#line 701 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 704 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::PostMoving(void)
#line 705 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 706 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ApplyFootQuake ();
#line 707 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEnemyBase :: PostMoving ();
#line 709 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
en_ulFlags &= ~ ENF_INRENDERING ;
#line 710 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ApplyTickRegeneration ();
#line 711 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 714 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::ReceiveDamage(CEntity * penInflictor,enum DamageType dmtType,
#line 715 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fDamageAmmount,const FLOAT3D & vHitPoint,const FLOAT3D & vDirection)
#line 716 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 718 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(dmtType == DMT_TELEPORT )
#line 719 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 720 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return ;
#line 721 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 723 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! (m_dsDevilState == DS_ENEMY || m_dsDevilState == DS_PYRAMID_FIGHT ) || penInflictor == this )
#line 724 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 725 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return ;
#line 726 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 728 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dsDevilState != DS_PYRAMID_FIGHT )
#line 729 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 730 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetHealth () < 1000.0f)
#line 731 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 732 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return ;
#line 733 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 734 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fDamageAmmount = ClampUp (fDamageAmmount , GetHealth () / 2.0f);
#line 735 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 737 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEnemyBase :: ReceiveDamage (penInflictor , dmtType , fDamageAmmount , vHitPoint , vDirection );
#line 738 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 740 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
BOOL CDevil::AdjustShadingParameters(FLOAT3D & vLightDirection,COLOR & colLight,COLOR & colAmbient)
#line 741 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 742 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 743 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 745 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dsDevilState != m_dsLastDevilState )
#line 746 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 747 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsLastDevilState = m_dsDevilState ;
#line 748 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strDevilState = DevilState_enum . NameForValue (INDEX (m_dsDevilState ));
#line 749 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("New devil state: %s\n" , strDevilState );
#line 750 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 753 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dapAttackPower != m_dapLastAttackPower )
#line 754 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 755 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dapLastAttackPower = m_dapAttackPower ;
#line 756 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strAttackPower = DevilAttackPower_enum . NameForValue (INDEX (m_dapAttackPower ));
#line 757 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("New attack power: %s\n" , strAttackPower );
#line 758 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 761 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if((vLastStartPosition != m_vStartPosition ) ||
#line 762 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
(vLastAttackRadius != m_fAttackRadius ))
#line 763 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 764 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vLastStartPosition = m_vStartPosition ;
#line 765 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vLastAttackRadius = m_fAttackRadius ;
#line 766 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Coordinate of attack (%g, %g, %g), Radius of attack: %g\n" ,
#line 767 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vStartPosition (1) , m_vStartPosition (2) , m_vStartPosition (3) ,
#line 768 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRadius );
#line 769 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 770 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 772 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBossAnimations )
#line 773 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 774 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TIME tmNow = _pTimer -> CurrentTick ();
#line 775 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CModelObject & mo = * GetModelObject ();
#line 777 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX iCurrentAnim , iScheduledAnim ;
#line 778 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(mo . ao_tmAnimStart > tmNow )
#line 779 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 780 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
iCurrentAnim = mo . ao_iLastAnim ;
#line 781 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
iScheduledAnim = mo . ao_iCurrentAnim ;
#line 782 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 783 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else
#line 784 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 785 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
iCurrentAnim = mo . ao_iCurrentAnim ;
#line 786 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
iScheduledAnim = - 1;
#line 787 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 789 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(iCurrentAnim != m_iLastCurrentAnim || iScheduledAnim != m_iLastScheduledAnim )
#line 790 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 791 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAnimData * pad = mo . GetData ();
#line 792 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAnimInfo aiCurrent ;
#line 793 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
mo . GetAnimInfo (iCurrentAnim , aiCurrent );
#line 794 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strCurrentAnimName = aiCurrent . ai_AnimName ;
#line 796 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strScheduledAnimName = ".....";
#line 797 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(iScheduledAnim != - 1)
#line 798 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 799 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAnimInfo aiScheduled ;
#line 800 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
mo . GetAnimInfo (iScheduledAnim , aiScheduled );
#line 801 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
strScheduledAnimName = aiScheduled . ai_AnimName ;
#line 802 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 803 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Time: %-10g %20s, %s\n" ,
#line 804 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
_pTimer -> GetLerpedCurrentTick () , strCurrentAnimName , strScheduledAnimName );
#line 805 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 806 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iLastCurrentAnim = iCurrentAnim ;
#line 807 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iLastScheduledAnim = iScheduledAnim ;
#line 808 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 810 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDumpFinalBossData )
#line 811 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 812 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
cht_bDumpFinalBossData = FALSE ;
#line 814 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("\n\n\n\n\n\n\n");
#line 815 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Devil class data ...................\n");
#line 816 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("\n\n");
#line 818 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strAttackPower = DevilAttackPower_enum . NameForValue (INDEX (m_dapAttackPower ));
#line 819 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Attack power: %s\n" , strAttackPower );
#line 820 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strDevilState = DevilState_enum . NameForValue (INDEX (m_dsDevilState ));
#line 821 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Devil state: %s\n" , strDevilState );
#line 823 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fFireTime = %g\n" , m_fFireTime );
#line 824 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_iFiredProjectiles = %d\n" , m_iFiredProjectiles );
#line 825 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_iToFireProjectiles = %d\n" , m_iToFireProjectiles );
#line 826 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmLastPause = %g\n" , m_tmLastPause );
#line 827 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fPauseStretcher = %g\n" , m_fPauseStretcher );
#line 828 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmLastAngry = %g\n" , m_tmLastAngry );
#line 829 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_bHasUpperWeapons = %d\n" , m_bHasUpperWeapons );
#line 830 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fAdjustWeaponTime = %g\n" , m_fAdjustWeaponTime );
#line 831 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_bWasOnceInMainLoop = %d\n" , m_bWasOnceInMainLoop );
#line 832 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmHitBySpaceShipBeam = %g\n" , m_tmHitBySpaceShipBeam );
#line 833 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fLastWalkTime = %g\n" , m_fLastWalkTime );
#line 834 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmFireBreathStart = %g\n" , m_tmFireBreathStart );
#line 835 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmFireBreathStop = %g\n" , m_tmFireBreathStop );
#line 836 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmRegenerationStart = %g\n" , m_tmRegenerationStart );
#line 837 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmRegenerationStop = %g\n" , m_tmRegenerationStop );
#line 838 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmNextFXTime = %g\n" , m_tmNextFXTime );
#line 839 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmDeathTime = %g\n" , m_tmDeathTime );
#line 840 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Health = %g\n" , GetHealth ());
#line 842 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("\n\n\n\n\n\n\n");
#line 843 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Enemy base data ...................\n");
#line 844 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("\n\n");
#line 846 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_ttTarget (type): %d\n" , INDEX (m_ttTarget ));
#line 848 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_penWatcher %x\n" , m_penWatcher );
#line 849 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strEnemyName = "Null ptr, no name";
#line 850 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_penEnemy != NULL )
#line 851 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 852 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
strEnemyName = m_penEnemy -> GetName ();
#line 853 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 854 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_penEnemy %x, enemy name: %s\n" , m_penEnemy , strEnemyName );
#line 856 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_vStartPosition (%g, %g, %g)\n" , m_vStartPosition (1) , m_vStartPosition (2) , m_vStartPosition (3));
#line 857 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_vStartDirection (%g, %g, %g)\n" , m_vStartDirection (1) , m_vStartDirection (2) , m_vStartDirection (3));
#line 858 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_bOnStartPosition = %d\n" , m_bOnStartPosition );
#line 859 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fFallHeight = %g\n" , m_fFallHeight );
#line 860 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fStepHeight = %g\n" , m_fStepHeight );
#line 861 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fSenseRange = %g\n" , m_fSenseRange );
#line 862 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fViewAngle = %g\n" , m_fViewAngle );
#line 864 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fWalkSpeed = %g\n" , m_fWalkSpeed );
#line 865 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_aWalkRotateSpeed = %g\n" , m_aWalkRotateSpeed );
#line 866 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fAttackRunSpeed = %g\n" , m_fAttackRunSpeed );
#line 867 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_aAttackRotateSpeed = %g\n" , m_aAttackRotateSpeed );
#line 868 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fCloseRunSpeed = %g\n" , m_fCloseRunSpeed );
#line 869 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_aCloseRotateSpeed = %g\n" , m_aCloseRotateSpeed );
#line 870 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fAttackDistance = %g\n" , m_fAttackDistance );
#line 871 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fCloseDistance = %g\n" , m_fCloseDistance );
#line 872 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fAttackFireTime = %g\n" , m_fAttackFireTime );
#line 873 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fCloseFireTime = %g\n" , m_fCloseFireTime );
#line 874 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fStopDistance = %g\n" , m_fStopDistance );
#line 875 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fIgnoreRange = %g\n" , m_fIgnoreRange );
#line 876 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fLockOnEnemyTime = %g\n" , m_fLockOnEnemyTime );
#line 878 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fMoveTime = %g\n" , m_fMoveTime );
#line 879 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_vDesiredPosition (%g, %g, %g)\n" , m_vDesiredPosition (1) , m_vDesiredPosition (2) , m_vDesiredPosition (3));
#line 881 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strDestinationType = DestinationType_enum . NameForValue (INDEX (m_dtDestination ));
#line 882 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_dtDestination: %s\n" , strDestinationType );
#line 883 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_penPathMarker %x\n" , m_penPathMarker );
#line 885 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_vPlayerSpotted (%g, %g, %g)\n" , m_vPlayerSpotted (1) , m_vPlayerSpotted (2) , m_vPlayerSpotted (3));
#line 886 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fMoveFrequency = %g\n" , m_fMoveFrequency );
#line 887 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fMoveSpeed = %g\n" , m_fMoveSpeed );
#line 888 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_aRotateSpeed = %g\n" , m_aRotateSpeed );
#line 889 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fLockStartTime = %g\n" , m_fLockStartTime );
#line 890 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fRangeLast = %g\n" , m_fRangeLast );
#line 891 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fShootTime = %g\n" , m_fShootTime );
#line 892 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fAttackRadius = %g\n" , m_fAttackRadius );
#line 893 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmGiveUp = %g\n" , m_tmGiveUp );
#line 894 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fActivityRange = %g\n" , m_fActivityRange );
#line 896 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strMarkerName = "Null ptr, no name";
#line 897 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_penMarker != NULL )
#line 898 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 899 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
strMarkerName = m_penMarker -> GetName ();
#line 900 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 901 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_penMarker %x, marker name: %s\n" , m_penMarker , strMarkerName );
#line 903 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strMainMusicHolderName = "Null ptr, no name";
#line 904 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_penMainMusicHolder != NULL )
#line 905 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 906 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
strMainMusicHolderName = m_penMainMusicHolder -> GetName ();
#line 907 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 908 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_penMainMusicHolder %x, MainMusicHolder name: %s\n" , m_penMainMusicHolder , strMainMusicHolderName );
#line 909 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmLastFussTime = %g\n" , m_tmLastFussTime );
#line 910 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_iScore = %d\n" , m_iScore );
#line 911 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fMaxHealth = %g\n" , m_fMaxHealth );
#line 912 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_bBoss = %d\n" , m_bBoss );
#line 913 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fSpiritStartTime = %g\n" , m_fSpiritStartTime );
#line 914 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_tmSpraySpawned = %g\n" , m_tmSpraySpawned );
#line 915 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fSprayDamage = %g\n" , m_fSprayDamage );
#line 916 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("m_fMaxDamageAmmount = %g\n" , m_fMaxDamageAmmount );
#line 917 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 919 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vLightDirection = FLOAT3D (0.0f , 270.0f , 0.0f);
#line 920 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
colAmbient = RGBToColor (32 , 32 , 32);
#line 921 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
colLight = RGBToColor (255 , 235 , 145);
#line 923 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return CMovableModelEntity :: AdjustShadingParameters (vLightDirection , colLight , colAmbient );
#line 925 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 928 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX CDevil::AnimForDamage(FLOAT fDamage) {
#line 929 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_WOUNDLOOP , 0);
#line 930 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return DEVIL_ANIM_WOUNDLOOP ;
#line 931 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 934 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX CDevil::AnimForDeath(void) {
#line 935 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_DEATH , 0);
#line 936 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return DEVIL_ANIM_DEATH ;
#line 937 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 939 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::DeathNotify(void) {
#line 940 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopFireBreathParticles ();
#line 941 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopRegenerationParticles ();
#line 942 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 945 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StandingAnim(void) {
#line 946 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_IDLE , AOF_SMOOTHCHANGE | AOF_LOOPING | AOF_NORESTART );
#line 947 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 949 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::WalkingAnim(void) {
#line 950 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! m_bForMPIntro )
#line 951 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 952 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CModelObject & mo = * GetModelObject ();
#line 953 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX iAnim = mo . GetAnim ();
#line 954 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(iAnim == DEVIL_ANIM_WALK )
#line 955 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 957 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}else if(iAnim == DEVIL_ANIM_FROMIDLETOWALK ){
#line 958 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_WALK , AOF_LOOPING | AOF_SMOOTHCHANGE );
#line 959 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}else {
#line 960 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMIDLETOWALK , AOF_SMOOTHCHANGE );
#line 961 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 962 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 963 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 964 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::RunningAnim(void) {
#line 965 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkingAnim ();
#line 966 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 967 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::RotatingAnim(void) {
#line 968 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkingAnim ();
#line 969 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 972 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::IdleSound(void) {
#line 973 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_IDLE , SOF_3D );
#line 974 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 975 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::SightSound(void) {
#line 977 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 978 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::WoundSound(void) {
#line 979 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_WOUND , SOF_3D );
#line 980 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 981 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::DeathSound(void) {
#line 982 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_DEATH , SOF_3D | SOF_VOLUMETRIC );
#line 983 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 987 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StartFireLaser(void) {
#line 989 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_FIRE , AOF_LOOPING | SOF_3D );
#line 990 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 993 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::FireOneLaser(FLOAT fRatio,FLOAT fDeltaPitch)
#line 994 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 995 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayWeaponSound (SOUND_LASER );
#line 996 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vWpnPipeRel = GetFireingPositionRelative ();
#line 997 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vWpnPipeAbs = GetFireingPositionAbsolute ();
#line 999 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vTarget = m_penEnemy -> GetPlacement () . pl_PositionVector ;
#line 1000 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vSpeedDst = ((CMovableEntity &) * m_penEnemy ) . en_vCurrentTranslationAbsolute * fRatio ;
#line 1001 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fSpeedSrc = DEVIL_LASER_SPEED ;
#line 1002 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vDesiredPosition = CalculatePredictedPosition (vWpnPipeAbs , vTarget , fSpeedSrc ,
#line 1003 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vSpeedDst , GetPlacement () . pl_PositionVector (2));
#line 1005 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShootPredictedProjectile (PRT_DEVIL_LASER , m_vDesiredPosition , vWpnPipeRel , ANGLE3D (0 , fDeltaPitch , 0));
#line 1007 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_FIRE , AOF_LOOPING );
#line 1008 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1011 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StopFireLaser(void) {
#line 1012 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soSound . Stop ();
#line 1013 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_NONE , 0);
#line 1014 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1017 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StartFireRocket(void) {
#line 1019 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_FIRE , AOF_LOOPING );
#line 1020 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1022 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::PlayWeaponSound(ULONG idSound)
#line 1023 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1024 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CSoundObject & so = (& m_soWeapon0 ) [ m_iNextChannel ];
#line 1025 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iNextChannel = (m_iNextChannel + 1) % 5;
#line 1026 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (so , idSound , SOF_3D );
#line 1027 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1030 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::FireOneRocket(FLOAT fRatio)
#line 1031 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1032 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayWeaponSound (SOUND_ROCKETLAUNCHER );
#line 1033 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vWpnPipeRel = GetFireingPositionRelative ();
#line 1034 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vWpnPipeAbs = GetFireingPositionAbsolute ();
#line 1036 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vTarget = m_penEnemy -> GetPlacement () . pl_PositionVector ;
#line 1037 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vSpeedDst = ((CMovableEntity &) * m_penEnemy ) . en_vCurrentTranslationAbsolute * fRatio ;
#line 1038 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fSpeedSrc = DEVIL_ROCKET_SPEED ;
#line 1039 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vDesiredPosition = CalculatePredictedPosition (vWpnPipeAbs , vTarget , fSpeedSrc ,
#line 1040 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
vSpeedDst , GetPlacement () . pl_PositionVector (2));
#line 1042 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShootPredictedProjectile (PRT_DEVIL_ROCKET , m_vDesiredPosition , vWpnPipeRel , ANGLE3D (0 , 0 , 0));
#line 1044 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_FIRE , AOF_LOOPING );
#line 1047 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_FIRE , AOF_LOOPING );
#line 1048 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1051 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::StopFireRocket(void) {
#line 1052 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soSound . Stop ();
#line 1053 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_NONE , 0);
#line 1054 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1056 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::AddLowerWeapons(void)
#line 1057 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1059 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddAttachmentToModel (this , * GetModelObject () , DEVIL_ATTACHMENT_LASER , MODEL_LASER , TEXTURE_LASER , 0 , 0 , 0);
#line 1061 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddAttachmentToModel (this , * GetModelObject () , DEVIL_ATTACHMENT_PROJECTILEGUN , MODEL_PROJECTILEGUN , TEXTURE_PROJECTILEGUN , 0 , 0 , 0);
#line 1062 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> StretchModel (FLOAT3D (SIZE , SIZE , SIZE ));
#line 1063 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1065 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::AddUpperWeapons(void)
#line 1066 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1068 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddAttachmentToModel (this , * GetModelObject () , DEVIL_ATTACHMENT_ROCKETLAUNCHER , MODEL_ROCKETLAUNCHER , TEXTURE_ROCKETLAUNCHER , 0 , 0 , 0);
#line 1070 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddAttachmentToModel (this , * GetModelObject () , DEVIL_ATTACHMENT_ELETRICITYGUN , MODEL_ELECTRICITYGUN , TEXTURE_ELECTRICITYGUN , 0 , 0 , 0);
#line 1071 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> StretchModel (FLOAT3D (SIZE , SIZE , SIZE ));
#line 1072 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1074 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::RemoveWeapons(void)
#line 1075 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1077 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RemoveAttachmentFromModel (* GetModelObject () , DEVIL_ATTACHMENT_LASER );
#line 1078 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RemoveAttachmentFromModel (* GetModelObject () , DEVIL_ATTACHMENT_PROJECTILEGUN );
#line 1079 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RemoveAttachmentFromModel (* GetModelObject () , DEVIL_ATTACHMENT_ELETRICITYGUN );
#line 1080 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RemoveAttachmentFromModel (* GetModelObject () , DEVIL_ATTACHMENT_ROCKETLAUNCHER );
#line 1081 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1083 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
class CDevilMarker * CDevil::GetAction(void)
#line 1084 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1085 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CDevilMarker * penAction = (CDevilMarker *) (CEntity *) m_penAction ;
#line 1086 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ASSERT (penAction != NULL );
#line 1087 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return penAction ;
#line 1088 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1093 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
void CDevil::F_FirePredictedProjectile(void)
#line 1094 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1095 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayWeaponSound (SOUND_LAVABOMB );
#line 1096 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vFireingRel = GetFireingPositionRelative ();
#line 1097 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vFireingAbs = GetFireingPositionAbsolute ();
#line 1099 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vTarget = m_penEnemy -> GetPlacement () . pl_PositionVector ;
#line 1100 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vSpeedDest = ((CMovableEntity &) * m_penEnemy ) . en_vCurrentTranslationAbsolute ;
#line 1101 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fLaunchSpeed ;
#line 1102 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fRelativeHdg ;
#line 1105 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 1106 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fPitch = amo . amo_plRelative . pl_OrientationAngle (2);
#line 1109 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EntityInfo * peiTarget = (EntityInfo *) (m_penEnemy -> GetEntityInfo ());
#line 1110 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CalculateAngularLaunchParams (vFireingAbs , 0 , vTarget , vSpeedDest , fPitch , fLaunchSpeed , fRelativeHdg );
#line 1113 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vShootTarget ;
#line 1114 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetEntityInfoPosition (m_penEnemy , peiTarget -> vTargetCenter , vShootTarget );
#line 1116 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPlacement3D pl ;
#line 1117 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PrepareFreeFlyingProjectile (pl , vShootTarget , vFireingRel , ANGLE3D (fRelativeHdg , fPitch , 0));
#line 1118 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEntityPointer penProjectile = CreateEntity (pl , CLASS_PROJECTILE );
#line 1119 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ELaunchProjectile eLaunch ;
#line 1120 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eLaunch . penLauncher = this ;
#line 1121 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eLaunch . prtType = PRT_LAVAMAN_BIG_BOMB ;
#line 1122 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eLaunch . fSpeed = fLaunchSpeed ;
#line 1123 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
penProjectile -> Initialize (eLaunch );
#line 1124 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1127 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
BOOL CDevil::HandleEvent(const CEntityEvent & ee)
#line 1128 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1129 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(ee . ee_slEvent == EVENTCODE_EDevilCommand )
#line 1130 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1131 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EDevilCommand eDevilCommand = ((EDevilCommand &) ee );
#line 1132 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(eDevilCommand . dctType == DC_FORCE_ATTACK_RADIUS )
#line 1133 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1134 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRadius = eDevilCommand . fAttackRadius ;
#line 1135 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vStartPosition = eDevilCommand . vCenterOfAttack ;
#line 1136 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1137 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(eDevilCommand . dctType == DC_DECREASE_ATTACK_RADIUS )
#line 1138 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1139 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_fAttackRadius > 21.0f)
#line 1140 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1141 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRadius -= 20.0f;
#line 1142 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1143 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1144 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1146 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return CEnemyBase :: HandleEvent (ee );
#line 1147 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
BOOL CDevil::
#line 1154 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkTo(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_WalkTo
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::WalkTo expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1156 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0004, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0004_WalkTo_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0004
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0005, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0005_WalkTo_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0005
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1157 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkingAnim ();
#line 1158 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vDesiredPosition = GetAction () -> GetPlacement () . pl_PositionVector ;
#line 1160 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fMoveFrequency = 0.25f;
#line 1161 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fMoveSpeed = 15.0f;
#line 1162 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_aRotateSpeed = 60.0f;
#line 1163 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fMoveTime = _pTimer -> CurrentTick () + CalcDistanceInPlaneToDestination () / m_fMoveSpeed + 5.0f;
#line 1165 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c0008, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0008_WalkTo_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0008
if(!(CalcDistanceInPlaneToDestination () > m_fMoveSpeed * m_fMoveFrequency * 4.0f &&
#line 1166 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fMoveTime > _pTimer -> CurrentTick ())){ Jump(STATE_CURRENT,0x014c0009, FALSE, EInternal());return TRUE;}
#line 1168 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(m_fMoveFrequency );
Jump(STATE_CURRENT, 0x014c0006, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0006_WalkTo_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0006
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 1171 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ULONG ulFlags = SetDesiredMovement ();
#line 1172 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MovementAnimation (ulFlags );
#line 1173 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1174 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x014c0007, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 1176 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c0007_WalkTo_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0007
Jump(STATE_CURRENT,0x014c0008, FALSE, EInternal());return TRUE;
#line 1177 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c0009_WalkTo_06(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0009
#line 1179 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 1181 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1181 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1187 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
DestroyCity(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_DestroyCity
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::DestroyCity expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1189 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soSound . Set3DParameters (1000.0f , 500.0f , 3.0f , 1.0f);
#line 1191 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c0030, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0030_DestroyCity_38(const CEntityEvent &__eeInput)
#line 1192 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0030
if(!(TRUE )){ Jump(STATE_CURRENT,0x014c0031, FALSE, EInternal());return TRUE;}
#line 1193 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(GetAction () -> m_datType == DAT_RISE )){ Jump(STATE_CURRENT,0x014c002f, FALSE, EInternal());return TRUE;}
#line 1195 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_Rise, TRUE;
Jump(STATE_CURRENT, 0x014c000b, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c000b_DestroyCity_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c000b
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_Rise, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c000c, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c000c_DestroyCity_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c000c
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c002e, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c002f_DestroyCity_37(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c002f
if(!(GetAction () -> m_datType == DAT_ROAR )){ Jump(STATE_CURRENT,0x014c002d, FALSE, EInternal());return TRUE;}
#line 1199 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SelectRandomAnger ();
#line 1200 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_Angry, TRUE;
Jump(STATE_CURRENT, 0x014c000d, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c000d_DestroyCity_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c000d
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_Angry, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c000e, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c000e_DestroyCity_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c000e
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c002c, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c002d_DestroyCity_35(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c002d
if(!(GetAction () -> m_datType == DAT_SMASH )){ Jump(STATE_CURRENT,0x014c002b, FALSE, EInternal());return TRUE;}
#line 1204 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_Smash, TRUE;
Jump(STATE_CURRENT, 0x014c000f, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c000f_DestroyCity_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c000f
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_Smash, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0010, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0010_DestroyCity_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0010
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c002a, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c002b_DestroyCity_33(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c002b
if(!(GetAction () -> m_datType == DAT_PUNCH )){ Jump(STATE_CURRENT,0x014c0029, FALSE, EInternal());return TRUE;}
#line 1208 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_Punch, TRUE;
Jump(STATE_CURRENT, 0x014c0011, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0011_DestroyCity_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0011
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_Punch, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0012, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0012_DestroyCity_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0012
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c0028, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0029_DestroyCity_31(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0029
if(!(GetAction () -> m_datType == DAT_HIT_GROUND )){ Jump(STATE_CURRENT,0x014c0027, FALSE, EInternal());return TRUE;}
#line 1212 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_HitGround, TRUE;
Jump(STATE_CURRENT, 0x014c0013, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0013_DestroyCity_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0013
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_HitGround, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0014, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0014_DestroyCity_10(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0014
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c0026, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0027_DestroyCity_29(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0027
if(!(GetAction () -> m_datType == DAT_JUMP )){ Jump(STATE_CURRENT,0x014c0025, FALSE, EInternal());return TRUE;}Jump(STATE_CURRENT,0x014c0024, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0025_DestroyCity_27(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0025
if(!(GetAction () -> m_datType == DAT_WAIT )){ Jump(STATE_CURRENT,0x014c0023, FALSE, EInternal());return TRUE;}
#line 1220 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0015, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0015_DestroyCity_11(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0015
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0016, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0016_DestroyCity_12(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0016
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1221 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_IDLE , 0);
#line 1222 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_IDLE ) * GetAction () -> m_iWaitIdles );
Jump(STATE_CURRENT, 0x014c0017, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0017_DestroyCity_13(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0017
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0018, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0018_DestroyCity_14(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0018
;Jump(STATE_CURRENT,0x014c0022, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0023_DestroyCity_25(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0023
if(!(GetAction () -> m_datType == DAT_WALK )){ Jump(STATE_CURRENT,0x014c0021, FALSE, EInternal());return TRUE;}
#line 1226 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WalkTo, TRUE;
Jump(STATE_CURRENT, 0x014c0019, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0019_DestroyCity_15(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0019
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WalkTo, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c001a, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c001a_DestroyCity_16(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c001a
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c0020, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0021_DestroyCity_23(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0021
if(!(GetAction () -> m_datType == DAT_STOP_DESTROYING )){ Jump(STATE_CURRENT,0x014c001f, FALSE, EInternal());return TRUE;}
#line 1230 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1230 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;Jump(STATE_CURRENT,0x014c001e, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c001f_DestroyCity_21(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c001f
if(!(TRUE )){ Jump(STATE_CURRENT,0x014c001d, FALSE, EInternal());return TRUE;}
#line 1234 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_IDLE , 0);
#line 1235 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_IDLE ));
Jump(STATE_CURRENT, 0x014c001b, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c001b_DestroyCity_17(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c001b
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c001c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c001c_DestroyCity_18(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c001c
;Jump(STATE_CURRENT,0x014c001d, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c001d_DestroyCity_19(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c001d
Jump(STATE_CURRENT,0x014c001e, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c001e_DestroyCity_20(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c001e
Jump(STATE_CURRENT,0x014c0020, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c0020_DestroyCity_22(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0020
Jump(STATE_CURRENT,0x014c0022, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c0022_DestroyCity_24(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0022
Jump(STATE_CURRENT,0x014c0024, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c0024_DestroyCity_26(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0024
Jump(STATE_CURRENT,0x014c0026, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c0026_DestroyCity_28(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0026
Jump(STATE_CURRENT,0x014c0028, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c0028_DestroyCity_30(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0028
Jump(STATE_CURRENT,0x014c002a, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c002a_DestroyCity_32(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c002a
Jump(STATE_CURRENT,0x014c002c, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c002c_DestroyCity_34(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c002c
Jump(STATE_CURRENT,0x014c002e, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c002e_DestroyCity_36(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c002e
#line 1238 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_penAction = GetAction () -> m_penTarget ;
#line 1239 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetAction () -> m_penTrigger != NULL )
#line 1240 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1241 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetAction () -> m_penTrigger -> SendEvent (ETrigger ());
#line 1242 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}Jump(STATE_CURRENT,0x014c0030, FALSE, EInternal());return TRUE;
#line 1243 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c0031_DestroyCity_39(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0031
ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1246 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WaitCurrentAnimEnd(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_WaitCurrentAnimEnd
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::WaitCurrentAnimEnd expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1248 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c0033, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0033_WaitCurrentAnimEnd_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0033
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0034, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0034_WaitCurrentAnimEnd_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0034
;
#line 1249 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CModelObject & mo = * GetModelObject ();
#line 1250 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT tmWait = mo . GetAnimLength (mo . ao_iCurrentAnim ) - mo . GetPassedTime ();
#line 1251 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(tmWait > _pTimer -> TickQuantum )){ Jump(STATE_CURRENT,0x014c0038, FALSE, EInternal());return TRUE;}
#line 1253 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fTimeToWait = tmWait - _pTimer -> TickQuantum * 2;
#line 1254 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(fTimeToWait >= _pTimer -> TickQuantum )){ Jump(STATE_CURRENT,0x014c0037, FALSE, EInternal());return TRUE;}
#line 1256 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(fTimeToWait );
Jump(STATE_CURRENT, 0x014c0035, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0035_WaitCurrentAnimEnd_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0035
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0036, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0036_WaitCurrentAnimEnd_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0036
;Jump(STATE_CURRENT,0x014c0037, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0037_WaitCurrentAnimEnd_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0037
Jump(STATE_CURRENT,0x014c0038, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0038_WaitCurrentAnimEnd_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0038
#line 1259 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1259 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1262 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WaitWalkToEnd(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_WaitWalkToEnd
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::WaitWalkToEnd expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1264 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(GetModelObject () -> GetAnim () == DEVIL_ANIM_WALK )){ Jump(STATE_CURRENT,0x014c003e, FALSE, EInternal());return TRUE;}
#line 1266 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c003a, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c003a_WaitWalkToEnd_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c003a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c003b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c003b_WaitWalkToEnd_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c003b
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1267 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMWALKTOIDLE , AOF_SMOOTHCHANGE );
#line 1268 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMWALKTOIDLE ) - 0.1f);
Jump(STATE_CURRENT, 0x014c003c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c003c_WaitWalkToEnd_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c003c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c003d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c003d_WaitWalkToEnd_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c003d
;Jump(STATE_CURRENT,0x014c003e, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c003e_WaitWalkToEnd_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c003e
#line 1270 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c003f, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c003f_WaitWalkToEnd_06(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c003f
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0040, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0040_WaitWalkToEnd_07(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0040
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1271 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1271 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1274 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WaitWalkOrIdleToEnd(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_WaitWalkOrIdleToEnd
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::WaitWalkOrIdleToEnd expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1276 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(GetModelObject () -> GetAnim () == DEVIL_ANIM_WALK )){ Jump(STATE_CURRENT,0x014c0050, FALSE, EInternal());return TRUE;}
#line 1278 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0042, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0042_WaitWalkOrIdleToEnd_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0042
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0043, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0043_WaitWalkOrIdleToEnd_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0043
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1279 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMWALKTOIDLE , AOF_SMOOTHCHANGE );
#line 1280 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMWALKTOIDLE ) - 0.1f);
Jump(STATE_CURRENT, 0x014c0044, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0044_WaitWalkOrIdleToEnd_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0044
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0045, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0045_WaitWalkOrIdleToEnd_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0045
;Jump(STATE_CURRENT,0x014c004f, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0050_WaitWalkOrIdleToEnd_15(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0050
if(!(GetModelObject () -> GetAnim () == DEVIL_ANIM_FROMIDLETOWALK )){ Jump(STATE_CURRENT,0x014c004e, FALSE, EInternal());return TRUE;}
#line 1284 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0046, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0046_WaitWalkOrIdleToEnd_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0046
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0047, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0047_WaitWalkOrIdleToEnd_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0047
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1285 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMWALKTOIDLE , AOF_SMOOTHCHANGE );
#line 1286 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMWALKTOIDLE ) - 0.1f);
Jump(STATE_CURRENT, 0x014c0048, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0048_WaitWalkOrIdleToEnd_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0048
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0049, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0049_WaitWalkOrIdleToEnd_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0049
;Jump(STATE_CURRENT,0x014c004d, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c004e_WaitWalkOrIdleToEnd_13(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c004e
if(!(GetModelObject () -> GetAnim () == DEVIL_ANIM_IDLE )){ Jump(STATE_CURRENT,0x014c004c, FALSE, EInternal());return TRUE;}
#line 1290 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c004a, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c004a_WaitWalkOrIdleToEnd_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c004a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c004b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c004b_WaitWalkOrIdleToEnd_10(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c004b
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c004c, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c004c_WaitWalkOrIdleToEnd_11(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c004c
Jump(STATE_CURRENT,0x014c004d, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c004d_WaitWalkOrIdleToEnd_12(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c004d
Jump(STATE_CURRENT,0x014c004f, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c004f_WaitWalkOrIdleToEnd_14(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c004f
#line 1292 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1292 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1295 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Rise(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Rise
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Rise expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1297 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0052, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0052_Rise_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0052
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0053, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0053_Rise_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0053
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1298 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_GETUP , SOF_3D );
#line 1299 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_GETUP , 0);
#line 1300 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1300 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1303 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Celebrate(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Celebrate
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Celebrate expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1305 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0055, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0055_Celebrate_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0055
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0056, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0056_Celebrate_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0056
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1307 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_CELEBRATE01 , SOF_3D );
#line 1308 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_CELEBRATE01 , AOF_SMOOTHCHANGE );
#line 1309 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_CELEBRATE01 ) - 0.1f);
Jump(STATE_CURRENT, 0x014c0057, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0057_Celebrate_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0057
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0058, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0058_Celebrate_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0058
;
#line 1310 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1310 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1313 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Angry(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Angry
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Angry expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1315 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c005a, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c005a_Angry_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c005a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c005b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c005b_Angry_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c005b
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1317 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (m_iAngryAnim , AOF_SMOOTHCHANGE );
#line 1318 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c005c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c005c_Angry_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c005c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c005d, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c005d_Angry_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c005d
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1319 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , m_iAngrySound , SOF_3D );
#line 1320 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (m_iAngryAnim ) - 0.1f);
Jump(STATE_CURRENT, 0x014c005e, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c005e_Angry_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c005e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c005f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c005f_Angry_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c005f
;
#line 1321 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1321 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1325 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SubBeamDamage1(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_SubBeamDamage1
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::SubBeamDamage1 expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1327 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 1328 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_WOUND , SOF_3D );
#line 1329 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_WOUNDSTART , AOF_SMOOTHCHANGE );
#line 1330 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_WOUNDSTART ) - 0.1f);
Jump(STATE_CURRENT, 0x014c0061, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0061_SubBeamDamage1_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0061
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0062, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0062_SubBeamDamage1_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0062
;
#line 1331 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_WOUNDLOOP , AOF_LOOPING | AOF_SMOOTHCHANGE );
#line 1332 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_SubBeamDamage2, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1334 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SubBeamDamage2(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_SubBeamDamage2
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::SubBeamDamage2 expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1336 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c0066, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0066_SubBeamDamage2_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0066
if(!(TRUE )){ Jump(STATE_CURRENT,0x014c0067, FALSE, EInternal());return TRUE;}
#line 1337 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.1f);
Jump(STATE_CURRENT, 0x014c0064, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0064_SubBeamDamage2_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0064
switch(__eeInput.ee_slEvent)
#line 1338 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EHitBySpaceShipBeam):{const EHitBySpaceShipBeam&e= (EHitBySpaceShipBeam&)__eeInput;
#line 1341 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmHitBySpaceShipBeam = _pTimer -> CurrentTick ();
#line 1342 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
UnsetTimer();Jump(STATE_CURRENT,0x014c0065, FALSE, EInternal());return TRUE;
#line 1343 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
Jump(STATE_CURRENT, STATE_CDevil_SubBeamDamage3, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 1345 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c0065_SubBeamDamage2_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0065
Jump(STATE_CURRENT,0x014c0066, FALSE, EInternal());return TRUE;
#line 1346 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c0067_SubBeamDamage2_04(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0067
ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1348 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SubBeamDamage3(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_SubBeamDamage3
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::SubBeamDamage3 expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1350 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_WOUNDEND , AOF_SMOOTHCHANGE );
#line 1351 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_WOUNDEND ) - 0.1f);
Jump(STATE_CURRENT, 0x014c0069, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0069_SubBeamDamage3_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0069
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c006a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c006a_SubBeamDamage3_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c006a
;
#line 1352 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_IDLE , AOF_LOOPING | AOF_SMOOTHCHANGE );
#line 1353 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1353 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1355 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
BeamDamage(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_BeamDamage
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::BeamDamage expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1357 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x014c006c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c006c_BeamDamage_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c006c
switch(__eeInput.ee_slEvent)
#line 1358 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
Call(STATE_CURRENT, STATE_CDevil_SubBeamDamage1, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EHitBySpaceShipBeam):{const EHitBySpaceShipBeam&e= (EHitBySpaceShipBeam&)__eeInput;
#line 1361 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmHitBySpaceShipBeam = _pTimer -> CurrentTick ();
#line 1362 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1363 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_EReturn):{const EReturn&e= (EReturn&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x014c006d, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 1365 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c006d_BeamDamage_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c006d
#line 1366 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1366 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1369 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Smash(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Smash
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Smash expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1374 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_FROMWALKTOIDLE , AOF_SMOOTHCHANGE );
#line 1375 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c006f, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c006f_Smash_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c006f
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0070, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0070_Smash_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0070
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1377 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_SMASH , AOF_SMOOTHCHANGE );
#line 1378 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c0071, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0071_Smash_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0071
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0072, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0072_Smash_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0072
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1380 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.05f);
Jump(STATE_CURRENT, 0x014c0073, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0073_Smash_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0073
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0074, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0074_Smash_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0074
;
#line 1381 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_SMASH , SOF_3D );
#line 1382 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.7f);
Jump(STATE_CURRENT, 0x014c0075, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0075_Smash_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0075
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0076, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0076_Smash_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0076
;
#line 1383 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetAction () -> m_penToDestroy1 != NULL )
#line 1384 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1385 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EBrushDestroyedByDevil ebdbd ;
#line 1386 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ebdbd . vDamageDir = FLOAT3D (- 0.125f , 0.0f , - 0.5f);
#line 1387 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetAction () -> m_penToDestroy1 -> SendEvent (ebdbd );
#line 1388 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1389 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(2.8f - 1.0f);
Jump(STATE_CURRENT, 0x014c0077, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0077_Smash_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0077
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0078, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0078_Smash_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0078
;
#line 1390 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetAction () -> m_penToDestroy2 != NULL )
#line 1391 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1392 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EBrushDestroyedByDevil ebdbd ;
#line 1393 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ebdbd . vDamageDir = FLOAT3D (- 0.125f , 0.0f , - 0.5f);
#line 1394 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetAction () -> m_penToDestroy2 -> SendEvent (ebdbd );
#line 1395 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1396 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1396 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1399 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Punch(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Punch
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Punch expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1403 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_FROMWALKTOIDLE , AOF_SMOOTHCHANGE );
#line 1404 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c007a, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c007a_Punch_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c007a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c007b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c007b_Punch_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c007b
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1406 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_PUNCH , AOF_SMOOTHCHANGE );
#line 1407 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c007c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c007c_Punch_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c007c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c007d, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c007d_Punch_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c007d
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1409 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.05f);
Jump(STATE_CURRENT, 0x014c007e, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c007e_Punch_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c007e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c007f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c007f_Punch_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c007f
;
#line 1410 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_PUNCH , SOF_3D );
#line 1411 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.8f);
Jump(STATE_CURRENT, 0x014c0080, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0080_Punch_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0080
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0081, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0081_Punch_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0081
;
#line 1412 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetAction () -> m_penToDestroy1 != NULL )
#line 1413 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1414 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EBrushDestroyedByDevil ebdbd ;
#line 1415 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ebdbd . vDamageDir = FLOAT3D (- 0.125f , 0.0f , - 0.5f);
#line 1416 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetAction () -> m_penToDestroy1 -> SendEvent (ebdbd );
#line 1417 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1418 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(2.8f - 1.1f);
Jump(STATE_CURRENT, 0x014c0082, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0082_Punch_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0082
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0083, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0083_Punch_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0083
;
#line 1419 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(GetAction () -> m_penToDestroy2 != NULL )
#line 1420 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1421 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EBrushDestroyedByDevil ebdbd ;
#line 1422 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ebdbd . vDamageDir = FLOAT3D (0.125f , 0.0f , - 0.5f);
#line 1423 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetAction () -> m_penToDestroy2 -> SendEvent (ebdbd );
#line 1424 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1426 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1426 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1429 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
HitGround(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_HitGround
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::HitGround expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1431 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0085, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0085_HitGround_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0085
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0086, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0086_HitGround_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0086
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1433 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_ATTACKCLOSE , SOF_3D );
#line 1434 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_ATTACKCLOSE , AOF_SMOOTHCHANGE );
#line 1435 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(1.44f);
Jump(STATE_CURRENT, 0x014c0087, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0087_HitGround_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0087
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0088, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0088_HitGround_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0088
;
#line 1436 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShakeItBaby (_pTimer -> CurrentTick () , 5.0f);
#line 1438 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPlacement3D plObelisk = GetPlacement ();
#line 1440 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEntity * penEffector = CreateEntity (plObelisk , CLASS_EFFECTOR );
#line 1442 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ESpawnEffector eSpawnEffector ;
#line 1443 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . tmLifeTime = 6.0f;
#line 1444 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . fSize = 1.0f;
#line 1445 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . eetType = ET_HIT_GROUND ;
#line 1446 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . vDamageDir = FLOAT3D (0.0f , 2.0f , 0.0f);
#line 1448 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
penEffector -> Initialize (eSpawnEffector );
#line 1450 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1450 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1453 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GrabLowerWeapons(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_GrabLowerWeapons
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::GrabLowerWeapons expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1455 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c008a, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c008a_GrabLowerWeapons_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c008a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c008b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c008b_GrabLowerWeapons_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c008b
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1456 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_GRABWEAPONS01 , AOF_SMOOTHCHANGE );
#line 1457 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c008c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c008c_GrabLowerWeapons_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c008c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c008d, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c008d_GrabLowerWeapons_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c008d
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1458 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_DRAW_LOWER_WEAPONS , SOF_3D );
#line 1459 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.84f);
Jump(STATE_CURRENT, 0x014c008e, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c008e_GrabLowerWeapons_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c008e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c008f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c008f_GrabLowerWeapons_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c008f
;
#line 1460 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddLowerWeapons ();
#line 1461 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkingAnim ();
#line 1462 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c0090, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0090_GrabLowerWeapons_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0090
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0091, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0091_GrabLowerWeapons_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0091
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1463 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1463 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1466 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GrabUpperWeapons(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_GrabUpperWeapons
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::GrabUpperWeapons expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1468 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0093, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0093_GrabUpperWeapons_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0093
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0094, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0094_GrabUpperWeapons_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0094
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1469 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_GRABWEAPONS02 , AOF_SMOOTHCHANGE );
#line 1470 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c0095, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0095_GrabUpperWeapons_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0095
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0096, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0096_GrabUpperWeapons_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0096
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1471 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_DRAW_UPPER_WEAPONS , SOF_3D );
#line 1472 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.84f);
Jump(STATE_CURRENT, 0x014c0097, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0097_GrabUpperWeapons_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0097
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0098, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0098_GrabUpperWeapons_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0098
;
#line 1473 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddUpperWeapons ();
#line 1474 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bHasUpperWeapons = TRUE ;
#line 1475 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkingAnim ();
#line 1476 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c0099, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0099_GrabUpperWeapons_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0099
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c009a, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c009a_GrabUpperWeapons_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c009a
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1477 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1477 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1480 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GrabBothWeapons(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_GrabBothWeapons
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::GrabBothWeapons expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1482 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c009c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c009c_GrabBothWeapons_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c009c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c009d, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c009d_GrabBothWeapons_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c009d
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1483 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_GRABWEAPONS01 , AOF_SMOOTHCHANGE );
#line 1484 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c009e, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c009e_GrabBothWeapons_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c009e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c009f, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c009f_GrabBothWeapons_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c009f
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1485 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soGrabLowerWeapons , SOUND_DRAW_LOWER_WEAPONS , SOF_3D );
#line 1486 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.84f);
Jump(STATE_CURRENT, 0x014c00a0, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00a0_GrabBothWeapons_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a0
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00a1, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00a1_GrabBothWeapons_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a1
;
#line 1487 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddLowerWeapons ();
#line 1488 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_GRABWEAPONS02 , AOF_SMOOTHCHANGE );
#line 1489 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c00a2, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00a2_GrabBothWeapons_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a2
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00a3, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00a3_GrabBothWeapons_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a3
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1490 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soGrabUpperWeapons , SOUND_DRAW_UPPER_WEAPONS , SOF_3D );
#line 1491 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.84f);
Jump(STATE_CURRENT, 0x014c00a4, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00a4_GrabBothWeapons_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a4
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00a5, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00a5_GrabBothWeapons_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a5
;
#line 1492 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AddUpperWeapons ();
#line 1493 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bHasUpperWeapons = TRUE ;
#line 1494 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WalkingAnim ();
#line 1495 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c00a6, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00a6_GrabBothWeapons_11(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a6
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00a7, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00a7_GrabBothWeapons_12(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00a7
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1496 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1496 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1499 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PreMainLoop(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_PreMainLoop
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::PreMainLoop expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1501 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soSound . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 1502 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soGrabLowerWeapons . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 1503 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soGrabUpperWeapons . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 1504 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soJumpIntoPyramid . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 1505 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soLeft . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 1506 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soRight . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 1507 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soWeapon0 . Set3DParameters (1000.0f , 500.0f , 1.0f , 1.0f);
#line 1508 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soWeapon1 . Set3DParameters (1000.0f , 500.0f , 1.0f , 1.0f);
#line 1509 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soWeapon2 . Set3DParameters (1000.0f , 500.0f , 1.0f , 1.0f);
#line 1510 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soWeapon3 . Set3DParameters (1000.0f , 500.0f , 1.0f , 1.0f);
#line 1511 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soWeapon4 . Set3DParameters (1000.0f , 500.0f , 1.0f , 1.0f);
#line 1513 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TurnOnPhysics ();
#line 1515 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_penEnemy == NULL )
#line 1516 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1518 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEntity * penEnemy = FixupCausedToPlayer (this , m_penEnemy , FALSE );
#line 1519 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(penEnemy != m_penEnemy ){
#line 1520 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTargetSoft (penEnemy );
#line 1521 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1522 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1524 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1524 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1531 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
BeWounded(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_BeWounded
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EDamage, "CDevil::BeWounded expects 'EDamage' as input!"); const EDamage &eDamage = (const EDamage &)__eeInput;
#line 1533 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 1535 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (AnimForDamage (eDamage . fAmount )));
Jump(STATE_CURRENT, 0x014c00aa, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00aa_BeWounded_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00aa
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00ab, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ab_BeWounded_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ab
;
#line 1536 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1536 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1542 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Hit(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Hit
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Hit expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1543 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c00ad, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00ad_Hit_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ad
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00ae, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ae_Hit_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ae
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1544 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACKCLOSE , AOF_SMOOTHCHANGE );
#line 1545 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c00af, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00af_Hit_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00af
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00b0, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00b0_Hit_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b0
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1546 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_ATTACKCLOSE , SOF_3D );
#line 1547 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(1.4f);
Jump(STATE_CURRENT, 0x014c00b1, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00b1_Hit_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b1
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00b2, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00b2_Hit_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b2
;
#line 1548 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShakeItBaby (_pTimer -> CurrentTick () , 5.0f);
#line 1549 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(CalcDist (m_penEnemy ) < m_fCloseDistance )
#line 1550 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1551 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InflictDirectDamage (m_penEnemy , this , DMT_IMPACT , 1000.0f ,
#line 1552 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_penEnemy -> GetPlacement () . pl_PositionVector , FLOAT3D (0 , 1 , 0));
#line 1553 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1554 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InflictHoofDamage (DEVIL_HIT_HOOF_OFFSET );
#line 1556 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_ATTACKCLOSE - 1.4f) - _pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c00b3, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00b3_Hit_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b3
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00b4, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00b4_Hit_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b4
;
#line 1557 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1557 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1564 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InitializeAttack(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_InitializeAttack
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::InitializeAttack expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1565 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CEnemyBase_InitializeAttack, FALSE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1568 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Fire(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Fire
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Fire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1570 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iToFireProjectiles = 0;
#line 1571 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 10.0f;
#line 1572 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fPauseStretcher = 1.0f;
#line 1574 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dapAttackPower == DAP_MEDIUM_POWER_ATTACK &&
#line 1575 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
(_pTimer -> CurrentTick () - m_fLastWalkTime ) > 6.0f)
#line 1576 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1577 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 6.0f;
#line 1578 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fLastWalkTime = _pTimer -> CurrentTick () + 6.0f;
#line 1579 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EVoid());
#line 1579 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1580 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1582 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
switch(m_dapAttackPower )
#line 1583 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1584 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DAP_PLAYER_HUNT :
#line 1585 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(_pTimer -> CurrentTick () - m_tmLastAngry > 10.0f)
#line 1586 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1587 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 7.5 + FRnd () * 5;
#line 1588 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmLastAngry = _pTimer -> CurrentTick ();
#line 1589 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SelectRandomAnger ();
#line 1590 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_Angry, TRUE, EVoid());return TRUE;
#line 1591 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1592 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EVoid());
#line 1592 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1593 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1594 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DAP_LOW_POWER_ATTACK :
#line 1595 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iToFireProjectiles = 2;
#line 1596 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 5.0f;
#line 1597 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fPauseStretcher = 1.0f;
#line 1598 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1599 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DAP_MEDIUM_POWER_ATTACK :
#line 1600 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iToFireProjectiles = 3;
#line 1601 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 0.1f;
#line 1602 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fPauseStretcher = 0.5f;
#line 1603 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1604 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case DAP_FULL_POWER_ATTACK :
#line 1605 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iToFireProjectiles = 4;
#line 1606 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 0.1f;
#line 1607 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fPauseStretcher = 0.1f;
#line 1608 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1609 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1611 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
INDEX iRnd = IRnd () % 5;
#line 1612 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! m_bHasUpperWeapons )
#line 1613 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1614 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
iRnd = IRnd () % 3;
#line 1615 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1618 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
switch(iRnd )
#line 1619 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1620 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case 0:
#line 1621 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_FirePredictedProjectile, TRUE, EVoid());return TRUE;
#line 1622 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1623 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case 1:
#line 1624 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_FireLaser, TRUE, EVoid());return TRUE;
#line 1625 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1626 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case 2:
#line 1627 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_FireGuidedProjectile, TRUE, EVoid());return TRUE;
#line 1628 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1629 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case 3:
#line 1630 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_FireRocketLauncher, TRUE, EVoid());return TRUE;
#line 1631 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1632 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
case 4:
#line 1633 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_FireElectricityGun, TRUE, EVoid());return TRUE;
#line 1634 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
break ;
#line 1635 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
} ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1639 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
DevilLockOnEnemy(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_DevilLockOnEnemy
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::DevilLockOnEnemy expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1642 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 1644 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ChargeAnim ();
#line 1646 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fLockStartTime = _pTimer -> CurrentTick ();
#line 1647 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00ba, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00ba_DevilLockOnEnemy_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ba
if(!(m_fLockStartTime + GetProp (m_fLockOnEnemyTime ) > _pTimer -> CurrentTick ())){ Jump(STATE_CURRENT,0x014c00bb, FALSE, EInternal());return TRUE;}
#line 1649 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fMoveFrequency = 0.05f;
#line 1650 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(m_fMoveFrequency );
Jump(STATE_CURRENT, 0x014c00b8, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00b8_DevilLockOnEnemy_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b8
switch(__eeInput.ee_slEvent){case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x014c00b9, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 1653 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vDesiredPosition = PlayerDestinationPos ();
#line 1655 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! IsInPlaneFrustum (m_penEnemy , CosFast (30.0f))){
#line 1656 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fLockStartTime = - 10000.0f;
#line 1657 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
UnsetTimer();Jump(STATE_CURRENT,0x014c00b9, FALSE, EInternal());return TRUE;
#line 1658 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1671 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1672 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;default: return FALSE; break;
#line 1673 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c00b9_DevilLockOnEnemy_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00b9
Jump(STATE_CURRENT,0x014c00ba, FALSE, EInternal());return TRUE;
#line 1674 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00bb_DevilLockOnEnemy_04(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00bb
#line 1676 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopRotating ();
#line 1679 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1679 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1682 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AdjustWeaponForFire(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_AdjustWeaponForFire
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::AdjustWeaponForFire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1684 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vRelWeapon = GetWeaponPositionRelative ();
#line 1685 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vAbsWeapon = GetPlacement () . pl_PositionVector + vRelWeapon * GetRotationMatrix ();
#line 1687 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fFireTime = _pTimer -> CurrentTick () + m_fAdjustWeaponTime ;
#line 1688 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vEnemy = m_penEnemy -> GetPlacement () . pl_PositionVector ;
#line 1689 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vDir = (vEnemy - vAbsWeapon ) . Normalize ();
#line 1690 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ANGLE3D aAngles ;
#line 1691 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
DirectionVectorToAngles (vDir , aAngles );
#line 1692 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPlacement3D plRelPl = CPlacement3D (FLOAT3D (0 , 0 , 0) , aAngles );
#line 1693 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
plRelPl . AbsoluteToRelative (GetPlacement ());
#line 1694 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fWantedHdg = plRelPl . pl_OrientationAngle (1);
#line 1695 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fWantedPitch = plRelPl . pl_OrientationAngle (2);
#line 1698 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_iAttID == DEVIL_ATTACHMENT_PROJECTILEGUN )
#line 1699 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1700 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vShooting = GetPlacement () . pl_PositionVector ;
#line 1701 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vTarget = m_penEnemy -> GetPlacement () . pl_PositionVector ;
#line 1702 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fDistanceFactor = 1.0f - ClampUp ((vShooting - vTarget ) . Length () / 250.0f , 1.0f);
#line 1703 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fWantedPitch = 20 - fDistanceFactor * 50.0f;
#line 1704 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1706 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 1707 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fDeltaWeaponHdg = (fWantedHdg - amo . amo_plRelative . pl_OrientationAngle (1)) / (m_fAdjustWeaponTime / _pTimer -> TickQuantum );
#line 1708 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fDeltaWeaponPitch = (fWantedPitch - amo . amo_plRelative . pl_OrientationAngle (2)) / (m_fAdjustWeaponTime / _pTimer -> TickQuantum );
#line 1709 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00bf, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00bf_AdjustWeaponForFire_03(const CEntityEvent &__eeInput)
#line 1710 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00bf
if(!(m_fFireTime > _pTimer -> CurrentTick ())){ Jump(STATE_CURRENT,0x014c00c0, FALSE, EInternal());return TRUE;}
#line 1711 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c00bd, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00bd_AdjustWeaponForFire_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00bd
switch(__eeInput.ee_slEvent)
#line 1712 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{case(EVENTCODE_EBegin):
#line 1714 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const EBegin&e= (EBegin&)__eeInput;
#line 1715 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 1716 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
amo . amo_plRelative . pl_OrientationAngle (1) += m_fDeltaWeaponHdg ;
#line 1717 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
amo . amo_plRelative . pl_OrientationAngle (2) += m_fDeltaWeaponPitch ;
#line 1718 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1719 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x014c00be, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 1721 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c00be_AdjustWeaponForFire_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00be
Jump(STATE_CURRENT,0x014c00bf, FALSE, EInternal());return TRUE;
#line 1722 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00c0_AdjustWeaponForFire_04(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c0
#line 1723 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1723 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1726 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StraightenUpWeapon(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_StraightenUpWeapon
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::StraightenUpWeapon expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1728 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fAdjustWeaponTime = 0.25f;
#line 1729 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fFireTime = _pTimer -> CurrentTick () + fAdjustWeaponTime ;
#line 1731 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 1732 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fDeltaWeaponHdg = amo . amo_plRelative . pl_OrientationAngle (1) / (fAdjustWeaponTime / _pTimer -> TickQuantum );
#line 1733 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fDeltaWeaponPitch = amo . amo_plRelative . pl_OrientationAngle (2) / (fAdjustWeaponTime / _pTimer -> TickQuantum );
#line 1734 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00c4, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00c4_StraightenUpWeapon_03(const CEntityEvent &__eeInput)
#line 1735 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c4
if(!(m_fFireTime > _pTimer -> CurrentTick ())){ Jump(STATE_CURRENT,0x014c00c5, FALSE, EInternal());return TRUE;}
#line 1736 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c00c2, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00c2_StraightenUpWeapon_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c2
switch(__eeInput.ee_slEvent)
#line 1737 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{case(EVENTCODE_EBegin):
#line 1739 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const EBegin&e= (EBegin&)__eeInput;
#line 1740 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CAttachmentModelObject & amo = * GetModelObject () -> GetAttachmentModel (m_iAttID );
#line 1741 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
amo . amo_plRelative . pl_OrientationAngle (1) -= m_fDeltaWeaponHdg ;
#line 1742 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
amo . amo_plRelative . pl_OrientationAngle (2) -= m_fDeltaWeaponPitch ;
#line 1743 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1744 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x014c00c3, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 1746 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c00c3_StraightenUpWeapon_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c3
Jump(STATE_CURRENT,0x014c00c4, FALSE, EInternal());return TRUE;
#line 1747 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00c5_StraightenUpWeapon_04(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c5
#line 1748 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1748 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1751 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FireLaser(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_FireLaser
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::FireLaser expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1753 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkOrIdleToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c00c7, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00c7_FireLaser_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c7
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkOrIdleToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00c8, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00c8_FireLaser_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c8
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1756 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMIDLETOATTACK01 , AOF_SMOOTHCHANGE );
#line 1757 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMIDLETOATTACK01 ) - 0.1f);
Jump(STATE_CURRENT, 0x014c00c9, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00c9_FireLaser_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00c9
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00ca, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ca_FireLaser_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ca
;
#line 1758 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACK01 , AOF_SMOOTHCHANGE | AOF_LOOPING );
#line 1760 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAttID = DEVIL_ATTACHMENT_LASER ;
#line 1761 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAdjustWeaponTime = 0.25f;
#line 1762 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_AdjustWeaponForFire, TRUE;
Jump(STATE_CURRENT, 0x014c00cb, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00cb_FireLaser_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00cb
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_AdjustWeaponForFire, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00cc, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00cc_FireLaser_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00cc
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1765 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartFireLaser ();
#line 1766 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 0;
#line 1767 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00d1, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00d1_FireLaser_11(const CEntityEvent &__eeInput)
#line 1768 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d1
if(!(m_iFiredProjectiles < m_iToFireProjectiles * 10)){ Jump(STATE_CURRENT,0x014c00d2, FALSE, EInternal());return TRUE;}
#line 1769 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_DevilLockOnEnemy, TRUE;
Jump(STATE_CURRENT, 0x014c00cd, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00cd_FireLaser_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00cd
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_DevilLockOnEnemy, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00ce, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ce_FireLaser_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ce
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1770 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmLastPause = 0.1f * m_fPauseStretcher ;
#line 1771 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(m_tmLastPause );
Jump(STATE_CURRENT, 0x014c00cf, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00cf_FireLaser_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00cf
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00d0, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00d0_FireLaser_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d0
;
#line 1773 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fPredictionRatio = (FRnd () - 0.5f) * 0.25f;
#line 1774 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_iFiredProjectiles & 1)
#line 1775 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1776 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fPredictionRatio = 1.0f;
#line 1777 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1778 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fDeltaPitch = (FRnd () - 0.5f) * 1.0f;
#line 1779 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FireOneLaser (fPredictionRatio , fDeltaPitch );
#line 1780 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles ++;
#line 1781 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! IsInFrustum (m_penEnemy , CosFast (30.0f))){
#line 1782 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 10000;
#line 1783 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}Jump(STATE_CURRENT,0x014c00d1, FALSE, EInternal());return TRUE;
#line 1784 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00d2_FireLaser_12(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d2
#line 1785 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_StraightenUpWeapon, TRUE;
Jump(STATE_CURRENT, 0x014c00d3, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00d3_FireLaser_13(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d3
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_StraightenUpWeapon, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00d4, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00d4_FireLaser_14(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d4
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1786 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopFireLaser ();
#line 1792 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MaybeSwitchToAnotherPlayer ();
#line 1795 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1795 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1798 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FireRocketLauncher(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_FireRocketLauncher
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::FireRocketLauncher expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1800 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkOrIdleToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c00d6, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00d6_FireRocketLauncher_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d6
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkOrIdleToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00d7, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00d7_FireRocketLauncher_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d7
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1803 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMIDLETOATTACK02 , AOF_SMOOTHCHANGE );
#line 1804 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMIDLETOATTACK02 ) - 0.1f);
Jump(STATE_CURRENT, 0x014c00d8, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00d8_FireRocketLauncher_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d8
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00d9, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00d9_FireRocketLauncher_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00d9
;
#line 1805 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACK02 , AOF_SMOOTHCHANGE | AOF_LOOPING );
#line 1807 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAttID = DEVIL_ATTACHMENT_ROCKETLAUNCHER ;
#line 1808 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAdjustWeaponTime = 0.5f;
#line 1809 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_AdjustWeaponForFire, TRUE;
Jump(STATE_CURRENT, 0x014c00da, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00da_FireRocketLauncher_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00da
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_AdjustWeaponForFire, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00db, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00db_FireRocketLauncher_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00db
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1812 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartFireRocket ();
#line 1813 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 0;
#line 1814 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00e0, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00e0_FireRocketLauncher_11(const CEntityEvent &__eeInput)
#line 1815 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e0
if(!(m_iFiredProjectiles < m_iToFireProjectiles )){ Jump(STATE_CURRENT,0x014c00e1, FALSE, EInternal());return TRUE;}
#line 1816 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_DevilLockOnEnemy, TRUE;
Jump(STATE_CURRENT, 0x014c00dc, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00dc_FireRocketLauncher_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00dc
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_DevilLockOnEnemy, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00dd, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00dd_FireRocketLauncher_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00dd
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1817 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmLastPause = 0.5f + 0.3f * m_fPauseStretcher ;
#line 1818 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(m_tmLastPause );
Jump(STATE_CURRENT, 0x014c00de, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00de_FireRocketLauncher_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00de
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00df, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00df_FireRocketLauncher_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00df
;
#line 1819 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT fPredictionRatio = 0.25f + m_iFiredProjectiles * (0.75f / m_iToFireProjectiles );
#line 1820 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
fPredictionRatio = 1.0f;
#line 1821 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles ++;
#line 1823 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FireOneRocket (fPredictionRatio );
#line 1824 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! IsInFrustum (m_penEnemy , CosFast (30.0f))){
#line 1825 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 10000;
#line 1826 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}Jump(STATE_CURRENT,0x014c00e0, FALSE, EInternal());return TRUE;
#line 1827 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00e1_FireRocketLauncher_12(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e1
#line 1828 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_StraightenUpWeapon, TRUE;
Jump(STATE_CURRENT, 0x014c00e2, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00e2_FireRocketLauncher_13(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e2
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_StraightenUpWeapon, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00e3, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00e3_FireRocketLauncher_14(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e3
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1829 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopFireRocket ();
#line 1835 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MaybeSwitchToAnotherPlayer ();
#line 1838 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1838 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1841 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FirePredictedProjectile(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_FirePredictedProjectile
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::FirePredictedProjectile expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1843 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkOrIdleToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c00e5, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00e5_FirePredictedProjectile_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e5
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkOrIdleToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00e6, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00e6_FirePredictedProjectile_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e6
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1846 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMIDLETOATTACK01 , AOF_SMOOTHCHANGE );
#line 1847 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMIDLETOATTACK01 ) - 0.1f);
Jump(STATE_CURRENT, 0x014c00e7, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00e7_FirePredictedProjectile_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e7
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00e8, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00e8_FirePredictedProjectile_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e8
;
#line 1848 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACK01 , AOF_SMOOTHCHANGE | AOF_LOOPING );
#line 1850 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAttID = DEVIL_ATTACHMENT_PROJECTILEGUN ;
#line 1851 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAdjustWeaponTime = 0.5f;
#line 1852 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_AdjustWeaponForFire, TRUE;
Jump(STATE_CURRENT, 0x014c00e9, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00e9_FirePredictedProjectile_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00e9
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_AdjustWeaponForFire, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00ea, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ea_FirePredictedProjectile_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ea
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1855 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 0;
#line 1856 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00ef, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00ef_FirePredictedProjectile_11(const CEntityEvent &__eeInput)
#line 1857 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ef
if(!(m_iFiredProjectiles < m_iToFireProjectiles )){ Jump(STATE_CURRENT,0x014c00f0, FALSE, EInternal());return TRUE;}
#line 1858 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAdjustWeaponTime = 0.45f;
#line 1859 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_AdjustWeaponForFire, TRUE;
Jump(STATE_CURRENT, 0x014c00eb, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00eb_FirePredictedProjectile_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00eb
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_AdjustWeaponForFire, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00ec, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ec_FirePredictedProjectile_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ec
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1860 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
F_FirePredictedProjectile ();
#line 1861 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.8f - m_fAdjustWeaponTime );
Jump(STATE_CURRENT, 0x014c00ed, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00ed_FirePredictedProjectile_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ed
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00ee, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00ee_FirePredictedProjectile_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ee
;
#line 1862 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles ++;
#line 1863 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! IsInFrustum (m_penEnemy , CosFast (30.0f))){
#line 1864 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 10000;
#line 1865 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}Jump(STATE_CURRENT,0x014c00ef, FALSE, EInternal());return TRUE;
#line 1866 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00f0_FirePredictedProjectile_12(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f0
#line 1867 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_StraightenUpWeapon, TRUE;
Jump(STATE_CURRENT, 0x014c00f1, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00f1_FirePredictedProjectile_13(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f1
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_StraightenUpWeapon, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00f2, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00f2_FirePredictedProjectile_14(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f2
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1870 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMATTACK01TOIDLE , AOF_SMOOTHCHANGE );
#line 1876 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MaybeSwitchToAnotherPlayer ();
#line 1879 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1879 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1882 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FireElectricityGun(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_FireElectricityGun
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::FireElectricityGun expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1884 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkOrIdleToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c00f4, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00f4_FireElectricityGun_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f4
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkOrIdleToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00f5, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00f5_FireElectricityGun_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f5
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1887 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMIDLETOATTACK02 , AOF_SMOOTHCHANGE );
#line 1888 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_FROMIDLETOATTACK02 ) - 0.1f);
Jump(STATE_CURRENT, 0x014c00f6, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00f6_FireElectricityGun_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f6
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00f7, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00f7_FireElectricityGun_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f7
;
#line 1889 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACK02 , AOF_SMOOTHCHANGE | AOF_LOOPING );
#line 1891 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iAttID = DEVIL_ATTACHMENT_ELETRICITYGUN ;
#line 1892 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAdjustWeaponTime = 0.5f;
#line 1896 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 0;
#line 1897 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c0102, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0102_FireElectricityGun_15(const CEntityEvent &__eeInput)
#line 1898 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0102
if(!(m_iFiredProjectiles < m_iToFireProjectiles )){ Jump(STATE_CURRENT,0x014c0103, FALSE, EInternal());return TRUE;}
#line 1899 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAdjustWeaponTime = 0.45f;
#line 1900 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_AdjustWeaponForFire, TRUE;
Jump(STATE_CURRENT, 0x014c00f8, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00f8_FireElectricityGun_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f8
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_AdjustWeaponForFire, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c00f9, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00f9_FireElectricityGun_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00f9
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1903 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
const FLOATmatrix3D & m = GetRotationMatrix ();
#line 1904 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vElectricitySource = GetFireingPositionAbsolute ();
#line 1907 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EntityInfo * peiTarget = (EntityInfo *) (m_penEnemy -> GetEntityInfo ());
#line 1908 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetEntityInfoPosition (m_penEnemy , peiTarget -> vTargetCenter , m_vElectricityTarget );
#line 1911 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.4f);
Jump(STATE_CURRENT, 0x014c00fa, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00fa_FireElectricityGun_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00fa
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c00fb, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c00fb_FireElectricityGun_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00fb
;
#line 1914 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bRenderElectricity = TRUE ;
#line 1915 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmTemp = _pTimer -> CurrentTick ();
#line 1916 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmNextFXTime = m_tmTemp - _pTimer -> TickQuantum ;
#line 1917 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayWeaponSound (SOUND_GHOSTBUSTER );
#line 1918 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c00fe, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c00fe_FireElectricityGun_11(const CEntityEvent &__eeInput)
#line 1919 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00fe
if(!(_pTimer -> CurrentTick () < m_tmTemp + 0.75f)){ Jump(STATE_CURRENT,0x014c00ff, FALSE, EInternal());return TRUE;}
#line 1920 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c00fc, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c00fc_FireElectricityGun_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00fc
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 1923 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vNewTarget ;
#line 1924 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
EntityInfo * peiTarget = (EntityInfo *) (m_penEnemy -> GetEntityInfo ());
#line 1925 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetEntityInfoPosition (m_penEnemy , peiTarget -> vTargetCenter , vNewTarget );
#line 1926 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D vDiff = vNewTarget - m_vElectricityTarget ;
#line 1928 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(vDiff . Length () > 1.0f)
#line 1929 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1931 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vElectricityTarget = m_vElectricityTarget + vDiff . Normalize () * 10.0f * _pTimer -> TickQuantum ;
#line 1932 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1935 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CCastRay crRay (this , m_vElectricitySource , m_vElectricityTarget );
#line 1936 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
crRay . cr_bHitTranslucentPortals = FALSE ;
#line 1937 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
crRay . cr_bPhysical = FALSE ;
#line 1938 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
crRay . cr_ttHitModels = CCastRay :: TT_COLLISIONBOX ;
#line 1939 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetWorld () -> CastRay (crRay );
#line 1941 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(crRay . cr_penHit != NULL )
#line 1942 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1944 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InflictDirectDamage (crRay . cr_penHit , this , DMT_BULLET , 50.0f * _pTimer -> TickQuantum / 0.5f ,
#line 1945 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT3D (0 , 0 , 0) , (m_vElectricitySource - m_vElectricityTarget ) . Normalize ());
#line 1946 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1948 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(_pTimer -> CurrentTick () > m_tmNextFXTime )
#line 1949 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 1950 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmNextFXTime = _pTimer -> CurrentTick () + 0.125f + FRnd () * 0.125f;
#line 1951 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPlacement3D plElectricityTarget = CPlacement3D (m_vElectricityTarget , ANGLE3D (0 , 0 , 0));
#line 1952 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEntity * penEffector = CreateEntity (plElectricityTarget , CLASS_EFFECTOR );
#line 1954 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ESpawnEffector eSpawnEffector ;
#line 1955 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . tmLifeTime = 6.0f;
#line 1956 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . fSize = 0.025f;
#line 1957 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . eetType = ET_HIT_GROUND ;
#line 1958 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
eSpawnEffector . vDamageDir = FLOAT3D (0.0f , 2.0f , 0.0f);
#line 1960 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
penEffector -> Initialize (eSpawnEffector );
#line 1961 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 1963 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 1964 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput;
UnsetTimer();Jump(STATE_CURRENT,0x014c00fd, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 1966 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c00fd_FireElectricityGun_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00fd
Jump(STATE_CURRENT,0x014c00fe, FALSE, EInternal());return TRUE;
#line 1967 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c00ff_FireElectricityGun_12(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c00ff
#line 1968 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soSound . Stop ();
#line 1969 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bRenderElectricity = FALSE ;
#line 1971 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.8f - m_fAdjustWeaponTime );
Jump(STATE_CURRENT, 0x014c0100, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0100_FireElectricityGun_13(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0100
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0101, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0101_FireElectricityGun_14(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0101
;
#line 1972 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles ++;
#line 1973 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! IsInFrustum (m_penEnemy , CosFast (30.0f))){
#line 1974 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 10000;
#line 1975 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}Jump(STATE_CURRENT,0x014c0102, FALSE, EInternal());return TRUE;
#line 1976 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c0103_FireElectricityGun_16(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0103
#line 1977 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_StraightenUpWeapon, TRUE;
Jump(STATE_CURRENT, 0x014c0104, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0104_FireElectricityGun_17(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0104
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_StraightenUpWeapon, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0105, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0105_FireElectricityGun_18(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0105
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1980 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_FROMATTACK02TOIDLE , AOF_SMOOTHCHANGE );
#line 1984 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MaybeSwitchToAnotherPlayer ();
#line 1987 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 1987 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 1990 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FireGuidedProjectile(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_FireGuidedProjectile
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::FireGuidedProjectile expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 1992 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitWalkOrIdleToEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0107, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0107_FireGuidedProjectile_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0107
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitWalkOrIdleToEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0108, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0108_FireGuidedProjectile_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0108
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1994 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACKBREATHSTART , AOF_SMOOTHCHANGE );
#line 1995 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c0109, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0109_FireGuidedProjectile_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0109
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c010a, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c010a_FireGuidedProjectile_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c010a
const EReturn&__e= (EReturn&)__eeInput;
;
#line 1996 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soLeft , SOUND_ATTACK_BREATH_START , SOF_3D );
#line 1998 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACKBREATH , AOF_SMOOTHCHANGE );
#line 1999 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE;
Jump(STATE_CURRENT, 0x014c010b, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c010b_FireGuidedProjectile_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c010b
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c010c, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c010c_FireGuidedProjectile_06(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c010c
const EReturn&__e= (EReturn&)__eeInput;
;
#line 2000 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soRight , SOUND_ATTACK_BREATH_LOOP , SOF_LOOP | SOF_3D );
#line 2003 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles = 0;
#line 2004 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmFireBreathStart = _pTimer -> CurrentTick ();
#line 2005 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmFireBreathStop = UpperLimit (0.0f);
#line 2007 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
const FLOATmatrix3D & m = GetRotationMatrix ();
#line 2008 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vFireBreathSource = GetPlacement () . pl_PositionVector + MAGIC_PROJECTILE_EXIT * m ;
#line 2009 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vFireBreathTarget = m_penEnemy -> GetPlacement () . pl_PositionVector - FLOAT3D (0 , 20.0f , 0);
#line 2010 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c0111, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0111_FireGuidedProjectile_11(const CEntityEvent &__eeInput)
#line 2011 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0111
if(!(m_iFiredProjectiles < m_iToFireProjectiles )){ Jump(STATE_CURRENT,0x014c0112, FALSE, EInternal());return TRUE;}
#line 2012 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmLastPause = 0.45f;
#line 2013 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(m_tmLastPause );
Jump(STATE_CURRENT, 0x014c010d, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c010d_FireGuidedProjectile_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c010d
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c010e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c010e_FireGuidedProjectile_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c010e
;
#line 2015 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShootProjectile (PRT_DEVIL_GUIDED_PROJECTILE , MAGIC_PROJECTILE_EXIT ,
#line 2016 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ANGLE3D (AngleDeg (10.0f * Cos (m_iFiredProjectiles * 360.0 / 6.0f)) , - AngleDeg (20.0f * Sin (m_iFiredProjectiles * 180.0 / 6.0f)) , 0));
#line 2017 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayWeaponSound (SOUND_ATTACK_BREATH_FIRE );
#line 2019 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.8f - m_tmLastPause );
Jump(STATE_CURRENT, 0x014c010f, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c010f_FireGuidedProjectile_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c010f
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0110, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0110_FireGuidedProjectile_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0110
;
#line 2020 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iFiredProjectiles ++;Jump(STATE_CURRENT,0x014c0111, FALSE, EInternal());return TRUE;
#line 2021 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c0112_FireGuidedProjectile_12(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0112
#line 2022 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopFireBreathParticles ();
#line 2024 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_WaitCurrentAnimEnd, TRUE;
Jump(STATE_CURRENT, 0x014c0113, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0113_FireGuidedProjectile_13(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0113
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_WaitCurrentAnimEnd, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0114, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0114_FireGuidedProjectile_14(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0114
const EReturn&__e= (EReturn&)__eeInput;
;
#line 2025 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_ATTACK_BREATH_END , SOF_3D );
#line 2026 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soRight . Stop ();
#line 2027 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_ATTACKBREATHEND , AOF_SMOOTHCHANGE );
#line 2029 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MaybeSwitchToAnotherPlayer ();
#line 2032 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 2032 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2036 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
JumpIntoPyramid(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_JumpIntoPyramid
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::JumpIntoPyramid expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2039 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TurnOffPhysics ();
#line 2040 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 2043 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RemoveWeapons ();
#line 2044 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTargetNone ();
#line 2045 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetPlacement (m_plTeleport );
#line 2046 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_CLIMB , 0);
#line 2047 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soJumpIntoPyramid , SOUND_CLIMB , SOF_3D );
#line 2048 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(7.0f);
Jump(STATE_CURRENT, 0x014c0116, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0116_JumpIntoPyramid_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0116
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0117, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0117_JumpIntoPyramid_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0117
;
#line 2051 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmTemp = _pTimer -> CurrentTick ();
#line 2052 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c011a, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c011a_JumpIntoPyramid_05(const CEntityEvent &__eeInput)
#line 2053 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c011a
if(!(_pTimer -> CurrentTick () < m_tmTemp + 0.7f)){ Jump(STATE_CURRENT,0x014c011b, FALSE, EInternal());return TRUE;}
#line 2054 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c0118, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0118_JumpIntoPyramid_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0118
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,0x014c0119, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default:{return TRUE;}ASSERT(FALSE);break;
#line 2058 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c0119_JumpIntoPyramid_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0119
#line 2059 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPlacement3D plCurrent = GetPlacement ();
#line 2060 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
FLOAT aDelta = - 35.0f / 0.7f * _pTimer -> TickQuantum ;
#line 2061 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
plCurrent . pl_OrientationAngle += FLOAT3D (aDelta , 0 , 0);
#line 2062 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetPlacement (plCurrent );Jump(STATE_CURRENT,0x014c011a, FALSE, EInternal());return TRUE;
#line 2063 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c011b_JumpIntoPyramid_06(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c011b
#line 2065 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShakeItFarBaby (_pTimer -> CurrentTick () , 1.5f);
#line 2066 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_CLIMB ) - 7.335f - _pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c011c, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c011c_JumpIntoPyramid_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c011c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c011d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c011d_JumpIntoPyramid_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c011d
;
#line 2068 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SelectRandomAnger ();
#line 2069 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (m_iAngryAnim , 0);
#line 2070 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , m_iAngrySound , SOF_3D );
#line 2071 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (m_iAngryAnim ) - 0.1f);
Jump(STATE_CURRENT, 0x014c011e, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c011e_JumpIntoPyramid_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c011e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c011f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c011f_JumpIntoPyramid_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c011f
;
#line 2073 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 2074 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopRotating ();
#line 2075 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TurnOnPhysics ();
#line 2076 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_GrabBothWeapons, TRUE;
Jump(STATE_CURRENT, 0x014c0120, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0120_JumpIntoPyramid_11(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0120
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_GrabBothWeapons, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0121, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0121_JumpIntoPyramid_12(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0121
const EReturn&__e= (EReturn&)__eeInput;
;
#line 2078 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_PYRAMID_FIGHT ;
#line 2079 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dapAttackPower = DAP_MEDIUM_POWER_ATTACK ;
#line 2080 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRadius = 1e6f;
#line 2081 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRunSpeed = 8.0f;
#line 2083 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 2083 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2086 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TeleportIntoPyramid(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_TeleportIntoPyramid
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::TeleportIntoPyramid expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2089 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RemoveWeapons ();
#line 2090 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTargetNone ();
#line 2091 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Teleport (m_plTeleport , FALSE );
#line 2092 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 2093 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopRotating ();
#line 2095 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SelectRandomAnger ();
#line 2096 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (m_iAngryAnim , 0);
#line 2097 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , m_iAngrySound , SOF_3D );
#line 2098 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (m_iAngryAnim ) - 0.1f);
Jump(STATE_CURRENT, 0x014c0123, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0123_TeleportIntoPyramid_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0123
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0124, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0124_TeleportIntoPyramid_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0124
;
#line 2100 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
TurnOnPhysics ();
#line 2101 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_GrabBothWeapons, TRUE;
Jump(STATE_CURRENT, 0x014c0125, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0125_TeleportIntoPyramid_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0125
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_GrabBothWeapons, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c0126, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0126_TeleportIntoPyramid_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0126
const EReturn&__e= (EReturn&)__eeInput;
;
#line 2103 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_PYRAMID_FIGHT ;
#line 2104 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dapAttackPower = DAP_MEDIUM_POWER_ATTACK ;
#line 2105 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRadius = 1e6f;
#line 2106 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRunSpeed = 8.0f;
#line 2108 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 2108 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2111 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
RegenerationImpulse(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_RegenerationImpulse
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::RegenerationImpulse expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2113 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsPreRegenerationDevilState = m_dsDevilState ;
#line 2114 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_REGENERATION_IMPULSE ;
#line 2115 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_HEAL , 0);
#line 2116 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soSound , SOUND_HEAL , SOF_3D );
#line 2118 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopFireBreathParticles ();
#line 2119 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmRegenerationStart = _pTimer -> CurrentTick ();
#line 2120 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmRegenerationStop = m_tmRegenerationStart + TM_HEALTH_IMPULSE - 1.5f;
#line 2122 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmTemp = _pTimer -> CurrentTick ();
#line 2123 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT,0x014c012a, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c012a_RegenerationImpulse_03(const CEntityEvent &__eeInput)
#line 2124 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c012a
if(!(_pTimer -> CurrentTick () < m_tmTemp + TM_HEALTH_IMPULSE )){ Jump(STATE_CURRENT,0x014c012b, FALSE, EInternal());return TRUE;}
#line 2125 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x014c0128, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0128_RegenerationImpulse_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0128
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,0x014c0129, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default:{return TRUE;}ASSERT(FALSE);break;
#line 2129 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c0129_RegenerationImpulse_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0129
#line 2130 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetHealth (GetHealth () + HEALTH_IMPULSE * _pTimer -> TickQuantum / TM_HEALTH_IMPULSE );Jump(STATE_CURRENT,0x014c012a, FALSE, EInternal());return TRUE;
#line 2131 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}BOOL CDevil::H0x014c012b_RegenerationImpulse_04(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c012b
#line 2132 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = m_dsPreRegenerationDevilState ;
#line 2134 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EReturn ());
#line 2134 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2137 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopAttack(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_StopAttack
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::StopAttack expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2138 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(m_penEnemy == NULL )){ Jump(STATE_CURRENT,0x014c012f, FALSE, EInternal());return TRUE;}
#line 2140 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
STATE_CDevil_Celebrate, TRUE;
Jump(STATE_CURRENT, 0x014c012d, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c012d_StopAttack_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c012d
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CDevil_Celebrate, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x014c012e, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c012e_StopAttack_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c012e
const EReturn&__e= (EReturn&)__eeInput;
;Jump(STATE_CURRENT,0x014c012f, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c012f_StopAttack_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c012f
#line 2143 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CEnemyBase_StopAttack, FALSE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2146 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ContinueInMainLoop(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_ContinueInMainLoop
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::ContinueInMainLoop expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2148 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SwitchToModel ();
#line 2150 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! m_bWasOnceInMainLoop )
#line 2151 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2152 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bWasOnceInMainLoop = TRUE ;
#line 2153 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CEnemyBase_MainLoop, FALSE, EVoid());return TRUE;
#line 2154 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2155 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else
#line 2156 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2158 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CEntity * penEnemy = FixupCausedToPlayer (this , m_penEnemy , FALSE );
#line 2159 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(penEnemy != m_penEnemy ){
#line 2160 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTargetSoft (penEnemy );
#line 2161 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2163 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CEnemyBase_StandardBehavior, FALSE, EVoid());return TRUE;
#line 2164 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
} ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2167 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
MPIntro(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_MPIntro
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::MPIntro expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2169 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_PYRAMID_FIGHT ;
#line 2170 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CDevil_ContinueInMainLoop, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2176 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Death(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Death
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Death expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2177 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetFlags (GetFlags () & ~ ENF_ALIVE );
#line 2178 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopFireBreathParticles ();
#line 2179 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopRegenerationParticles ();
#line 2181 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StopMoving ();
#line 2182 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
DeathSound ();
#line 2184 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetCollisionFlags (ECF_MODEL );
#line 2186 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
AnimForDeath ();
#line 2187 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(4.66f);
Jump(STATE_CURRENT, 0x014c0133, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0133_Death_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0133
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0134, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0134_Death_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0134
;
#line 2188 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ShakeItFarBaby (_pTimer -> CurrentTick () , 5.0f);
#line 2189 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (DEVIL_ANIM_DEATH ) - 4.66f);
Jump(STATE_CURRENT, 0x014c0135, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0135_Death_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0135
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0136, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0136_Death_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0136
;
#line 2190 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmDeathTime = _pTimer -> CurrentTick ();
#line 2192 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CWorldSettingsController * pwsc = GetWSC (this );
#line 2193 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(pwsc != NULL )
#line 2194 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2195 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_colGlade = C_WHITE ;
#line 2196 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmGlaringStarted = _pTimer -> CurrentTick () + 1.5f;
#line 2197 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_tmGlaringEnded = pwsc -> m_tmGlaringStarted + 1.0f ,
#line 2198 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fGlaringFadeInRatio = 0.2f;
#line 2199 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
pwsc -> m_fGlaringFadeOutRatio = 0.7f;
#line 2200 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2201 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(1.5f);
Jump(STATE_CURRENT, 0x014c0137, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0137_Death_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0137
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c0138, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c0138_Death_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0138
;
#line 2202 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soLeft , SOUND_DISAPPEAR , SOF_3D | SOF_VOLUMETRIC );
#line 2203 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.25f);
Jump(STATE_CURRENT, 0x014c0139, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0139_Death_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0139
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c013a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c013a_Death_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c013a
;
#line 2204 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SwitchToEditorModel ();
#line 2206 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlaySound (m_soRight , SOUND_DEATHPARTICLES , SOF_3D );
#line 2207 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Return(STATE_CURRENT,EEnd ());
#line 2207 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CDevil::
#line 2213 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CDevil_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CDevil::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 2214 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_sptType = SPT_NONE ;
#line 2216 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
InitAsEditorModel ();
#line 2217 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetPhysicsFlags (EPF_MODEL_WALKING & ~ EPF_TRANSLATEDBYGRAVITY );
#line 2218 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetCollisionFlags (((ECBI_MODEL ) << ECB_TEST ) | ((ECBI_MODEL ) << ECB_PASS ) | ((ECBI_ITEM ) << ECB_IS ));
#line 2219 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetFlags (GetFlags () | ENF_ALIVE );
#line 2222 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bBoss = TRUE ;
#line 2223 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! m_bForMPIntro )
#line 2224 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2225 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetHealth (BOSS_HEALTH );
#line 2226 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2227 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else
#line 2228 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2229 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetHealth (5000);
#line 2230 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2231 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fMaxHealth = BOSS_HEALTH ;
#line 2232 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fBlowUpAmount = 1e6;
#line 2233 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fBodyParts = 6;
#line 2234 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fDamageWounded = 1e9;
#line 2235 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
en_fDensity = 2500.0f;
#line 2236 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bHasUpperWeapons = FALSE ;
#line 2237 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bRenderElectricity = FALSE ;
#line 2238 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bOnStartPosition = FALSE ;
#line 2239 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmGiveUp = UpperLimit (0.0f);
#line 2240 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmDeathTime = - 1.0f;
#line 2255 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetComponents (this , * GetModelObject () , MODEL_DEVIL , TEXTURE_DEVIL , 0 , 0 , 0);
#line 2258 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> StretchModel (FLOAT3D (SIZE , SIZE , SIZE ));
#line 2259 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
ModelChangeNotify ();
#line 2261 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StandingAnim ();
#line 2264 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fWalkSpeed = 10.0f;
#line 2265 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_aWalkRotateSpeed = AngleDeg (90.0f);
#line 2266 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRunSpeed = 8.0f;
#line 2267 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_aAttackRotateSpeed = AngleDeg (90.0f);
#line 2268 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fCloseRunSpeed = 8.0f;
#line 2269 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_aCloseRotateSpeed = AngleDeg (90.0f);
#line 2271 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackDistance = 1e24f;
#line 2272 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fCloseDistance = 50.0f;
#line 2273 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fStopDistance = 10.0f;
#line 2274 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackFireTime = 10.0f;
#line 2275 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fCloseFireTime = 5.0f;
#line 2276 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fIgnoreRange = UpperLimit (0.0f);
#line 2277 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
en_fAcceleration = en_fDeceleration = 50.0f;
#line 2278 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fLockOnEnemyTime = 0.05f;
#line 2279 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fPauseStretcher = 1.0f;
#line 2280 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bWasOnceInMainLoop = FALSE ;
#line 2283 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetupLightSource ();
#line 2285 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
try {
#line 2286 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_aoLightAnimation . SetData_t (CTFILENAME ("Animations\\BasicEffects.ani"));
#line 2287 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}catch (char * strError ){
#line 2288 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
WarningMessage (TRANS ("Cannot load Animations\\BasicEffects.ani: %s") , strError );
#line 2289 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2290 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
PlayLightAnim (LIGHT_ANIM_NONE , 0);
#line 2292 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAfter(0.1f);
Jump(STATE_CURRENT, 0x014c013b, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c013b_Main_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c013b
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x014c013c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CDevil::H0x014c013c_Main_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c013c
;
#line 2294 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_iScore = 0;
#line 2296 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(!(! m_bForMPIntro )){ Jump(STATE_CURRENT,0x014c0140, FALSE, EInternal());return TRUE;}
#line 2298 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_POSEDOWN , 0);
#line 2299 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x014c013d, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c013d_Main_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c013d
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,0x014c013e, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break;
#line 2302 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c013e_Main_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c013e
Jump(STATE_CURRENT,0x014c013f, FALSE, EInternal());return TRUE;}BOOL CDevil::H0x014c0140_Main_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0140
#line 2305 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2306 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
StartModelAnim (DEVIL_ANIM_DEFAULT , 0);
#line 2307 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}Jump(STATE_CURRENT,0x014c013f, FALSE, EInternal());return TRUE;}
BOOL CDevil::H0x014c013f_Main_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c013f
#line 2309 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SwitchToModel ();
#line 2312 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_NOT_EXISTING ;
#line 2314 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x014c0141, FALSE, EBegin());return TRUE;}BOOL CDevil::H0x014c0141_Main_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0141
switch(__eeInput.ee_slEvent)
#line 2315 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 2317 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2318 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2319 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Begin\n");
#line 2320 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2321 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! m_bForMPIntro )
#line 2322 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2323 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dsDevilState == DS_NOT_EXISTING )
#line 2324 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2325 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_DESTROYING_CITY ;
#line 2326 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_DestroyCity, TRUE, EVoid());return TRUE;
#line 2327 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2328 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2329 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2330 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETrigger):
#line 2332 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const ETrigger&e= (ETrigger&)__eeInput;
#line 2333 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2334 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2335 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Trigger\n");
#line 2336 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2337 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2338 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_EDevilCommand):
#line 2340 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const EDevilCommand&eDevilCommand= (EDevilCommand&)__eeInput;
#line 2341 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2342 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2343 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CTString strDevilCommand = DevilCommandType_enum . NameForValue (INDEX (eDevilCommand . dctType ));
#line 2344 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Devil command: %s\n" , strDevilCommand );
#line 2345 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2347 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(eDevilCommand . dctType == DC_GRAB_LOWER_WEAPONS )
#line 2348 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2349 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dapAttackPower = DAP_LOW_POWER_ATTACK ;
#line 2350 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_ENEMY ;
#line 2351 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_GrabLowerWeapons, TRUE, EVoid());return TRUE;
#line 2352 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2354 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(eDevilCommand . dctType == DC_FORCE_ACTION )
#line 2355 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2356 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_penAction = eDevilCommand . penForcedAction ;
#line 2357 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_DestroyCity, TRUE, EVoid());return TRUE;
#line 2358 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2359 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(eDevilCommand . dctType == DC_STOP_MOVING )
#line 2360 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2361 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_vStartPosition = GetPlacement () . pl_PositionVector ;
#line 2362 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_fAttackRadius = 0.0f;
#line 2363 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2364 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(eDevilCommand . dctType == DC_STOP_ATTACK )
#line 2365 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2366 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
SetTargetNone ();
#line 2367 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2368 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(eDevilCommand . dctType == DC_JUMP_INTO_PYRAMID )
#line 2369 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2370 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_IDLE , 0);
#line 2371 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_plTeleport = eDevilCommand . penForcedAction -> GetPlacement ();
#line 2372 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_JUMPING_INTO_PYRAMID ;
#line 2373 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_JumpIntoPyramid, TRUE, EVoid());return TRUE;
#line 2374 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2375 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
else if(eDevilCommand . dctType == DC_TELEPORT_INTO_PYRAMID )
#line 2376 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2377 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
GetModelObject () -> PlayAnim (DEVIL_ANIM_IDLE , 0);
#line 2378 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_plTeleport = eDevilCommand . penForcedAction -> GetPlacement ();
#line 2379 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_JUMPING_INTO_PYRAMID ;
#line 2380 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_TeleportIntoPyramid, TRUE, EVoid());return TRUE;
#line 2381 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2382 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2383 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_ERegenerationImpuls):
#line 2385 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const ERegenerationImpuls&e= (ERegenerationImpuls&)__eeInput;
#line 2386 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2387 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2388 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Regeneration impulse\n");
#line 2389 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2390 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bRenderElectricity = FALSE ;
#line 2391 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_RegenerationImpulse, TRUE, EVoid());return TRUE;
#line 2392 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2393 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_EHitBySpaceShipBeam):
#line 2395 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const EHitBySpaceShipBeam&e= (EHitBySpaceShipBeam&)__eeInput;
#line 2396 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2397 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2398 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Hit by space ship beam\n");
#line 2399 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2400 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bRenderElectricity = FALSE ;
#line 2401 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_tmHitBySpaceShipBeam = _pTimer -> CurrentTick ();
#line 2402 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_BeamDamage, TRUE, EVoid());return TRUE;
#line 2403 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2404 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_EDeath):{const EDeath&eDeath= (EDeath&)__eeInput;
#line 2407 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(! (GetFlags () & ENF_ALIVE ))
#line 2408 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2409 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2410 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2412 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2413 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2414 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Death\n");
#line 2415 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2417 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_bRenderElectricity = FALSE ;
#line 2418 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Jump(STATE_CURRENT, STATE_CEnemyBase_Die, FALSE, eDeath );return TRUE;
#line 2419 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_EEnvironmentStart):
#line 2421 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const EEnvironmentStart&e= (EEnvironmentStart&)__eeInput;
#line 2422 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_MPIntro, TRUE, EVoid());return TRUE;
#line 2423 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2424 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;case(EVENTCODE_EReturn):
#line 2426 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{const EReturn&e= (EReturn&)__eeInput;
#line 2427 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(cht_bDebugFinalBoss )
#line 2428 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2429 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
CPrintF ("Main loop, event: Return\n");
#line 2430 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2431 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dsDevilState == DS_DESTROYING_CITY )
#line 2432 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2433 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_soSound . Set3DParameters (1000.0f , 500.0f , 2.0f , 1.0f);
#line 2434 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dsDevilState = DS_ENEMY ;
#line 2435 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
if(m_dapAttackPower == DAP_NOT_ATTACKING )
#line 2436 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
{
#line 2437 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
m_dapAttackPower = DAP_PLAYER_HUNT ;
#line 2438 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2439 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}
#line 2440 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
Call(STATE_CURRENT, STATE_CDevil_ContinueInMainLoop, TRUE, EVoid());return TRUE;
#line 2441 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
return TRUE;
#line 2442 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}ASSERT(FALSE);break;default: return FALSE; break;
#line 2443 "D:/SE1_GPL/Sources/EntitiesMP/Devil.es"
}return TRUE;}BOOL CDevil::H0x014c0142_Main_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x014c0142
ASSERT(FALSE); return TRUE;};