/* * This file is generated by Entity Class Compiler, (c) CroTeam 1997-98 */ #line 4 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" #include "StdH.h" #include "Models/Weapons/Cannon/Projectile/Cannonball.h" #include "EntitiesMP/MovingBrush.h" #include "EntitiesMP/DestroyableArchitecture.h" #include #include CEntityEvent *ELaunchCannonBall::MakeCopy(void) { CEntityEvent *peeCopy = new ELaunchCannonBall(*this); return peeCopy;} ELaunchCannonBall::ELaunchCannonBall() : CEntityEvent(EVENTCODE_ELaunchCannonBall) {; ClearToDefault(penLauncher); ClearToDefault(cbtType); ClearToDefault(fLaunchPower); ClearToDefault(fSize); }; CEntityEvent *EForceExplode::MakeCopy(void) { CEntityEvent *peeCopy = new EForceExplode(*this); return peeCopy;} EForceExplode::EForceExplode() : CEntityEvent(EVENTCODE_EForceExplode) {; }; #line 31 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" // projectile solid #define ECF_CANNON_BALL ( \ ((ECBI_MODEL|ECBI_BRUSH|ECBI_PROJECTILE_SOLID|ECBI_CORPSE|ECBI_MODEL_HOLDER|ECBI_MODEL_HOLDER)<PrecacheClass(CLASS_BASIC_EFFECT, BET_CANNON); pdec->PrecacheClass(CLASS_BASIC_EFFECT, BET_CANNONEXPLOSIONSTAIN); pdec->PrecacheClass(CLASS_BASIC_EFFECT, BET_CANNONSHOCKWAVE); pdec->PrecacheModel(MODEL_BALL); pdec->PrecacheTexture(TEXTURE_IRON_BALL); pdec->PrecacheTexture(TEXTURE_NUKE_BALL); pdec->PrecacheTexture(TEX_REFL_BWRIPLES01); pdec->PrecacheTexture(TEX_SPEC_MEDIUM); pdec->PrecacheSound(SOUND_BALL_BOUNCE); } void CCannonBall::SetDefaultProperties(void) { m_penLauncher = NULL; m_fLaunchPower = 0.0f; m_fCannonBallSize = 0.0f; m_fIgnoreTime = 0.0f; m_fStartTime = 0.0f; m_iNextChannel = 0; m_bSelfExploded = FALSE ; m_soBounce0.SetOwner(this); m_soBounce0.Stop_internal(); m_soBounce1.SetOwner(this); m_soBounce1.Stop_internal(); m_soBounce2.SetOwner(this); m_soBounce2.Stop_internal(); m_soBounce3.SetOwner(this); m_soBounce3.Stop_internal(); m_soBounce4.SetOwner(this); m_soBounce4.Stop_internal(); m_cbtType = CBT_IRON ; m_tmInvisibility = 0.0f; m_tmExpandBox = 0.0f; m_tmForceExplode = 0.0f; CMovableModelEntity::SetDefaultProperties(); } #line 130 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::PreMoving(void) { #line 131 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(m_tmExpandBox > 0){ #line 132 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(_pTimer -> CurrentTick () > m_fStartTime + m_tmExpandBox ){ #line 133 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ChangeCollisionBoxIndexWhenPossible (1); #line 134 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_tmExpandBox = 0; #line 135 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 136 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 137 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CMovableModelEntity :: PreMoving (); #line 138 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 140 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::PostMoving(void) #line 141 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 142 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CMovableModelEntity :: PostMoving (); #line 143 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(en_vCurrentTranslationAbsolute . Length () < 1.0f || #line 144 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" _pTimer -> CurrentTick () >= m_tmForceExplode || #line 145 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" (GetCollisionBoxIndex () == 0 && #line 146 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" (_pTimer -> CurrentTick () > m_fStartTime + m_tmExpandBox + 0.5f))) #line 147 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 148 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SendEvent (EForceExplode ()); #line 149 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 150 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 152 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::Read_t(CTStream * istr) #line 153 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 154 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CMovableModelEntity :: Read_t (istr ); #line 157 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 170 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL CCannonBall::AdjustShadingParameters(FLOAT3D & vLightDirection,COLOR & colLight,COLOR & colAmbient) #line 171 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 173 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CModelObject * pmo = GetModelObject (); #line 174 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if((pmo != NULL ) && (_pTimer -> GetLerpedCurrentTick () < (m_fStartTime + m_tmInvisibility ))) #line 175 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 177 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" pmo -> mo_colBlendColor = 0; #line 178 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 179 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" else #line 180 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 182 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" pmo -> mo_colBlendColor = C_WHITE | CT_OPAQUE ; #line 183 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 184 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return CEntity :: AdjustShadingParameters (vLightDirection , colLight , colAmbient ); #line 185 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 206 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::RenderParticles(void) { #line 208 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(GetRenderType () != CEntity :: RT_MODEL ){ #line 209 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return ; #line 210 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 212 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fSpeedRatio = Min (en_vCurrentTranslationAbsolute . Length () / 140.0f , 1.0f); #line 213 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" INDEX ctFireParticles = INDEX ((Max (fSpeedRatio - 0.5f , 0.0f) * 2.0f) * 128); #line 215 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(_pTimer -> GetLerpedCurrentTick () - m_fStartTime > 0.075) #line 216 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 217 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Particles_BeastBigProjectileTrail (this , 2.0f , 1.0f , 0.75f , ctFireParticles ); #line 218 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 219 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 221 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::Initialize(void) { #line 223 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" InitAsModel (); #line 224 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetPhysicsFlags (EPF_MODEL_BOUNCING ); #line 225 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetCollisionFlags (ECF_CANNON_BALL ); #line 226 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetModel (MODEL_BALL ); #line 227 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(m_cbtType == CBT_IRON ) #line 228 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 229 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetModelMainTexture (TEXTURE_IRON_BALL ); #line 230 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 231 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" else #line 232 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 233 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetModelMainTexture (TEXTURE_NUKE_BALL ); #line 234 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 236 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetModelObject () -> StretchModel (FLOAT3D (m_fCannonBallSize , m_fCannonBallSize , m_fCannonBallSize )); #line 237 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ModelChangeNotify (); #line 240 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetModelObject () -> mo_toReflection . SetData (GetTextureDataForComponent (TEX_REFL_BWRIPLES01 )); #line 242 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetModelObject () -> mo_toSpecular . SetData (GetTextureDataForComponent (TEX_SPEC_MEDIUM )); #line 244 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" LaunchAsFreeProjectile (FLOAT3D (0.0f , 0.0f , - m_fLaunchPower ) , (CMovableEntity *) (CEntity *) m_penLauncher ); #line 245 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" en_fBounceDampNormal = 0.5f; #line 246 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" en_fBounceDampParallel = 0.75f; #line 247 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" en_fAcceleration = 0.0f; #line 248 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" en_fDeceleration = 5.0f; #line 249 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" en_fCollisionSpeedLimit = 40.0f; #line 250 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" en_fCollisionDamageFactor = 10.0f; #line 251 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetHealth (50000.0f); #line 252 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetModelObject () -> PlayAnim (CANNONBALL_ANIM_FIRESLOW , 0); #line 253 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 255 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT CCannonBall::CalculateDamageToInflict(void) #line 256 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 257 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fMaxDamage = IRON_DAMAGE_MAX ; #line 258 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(m_cbtType == CBT_NUKE ) #line 259 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 260 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" fMaxDamage = IRON_DAMAGE_MAX ; #line 261 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 264 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fSpeedRatio = en_vCurrentTranslationAbsolute . Length () / 140.0f; #line 266 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fApplyDamage = Clamp (fSpeedRatio * fMaxDamage , 0.0f , fMaxDamage ); #line 267 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return fApplyDamage ; #line 268 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 270 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::Explosion(FLOAT3D vCenter, #line 271 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" const FLOAT3D & vStretchExplosion, #line 272 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" const FLOAT3D & vStretchShockwave, #line 273 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" const FLOAT3D & vStretchStain, #line 274 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL bHasExplosion, #line 275 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL bHasShockWave, #line 276 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL bHasStain, #line 277 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL bHasLight) #line 278 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 279 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ESpawnEffect ese ; #line 280 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT3D vOnPlane ; #line 281 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOATplane3D vPlaneNormal ; #line 282 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fDistanceToEdge ; #line 285 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(bHasExplosion ) #line 286 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 287 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . colMuliplier = C_WHITE | CT_OPAQUE ; #line 288 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(bHasLight ) #line 289 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 290 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . betType = BET_CANNON ; #line 291 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 292 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" else #line 293 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 294 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . betType = BET_CANNON_NOLIGHT ; #line 295 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 296 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . vStretch = vStretchExplosion ; #line 297 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CPlacement3D plHandle = GetPlacement (); #line 298 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" plHandle . pl_PositionVector += vCenter ; #line 299 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SpawnEffect (plHandle , ese ); #line 301 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsDerivedFromClass (m_penLauncher , "Player")){ #line 302 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SpawnRangeSound (m_penLauncher , this , SNDT_PLAYER , 100.0f); #line 303 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 304 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 306 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(GetNearestPolygon (vOnPlane , vPlaneNormal , fDistanceToEdge )){ #line 307 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if((vOnPlane - GetPlacement () . pl_PositionVector ) . Length () < 3.5f){ #line 308 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(bHasStain ) #line 309 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 311 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . colMuliplier = C_WHITE | CT_OPAQUE ; #line 312 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . betType = BET_CANNONEXPLOSIONSTAIN ; #line 313 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . vNormal = FLOAT3D (vPlaneNormal ); #line 314 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . vStretch = vStretchShockwave ; #line 315 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SpawnEffect (CPlacement3D (vOnPlane , ANGLE3D (0 , 0 , 0)) , ese ); #line 316 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 317 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(bHasShockWave ) #line 318 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 320 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . colMuliplier = C_WHITE | CT_OPAQUE ; #line 321 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . betType = BET_CANNONSHOCKWAVE ; #line 322 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . vNormal = FLOAT3D (vPlaneNormal ); #line 323 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ese . vStretch = vStretchShockwave ; #line 324 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SpawnEffect (CPlacement3D (vOnPlane , ANGLE3D (0 , 0 , 0)) , ese ); #line 325 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 342 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 343 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 345 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" RangeDamage (); #line 346 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 355 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL CCannonBall::BallTouchExplode(CEntityPointer penHit) #line 356 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 357 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fApplyDamage = CalculateDamageToInflict (); #line 360 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fHealth = 100; #line 361 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL bForceCannonballToExplode = FALSE ; #line 363 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(penHit -> GetPhysicsFlags () & EPF_MOVABLE ){ #line 364 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" fHealth = ((CMovableEntity &) * penHit ) . GetHealth (); #line 365 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsDerivedFromClass (penHit , "Enemy Base")) #line 366 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 367 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" bForceCannonballToExplode = ((CEnemyBase &) * penHit ) . ForcesCannonballToExplode (); #line 368 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 369 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }else { #line 370 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsOfClass (penHit , "ModelHolder2") || IsOfClass (penHit , "ExotechLarvaBattery")){ #line 371 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" fHealth = ((CLiveEntity &) * penHit ) . GetHealth (); #line 372 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }else { #line 373 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return FALSE ; #line 374 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 375 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 377 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsOfClass (penHit , "ModelHolder2")) #line 378 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 379 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" bForceCannonballToExplode = TRUE ; #line 380 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 382 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsOfClass (penHit , "Player")){ #line 383 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" fHealth += ((CPlayer &) * penHit ) . m_fArmor * 2.0f; #line 384 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 386 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT3D vDirection = en_vCurrentTranslationAbsolute ; #line 387 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" vDirection . Normalize (); #line 389 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" const FLOAT fDamageMul = GetSeriousDamageMultiplier (m_penLauncher ); #line 390 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" InflictDirectDamage (penHit , m_penLauncher , DMT_CANNONBALL , fApplyDamage * fDamageMul , #line 391 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetPlacement () . pl_PositionVector , vDirection ); #line 392 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return (fApplyDamage <= fHealth || bForceCannonballToExplode ); #line 393 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 397 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::RangeDamage(void) #line 398 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 399 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" const FLOAT fDamageMul = GetSeriousDamageMultiplier (m_penLauncher ); #line 400 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(m_cbtType == CBT_IRON ){ #line 401 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" InflictRangeDamage (m_penLauncher , DMT_CANNONBALL_EXPLOSION , IRON_RANGE_DAMAGE * fDamageMul , #line 402 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetPlacement () . pl_PositionVector , IRON_RANGE_HOTSPOT , IRON_RANGE_FALLOFF ); #line 403 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }else { #line 405 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" InflictRangeDamage (m_penLauncher , DMT_CANNONBALL_EXPLOSION , NUKE_RANGE_DAMAGE * fDamageMul , #line 406 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetPlacement () . pl_PositionVector , NUKE_RANGE_HOTSPOT , NUKE_RANGE_FALLOFF ); #line 407 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 408 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 412 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::SpawnEffect(const CPlacement3D & plEffect,const ESpawnEffect & eSpawnEffect) { #line 413 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CEntityPointer penEffect = CreateEntity (plEffect , CLASS_BASIC_EFFECT ); #line 414 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" penEffect -> Initialize (eSpawnEffect ); #line 415 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 422 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" void CCannonBall::BounceSound(FLOAT fSpeed) { #line 423 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fVolume = Clamp (fSpeed / 6.0f , 0.0f , 1.0f); #line 424 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(fVolume < 0.1f){ #line 425 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return ; #line 426 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 427 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CSoundObject & so = (& m_soBounce0 ) [ m_iNextChannel ]; #line 428 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_iNextChannel = (m_iNextChannel + 1) % 5; #line 429 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" so . Set3DParameters (70.0f , 10.0f , fVolume , 1.0f); #line 430 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" PlaySound (so , SOUND_BALL_BOUNCE , SOF_3D ); #line 431 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } BOOL CCannonBall:: #line 439 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Bounce(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CCannonBall_Bounce ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CCannonBall::Bounce expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 441 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CEntity * penObstacle ; #line 442 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(CheckForCollisionNow (0 , & penObstacle )){ #line 444 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Return(STATE_CURRENT,EEnd ()); #line 444 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return TRUE; #line 445 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 447 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT fWaitTime = IRON_LIFE_TIME ; #line 449 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(m_cbtType == CBT_NUKE ) #line 450 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 451 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" fWaitTime = NUKE_LIFE_TIME ; #line 452 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 454 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(fWaitTime ); Jump(STATE_CURRENT, 0x01fa0003, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0003_Bounce_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0003 switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput; return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EPass):{const EPass&epass= (EPass&)__eeInput; #line 457 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BOOL bHit ; #line 459 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" bHit = epass . penOther != m_penLauncher || _pTimer -> CurrentTick () > m_fIgnoreTime ; #line 461 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" bHit &= ! IsOfClass (epass . penOther , "Twister"); #line 463 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(bHit ) #line 464 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 465 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(BallTouchExplode (epass . penOther )){UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE;} #line 466 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 467 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return TRUE; #line 468 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }ASSERT(FALSE);break;case(EVENTCODE_ETouch):{const ETouch&etouch= (ETouch&)__eeInput; #line 471 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsOfClass (etouch . penOther , "Cannon ball")) #line 472 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 473 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE; #line 474 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 475 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsOfClass (etouch . penOther , "Moving Brush")) #line 476 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 477 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CMovingBrush & br = (CMovingBrush &) * etouch . penOther ; #line 478 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(br . m_fHealth > 0) #line 479 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 480 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT3D vDirection = en_vCurrentTranslationAbsolute ; #line 481 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" vDirection . Normalize (); #line 482 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" InflictDirectDamage (etouch . penOther , m_penLauncher , DMT_CANNONBALL , CalculateDamageToInflict () , #line 483 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetPlacement () . pl_PositionVector , vDirection ); #line 484 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_bSelfExploded = FALSE ; #line 485 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE; #line 486 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 487 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 488 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsOfClass (etouch . penOther , "DestroyableArchitecture")) #line 489 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 490 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CDestroyableArchitecture & br = (CDestroyableArchitecture &) * etouch . penOther ; #line 491 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(br . m_fHealth > 0) #line 492 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 493 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT3D vDirection = en_vCurrentTranslationAbsolute ; #line 494 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" vDirection . Normalize (); #line 495 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" InflictDirectDamage (etouch . penOther , m_penLauncher , DMT_CANNONBALL , CalculateDamageToInflict () , #line 496 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetPlacement () . pl_PositionVector , vDirection ); #line 497 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_bSelfExploded = FALSE ; #line 498 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE; #line 499 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 500 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 503 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" BounceSound (((FLOAT3D &) etouch . plCollision ) % en_vCurrentTranslationAbsolute ); #line 504 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return TRUE; #line 505 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }ASSERT(FALSE);break;case(EVENTCODE_EForceExplode):{const EForceExplode&e= (EForceExplode&)__eeInput; UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EDeath):{const EDeath&e= (EDeath&)__eeInput; UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_ETimer):{const ETimer&e= (ETimer&)__eeInput; UnsetTimer();Jump(STATE_CURRENT,0x01fa0004, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break; #line 509 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }return TRUE;}BOOL CCannonBall::H0x01fa0004_Bounce_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0004 #line 510 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_bSelfExploded = TRUE ; #line 511 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Return(STATE_CURRENT,EEnd ()); #line 511 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CCannonBall:: #line 515 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Main(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CCannonBall_Main ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_ELaunchCannonBall, "CCannonBall::Main expects 'ELaunchCannonBall' as input!"); const ELaunchCannonBall &eLaunch = (const ELaunchCannonBall &)__eeInput; #line 517 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ASSERT (eLaunch . penLauncher != NULL ); #line 518 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_penLauncher = eLaunch . penLauncher ; #line 519 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_fLaunchPower = eLaunch . fLaunchPower ; #line 520 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_cbtType = eLaunch . cbtType ; #line 521 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_fCannonBallSize = eLaunch . fSize ; #line 522 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_tmInvisibility = 0.05f; #line 523 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_bSelfExploded = FALSE ; #line 524 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_tmExpandBox = 0.0001f; #line 526 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_tmForceExplode = _pTimer -> CurrentTick () + 30.0f; #line 529 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Initialize (); #line 531 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SendEvent (EReturn ()); #line 532 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAt(THINKTIME_NEVER); Jump(STATE_CURRENT, 0x01fa0005, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0005_Main_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0005 switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput; return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EReturn):{const EReturn&e= (EReturn&)__eeInput; UnsetTimer();Jump(STATE_CURRENT,0x01fa0006, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break; #line 535 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" }return TRUE;}BOOL CCannonBall::H0x01fa0006_Main_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0006 #line 538 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" FLOAT tmCastCoverPath = _pTimer -> TickQuantum * 1.5f; #line 539 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" CCastRay crRay (m_penLauncher , GetPlacement () , m_fLaunchPower * tmCastCoverPath ); #line 540 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" crRay . cr_bHitTranslucentPortals = FALSE ; #line 541 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" crRay . cr_fTestR = 0.75f / 2.0f * m_fCannonBallSize ; #line 542 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" crRay . cr_ttHitModels = CCastRay :: TT_COLLISIONBOX ; #line 543 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" GetWorld () -> CastRay (crRay ); #line 546 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_fIgnoreTime = _pTimer -> CurrentTick () + 0.1f; #line 549 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_fStartTime = _pTimer -> CurrentTick (); #line 551 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(crRay . cr_penHit != NULL && crRay . cr_penHit -> GetRenderType () == RT_MODEL ) #line 552 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 553 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(BallTouchExplode (crRay . cr_penHit )) #line 554 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" { #line 555 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" m_tmForceExplode = _pTimer -> CurrentTick () + tmCastCoverPath ; #line 556 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 557 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 559 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" STATE_CCannonBall_Bounce, TRUE; Jump(STATE_CURRENT, 0x01fa0007, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0007_Main_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0007 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CCannonBall_Bounce, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x01fa0008, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0008_Main_04(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0008 const EEnd&__e= (EEnd&)__eeInput; ; #line 562 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SwitchToEditorModel (); #line 564 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ForceFullStop (); #line 567 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" ESound eSound ; #line 568 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" eSound . EsndtSound = SNDT_EXPLOSION ; #line 569 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" eSound . penTarget = m_penLauncher ; #line 570 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(IsDerivedFromClass (this , "Player")){ #line 571 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SendEventInRange (eSound , FLOATaabbox3D (GetPlacement () . pl_PositionVector , SOUND_RANGE )); #line 572 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" } #line 574 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" if(!(m_cbtType == CBT_IRON )){ Jump(STATE_CURRENT,0x01fa0023, FALSE, EInternal());return TRUE;} #line 578 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (0.0f , 0.0f , 0.0f) , STRETCH_3 , STRETCH_3 , STRETCH_4 , TRUE , TRUE , TRUE , TRUE ); #line 579 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (1.0f , 1.5f , 1.5f) , STRETCH_3 , STRETCH_3 , STRETCH_4 , TRUE , FALSE , FALSE , FALSE ); #line 580 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 2.0f , 1.0f , - 1.5f) , STRETCH_3 , STRETCH_3 , STRETCH_4 , TRUE , FALSE , FALSE , FALSE ); #line 581 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 1.0f , 0.5f , 1.0f) , STRETCH_4 , STRETCH_4 , STRETCH_4 , TRUE , FALSE , FALSE , FALSE );Jump(STATE_CURRENT,0x01fa0022, FALSE, EInternal());return TRUE;}BOOL CCannonBall::H0x01fa0023_Main_31(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0023 if(!(m_cbtType == CBT_NUKE )){ Jump(STATE_CURRENT,0x01fa0021, FALSE, EInternal());return TRUE;} #line 585 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (0.0f , 0.0f , 0.0f) , STRETCH_6 , STRETCH_6 , STRETCH_10 , TRUE , TRUE , TRUE , TRUE ); #line 586 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.15f); Jump(STATE_CURRENT, 0x01fa0009, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0009_Main_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0009 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa000a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa000a_Main_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa000a ; #line 587 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (4.0f , 5.0f , 5.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 588 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.2f); Jump(STATE_CURRENT, 0x01fa000b, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa000b_Main_07(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa000b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa000c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa000c_Main_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa000c ; #line 589 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 5.0f , 3.0f , - 4.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 590 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.15f); Jump(STATE_CURRENT, 0x01fa000d, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa000d_Main_09(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa000d switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa000e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa000e_Main_10(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa000e ; #line 591 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 3.0f , 2.0f , 3.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 592 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.15f); Jump(STATE_CURRENT, 0x01fa000f, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa000f_Main_11(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa000f switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa0010, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0010_Main_12(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0010 ; #line 593 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (2.0f , 1.0f , 4.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , TRUE , FALSE , FALSE ); #line 594 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.2f); Jump(STATE_CURRENT, 0x01fa0011, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0011_Main_13(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0011 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa0012, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0012_Main_14(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0012 ; #line 595 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 2.0f , 5.0f , - 4.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 596 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.18f); Jump(STATE_CURRENT, 0x01fa0013, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0013_Main_15(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0013 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa0014, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0014_Main_16(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0014 ; #line 597 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 3.0f , 2.0f , 2.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 598 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.25f); Jump(STATE_CURRENT, 0x01fa0015, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0015_Main_17(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0015 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa0016, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0016_Main_18(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0016 ; #line 599 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (0.0f , 4.0f , - 1.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 600 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.15f); Jump(STATE_CURRENT, 0x01fa0017, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0017_Main_19(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0017 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa0018, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0018_Main_20(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0018 ; #line 601 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (2.0f , 0.0f , - 3.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , TRUE , FALSE , FALSE ); #line 602 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.25f); Jump(STATE_CURRENT, 0x01fa0019, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa0019_Main_21(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0019 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa001a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa001a_Main_22(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa001a ; #line 603 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (- 1.0f , 2.0f , 0.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 604 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.125f); Jump(STATE_CURRENT, 0x01fa001b, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa001b_Main_23(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa001b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa001c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa001c_Main_24(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa001c ; #line 605 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (3.0f , 1.0f , 1.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 606 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.1f); Jump(STATE_CURRENT, 0x01fa001d, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa001d_Main_25(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa001d switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa001e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa001e_Main_26(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa001e ; #line 607 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (3.0f , 2.0f , 2.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , FALSE , FALSE , FALSE ); #line 608 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" SetTimerAfter(0.125f); Jump(STATE_CURRENT, 0x01fa001f, FALSE, EBegin());return TRUE;}BOOL CCannonBall::H0x01fa001f_Main_27(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01fa001f switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01fa0020, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCannonBall::H0x01fa0020_Main_28(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0020 ; #line 609 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Explosion (FLOAT3D (3.0f , 2.0f , 2.0f) , STRETCH_4 , STRETCH_6 , STRETCH_10 , TRUE , TRUE , FALSE , FALSE );Jump(STATE_CURRENT,0x01fa0021, FALSE, EInternal());return TRUE;}BOOL CCannonBall::H0x01fa0021_Main_29(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0021 Jump(STATE_CURRENT,0x01fa0022, FALSE, EInternal());return TRUE;} BOOL CCannonBall::H0x01fa0022_Main_30(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01fa0022 #line 613 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Destroy (); #line 615 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" Return(STATE_CURRENT,EVoid()); #line 615 "D:/SE1_GPL/Sources/EntitiesMP/CannonBall.es" return TRUE; ASSERT(FALSE); return TRUE;};