/* * This file is generated by Entity Class Compiler, (c) CroTeam 1997-98 */ #line 4 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" #include "StdH.h" //#include "Models/Enemies/Elementals/AirMan.h" //#include "Models/Enemies/Elementals/IceMan.h" #include "Models/Enemies/Elementals/StoneMan.h" //#include "Models/Enemies/Elementals/Twister.h" //#include "Models/Enemies/Elementals/WaterMan.h" //#include "Models/Enemies/Elementals/Projectile/IcePyramid.h" #include "Models/Enemies/Elementals/Projectile/LavaStone.h" #include "Models/Enemies/ElementalLava/ElementalLava.h" #include "EntitiesMP/WorldSettingsController.h" #include "EntitiesMP/BackgroundViewer.h" // lava elemental definitions #define LAVAMAN_SMALL_STRETCH (2.0f*0.75f) #define LAVAMAN_BIG_STRETCH (4.0f*1.25f) #define LAVAMAN_LARGE_STRETCH (16.0f*2.5f) #define LAVAMAN_BOSS_FIRE_RIGHT FLOAT3D(1.01069f, 0.989616f, -1.39743f) #define LAVAMAN_BOSS_FIRE_LEFT FLOAT3D(-0.39656f, 1.08619f, -1.34373f) #define LAVAMAN_FIRE_LEFT FLOAT3D(-0.432948f, 1.51133f, -0.476662f) #define LAVAMAN_FIRE_SMALL (LAVAMAN_FIRE_LEFT*LAVAMAN_SMALL_STRETCH) #define LAVAMAN_FIRE_BIG (LAVAMAN_FIRE_LEFT*LAVAMAN_BIG_STRETCH) #define LAVAMAN_FIRE_LARGE_LEFT (LAVAMAN_BOSS_FIRE_LEFT*LAVAMAN_LARGE_STRETCH) #define LAVAMAN_FIRE_LARGE_RIGHT (LAVAMAN_BOSS_FIRE_RIGHT*LAVAMAN_LARGE_STRETCH) #define LAVAMAN_SPAWN_BIG (FLOAT3D(0.0171274f, 1.78397f, -0.291414f)*LAVAMAN_BIG_STRETCH) #define LAVAMAN_SPAWN_LARGE (FLOAT3D(0.0171274f, 1.78397f, -0.291414f)*LAVAMAN_LARGE_STRETCH) #define DEATH_BURN_TIME 1.0f #include #include #line 65 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" #define ECF_AIR ( \ ((ECBI_BRUSH|ECBI_MODEL|ECBI_CORPSE|ECBI_ITEM|ECBI_PROJECTILE_MAGIC|ECBI_PROJECTILE_SOLID)< CurrentTick () - m_fSpiritStartTime ) / DEATH_BURN_TIME , 0.0f , 1.0f); #line 295 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 296 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Particles_Burning (this , fPower , fTimeFactor * fDeathFactor ); #line 297 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 298 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 300 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::Precache(void) #line 301 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 302 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEnemyBase :: Precache (); #line 304 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ) #line 305 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 306 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : #line 307 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 308 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ) #line 309 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 310 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheClass (CLASS_PROJECTILE , PRT_LAVAMAN_BIG_BOMB ); #line 311 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 312 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if((m_EecChar == ELC_LARGE ) || (m_EecChar == ELC_BIG )) #line 313 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 314 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheClass (CLASS_PROJECTILE , PRT_LAVAMAN_BOMB ); #line 315 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 317 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheClass (CLASS_PROJECTILE , PRT_LAVAMAN_STONE ); #line 319 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheModel (MODEL_LAVA ); #line 320 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheModel (MODEL_LAVA_BODY_FLARE ); #line 321 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheModel (MODEL_LAVA_HAND_FLARE ); #line 322 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheTexture (TEXTURE_LAVA ); #line 323 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheTexture (TEXTURE_LAVA_DETAIL ); #line 324 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheTexture (TEXTURE_LAVA_FLARE ); #line 326 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_IDLE ); #line 327 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_WOUND ); #line 328 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_FIRE ); #line 329 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_KICK ); #line 330 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_DEATH ); #line 331 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_ANGER ); #line 332 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_LAVABURN ); #line 333 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrecacheSound (SOUND_LAVA_GROW ); #line 334 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 335 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 336 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 337 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 340 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void * CElemental::GetEntityInfo(void) { #line 341 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 342 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_AIR : #line 343 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 344 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : return & eiAirElementalLarge ; #line 345 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : return & eiAirElementalBig ; #line 346 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{return & eiAirElementalSmall ;} #line 347 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 348 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 349 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_ICE : #line 350 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 351 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : return & eiIceElementalLarge ; #line 352 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : return & eiIceElementalBig ; #line 353 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{return & eiIceElementalSmall ;} #line 354 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 355 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 356 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : #line 357 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 358 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : return & eiLavaElementalLarge ; #line 359 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : return & eiLavaElementalBig ; #line 360 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{return & eiLavaElementalSmall ;} #line 361 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 362 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 363 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_STONE : #line 364 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 365 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : return & eiStoneElementalLarge ; #line 366 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : return & eiStoneElementalBig ; #line 367 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{return & eiStoneElementalSmall ;} #line 368 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 369 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 371 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{ #line 372 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 373 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : return & eiWaterElementalLarge ; #line 374 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : return & eiWaterElementalBig ; #line 375 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{return & eiWaterElementalSmall ;} #line 376 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }} #line 377 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 378 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 381 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BOOL CElemental::FillEntityStatistics(EntityStats * pes) #line 382 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 383 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEnemyBase :: FillEntityStatistics (pes ); #line 384 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 385 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_WATER : {pes -> es_strName += " Water";}break ; #line 386 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_AIR : {pes -> es_strName += " Air";}break ; #line 387 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_STONE : {pes -> es_strName += " Stone";}break ; #line 388 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : {pes -> es_strName += " Lava";}break ; #line 389 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_ICE : {pes -> es_strName += " Ice";}break ; #line 390 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 391 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 392 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : pes -> es_strName += " Large";break ; #line 393 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : pes -> es_strName += " Big";break ; #line 394 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_SMALL : pes -> es_strName += " Small";break ; #line 395 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 396 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE ; #line 397 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 400 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::ReceiveDamage(CEntity * penInflictor,enum DamageType dmtType, #line 401 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fDamageAmmount,const FLOAT3D & vHitPoint,const FLOAT3D & vDirection) #line 402 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 404 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(IsOfClass (penInflictor , "Elemental")){ #line 405 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return ; #line 406 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 409 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE && dmtType == DMT_TELEPORT ) #line 410 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 411 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return ; #line 412 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 415 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_BIG && dmtType == DMT_BULLET && fDamageAmmount > 100.0f) #line 416 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 417 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" fDamageAmmount /= 2.5f; #line 418 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 421 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX ctShouldSpawn = Clamp (INDEX ((m_fMaxHealth - GetHealth ()) / m_fSpawnDamage ) , INDEX (0) , INDEX (10)); #line 422 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CTString strChar = ElementalCharacter_enum . NameForValue (INDEX (m_EecChar )); #line 426 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_bSpawnEnabled && m_bSpawnWhenHarmed && (m_EecChar == ELC_LARGE || m_EecChar == ELC_BIG )) #line 427 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 428 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX ctShouldSpawn = Clamp (INDEX ((m_fMaxHealth - GetHealth ()) / m_fSpawnDamage ) , INDEX (0) , INDEX (10)); #line 429 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_ctSpawned < ctShouldSpawn ) #line 430 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 431 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SendEvent (EForceWound ()); #line 432 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 433 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 436 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EesCurrentState != ELS_NORMAL ){ #line 437 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return ; #line 438 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 440 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEnemyBase :: ReceiveDamage (penInflictor , dmtType , fDamageAmmount , vHitPoint , vDirection ); #line 441 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 443 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::LeaveStain(BOOL bGrow) #line 444 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 445 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return ; #line 446 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 449 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX CElemental::AnimForDamage(FLOAT fDamage) { #line 450 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX iAnim ; #line 452 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 453 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(IRnd () % 3){ #line 454 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case 0: iAnim = ELEMENTALLAVA_ANIM_WOUND01 ;break ; #line 455 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case 1: iAnim = ELEMENTALLAVA_ANIM_WOUND02 ;break ; #line 456 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default : iAnim = ELEMENTALLAVA_ANIM_WOUND03 ;break ; #line 457 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 458 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 464 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 465 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (iAnim , 0); #line 466 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return iAnim ; #line 467 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 469 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::StandingAnimFight(void) { #line 470 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_STANDFIGHT , AOF_LOOPING | AOF_NORESTART ); #line 471 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 474 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::StandingAnim(void) { #line 475 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 476 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EesCurrentState ){ #line 477 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELS_NORMAL : StartModelAnim (ELEMENTALLAVA_ANIM_WALKBIG , AOF_LOOPING | AOF_NORESTART );break ; #line 478 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELS_BOX : StartModelAnim (ELEMENTALLAVA_ANIM_MELTFLY , AOF_LOOPING | AOF_NORESTART );break ; #line 480 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default : StartModelAnim (ELEMENTALLAVA_ANIM_STANDPLANE , AOF_LOOPING | AOF_NORESTART );break ; #line 481 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 482 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 489 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 490 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 492 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::WalkingAnim(void) #line 493 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 494 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 495 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ){ #line 496 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_WALKBIG , AOF_LOOPING | AOF_NORESTART ); #line 497 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else if(m_EecChar == ELC_BIG ){ #line 498 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_RUNMEDIUM , AOF_LOOPING | AOF_NORESTART ); #line 499 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 500 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_RUNSMALL , AOF_LOOPING | AOF_NORESTART ); #line 501 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 502 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 504 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 505 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 506 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::RunningAnim(void) #line 507 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 508 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 509 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" WalkingAnim (); #line 510 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 512 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 513 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 514 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::RotatingAnim(void) { #line 515 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 516 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" WalkingAnim (); #line 517 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 519 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 520 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 522 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX CElemental::AnimForDeath(void) #line 523 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 524 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX iAnim ; #line 525 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 526 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" iAnim = ELEMENTALLAVA_ANIM_DEATH03 ; #line 527 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 529 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 530 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (iAnim , 0); #line 531 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return iAnim ; #line 532 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 535 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::IdleSound(void) { #line 536 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_IDLE , SOF_3D ); #line 537 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 538 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::SightSound(void) { #line 539 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 540 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::WoundSound(void) { #line 541 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_WOUND , SOF_3D ); #line 542 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 543 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::DeathSound(void) { #line 544 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_DEATH , SOF_3D ); #line 545 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 547 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BOOL CElemental::CountAsKill(void) #line 548 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 549 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return m_bCountAsKill ; #line 550 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 553 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::SpawnNewElemental(void) #line 554 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 555 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX ctShouldSpawn = Clamp (INDEX ((m_fMaxHealth - GetHealth ()) / m_fSpawnDamage ) , INDEX (0) , INDEX (10)); #line 557 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_bSpawnOnBlowUp && (m_EecChar == ELC_LARGE || m_EecChar == ELC_BIG ) && (GetHealth () <= 0.0f)) #line 558 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 559 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ctShouldSpawn += 2; #line 560 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 562 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ASSERT (m_ctSpawned <= ctShouldSpawn ); #line 563 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_ctSpawned >= ctShouldSpawn ) #line 564 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 565 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return ; #line 566 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 568 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CPlacement3D pl ; #line 570 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ){ #line 571 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pl = CPlacement3D (LAVAMAN_SPAWN_LARGE , ANGLE3D (- 90.0f + FRnd () * 180.0f , 30 + FRnd () * 30 , 0)); #line 572 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 573 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pl = CPlacement3D (LAVAMAN_SPAWN_BIG , ANGLE3D (- 90.0f + FRnd () * 180.0f , 40 + FRnd () * 20 , 0)); #line 574 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 575 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pl . RelativeToAbsolute (GetPlacement ()); #line 578 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEntityPointer pen = GetWorld () -> CreateEntity (pl , GetClass ()); #line 579 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_EetType = m_EetType ; #line 581 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ){ #line 582 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_EecChar = ELC_BIG ; #line 583 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 584 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_EecChar = ELC_SMALL ; #line 585 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 587 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_EesStartState = ELS_BOX ; #line 588 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_fDensity = m_fDensity ; #line 589 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_colColor = m_colColor ; #line 590 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_penEnemy = m_penEnemy ; #line 591 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_ttTarget = m_ttTarget ; #line 592 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . m_bSpawned = TRUE ; #line 593 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pen -> Initialize (EVoid ()); #line 595 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ){ #line 596 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . LaunchAsFreeProjectile (FLOAT3D (0 , 0 , - 40.0f) , this ); #line 597 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 598 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . LaunchAsFreeProjectile (FLOAT3D (0 , 0 , - 20.0f) , this ); #line 599 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 600 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ((CElemental &) * pen ) . SetDesiredRotation (ANGLE3D (0 , 0 , FRnd () * 360 - 180)); #line 603 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEntity * penSpray = CreateEntity (pl , CLASS_BLOOD_SPRAY ); #line 604 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" penSpray -> SetParent (pen ); #line 605 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ESpawnSpray eSpawnSpray ; #line 606 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnSpray . fDamagePower = 4.0f; #line 607 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnSpray . fSizeMultiplier = 0.5f; #line 608 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnSpray . sptType = SPT_LAVA_STONES ; #line 609 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnSpray . vDirection = FLOAT3D (0 , - 0.5f , 0); #line 610 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnSpray . colBurnColor = C_WHITE | CT_OPAQUE ; #line 611 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnSpray . penOwner = pen ; #line 612 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" penSpray -> Initialize (eSpawnSpray ); #line 613 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_ctSpawned ++; #line 614 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 617 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::ThrowRocks(ProjectileType EptProjectile) { #line 619 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vPos ; #line 620 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ANGLE3D aAngle ; #line 622 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 623 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : { #line 624 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vPos = FIRE_ROCKS_LARGE ; #line 625 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , ANGLE3D (0 , 0 , 0)); #line 626 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" aAngle = ANGLE3D (FRnd () * 5.0f + 5.0f , FRnd () * 3.0f - 2.0f , 0); #line 627 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , aAngle ); #line 628 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" aAngle = ANGLE3D (FRnd () * - 5.0f - 5.0f , FRnd () * 3.0f - 2.0f , 0); #line 629 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , aAngle ); #line 630 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ;} #line 631 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : { #line 632 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vPos = FIRE_ROCKS_BIG ; #line 633 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , ANGLE3D (0 , 0 , 0)); #line 634 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" aAngle = ANGLE3D (FRnd () * 4.0f + 4.0f , FRnd () * 3.0f - 2.0f , 0); #line 635 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , aAngle ); #line 636 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" aAngle = ANGLE3D (FRnd () * - 4.0f - 4.0f , FRnd () * 3.0f - 2.0f , 0); #line 637 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , aAngle ); #line 638 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ;} #line 639 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" default :{ #line 640 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vPos = FIRE_ROCKS ; #line 641 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , ANGLE3D (0 , 0 , 0)); #line 642 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" aAngle = ANGLE3D (FRnd () * 3.0f + 3.0f , FRnd () * 3.0f - 2.0f , 0); #line 643 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , aAngle ); #line 644 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" aAngle = ANGLE3D (FRnd () * - 3.0f - 3.0f , FRnd () * 3.0f - 2.0f , 0); #line 645 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (EptProjectile , vPos , aAngle ); #line 646 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 647 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 648 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 650 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::BossFirePredictedLavaRock(FLOAT3D vFireingRel) #line 651 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 652 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vShooting = GetPlacement () . pl_PositionVector + vFireingRel * GetRotationMatrix (); #line 653 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vTarget = m_penEnemy -> GetPlacement () . pl_PositionVector ; #line 654 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vSpeedDest = ((CMovableEntity &) * m_penEnemy ) . en_vCurrentTranslationAbsolute ; #line 655 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fLaunchSpeed ; #line 656 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fRelativeHdg ; #line 658 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fDistanceFactor = ClampUp ((vShooting - vTarget ) . Length () / 150.0f , 1.0f) - 0.75f; #line 659 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fPitch = fDistanceFactor * 45.0f; #line 662 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" EntityInfo * peiTarget = (EntityInfo *) (m_penEnemy -> GetEntityInfo ()); #line 663 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CalculateAngularLaunchParams (vShooting , peiTarget -> vTargetCenter [ 1 ] - 6.0f / 3.0f , vTarget , #line 664 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vSpeedDest , fPitch , fLaunchSpeed , fRelativeHdg ); #line 667 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vShootTarget ; #line 668 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetEntityInfoPosition (m_penEnemy , peiTarget -> vTargetCenter , vShootTarget ); #line 670 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CPlacement3D pl ; #line 671 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrepareFreeFlyingProjectile (pl , vShootTarget , vFireingRel , ANGLE3D (fRelativeHdg , fPitch , 0)); #line 672 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEntityPointer penProjectile = CreateEntity (pl , CLASS_PROJECTILE ); #line 673 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ELaunchProjectile eLaunch ; #line 674 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eLaunch . penLauncher = this ; #line 675 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eLaunch . prtType = PRT_LAVAMAN_BIG_BOMB ; #line 676 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eLaunch . fSpeed = fLaunchSpeed ; #line 677 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" penProjectile -> Initialize (eLaunch ); #line 678 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 681 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::ShakeItBaby(FLOAT tmShaketime,FLOAT fPower) #line 682 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 683 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CWorldSettingsController * pwsc = GetWSC (this ); #line 684 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(pwsc != NULL ){ #line 685 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_tmShakeStarted = tmShaketime ; #line 686 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_vShakePos = GetPlacement () . pl_PositionVector ; #line 687 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_fShakeFalloff = 450.0f; #line 688 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_fShakeFade = 3.0f; #line 690 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_fShakeIntensityZ = 0; #line 691 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_tmShakeFrequencyZ = 5.0f; #line 692 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_fShakeIntensityY = 0.1f * fPower ; #line 693 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_tmShakeFrequencyY = 5.0f; #line 694 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_fShakeIntensityB = 2.5f * fPower ; #line 695 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_tmShakeFrequencyB = 7.2f; #line 697 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pwsc -> m_bShakeFadeIn = FALSE ; #line 698 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 699 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 701 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::SpawnShockwave(FLOAT fSize) #line 702 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 703 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CPlacement3D pl = GetPlacement (); #line 704 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" pl . pl_PositionVector (2) += 0.1f; #line 705 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEntityPointer penShockwave = CreateEntity (pl , CLASS_BASIC_EFFECT ); #line 707 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ESpawnEffect eSpawnEffect ; #line 708 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnEffect . colMuliplier = C_WHITE | CT_OPAQUE ; #line 709 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnEffect . betType = BET_CANNONSHOCKWAVE ; #line 710 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eSpawnEffect . vStretch = FLOAT3D (fSize , fSize , fSize ); #line 711 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" penShockwave -> Initialize (eSpawnEffect ); #line 712 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 715 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::HitGround(void) { #line 716 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vSource ; #line 717 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_penEnemy != NULL ) #line 718 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 719 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vSource = GetPlacement () . pl_PositionVector + #line 720 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D (m_penEnemy -> en_mRotation (1 , 2) , m_penEnemy -> en_mRotation (2 , 2) , m_penEnemy -> en_mRotation (3 , 2)); #line 721 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 722 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" else #line 723 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 724 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vSource = GetPlacement () . pl_PositionVector ; #line 725 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 728 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ){ #line 729 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" InflictRangeDamage (this , DMT_IMPACT , 150.0f , vSource , 7.5f , m_fCloseDistance ); #line 730 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShakeItBaby (_pTimer -> CurrentTick () , 5.0f); #line 731 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SpawnShockwave (10.0f); #line 732 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else if(m_EecChar == ELC_BIG ){ #line 733 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" InflictRangeDamage (this , DMT_IMPACT , 75.0f , vSource , 5.0f , m_fCloseDistance ); #line 734 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShakeItBaby (_pTimer -> CurrentTick () , 2.0f); #line 735 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SpawnShockwave (3.0f); #line 736 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 737 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" InflictRangeDamage (this , DMT_IMPACT , 25.0f , vSource , 2.5f , m_fCloseDistance ); #line 738 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SpawnShockwave (1.0f); #line 739 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 740 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 788 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::AddAttachments(void) { #line 789 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 803 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : #line 804 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(GetModelObject () -> GetAttachmentModel (ELEMENTALLAVA_ATTACHMENT_BODY_FLARE ) == NULL ){ #line 805 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" AddAttachmentToModel (this , * GetModelObject () , ELEMENTALLAVA_ATTACHMENT_BODY_FLARE , MODEL_LAVA_BODY_FLARE , TEXTURE_LAVA_FLARE , 0 , 0 , 0); #line 806 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" AddAttachmentToModel (this , * GetModelObject () , ELEMENTALLAVA_ATTACHMENT_RIGHT_HAND_FLARE , MODEL_LAVA_HAND_FLARE , TEXTURE_LAVA_FLARE , 0 , 0 , 0); #line 807 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" AddAttachmentToModel (this , * GetModelObject () , ELEMENTALLAVA_ATTACHMENT_LEFT_HAND_FLARE , MODEL_LAVA_HAND_FLARE , TEXTURE_LAVA_FLARE , 0 , 0 , 0); #line 808 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 809 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 822 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 823 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetModelObject () -> StretchModel (GetModelObject () -> mo_Stretch ); #line 824 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ModelChangeNotify (); #line 825 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 828 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::RemoveAttachments(void) { #line 829 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 837 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : #line 838 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" RemoveAttachmentFromModel (* GetModelObject () , ELEMENTALLAVA_ATTACHMENT_BODY_FLARE ); #line 839 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" RemoveAttachmentFromModel (* GetModelObject () , ELEMENTALLAVA_ATTACHMENT_RIGHT_HAND_FLARE ); #line 840 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" RemoveAttachmentFromModel (* GetModelObject () , ELEMENTALLAVA_ATTACHMENT_LEFT_HAND_FLARE ); #line 841 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 848 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 849 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 855 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::BlowUp(void) { #line 857 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOATaabbox3D box ; #line 858 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetBoundingBox (box ); #line 859 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fEntitySize = box . Size () . MaxNorm () / 2; #line 861 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX iCount = 1; #line 862 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EecChar ){ #line 863 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_SMALL : iCount = 3;break ; #line 864 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_BIG : iCount = 5;break ; #line 865 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELC_LARGE : iCount = 7;break ; #line 866 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 868 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vNormalizedDamage = m_vDamage - m_vDamage * (m_fBlowUpAmount / m_vDamage . Length ()); #line 869 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vNormalizedDamage /= Sqrt (vNormalizedDamage . Length ()); #line 870 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vNormalizedDamage *= 1.75f; #line 871 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vBodySpeed = en_vCurrentTranslationAbsolute - en_vGravityDir * (en_vGravityDir % en_vCurrentTranslationAbsolute ); #line 911 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SwitchToEditorModel (); #line 912 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_IMMATERIAL ); #line 913 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetCollisionFlags (ECF_IMMATERIAL ); #line 914 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 918 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" void CElemental::EnemyPostInit(void) #line 919 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 920 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE && m_EetType == ELT_LAVA ) #line 921 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 922 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soBackground . Set3DParameters (400.0f , 0.0f , 1.0f , 1.0f); #line 923 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soSound . Set3DParameters (400.0f , 50.0f , 1.0f , 1.0f); #line 924 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soFireL . Set3DParameters (400.0f , 50.0f , 1.0f , 1.0f); #line 925 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soFireR . Set3DParameters (400.0f , 50.0f , 1.0f , 1.0f); #line 926 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 927 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" else if(m_EecChar == ELC_BIG && m_EetType == ELT_LAVA ) #line 928 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 929 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soBackground . Set3DParameters (150.0f , 15.0f , 0.5f , 1.0f); #line 930 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soSound . Set3DParameters (200.0f , 0.0f , 1.0f , 1.0f); #line 931 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soFireL . Set3DParameters (200.0f , 0.0f , 1.0f , 1.0f); #line 932 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_soFireR . Set3DParameters (200.0f , 0.0f , 1.0f , 1.0f); #line 933 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 934 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } BOOL CElemental:: #line 940 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FallOnFloor(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_FallOnFloor ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::FallOnFloor expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 942 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_WALKING ); #line 944 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(10.0f); Jump(STATE_CURRENT, 0x01420001, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420001_FallOnFloor_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420001 switch(__eeInput.ee_slEvent){case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput; UnsetTimer();Jump(STATE_CURRENT,0x01420002, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput; return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_ETouch):{const ETouch&et= (ETouch&)__eeInput; #line 949 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(et . penOther -> GetRenderType () & RT_BRUSH ){ #line 951 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StopMoving (); #line 952 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" UnsetTimer();Jump(STATE_CURRENT,0x01420002, FALSE, EInternal());return TRUE; #line 953 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 954 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; #line 955 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }ASSERT(FALSE);break;default:{return TRUE;}ASSERT(FALSE);break; #line 957 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }return TRUE;}BOOL CElemental::H0x01420002_FallOnFloor_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420002 #line 958 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_MELTUP , 0); #line 959 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 959 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1006 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" LavamanFire(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_LavamanFire ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::LavamanFire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1008 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bSpawnEnabled = TRUE ; #line 1010 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(!(m_EecChar == ELC_LARGE )){ Jump(STATE_CURRENT,0x01420012, FALSE, EInternal());return TRUE;} #line 1012 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CModelObject & mo = * GetModelObject (); #line 1013 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT tmWait = mo . GetAnimLength (mo . ao_iCurrentAnim ) - mo . GetPassedTime (); #line 1014 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKBOSS , AOF_SMOOTHCHANGE ); #line 1015 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(tmWait + 0.95f); Jump(STATE_CURRENT, 0x01420004, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420004_LavamanFire_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420004 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420005, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420005_LavamanFire_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420005 ; #line 1016 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BossFirePredictedLavaRock (LAVAMAN_FIRE_LARGE_RIGHT ); #line 1017 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireR , SOUND_LAVA_FIRE , SOF_3D ); #line 1018 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(2.0150f - 0.95f); Jump(STATE_CURRENT, 0x01420006, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420006_LavamanFire_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420006 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420007, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420007_LavamanFire_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420007 ; #line 1019 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BossFirePredictedLavaRock (LAVAMAN_FIRE_LARGE_LEFT ); #line 1020 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireL , SOUND_LAVA_FIRE , SOF_3D ); #line 1021 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_WALKBIG , AOF_SMOOTHCHANGE ); #line 1022 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE; Jump(STATE_CURRENT, 0x01420008, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420008_LavamanFire_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420008 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x01420009, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420009_LavamanFire_06(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x01420009 const EReturn&__e= (EReturn&)__eeInput; ; #line 1023 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" MaybeSwitchToAnotherPlayer (); #line 1025 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fShootTime = _pTimer -> CurrentTick () + m_fAttackFireTime * (1.0f + FRnd () / 5.0f); #line 1026 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1026 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE;Jump(STATE_CURRENT,0x01420011, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x01420012_LavamanFire_15(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420012 if(!(m_EecChar == ELC_BIG )){ Jump(STATE_CURRENT,0x01420010, FALSE, EInternal());return TRUE;} #line 1030 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CModelObject & mo = * GetModelObject (); #line 1031 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT tmWait = mo . GetAnimLength (mo . ao_iCurrentAnim ) - mo . GetPassedTime (); #line 1032 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKLEFTHAND , AOF_SMOOTHCHANGE ); #line 1033 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(tmWait + 0.90f); Jump(STATE_CURRENT, 0x0142000a, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142000a_LavamanFire_07(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142000a switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0142000b, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142000b_LavamanFire_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142000b ; #line 1034 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vShooting = GetPlacement () . pl_PositionVector ; #line 1035 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vTarget = m_penEnemy -> GetPlacement () . pl_PositionVector ; #line 1036 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vSpeedDest = ((CMovableEntity &) * m_penEnemy ) . en_vCurrentTranslationAbsolute ; #line 1037 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fLaunchSpeed ; #line 1038 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fRelativeHdg ; #line 1040 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT fPitch = 20.0f; #line 1043 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" EntityInfo * peiTarget = (EntityInfo *) (m_penEnemy -> GetEntityInfo ()); #line 1044 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CalculateAngularLaunchParams (vShooting , LAVAMAN_FIRE_BIG (2) - peiTarget -> vTargetCenter [ 1 ] - 1.5f / 3.0f , vTarget , #line 1045 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" vSpeedDest , fPitch , fLaunchSpeed , fRelativeHdg ); #line 1048 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT3D vShootTarget ; #line 1049 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetEntityInfoPosition (m_penEnemy , peiTarget -> vTargetCenter , vShootTarget ); #line 1051 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CPlacement3D pl ; #line 1052 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PrepareFreeFlyingProjectile (pl , vShootTarget , LAVAMAN_FIRE_BIG , ANGLE3D (fRelativeHdg , fPitch , 0)); #line 1053 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CEntityPointer penProjectile = CreateEntity (pl , CLASS_PROJECTILE ); #line 1054 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ELaunchProjectile eLaunch ; #line 1055 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eLaunch . penLauncher = this ; #line 1056 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eLaunch . prtType = PRT_LAVAMAN_BOMB ; #line 1057 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" eLaunch . fSpeed = fLaunchSpeed ; #line 1058 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" penProjectile -> Initialize (eLaunch ); #line 1059 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_FIRE , SOF_3D );Jump(STATE_CURRENT,0x0142000f, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x01420010_LavamanFire_13(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420010 if(!(TRUE )){ Jump(STATE_CURRENT,0x0142000e, FALSE, EInternal());return TRUE;} #line 1063 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" CModelObject & mo = * GetModelObject (); #line 1064 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" FLOAT tmWait = mo . GetAnimLength (mo . ao_iCurrentAnim ) - mo . GetPassedTime (); #line 1065 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKLEFTHAND , AOF_SMOOTHCHANGE ); #line 1066 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(tmWait + 0.8f); Jump(STATE_CURRENT, 0x0142000c, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142000c_LavamanFire_09(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142000c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0142000d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142000d_LavamanFire_10(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142000d ; #line 1067 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ShootProjectile (PRT_LAVAMAN_STONE , LAVAMAN_FIRE_SMALL , ANGLE3D (0 , 0 , 0)); #line 1068 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_FIRE , SOF_3D );Jump(STATE_CURRENT,0x0142000e, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x0142000e_LavamanFire_11(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142000e Jump(STATE_CURRENT,0x0142000f, FALSE, EInternal());return TRUE;} BOOL CElemental::H0x0142000f_LavamanFire_12(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142000f Jump(STATE_CURRENT,0x01420011, FALSE, EInternal());return TRUE;} BOOL CElemental::H0x01420011_LavamanFire_14(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420011 #line 1071 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(GetModelObject () -> GetAnimLength (ELEMENTALLAVA_ANIM_ATTACKLEFTHAND ) - 0.9f); Jump(STATE_CURRENT, 0x01420013, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420013_LavamanFire_16(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420013 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420014, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420014_LavamanFire_17(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420014 ; #line 1073 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StandingAnim (); #line 1074 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(_pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x01420015, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420015_LavamanFire_18(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420015 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420016, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420016_LavamanFire_19(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420016 ; #line 1076 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar != ELC_SMALL ){ #line 1077 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" MaybeSwitchToAnotherPlayer (); #line 1078 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1081 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fShootTime = _pTimer -> CurrentTick () + m_fAttackFireTime * (1.0f + FRnd () / 5.0f); #line 1083 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1083 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1086 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" LavamanStones(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_LavamanStones ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::LavamanStones expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1088 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKLEFTHAND , 0); #line 1089 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(0.7f); Jump(STATE_CURRENT, 0x01420018, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420018_LavamanStones_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420018 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420019, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420019_LavamanStones_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420019 ; #line 1091 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ){ #line 1092 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ThrowRocks (PRT_LAVAMAN_STONE ); #line 1093 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else if(m_EecChar == ELC_BIG ){ #line 1094 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ThrowRocks (PRT_LAVAMAN_STONE ); #line 1095 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 1096 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ThrowRocks (PRT_LAVAMAN_STONE ); #line 1097 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1098 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_FIRE , SOF_3D ); #line 1099 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(0.9f); Jump(STATE_CURRENT, 0x0142001a, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142001a_LavamanStones_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142001a switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0142001b, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142001b_LavamanStones_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142001b ; #line 1101 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StandingAnim (); #line 1102 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(FRnd () / 3 + _pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x0142001c, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142001c_LavamanStones_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142001c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0142001d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142001d_LavamanStones_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142001d ; #line 1103 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1103 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1106 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" LavamanHit(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_LavamanHit ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::LavamanHit expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1108 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKTWOHANDS , 0); #line 1109 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(0.6f); Jump(STATE_CURRENT, 0x0142001f, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142001f_LavamanHit_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142001f switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420020, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420020_LavamanHit_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420020 ; #line 1110 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" HitGround (); #line 1111 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireL , SOUND_LAVA_KICK , SOF_3D ); #line 1112 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_WALKBIG , AOF_SMOOTHCHANGE ); #line 1113 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE; Jump(STATE_CURRENT, 0x01420021, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420021_LavamanHit_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420021 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CMovableModelEntity_WaitUntilScheduledAnimStarts, FALSE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x01420022, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420022_LavamanHit_04(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x01420022 const EReturn&__e= (EReturn&)__eeInput; ; #line 1114 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1114 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1209 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BeWounded(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_BeWounded ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EDamage, "CElemental::BeWounded expects 'EDamage' as input!"); const EDamage &eDamage = (const EDamage &)__eeInput; #line 1211 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_bSpawnEnabled ) #line 1212 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1213 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SpawnNewElemental (); #line 1214 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1215 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Jump(STATE_CURRENT, STATE_CEnemyBase_BeWounded, FALSE, eDamage );return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1222 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BoxToNormal(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_BoxToNormal ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::BoxToNormal expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1223 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_EesCurrentState = ELS_NORMAL ; #line 1224 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_WALKING ); #line 1225 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ChangeCollisionBoxIndexWhenPossible (STONEMAN_COLLISION_BOX_NORMAL ); #line 1226 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireL , SOUND_LAVA_GROW , SOF_3D ); #line 1227 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (STONEMAN_ANIM_MORPHBOXUP , 0); #line 1228 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" AddAttachments (); #line 1229 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(GetModelObject () -> GetAnimLength (STONEMAN_ANIM_MORPHBOXUP )); Jump(STATE_CURRENT, 0x01420025, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420025_BoxToNormal_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420025 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420026, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420026_BoxToNormal_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420026 ; #line 1230 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1230 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1245 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaneToNormal(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_PlaneToNormal ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::PlaneToNormal expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1246 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_EesCurrentState = ELS_NORMAL ; #line 1247 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SwitchToModel (); #line 1248 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_WALKING ); #line 1249 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ChangeCollisionBoxIndexWhenPossible (ELEMENTALLAVA_COLLISION_BOX_NORMAL ); #line 1250 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireL , SOUND_LAVA_GROW , SOF_3D ); #line 1251 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" INDEX iAnim ; #line 1252 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_LAVA ){ #line 1253 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" iAnim = ELEMENTALLAVA_ANIM_MELTUP ; #line 1254 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 1256 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1257 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (iAnim , 0); #line 1258 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" AddAttachments (); #line 1259 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(GetModelObject () -> GetAnimLength (iAnim )); Jump(STATE_CURRENT, 0x01420028, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420028_PlaneToNormal_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420028 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420029, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420029_PlaneToNormal_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420029 ; #line 1260 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1260 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1266 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" InitializeAttack(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_InitializeAttack ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::InitializeAttack expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1268 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(!(m_EesCurrentState == ELS_BOX )){ Jump(STATE_CURRENT,0x01420031, FALSE, EInternal());return TRUE;} #line 1270 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CElemental_BoxToNormal, TRUE; Jump(STATE_CURRENT, 0x0142002b, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142002b_InitializeAttack_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142002b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CElemental_BoxToNormal, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0142002c, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142002c_InitializeAttack_02(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x0142002c const EReturn&__e= (EReturn&)__eeInput; ;Jump(STATE_CURRENT,0x01420030, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x01420031_InitializeAttack_07(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420031 if(!(m_EesCurrentState == ELS_PLANE )){ Jump(STATE_CURRENT,0x0142002f, FALSE, EInternal());return TRUE;} #line 1275 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CElemental_PlaneToNormal, TRUE; Jump(STATE_CURRENT, 0x0142002d, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142002d_InitializeAttack_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142002d switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CElemental_PlaneToNormal, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0142002e, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142002e_InitializeAttack_04(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x0142002e const EReturn&__e= (EReturn&)__eeInput; ;Jump(STATE_CURRENT,0x0142002f, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x0142002f_InitializeAttack_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142002f Jump(STATE_CURRENT,0x01420030, FALSE, EInternal());return TRUE;} BOOL CElemental::H0x01420030_InitializeAttack_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420030 #line 1277 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Jump(STATE_CURRENT, STATE_CEnemyBase_InitializeAttack, FALSE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1280 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Fire(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_Fire ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::Fire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1282 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 1284 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : Jump(STATE_CURRENT, STATE_CElemental_LavamanFire, TRUE, EVoid());return TRUE;break ; #line 1288 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1289 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1289 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1292 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Hit(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_Hit ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::Hit expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1294 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 1296 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : Jump(STATE_CURRENT, STATE_CElemental_LavamanHit, TRUE, EVoid());return TRUE;break ; #line 1300 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1301 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1301 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1307 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Death(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_Death ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::Death expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1309 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_bSpawnOnBlowUp && (m_EecChar == ELC_LARGE || m_EecChar == ELC_BIG )){ #line 1310 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SpawnNewElemental (); #line 1311 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SpawnNewElemental (); #line 1312 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1314 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(!(m_EetType == ELT_AIR )){ Jump(STATE_CURRENT,0x01420037, FALSE, EInternal());return TRUE;} #line 1315 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fFadeStartTime = _pTimer -> CurrentTick (); #line 1316 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bFadeOut = TRUE ; #line 1317 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fFadeTime = 2.0f; #line 1318 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(m_fFadeTime ); Jump(STATE_CURRENT, 0x01420035, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420035_Death_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420035 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420036, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420036_Death_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420036 ;Jump(STATE_CURRENT,0x01420037, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x01420037_Death_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420037 #line 1320 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CEnemyBase_Death, FALSE; Jump(STATE_CURRENT, 0x01420038, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420038_Death_04(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420038 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CEnemyBase_Death, FALSE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x01420039, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420039_Death_05(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x01420039 const EEnd&__e= (EEnd&)__eeInput; ; #line 1321 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetModelObject () -> mo_toBump . SetData (NULL ); #line 1322 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EEnd ()); #line 1322 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1325 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" BossAppear(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_BossAppear ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::BossAppear expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1327 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(2.0f); Jump(STATE_CURRENT, 0x0142003b, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142003b_BossAppear_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142003b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0142003c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142003c_BossAppear_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142003c ; #line 1328 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fFadeStartTime = _pTimer -> CurrentTick (); #line 1329 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetModelObject () -> PlayAnim (ELEMENTALLAVA_ANIM_ANGER , 0); #line 1330 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soSound , SOUND_LAVA_ANGER , SOF_3D ); #line 1331 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(GetModelObject () -> GetAnimLength (ELEMENTALLAVA_ANIM_ANGER ) - _pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x0142003d, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142003d_BossAppear_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142003d switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0142003e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142003e_BossAppear_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142003e ; #line 1333 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKTWOHANDS , AOF_SMOOTHCHANGE ); #line 1334 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(0.7f); Jump(STATE_CURRENT, 0x0142003f, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142003f_BossAppear_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142003f switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420040, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420040_BossAppear_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420040 ; #line 1335 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" HitGround (); #line 1336 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireL , SOUND_LAVA_KICK , SOF_3D ); #line 1337 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(GetModelObject () -> GetAnimLength (ELEMENTALLAVA_ANIM_ATTACKTWOHANDS ) - 0.7f - _pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x01420041, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420041_BossAppear_07(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420041 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420042, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420042_BossAppear_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420042 ; #line 1339 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StartModelAnim (ELEMENTALLAVA_ANIM_ATTACKTWOHANDS , 0); #line 1340 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(0.6f); Jump(STATE_CURRENT, 0x01420043, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420043_BossAppear_09(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420043 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420044, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420044_BossAppear_10(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420044 ; #line 1341 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" HitGround (); #line 1342 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soFireR , SOUND_LAVA_KICK , SOF_3D ); #line 1343 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetTimerAfter(GetModelObject () -> GetAnimLength (ELEMENTALLAVA_ANIM_ATTACKTWOHANDS ) - 0.6f - _pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x01420045, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420045_BossAppear_11(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420045 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01420046, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420046_BossAppear_12(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01420046 ; #line 1346 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1346 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1350 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PreMainLoop(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_PreMainLoop ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::PreMainLoop expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1353 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(!(m_bSpawned )){ Jump(STATE_CURRENT,0x0142004a, FALSE, EInternal());return TRUE;} #line 1354 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bSpawned = FALSE ; #line 1355 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bCountAsKill = FALSE ; #line 1357 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CElemental_FallOnFloor, TRUE; Jump(STATE_CURRENT, 0x01420048, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x01420048_PreMainLoop_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01420048 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CElemental_FallOnFloor, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x01420049, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x01420049_PreMainLoop_02(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x01420049 const EReturn&__e= (EReturn&)__eeInput; ;Jump(STATE_CURRENT,0x0142004a, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x0142004a_PreMainLoop_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142004a #line 1360 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE || m_EecChar == ELC_BIG && m_EetType == ELT_LAVA ) #line 1361 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1362 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" PlaySound (m_soBackground , SOUND_LAVA_LAVABURN , SOF_3D | SOF_LOOP ); #line 1363 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1365 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(!(m_EecChar == ELC_LARGE )){ Jump(STATE_CURRENT,0x0142004d, FALSE, EInternal());return TRUE;} #line 1367 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" STATE_CElemental_BossAppear, TRUE; Jump(STATE_CURRENT, 0x0142004b, FALSE, EBegin());return TRUE;}BOOL CElemental::H0x0142004b_PreMainLoop_04(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0142004b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CElemental_BossAppear, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0142004c, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CElemental::H0x0142004c_PreMainLoop_05(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x0142004c const EReturn&__e= (EReturn&)__eeInput; ;Jump(STATE_CURRENT,0x0142004d, FALSE, EInternal());return TRUE;}BOOL CElemental::H0x0142004d_PreMainLoop_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0142004d #line 1369 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Return(STATE_CURRENT,EReturn ()); #line 1369 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CElemental:: #line 1375 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Main(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CElemental_Main ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CElemental::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 1376 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType != ELT_LAVA ){ #line 1377 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_EetType = ELT_LAVA ; #line 1378 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1380 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" InitAsModel (); #line 1382 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_bMovable ){ #line 1383 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_WALKING ); #line 1385 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 1386 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_IMMATERIAL | EPF_MOVABLE ); #line 1387 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1389 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EetType == ELT_AIR ){ #line 1390 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetCollisionFlags (ECF_AIR ); #line 1392 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else { #line 1393 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetCollisionFlags (ECF_MODEL ); #line 1394 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1395 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetFlags (GetFlags () | ENF_ALIVE ); #line 1396 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" en_fDensity = m_fDensity ; #line 1397 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fSpawnDamage = 1e6f; #line 1398 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fDamageWounded = 1e6f; #line 1399 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bSpawnEnabled = FALSE ; #line 1400 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bBoss = FALSE ; #line 1403 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EetType ){ #line 1410 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELT_LAVA : #line 1411 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fBlowUpAmount = 1E30f; #line 1412 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetComponents (this , * GetModelObject () , MODEL_LAVA , TEXTURE_LAVA , 0 , 0 , TEXTURE_LAVA_DETAIL ); #line 1413 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 1420 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1421 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ModelChangeNotify (); #line 1424 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_LARGE ) #line 1425 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1427 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_sptType = SPT_SMALL_LAVA_STONES ; #line 1428 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bBoss = TRUE ; #line 1429 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetHealth (10000.0f); #line 1430 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fMaxHealth = 10000.0f; #line 1432 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fSpawnDamage = 2000.0f; #line 1434 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fWalkSpeed = FRnd () / 2 + 1.0f; #line 1435 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aWalkRotateSpeed = AngleDeg (FRnd () * 10.0f + 25.0f); #line 1436 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackRunSpeed = FRnd () + 2.0f; #line 1437 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aAttackRotateSpeed = AngleDeg (FRnd () * 50 + 245.0f); #line 1438 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseRunSpeed = FRnd () + 2.0f; #line 1439 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aCloseRotateSpeed = AngleDeg (FRnd () * 50 + 245.0f); #line 1441 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackDistance = 300.0f; #line 1442 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseDistance = 60.0f; #line 1443 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fStopDistance = 30.0f; #line 1444 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackFireTime = 0.5f; #line 1445 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseFireTime = 1.0f; #line 1446 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fIgnoreRange = 600.0f; #line 1447 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_iScore = 50000; #line 1448 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1449 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" else if(m_EecChar == ELC_BIG ) #line 1450 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1451 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_sptType = SPT_LAVA_STONES ; #line 1452 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetHealth (800.0f); #line 1453 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fMaxHealth = 800.0f; #line 1455 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fSpawnDamage = 500.0f; #line 1457 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fWalkSpeed = FRnd () + 1.5f; #line 1458 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aWalkRotateSpeed = AngleDeg (FRnd () * 10.0f + 25.0f); #line 1459 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackRunSpeed = FRnd () * 1.0f + 6.0f; #line 1460 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aAttackRotateSpeed = AngleDeg (FRnd () * 50 + 300.0f); #line 1461 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseRunSpeed = FRnd () * 2.0f + 2.0f; #line 1462 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aCloseRotateSpeed = AngleDeg (FRnd () * 50 + 300.0f); #line 1464 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackDistance = 150.0f; #line 1465 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseDistance = 20.0f; #line 1466 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fStopDistance = 5.0f; #line 1467 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackFireTime = 0.5f; #line 1468 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseFireTime = 1.0f; #line 1469 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fIgnoreRange = 400.0f; #line 1471 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_iScore = 2500; #line 1472 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1473 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" else #line 1474 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1475 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_sptType = SPT_LAVA_STONES ; #line 1476 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetHealth (100.0f); #line 1477 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fMaxHealth = 100.0f; #line 1479 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fWalkSpeed = FRnd () + 1.5f; #line 1480 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aWalkRotateSpeed = AngleDeg (FRnd () * 10.0f + 25.0f); #line 1481 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackRunSpeed = FRnd () * 2.0f + 6.0f; #line 1482 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aAttackRotateSpeed = AngleDeg (FRnd () * 50 + 500.0f); #line 1483 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseRunSpeed = FRnd () * 3.0f + 4.0f; #line 1484 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_aCloseRotateSpeed = AngleDeg (FRnd () * 50 + 500.0f); #line 1486 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackDistance = 100.0f; #line 1487 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseDistance = 10.0f; #line 1488 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fStopDistance = 5.0f; #line 1489 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fAttackFireTime = 1.5f; #line 1490 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fCloseFireTime = 1.0f; #line 1491 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_fIgnoreRange = 200.0f; #line 1493 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_iScore = 500; #line 1494 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1497 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(! m_bMovable ) #line 1498 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1499 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_EesStartState = ELS_NORMAL ; #line 1500 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bSpawnWhenHarmed = FALSE ; #line 1501 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_bSpawnOnBlowUp = FALSE ; #line 1503 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_iFireCount <= 0) #line 1504 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" { #line 1505 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" WarningMessage ("Entity: %s - Fire count must be greater than zero" , GetName ()); #line 1506 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_iFireCount = 1; #line 1507 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1508 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1511 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" m_EesCurrentState = m_EesStartState ; #line 1512 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" RemoveAttachments (); #line 1513 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" switch(m_EesCurrentState ){ #line 1514 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELS_NORMAL : #line 1515 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_WALKING ); #line 1516 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" AddAttachments (); #line 1517 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 1518 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELS_BOX : #line 1519 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_BOX_PLANE_ELEMENTAL ); #line 1520 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 1521 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" case ELS_PLANE : #line 1522 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SetPhysicsFlags (EPF_MODEL_IMMATERIAL | EPF_MOVABLE ); #line 1523 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" SwitchToEditorModel (); #line 1524 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" break ; #line 1525 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1526 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" StandingAnim (); #line 1529 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" if(m_EecChar == ELC_SMALL ){ #line 1530 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetModelObject () -> StretchModel (FLOAT3D (LAVAMAN_SMALL_STRETCH , LAVAMAN_SMALL_STRETCH , LAVAMAN_SMALL_STRETCH )); #line 1531 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1532 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" else if(m_EecChar == ELC_LARGE ){ #line 1533 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetModelObject () -> StretchModel (FLOAT3D (LAVAMAN_LARGE_STRETCH , LAVAMAN_LARGE_STRETCH , LAVAMAN_LARGE_STRETCH )); #line 1534 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" }else if(m_EecChar == ELC_BIG ){ #line 1535 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" GetModelObject () -> StretchModel (FLOAT3D (LAVAMAN_BIG_STRETCH , LAVAMAN_BIG_STRETCH , LAVAMAN_BIG_STRETCH )); #line 1536 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" } #line 1537 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" ModelChangeNotify (); #line 1540 "D:/SE1_GPL/Sources/EntitiesMP/Elemental.es" Jump(STATE_CURRENT, STATE_CEnemyBase_MainLoop, FALSE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};