Serious-Engine/Sources/EntitiesMP/PyramidSpaceShip.cpp

1680 lines
86 KiB
C++
Raw Normal View History

2016-03-11 14:57:17 +01:00
/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#line 4 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
#include "StdH.h"
#include "Models/CutSequences/SpaceShip/SpaceShip.h"
#include "Models/CutSequences/SpaceShip/Door.h"
#include "Models/CutSequences/SpaceShip/LightBeam.h"
#include "EntitiesMP/Effector.h"
#include "EntitiesMP/Light.h"
#include <EntitiesMP/PyramidSpaceShip.h>
#include <EntitiesMP/PyramidSpaceShip_tables.h>
CEntityEvent *EForcePathMarker::MakeCopy(void) { CEntityEvent *peeCopy = new EForcePathMarker(*this); return peeCopy;}
EForcePathMarker::EForcePathMarker() : CEntityEvent(EVENTCODE_EForcePathMarker) {;
ClearToDefault(penForcedPathMarker);
};
#line 28 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
#define STRETCH_X (200.0f*m_fStretch)
#define STRETCH_Y (100.0f*m_fStretch)
#define STRETCH_Z (200.0f*m_fStretch)
#define PSS_STRETCH (FLOAT3D(STRETCH_X, STRETCH_Y, STRETCH_Z)*m_fStretch)
#define SND_FALLOFF 1000.0f
#define SND_HOTSPOT 250.0f
#define SND_VOLUME 2.0f
#define BIG_LIGHT_BEAM_LIFE_TIME (8.0f)
#define SMALL_FLARE_WAIT 2.0f
#define SMALL_FLARES_LIFE_TIME (BIG_LIGHT_BEAM_LIFE_TIME+SMALL_FLARE_WAIT)
#define SMALL_LIGHTNING_WAIT 1.5f
#define SMALL_LIGHTININGS_LIFE_TIME (SMALL_FLARES_LIFE_TIME+SMALL_LIGHTNING_WAIT)
#define BIG_FLARE_WAIT 1.0f
#define BIG_FLARE_LIFE_TIME (SMALL_LIGHTININGS_LIFE_TIME+BIG_FLARE_WAIT)
#define BM_DX (0.414657f*STRETCH_X)
#define BM_DY (-1.72731f*STRETCH_Y)
#define BM_DZ (0.414657f*STRETCH_Z)
#define BM_FLARE_DY (-0.25f*STRETCH_Y)
#define BM_MASTER_Y (-1.76648f*STRETCH_Y)
void CPyramidSpaceShip::SetDefaultProperties(void) {
m_strName = "Pyramid Space Ship";
m_fMovingSpeed = 0.0f;
m_penBeamHit = NULL;
m_penLightBeam = NULL;
m_tmBeamTime = -1.0f;
m_penHitPlaceFlare = NULL;
m_tmHitFlareTime = -1.0f;
m_iRingCounter = 0;
m_fRatio = 0.0f;
m_strDescription = "";
m_epssState = PSSS_IDLE ;
m_fStretch = 1.0f;
m_bStopMoving = FALSE ;
m_penTarget = NULL;
m_penFlyAwayTarget = NULL;
m_penLast = NULL;
m_bMoving = FALSE ;
m_fRot = 0.0f;
m_fLastRotSpeed = 0.0f;
m_fRotSpeed = 0.0f;
m_bApplyDamageToHitted = TRUE ;
m_tmTemp = 0.0f;
m_tmAtMarker = 0.0f;
m_tmDelta = 0.0f;
m_vPNp0 = FLOAT3D(0 , 0 , 0);
m_vPNp1 = FLOAT3D(0 , 0 , 0);
m_vTNp0 = FLOAT3D(0 , 0 , 0);
m_vTNp1 = FLOAT3D(0 , 0 , 0);
m_qPNp0 = FLOATquat3D(0 , 0 , 0 , 0);
m_qPNp1 = FLOATquat3D(0 , 0 , 0 , 0);
m_qANp0 = FLOATquat3D(0 , 0 , 0 , 0);
m_qANp1 = FLOATquat3D(0 , 0 , 0 , 0);
m_fRotSpeedp0 = 0.0f;
m_fRotSpeedp1 = 0.0f;
m_fTRotSpeedp0 = 0.0f;
m_fTRotSpeedp1 = 0.0f;
m_soPlates.SetOwner(this);
m_soPlates.Stop_internal();
m_soBeamMachine.SetOwner(this);
m_soBeamMachine.Stop_internal();
m_soBeam.SetOwner(this);
m_soBeam.Stop_internal();
m_soFlaresFX.SetOwner(this);
m_soFlaresFX.Stop_internal();
m_bFireingDeactivatedBeam = FALSE ;
m_bImmediateAnimations = FALSE ;
m_fWaitAfterKillingBeam = 1.0f;
m_bInvisible = FALSE ;
CMovableModelEntity::SetDefaultProperties();
}
#line 125 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::Precache(void) {
#line 126 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheModel (MODEL_SPACESHIP );
#line 127 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheModel (MODEL_BODY );
#line 128 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheTexture (TEXTURE_BODY );
#line 129 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheModel (MODEL_DOOR );
#line 130 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheTexture (TEXTURE_DOOR );
#line 131 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheModel (MODEL_BEAMMACHINE );
#line 132 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheTexture (TEXTURE_BEAMMACHINE );
#line 133 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheModel (MODEL_BEAMRIM );
#line 134 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheModel (MODEL_SHIP_INSIDE );
#line 135 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheTexture (TEXTURE_BEAMRIM );
#line 136 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheClass (CLASS_EFFECTOR , ET_SIZING_RING_FLARE );
#line 137 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheClass (CLASS_EFFECTOR , ET_SIZING_BIG_BLUE_FLARE );
#line 138 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheClass (CLASS_EFFECTOR , ET_LIGHTNING );
#line 139 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheClass (CLASS_EFFECTOR , ET_MOVING_RING );
#line 140 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheSound (SOUND_PLATES );
#line 141 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheSound (SOUND_BEAMMACHINE );
#line 142 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheSound (SOUND_BEAM );
#line 143 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PrecacheSound (SOUND_WARMUP );
#line 144 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 146 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
BOOL CPyramidSpaceShip::IsTargetValid(SLONG slPropertyOffset,CEntity * penTarget)
#line 147 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 148 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(penTarget == NULL )
#line 149 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 150 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return FALSE ;
#line 151 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 152 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(slPropertyOffset == offsetof (CPyramidSpaceShip , m_penTarget ) ||
#line 153 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
slPropertyOffset == offsetof (CPyramidSpaceShip , m_penFlyAwayTarget ))
#line 154 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 155 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return (IsDerivedFromClass (penTarget , "Pyramid Space Ship Marker"));
#line 156 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 157 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE ;
#line 158 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 161 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
BOOL CPyramidSpaceShip::MovesByTargetedRoute(CTString & strTargetProperty)const
#line 162 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 163 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
strTargetProperty = "Target";
#line 164 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE ;
#line 165 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 168 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
BOOL CPyramidSpaceShip::DropsMarker(CTFileName & fnmMarkerClass,CTString & strTargetProperty)const
#line 169 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 170 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
fnmMarkerClass = CTFILENAME ("Classes\\PyramidSpaceShipMarker.ecl");
#line 171 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
strTargetProperty = "Target";
#line 172 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE ;
#line 173 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 176 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
const CTString & CPyramidSpaceShip::GetDescription(void)const
#line 177 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 178 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penTarget != NULL ){
#line 179 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
((CTString &) m_strDescription ) . PrintF ("->%s" , m_penTarget -> GetName ());
#line 180 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}else {
#line 181 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
((CTString &) m_strDescription ) . PrintF ("-><none>");
#line 182 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 183 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return m_strDescription ;
#line 184 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 187 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D CPyramidSpaceShip::GetLerpedPlacement(void)const
#line 188 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 189 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return CMovableEntity :: GetLerpedPlacement ();
#line 190 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 192 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::PreMoving()
#line 193 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 195 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_plLastPlacement = en_plPlacement ;
#line 196 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 198 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::HideBeamMachine(void)
#line 199 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 200 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_BEAM_RIM ) != NULL )
#line 201 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
RemoveAttachment (SPACESHIP_ATTACHMENT_BEAM_RIM );
#line 203 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 204 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_BEAM ) != NULL )
#line 205 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 206 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
RemoveAttachment (SPACESHIP_ATTACHMENT_BEAM );
#line 207 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 208 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 210 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::ShowBeamMachine(void)
#line 211 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 212 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_BEAM_RIM , MODEL_BEAMRIM , TEXTURE_BEAMRIM );
#line 213 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_BEAM , MODEL_BEAMMACHINE , TEXTURE_BEAMMACHINE );
#line 214 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_BEAM_RIM ) -> amo_moModelObject . StretchModel (PSS_STRETCH );
#line 215 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_BEAM ) -> amo_moModelObject . StretchModel (PSS_STRETCH );
#line 216 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 218 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::InitializePathMoving(CPyramidSpaceShipMarker * penStartMarker)
#line 219 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 221 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penTarget = penStartMarker ;
#line 223 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_MOVING ;
#line 225 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
INDEX ctMarkers = 1;
#line 226 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker * pcm0 = (CPyramidSpaceShipMarker *) & * m_penTarget ;
#line 227 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pcm0 == NULL )
#line 228 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 229 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return ;
#line 230 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 231 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker * pcm = (CPyramidSpaceShipMarker *) & * pcm0 -> m_penTarget ;
#line 233 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
while(pcm != NULL && pcm -> m_penTarget != pcm0 )
#line 234 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 235 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
pcm = (CPyramidSpaceShipMarker *) & * pcm -> m_penTarget ;
#line 236 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pcm == NULL ){
#line 237 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
WarningMessage ("Space ship path - broken link!");
#line 238 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return ;
#line 239 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 240 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ctMarkers ++;
#line 241 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(ctMarkers > 500){
#line 242 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
WarningMessage ("Space ship path - invalid marker loop!");
#line 243 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return ;
#line 244 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 245 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 247 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(ctMarkers < 2){
#line 248 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
WarningMessage ("Space ship path requires at least 2 markers in order to work!");
#line 249 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return ;
#line 250 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 253 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT tmCurrent = _pTimer -> CurrentTick ();
#line 254 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmAtMarker = tmCurrent ;
#line 255 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmDelta = 0.0f;
#line 256 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bStopMoving = FALSE ;
#line 257 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penLast = pcm ;
#line 258 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ASSERT (pcm -> m_penTarget == m_penTarget );
#line 259 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bMoving = TRUE ;
#line 260 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddToMovers ();
#line 261 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 263 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::DoMoving()
#line 264 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 265 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(! m_bMoving ){
#line 266 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return ;
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 269 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT tmCurrent = _pTimer -> CurrentTick ();
#line 271 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
BOOL bLerping = TRUE ;
#line 274 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(tmCurrent > (m_tmAtMarker + m_tmDelta - _pTimer -> TickQuantum * 3 / 2))
#line 275 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 277 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker * pcmNm1 = & (CPyramidSpaceShipMarker &) * m_penLast ;
#line 278 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker * pcmNp0 = & (CPyramidSpaceShipMarker &) * m_penTarget ;
#line 279 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker * pcmNp1 = & (CPyramidSpaceShipMarker &) * pcmNp0 -> m_penTarget ;
#line 280 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker * pcmNp2 = & (CPyramidSpaceShipMarker &) * pcmNp1 -> m_penTarget ;
#line 283 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pcmNp0 -> m_penTrigger != NULL ){
#line 285 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SendToTarget (pcmNp0 -> m_penTrigger , EET_TRIGGER , NULL );
#line 286 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 289 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penTarget = pcmNp1 ;
#line 290 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penLast = pcmNp0 ;
#line 293 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker & cmNm1 = * pcmNm1 ;
#line 294 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker & cmNp0 = * pcmNp0 ;
#line 295 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker & cmNp1 = * pcmNp1 ;
#line 296 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPyramidSpaceShipMarker & cmNp2 = * pcmNp2 ;
#line 299 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
const FLOAT3D & vPNm1 = cmNm1 . GetPlacement () . pl_PositionVector ;
#line 300 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
const FLOAT3D & vPNp0 = cmNp0 . GetPlacement () . pl_PositionVector ;
#line 301 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
const FLOAT3D & vPNp1 = cmNp1 . GetPlacement () . pl_PositionVector ;
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
const FLOAT3D & vPNp2 = cmNp2 . GetPlacement () . pl_PositionVector ;
#line 303 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ANGLE3D aPNm1 = cmNm1 . GetPlacement () . pl_OrientationAngle ;
#line 304 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ANGLE3D aPNp0 = cmNp0 . GetPlacement () . pl_OrientationAngle ;
#line 305 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ANGLE3D aPNp1 = cmNp1 . GetPlacement () . pl_OrientationAngle ;
#line 306 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ANGLE3D aPNp2 = cmNp2 . GetPlacement () . pl_OrientationAngle ;
#line 307 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRotSpeedm1 = cmNm1 . m_fRotSpeed ;
#line 308 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRotSpeedp0 = cmNp0 . m_fRotSpeed ;
#line 309 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRotSpeedp1 = cmNp1 . m_fRotSpeed ;
#line 310 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRotSpeedp2 = cmNp2 . m_fRotSpeed ;
#line 313 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATquat3D qPNm1 ;qPNm1 . FromEuler (aPNm1 );
#line 314 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATquat3D qPNp0 ;qPNp0 . FromEuler (aPNp0 );
#line 315 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATquat3D qPNp1 ;qPNp1 . FromEuler (aPNp1 );
#line 316 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATquat3D qPNp2 ;qPNp2 . FromEuler (aPNp2 );
#line 319 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(qPNm1 % qPNp0 < 0){
#line 320 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
qPNp0 = - qPNp0 ;
#line 321 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 322 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(qPNp0 % qPNp1 < 0){
#line 323 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
qPNp1 = - qPNp1 ;
#line 324 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 325 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(qPNp1 % qPNp2 < 0){
#line 326 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
qPNp2 = - qPNp2 ;
#line 327 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 330 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmAtMarker = m_tmAtMarker + m_tmDelta ;
#line 331 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmDelta = cmNp0 . m_fDeltaTime ;
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_vPNp0 = vPNp0 ;
#line 333 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_vPNp1 = vPNp1 ;
#line 334 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fRotSpeedp0 = fRotSpeedp0 ;
#line 335 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fRotSpeedp1 = fRotSpeedp1 ;
#line 336 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_qPNp0 = qPNp0 ;
#line 337 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_qPNp1 = qPNp1 ;
#line 340 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT tmDNm1 = cmNm1 . m_fDeltaTime ;
#line 341 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT tmDNp0 = cmNp0 . m_fDeltaTime ;
#line 342 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT tmDNp1 = cmNp1 . m_fDeltaTime ;
#line 343 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fD0 = 2 * tmDNp0 / (tmDNm1 + tmDNp0 );
#line 344 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fD1 = 2 * tmDNp0 / (tmDNp0 + tmDNp1 );
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fBNp0 = cmNp0 . m_fBias ;
#line 348 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fTNp0 = cmNp0 . m_fTension ;
#line 349 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fCNp0 = cmNp0 . m_fContinuity ;
#line 350 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fBNp1 = cmNp1 . m_fBias ;
#line 351 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fTNp1 = cmNp1 . m_fTension ;
#line 352 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fCNp1 = cmNp1 . m_fContinuity ;
#line 354 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fF00 = (1 - fTNp0 ) * (1 - fCNp0 ) * (1 - fBNp0 ) / 2;
#line 355 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fF01 = (1 - fTNp0 ) * (1 + fCNp0 ) * (1 + fBNp0 ) / 2;
#line 356 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fF10 = (1 - fTNp1 ) * (1 + fCNp1 ) * (1 - fBNp1 ) / 2;
#line 357 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fF11 = (1 - fTNp1 ) * (1 - fCNp1 ) * (1 + fBNp1 ) / 2;
#line 360 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_vTNp0 = ((vPNp1 - vPNp0 ) * fF00 + (vPNp0 - vPNm1 ) * fF01 ) * fD0 ;
#line 361 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_vTNp1 = ((vPNp2 - vPNp1 ) * fF10 + (vPNp1 - vPNp0 ) * fF11 ) * fD1 ;
#line 364 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fTRotSpeedp0 = ((fRotSpeedp1 - fRotSpeedp0 ) * fF00 + (fRotSpeedp0 - fRotSpeedm1 ) * fF01 ) * fD0 ;
#line 365 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fTRotSpeedp1 = ((fRotSpeedp2 - fRotSpeedp1 ) * fF10 + (fRotSpeedp1 - fRotSpeedp0 ) * fF11 ) * fD1 ;
#line 368 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATquat3D qTNp0 , qTNp1 ;
#line 369 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
qTNp0 = (Log (qPNp0 . Inv () * qPNp1 ) * fF00 + Log (qPNm1 . Inv () * qPNp0 ) * fF01 ) * fD0 ;
#line 370 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
qTNp1 = (Log (qPNp1 . Inv () * qPNp2 ) * fF10 + Log (qPNp0 . Inv () * qPNp1 ) * fF11 ) * fD1 ;
#line 373 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_qANp0 = qPNp0 * Exp ((qTNp0 - Log (qPNp0 . Inv () * qPNp1 )) / 2);
#line 374 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_qANp1 = qPNp1 * Exp ((Log (qPNp0 . Inv () * qPNp1 ) - qTNp1 ) / 2);
#line 377 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(cmNp0 . m_bStopMoving && m_fRotSpeed == 0.0f){
#line 378 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bStopMoving = TRUE ;
#line 379 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 380 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 383 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fT = (tmCurrent - m_tmAtMarker ) / m_tmDelta ;
#line 384 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fH0 = 2 * fT * fT * fT - 3 * fT * fT + 1;
#line 385 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fH1 = - 2 * fT * fT * fT + 3 * fT * fT ;
#line 386 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fH2 = fT * fT * fT - 2 * fT * fT + fT ;
#line 387 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fH3 = fT * fT * fT - fT * fT ;
#line 390 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D vPos = m_vPNp0 * fH0 + m_vPNp1 * fH1 + m_vTNp0 * fH2 + m_vTNp1 * fH3 ;
#line 391 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRotSpeed = m_fRotSpeedp0 * fH0 + m_fRotSpeedp1 * fH1 + m_fTRotSpeedp0 * fH2 + m_fTRotSpeedp1 * fH3 ;
#line 392 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATquat3D qRot = Squad (fT , m_qPNp0 , m_qPNp1 , m_qANp0 , m_qANp1 );
#line 393 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATmatrix3D mRotLocal ;
#line 394 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
MakeRotationMatrixFast (mRotLocal , ANGLE3D (m_fRot , 0 , 0));
#line 395 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOATmatrix3D mRot ;
#line 396 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
qRot . ToMatrix (mRot );
#line 397 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
mRot = mRotLocal * mRot ;
#line 400 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_vNextPosition = vPos ;
#line 401 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_mNextRotation = mRot ;
#line 402 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CacheNearPolygons ();
#line 405 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plNew ;
#line 406 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plNew . pl_PositionVector = vPos ;
#line 407 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
DecomposeRotationMatrixNoSnap (plNew . pl_OrientationAngle , mRot );
#line 408 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetPlacement_internal (plNew , mRot , TRUE );
#line 410 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(! bLerping ){
#line 412 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_plLastPlacement = en_plPlacement ;
#line 413 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 415 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fLastRotSpeed = m_fRotSpeed ;
#line 416 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fRotSpeed = fRotSpeed ;
#line 417 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_fRot += m_fRotSpeed ;
#line 418 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 421 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::PostMoving()
#line 422 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 423 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(! m_bMoving ){
#line 424 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return ;
#line 425 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 428 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(en_plpLastPositions != NULL ){
#line 429 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_plpLastPositions -> AddPosition (en_vNextPosition );
#line 430 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 433 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_bStopMoving ){
#line 434 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bMoving = FALSE ;
#line 436 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_ulFlags |= ENF_INRENDERING ;
#line 437 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_REACHED_DESTINATION ;
#line 439 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_plLastPlacement = en_plPlacement ;
#line 440 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 441 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 443 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::SpawnBeamMachineFlares(void)
#line 444 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 446 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plSpaceShip = GetPlacement ();
#line 447 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plFlare1 = CPlacement3D (FLOAT3D (BM_DX , BM_DY + BM_FLARE_DY , 0) , ANGLE3D (0 , 0 , 0));
#line 448 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plFlare2 = CPlacement3D (FLOAT3D (0 , BM_DY + BM_FLARE_DY , - BM_DZ ) , ANGLE3D (0 , 0 , 0));
#line 449 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plFlare3 = CPlacement3D (FLOAT3D (- BM_DX , BM_DY + BM_FLARE_DY , 0) , ANGLE3D (0 , 0 , 0));
#line 450 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plFlare4 = CPlacement3D (FLOAT3D (0 , BM_DY + BM_FLARE_DY , BM_DZ ) , ANGLE3D (0 , 0 , 0));
#line 452 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plFlare1 . RelativeToAbsolute (plSpaceShip );
#line 453 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plFlare2 . RelativeToAbsolute (plSpaceShip );
#line 454 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plFlare3 . RelativeToAbsolute (plSpaceShip );
#line 455 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plFlare4 . RelativeToAbsolute (plSpaceShip );
#line 457 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penFlare1 = CreateEntity (plFlare1 , CLASS_EFFECTOR );
#line 458 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penFlare2 = CreateEntity (plFlare2 , CLASS_EFFECTOR );
#line 459 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penFlare3 = CreateEntity (plFlare3 , CLASS_EFFECTOR );
#line 460 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penFlare4 = CreateEntity (plFlare4 , CLASS_EFFECTOR );
#line 462 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ESpawnEffector eSpawnFlare ;
#line 463 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnFlare . tmLifeTime = SMALL_FLARES_LIFE_TIME ;
#line 464 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnFlare . tmLifeTime = 10.5f;
#line 465 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnFlare . eetType = ET_SIZING_RING_FLARE ;
#line 467 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penFlare1 -> Initialize (eSpawnFlare );
#line 468 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penFlare2 -> Initialize (eSpawnFlare );
#line 469 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penFlare3 -> Initialize (eSpawnFlare );
#line 470 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penFlare4 -> Initialize (eSpawnFlare );
#line 471 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 473 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::SpawnBeamMachineMainFlare(void)
#line 474 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 476 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plSpaceShip = GetPlacement ();
#line 477 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plFlare = CPlacement3D (FLOAT3D (0 , BM_MASTER_Y + BM_FLARE_DY , 0) , ANGLE3D (0 , 0 , 0));
#line 478 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plFlare . RelativeToAbsolute (GetPlacement ());
#line 479 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penFlare = CreateEntity (plFlare , CLASS_EFFECTOR );
#line 480 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ESpawnEffector eSpawnFlare ;
#line 481 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnFlare . tmLifeTime = 20.0f;
#line 482 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnFlare . fSize = 1.0f;
#line 483 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnFlare . eetType = ET_SIZING_BIG_BLUE_FLARE ;
#line 484 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penFlare -> Initialize (eSpawnFlare );
#line 485 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 487 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::ShowBeamMachineHitFlare(void)
#line 488 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 489 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penHitPlaceFlare != NULL && IsOfClass (m_penHitPlaceFlare , "ModelHolder2"))
#line 490 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 491 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CModelObject * pmo = m_penHitPlaceFlare -> GetModelObject ();
#line 492 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pmo != NULL )
#line 493 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 494 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penHitPlaceFlare -> SwitchToModel ();
#line 495 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 496 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 497 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 499 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::HideBeamMachineHitFlare(void)
#line 500 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 501 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmHitFlareTime = - 1;
#line 502 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penHitPlaceFlare != NULL && IsOfClass (m_penHitPlaceFlare , "ModelHolder2"))
#line 503 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 504 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CModelObject * pmo = m_penHitPlaceFlare -> GetModelObject ();
#line 505 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pmo != NULL )
#line 506 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 507 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penHitPlaceFlare -> SwitchToEditorModel ();
#line 508 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
pmo -> mo_colBlendColor = C_WHITE | CT_OPAQUE ;
#line 509 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 510 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 511 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 513 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::SpawnBeamMachineLightnings(void)
#line 514 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 516 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plLightning1 = CPlacement3D (FLOAT3D (BM_DX , BM_DY , 0) , ANGLE3D (0 , 0 , 0));
#line 517 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plLightning2 = CPlacement3D (FLOAT3D (0 , BM_DY , - BM_DZ ) , ANGLE3D (0 , 0 , 0));
#line 518 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plLightning3 = CPlacement3D (FLOAT3D (- BM_DX , BM_DY , 0) , ANGLE3D (0 , 0 , 0));
#line 519 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plLightning4 = CPlacement3D (FLOAT3D (0 , BM_DY , BM_DZ ) , ANGLE3D (0 , 0 , 0));
#line 521 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plLightningDest = CPlacement3D (FLOAT3D (0 , BM_MASTER_Y , 0) , ANGLE3D (0 , 0 , 0));
#line 522 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plSpaceShip = GetPlacement ();
#line 523 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plLightningDest . RelativeToAbsolute (plSpaceShip );
#line 525 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plLightning1 . RelativeToAbsolute (plSpaceShip );
#line 526 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plLightning2 . RelativeToAbsolute (plSpaceShip );
#line 527 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plLightning3 . RelativeToAbsolute (plSpaceShip );
#line 528 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plLightning4 . RelativeToAbsolute (plSpaceShip );
#line 530 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penLightning1 = CreateEntity (plLightning1 , CLASS_EFFECTOR );
#line 531 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penLightning2 = CreateEntity (plLightning2 , CLASS_EFFECTOR );
#line 532 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penLightning3 = CreateEntity (plLightning3 , CLASS_EFFECTOR );
#line 533 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penLightning4 = CreateEntity (plLightning4 , CLASS_EFFECTOR );
#line 535 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ESpawnEffector eSpawnLightning ;
#line 536 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnLightning . eetType = ET_LIGHTNING ;
#line 537 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnLightning . tmLifeTime = SMALL_LIGHTININGS_LIFE_TIME ;
#line 538 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnLightning . vDestination = plLightningDest . pl_PositionVector ;
#line 539 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnLightning . fSize = 16.0f;
#line 540 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnLightning . ctCount = 16;
#line 542 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penLightning1 -> Initialize (eSpawnLightning );
#line 543 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penLightning2 -> Initialize (eSpawnLightning );
#line 544 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penLightning3 -> Initialize (eSpawnLightning );
#line 545 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penLightning4 -> Initialize (eSpawnLightning );
#line 546 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 548 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::SpawnBeamMachineMainLightning(void)
#line 549 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 551 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D vDestination = GetPlacement () . pl_PositionVector + FLOAT3D (0 , BM_MASTER_Y , 0);
#line 552 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plSource = CPlacement3D (vDestination , ANGLE3D (0 , 0 , 0));
#line 553 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penBeamHit != NULL )
#line 554 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 555 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
plSource . pl_PositionVector = m_penBeamHit -> GetPlacement () . pl_PositionVector ;
#line 556 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penEffector = CreateEntity (plSource , CLASS_EFFECTOR );
#line 557 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ESpawnEffector eSpawnEffector ;
#line 558 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . eetType = ET_LIGHTNING ;
#line 559 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . tmLifeTime = BIG_LIGHT_BEAM_LIFE_TIME ;
#line 560 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . vDestination = vDestination ;
#line 561 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . fSize = 32.0f;
#line 562 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . ctCount = 32;
#line 563 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penEffector -> Initialize (eSpawnEffector );
#line 564 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 565 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 567 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::SpawnMovingRing(void)
#line 568 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 569 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penBeamHit != NULL )
#line 570 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 571 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D vStart = GetPlacement () . pl_PositionVector + FLOAT3D (0 , BM_MASTER_Y , 0);
#line 572 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CPlacement3D plSource = CPlacement3D (vStart , ANGLE3D (0 , 0 , 0));
#line 573 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D vHitPlace = m_penBeamHit -> GetPlacement () . pl_PositionVector ;
#line 574 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CEntity * penEffector = CreateEntity (plSource , CLASS_EFFECTOR );
#line 575 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ESpawnEffector eSpawnEffector ;
#line 576 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . eetType = ET_MOVING_RING ;
#line 577 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . tmLifeTime = BIG_LIGHT_BEAM_LIFE_TIME ;
#line 578 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . vDestination = vHitPlace + FLOAT3D (0.0f , 0.0f , 0.0f);
#line 579 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . fSize = 16.0f;
#line 580 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eSpawnEffector . ctCount = 2;
#line 581 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penEffector -> Initialize (eSpawnEffector );
#line 582 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 583 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 585 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::TurnOnLightBeam(void)
#line 586 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 587 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penLightBeam != NULL && IsOfClass (m_penLightBeam , "ModelHolder2"))
#line 588 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 589 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CModelObject * pmo = m_penLightBeam -> GetModelObject ();
#line 590 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penLightBeam -> SwitchToModel ();
#line 591 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
pmo -> mo_colBlendColor = C_WHITE | CT_OPAQUE ;
#line 592 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 593 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 595 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
void CPyramidSpaceShip::TurnOffLightBeam(void)
#line 596 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 597 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmBeamTime = - 1.0f;
#line 599 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penLightBeam != NULL && IsOfClass (m_penLightBeam , "ModelHolder2"))
#line 600 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 601 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penLightBeam -> SwitchToEditorModel ();
#line 602 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CModelObject * pmo = m_penLightBeam -> GetModelObject ();
#line 603 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 604 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 606 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
BOOL CPyramidSpaceShip::AdjustShadingParameters(FLOAT3D & vLightDirection,COLOR & colLight,COLOR & colAmbient)
#line 607 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 608 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fBeamRatio = 1.0f;
#line 611 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penLightBeam != NULL && IsOfClass (m_penLightBeam , "ModelHolder2"))
#line 612 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 613 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CModelObject * pmo = m_penLightBeam -> GetModelObject ();
#line 614 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pmo != NULL )
#line 615 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 616 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_tmBeamTime > - 1.0f)
#line 617 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 618 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fT = _pTimer -> CurrentTick () - m_tmBeamTime ;
#line 619 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
fBeamRatio = 1.0f - ClampUp (fT / 2.0f , 1.0f);
#line 620 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
UBYTE ub = UBYTE (255.0f * fBeamRatio );
#line 621 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
COLOR col = RGBAToColor (ub , ub , ub , ub );
#line 622 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
pmo -> mo_colBlendColor = col ;
#line 623 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 624 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 625 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 628 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penHitPlaceFlare != NULL && IsOfClass (m_penHitPlaceFlare , "ModelHolder2"))
#line 629 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 630 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CModelObject * pmo = m_penHitPlaceFlare -> GetModelObject ();
#line 631 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(pmo != NULL )
#line 632 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 633 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_tmHitFlareTime > - 1.0f)
#line 634 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 635 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fT = _pTimer -> CurrentTick () - m_tmHitFlareTime ;
#line 636 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRatio = (Sin (fT * 2000) * 0.5f + 0.5f) * (Sin (fT * 1333) * 0.5f + 0.5f);
#line 646 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
UBYTE ub = UBYTE ((200 + 55 * fRatio ) * fBeamRatio );
#line 648 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
COLOR col = RGBAToColor (ub , ub , ub , ub );
#line 649 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
pmo -> mo_colBlendColor = col ;
#line 650 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 651 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 652 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 653 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return FALSE ;
#line 654 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
BOOL CPyramidSpaceShip::
#line 658 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
MPIntro(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CPyramidSpaceShip_MPIntro
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPyramidSpaceShip::MPIntro expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 660 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SwitchToModel ();
#line 661 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bImmediateAnimations = TRUE ;
#line 662 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
STATE_CPyramidSpaceShip_OpenDoors, TRUE;
Jump(STATE_CURRENT, 0x02610002, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610002_MPIntro_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610002
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPyramidSpaceShip_OpenDoors, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x02610003, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610003_MPIntro_02(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610003
const EReturn&__e= (EReturn&)__eeInput;
;
#line 663 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
STATE_CPyramidSpaceShip_FireLightBeam, TRUE;
Jump(STATE_CURRENT, 0x02610004, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610004_MPIntro_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610004
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPyramidSpaceShip_FireLightBeam, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x02610005, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610005_MPIntro_04(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610005
const EReturn&__e= (EReturn&)__eeInput;
;
#line 664 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_BEAM_DEACTIVATED ;
#line 665 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(m_fWaitAfterKillingBeam );
Jump(STATE_CURRENT, 0x02610006, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610006_MPIntro_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610006
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x02610007, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610007_MPIntro_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610007
;
#line 666 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
STATE_CPyramidSpaceShip_FireLightBeam, TRUE;
Jump(STATE_CURRENT, 0x02610008, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610008_MPIntro_07(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610008
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPyramidSpaceShip_FireLightBeam, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x02610009, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610009_MPIntro_08(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610009
const EReturn&__e= (EReturn&)__eeInput;
;
#line 667 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bImmediateAnimations = FALSE ;
#line 668 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
STATE_CPyramidSpaceShip_CloseDoors, TRUE;
Jump(STATE_CURRENT, 0x0261000a, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261000a_MPIntro_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261000a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPyramidSpaceShip_CloseDoors, TRUE, EVoid());return TRUE;case EVENTCODE_EReturn: Jump(STATE_CURRENT,0x0261000b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261000b_MPIntro_10(const CEntityEvent &__eeInput){
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261000b
const EReturn&__e= (EReturn&)__eeInput;
;
#line 669 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Return(STATE_CURRENT,EReturn ());
#line 669 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPyramidSpaceShip::
#line 673 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
OpenDoors(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CPyramidSpaceShip_OpenDoors
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPyramidSpaceShip::OpenDoors expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 676 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_SHIPINSIDE ) == NULL )
#line 677 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 679 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_SHIPINSIDE , MODEL_SHIP_INSIDE , TEXTURE_BODY );
#line 680 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> StretchModel (PSS_STRETCH );
#line 681 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 682 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ShowBeamMachine ();
#line 684 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(! m_bImmediateAnimations )
#line 685 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 686 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PlaySound (m_soPlates , SOUND_PLATES , SOF_3D );
#line 687 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR1 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 688 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR2 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 689 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR3 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 690 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR4 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 691 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR5 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 692 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR6 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 693 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR7 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 694 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR8 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPENING , 0);
#line 695 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 696 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
else
#line 697 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 698 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR1 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 699 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR2 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 700 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR3 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 701 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR4 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 702 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR5 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 703 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR6 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 704 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR7 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 705 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR8 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_OPEN , 0);
#line 706 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 709 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FOREACHINLIST (CEntity , en_lnInParent , en_lhChildren , iten )
#line 710 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 711 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(IsOfClass (iten , "Light"))
#line 712 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 713 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(iten -> GetName () == "Pulsating")
#line 714 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 715 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CLight * penLight = (CLight *) & * iten ;
#line 716 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
EChangeAnim eChange ;
#line 717 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eChange . iLightAnim = 3;
#line 718 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eChange . bLightLoop = TRUE ;
#line 719 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penLight -> SendEvent (eChange );
#line 720 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 721 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
else if(iten -> GetName () == "Motors")
#line 722 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 723 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CLight * penLight = (CLight *) & * iten ;
#line 724 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
EChangeAnim eChange ;
#line 725 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eChange . iLightAnim = 4;
#line 726 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
eChange . bLightLoop = TRUE ;
#line 727 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
penLight -> SendEvent (eChange );
#line 728 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 729 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 730 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 732 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_KILLING_BEAM_FIREING ;
#line 733 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Return(STATE_CURRENT,EReturn ());
#line 733 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPyramidSpaceShip::
#line 736 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CloseDoors(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CPyramidSpaceShip_CloseDoors
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPyramidSpaceShip::CloseDoors expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 738 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_DOORS_CLOSED ;
#line 740 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(!(GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_SHIPINSIDE ) != NULL )){ Jump(STATE_CURRENT,0x02610010, FALSE, EInternal());return TRUE;}
#line 742 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PlaySound (m_soPlates , SOUND_PLATES , SOF_3D );
#line 743 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR1 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 744 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR2 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 745 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR3 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 746 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR4 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 747 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR5 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 748 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR6 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 749 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR7 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 750 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR8 ) -> amo_moModelObject . PlayAnim (DOOR_ANIM_CLOSING , 0);
#line 752 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(GetModelObject () -> GetAttachmentModel (SPACESHIP_ATTACHMENT_DOOR1 ) -> amo_moModelObject . GetAnimLength (DOOR_ANIM_CLOSING ));
Jump(STATE_CURRENT, 0x0261000e, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261000e_CloseDoors_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261000e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0261000f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261000f_CloseDoors_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261000f
;
#line 754 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
RemoveAttachment (SPACESHIP_ATTACHMENT_SHIPINSIDE );Jump(STATE_CURRENT,0x02610010, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x02610010_CloseDoors_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610010
#line 757 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
HideBeamMachine ();
#line 758 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
InitializePathMoving ((CPyramidSpaceShipMarker *) & * m_penFlyAwayTarget );
#line 759 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Return(STATE_CURRENT,EReturn ());
#line 759 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPyramidSpaceShip::
#line 762 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FireLightBeam(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CPyramidSpaceShip_FireLightBeam
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPyramidSpaceShip::FireLightBeam expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 764 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_epssState == PSSS_DOORS_CLOSED )
#line 765 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 766 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Return(STATE_CURRENT,EVoid());
#line 766 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 767 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 769 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_epssState == PSSS_BEAM_DEACTIVATED )
#line 770 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 771 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bFireingDeactivatedBeam = TRUE ;
#line 772 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 774 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(!(! m_bImmediateAnimations )){ Jump(STATE_CURRENT,0x02610015, FALSE, EInternal());return TRUE;}
#line 776 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PlaySound (m_soBeamMachine , SOUND_BEAMMACHINE , SOF_3D );
#line 777 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> PlayAnim (SPACESHIP_ANIM_OPENING , 0);
#line 778 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (SPACESHIP_ANIM_OPENING ));
Jump(STATE_CURRENT, 0x02610012, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610012_FireLightBeam_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610012
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x02610013, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610013_FireLightBeam_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610013
;Jump(STATE_CURRENT,0x02610014, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x02610015_FireLightBeam_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610015
#line 781 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 782 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> PlayAnim (SPACESHIP_ANIM_OPEN , 0);
#line 783 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}Jump(STATE_CURRENT,0x02610014, FALSE, EInternal());return TRUE;}
BOOL CPyramidSpaceShip::H0x02610014_FireLightBeam_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610014
#line 785 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(!(! m_bImmediateAnimations )){ Jump(STATE_CURRENT,0x02610019, FALSE, EInternal());return TRUE;}
#line 787 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PlaySound (m_soBeamMachine , SOUND_WARMUP , SOF_3D );
#line 788 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SpawnBeamMachineFlares ();
#line 789 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(SMALL_FLARE_WAIT );
Jump(STATE_CURRENT, 0x02610016, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610016_FireLightBeam_05(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610016
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x02610017, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610017_FireLightBeam_06(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610017
;Jump(STATE_CURRENT,0x02610018, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x02610019_FireLightBeam_08(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610019
#line 792 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 793 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SpawnBeamMachineFlares ();
#line 794 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}Jump(STATE_CURRENT,0x02610018, FALSE, EInternal());return TRUE;}
BOOL CPyramidSpaceShip::H0x02610018_FireLightBeam_07(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610018
#line 796 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SpawnBeamMachineLightnings ();
#line 797 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(!(! m_bImmediateAnimations )){ Jump(STATE_CURRENT,0x0261001c, FALSE, EInternal());return TRUE;}
#line 799 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(SMALL_LIGHTNING_WAIT );
Jump(STATE_CURRENT, 0x0261001a, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261001a_FireLightBeam_09(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261001a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0261001b, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261001b_FireLightBeam_10(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261001b
;Jump(STATE_CURRENT,0x0261001c, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x0261001c_FireLightBeam_11(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261001c
#line 802 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SpawnBeamMachineMainFlare ();
#line 803 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(!(! m_bImmediateAnimations )){ Jump(STATE_CURRENT,0x0261001f, FALSE, EInternal());return TRUE;}
#line 805 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(BIG_FLARE_WAIT );
Jump(STATE_CURRENT, 0x0261001d, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261001d_FireLightBeam_12(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261001d
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0261001e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261001e_FireLightBeam_13(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261001e
;Jump(STATE_CURRENT,0x0261001f, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x0261001f_FireLightBeam_14(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261001f
#line 809 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
TurnOnLightBeam ();
#line 810 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(! m_bFireingDeactivatedBeam )
#line 811 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 812 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SpawnBeamMachineMainLightning ();
#line 813 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 815 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_soBeam . Set3DParameters (SND_FALLOFF , SND_HOTSPOT , SND_VOLUME , 1.0f);
#line 816 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PlaySound (m_soBeam , SOUND_BEAM , SOF_3D | SOF_LOOP );
#line 817 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ShowBeamMachineHitFlare ();
#line 818 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmHitFlareTime = _pTimer -> CurrentTick ();
#line 820 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_iRingCounter = 0;
#line 821 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Jump(STATE_CURRENT,0x02610024, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x02610024_FireLightBeam_19(const CEntityEvent &__eeInput)
#line 822 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610024
if(!(_pTimer -> CurrentTick () < m_tmHitFlareTime + BIG_LIGHT_BEAM_LIFE_TIME )){ Jump(STATE_CURRENT,0x02610025, FALSE, EInternal());return TRUE;}
#line 824 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_iRingCounter < 16)
#line 825 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 826 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SpawnMovingRing ();
#line 827 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_iRingCounter ++;
#line 828 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 831 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmTemp = _pTimer -> CurrentTick ();
#line 832 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Jump(STATE_CURRENT,0x02610022, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x02610022_FireLightBeam_17(const CEntityEvent &__eeInput)
#line 833 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610022
if(!(_pTimer -> CurrentTick () < m_tmTemp + 0.49f)){ Jump(STATE_CURRENT,0x02610023, FALSE, EInternal());return TRUE;}
#line 834 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x02610020, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610020_FireLightBeam_15(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610020
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x02610021, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610021_FireLightBeam_16(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610021
;
#line 836 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_penBeamHit != NULL && ! m_bFireingDeactivatedBeam )
#line 837 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 839 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D vSource = GetPlacement () . pl_PositionVector + FLOAT3D (0 , BM_MASTER_Y , 0);
#line 840 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D vDestination = m_penBeamHit -> GetPlacement () . pl_PositionVector ;
#line 841 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
CCastRay crRay (this , vSource , vDestination );
#line 842 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
crRay . cr_bHitTranslucentPortals = FALSE ;
#line 843 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
crRay . cr_bPhysical = FALSE ;
#line 844 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
crRay . cr_ttHitModels = CCastRay :: TT_COLLISIONBOX ;
#line 845 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
crRay . cr_fTestR = 16.0f;
#line 846 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetWorld () -> CastRay (crRay );
#line 849 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(crRay . cr_penHit != NULL )
#line 850 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 851 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
InflictDirectDamage (crRay . cr_penHit , this , DMT_BULLET ,
#line 852 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
10000.0f / GetGameDamageMultiplier () * _pTimer -> TickQuantum / 0.5f / 16.0f ,
#line 853 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT3D (0 , 0 , 0) , (vSource - vDestination ) . Normalize ());
#line 854 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
crRay . cr_penHit -> SendEvent (EHitBySpaceShipBeam ());
#line 855 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 856 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}Jump(STATE_CURRENT,0x02610022, FALSE, EInternal());return TRUE;
#line 857 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}BOOL CPyramidSpaceShip::H0x02610023_FireLightBeam_18(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610023
Jump(STATE_CURRENT,0x02610024, FALSE, EInternal());return TRUE;
#line 858 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}BOOL CPyramidSpaceShip::H0x02610025_FireLightBeam_20(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610025
#line 860 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmBeamTime = _pTimer -> CurrentTick ();
#line 861 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Jump(STATE_CURRENT,0x02610028, FALSE, EInternal());return TRUE;}BOOL CPyramidSpaceShip::H0x02610028_FireLightBeam_23(const CEntityEvent &__eeInput)
#line 862 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610028
if(!(_pTimer -> CurrentTick () < m_tmBeamTime + 2.0f)){ Jump(STATE_CURRENT,0x02610029, FALSE, EInternal());return TRUE;}
#line 863 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(_pTimer -> TickQuantum );
Jump(STATE_CURRENT, 0x02610026, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610026_FireLightBeam_21(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610026
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x02610027, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x02610027_FireLightBeam_22(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610027
;
#line 864 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT tmNow = _pTimer -> CurrentTick ();
#line 865 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
FLOAT fRatio = CalculateRatio (tmNow , m_tmBeamTime , m_tmBeamTime + 2.0f , 0 , 1.0f);
#line 866 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_soBeam . Set3DParameters (SND_FALLOFF , SND_HOTSPOT , fRatio * SND_VOLUME , 1.0f);Jump(STATE_CURRENT,0x02610028, FALSE, EInternal());return TRUE;
#line 867 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}BOOL CPyramidSpaceShip::H0x02610029_FireLightBeam_24(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610029
#line 870 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
TurnOffLightBeam ();
#line 871 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
HideBeamMachineHitFlare ();
#line 874 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(2.0f);
Jump(STATE_CURRENT, 0x0261002a, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261002a_FireLightBeam_25(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261002a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0261002b, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261002b_FireLightBeam_26(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261002b
;
#line 876 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> PlayAnim (SPACESHIP_ANIM_CLOSING , 0);
#line 877 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PlaySound (m_soBeamMachine , SOUND_BEAMMACHINE , SOF_3D );
#line 878 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(GetModelObject () -> GetAnimLength (SPACESHIP_ANIM_CLOSING ));
Jump(STATE_CURRENT, 0x0261002c, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261002c_FireLightBeam_27(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261002c
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0261002d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261002d_FireLightBeam_28(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261002d
;
#line 880 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmHitFlareTime = - 1.0f;
#line 881 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_tmBeamTime = - 1.0f;
#line 883 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_bFireingDeactivatedBeam )
#line 884 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 885 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Jump(STATE_CURRENT, STATE_CPyramidSpaceShip_CloseDoors, TRUE, EVoid());return TRUE;
#line 886 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 887 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Return(STATE_CURRENT,EReturn ());
#line 887 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPyramidSpaceShip::
#line 890 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CPyramidSpaceShip_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPyramidSpaceShip::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 892 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
InitAsEditorModel ();
#line 894 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetPhysicsFlags (EPF_MODEL_IMMATERIAL | EPF_MOVABLE );
#line 895 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetCollisionFlags (ECF_MODEL_HOLDER );
#line 897 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bImmediateAnimations = FALSE ;
#line 898 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_fAcceleration = 1e6f;
#line 899 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
en_fDeceleration = 1e6f;
#line 901 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_soBeam . Set3DParameters (SND_FALLOFF , SND_HOTSPOT , SND_VOLUME , 1.0f);
#line 902 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_soBeamMachine . Set3DParameters (SND_FALLOFF , SND_HOTSPOT , SND_VOLUME / 2.0f , 1.0f);
#line 903 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_soPlates . Set3DParameters (SND_FALLOFF , SND_HOTSPOT , SND_VOLUME / 2.0f , 1.0f);
#line 904 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_soFlaresFX . Set3DParameters (SND_FALLOFF , SND_HOTSPOT , SND_VOLUME , 1.0f);
#line 907 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetModel (MODEL_SPACESHIP );
#line 908 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetModelMainTexture (TEXTURE_BODY );
#line 909 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_BODY , MODEL_BODY , TEXTURE_BODY );
#line 910 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR1 , MODEL_DOOR , TEXTURE_DOOR );
#line 911 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR2 , MODEL_DOOR , TEXTURE_DOOR );
#line 912 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR3 , MODEL_DOOR , TEXTURE_DOOR );
#line 913 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR4 , MODEL_DOOR , TEXTURE_DOOR );
#line 914 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR5 , MODEL_DOOR , TEXTURE_DOOR );
#line 915 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR6 , MODEL_DOOR , TEXTURE_DOOR );
#line 916 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR7 , MODEL_DOOR , TEXTURE_DOOR );
#line 917 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
AddAttachment (SPACESHIP_ATTACHMENT_DOOR8 , MODEL_DOOR , TEXTURE_DOOR );
#line 919 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
GetModelObject () -> StretchModel (PSS_STRETCH );
#line 920 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
ModelChangeNotify ();
#line 921 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bMoving = FALSE ;
#line 922 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_IDLE ;
#line 923 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bFireingDeactivatedBeam = FALSE ;
#line 925 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAfter(0.25f);
Jump(STATE_CURRENT, 0x0261002e, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x0261002e_Main_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261002e
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0261002f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPyramidSpaceShip::H0x0261002f_Main_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x0261002f
;
#line 928 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
TurnOffLightBeam ();
#line 930 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
HideBeamMachineHitFlare ();
#line 933 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x02610030, FALSE, EBegin());return TRUE;}BOOL CPyramidSpaceShip::H0x02610030_Main_03(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610030
switch(__eeInput.ee_slEvent){case(EVENTCODE_EActivate):
#line 935 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const EActivate&e= (EActivate&)__eeInput;
#line 936 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(! m_bInvisible )
#line 937 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 938 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
SwitchToModel ();
#line 939 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 940 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
InitializePathMoving ((CPyramidSpaceShipMarker *) & * m_penTarget );
#line 941 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 942 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;case(EVENTCODE_ETrigger):
#line 944 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const ETrigger&e= (ETrigger&)__eeInput;
#line 945 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_epssState == PSSS_IDLE )
#line 946 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 948 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 949 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
else if(m_epssState == PSSS_KILLING_BEAM_FIREING )
#line 950 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 951 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Call(STATE_CURRENT, STATE_CPyramidSpaceShip_FireLightBeam, TRUE, EVoid());return TRUE;
#line 952 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 953 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
else if(m_epssState == PSSS_BEAM_DEACTIVATED )
#line 954 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 955 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Call(STATE_CURRENT, STATE_CPyramidSpaceShip_FireLightBeam, TRUE, EVoid());return TRUE;
#line 956 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 957 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
else if(m_epssState == PSSS_REACHED_DESTINATION )
#line 958 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 959 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Call(STATE_CURRENT, STATE_CPyramidSpaceShip_OpenDoors, TRUE, EVoid());return TRUE;
#line 960 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 961 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 962 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;case(EVENTCODE_EForcePathMarker):
#line 964 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const EForcePathMarker&eForcePathMarker= (EForcePathMarker&)__eeInput;
#line 965 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
if(m_epssState != PSSS_IDLE )
#line 966 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{
#line 967 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_penTarget = eForcePathMarker . penForcedPathMarker ;
#line 968 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
InitializePathMoving ((CPyramidSpaceShipMarker *) & * m_penTarget );
#line 969 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}
#line 970 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 971 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;case(EVENTCODE_EEnvironmentStart):
#line 973 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const EEnvironmentStart&e= (EEnvironmentStart&)__eeInput;
#line 974 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Call(STATE_CURRENT, STATE_CPyramidSpaceShip_MPIntro, TRUE, EVoid());return TRUE;
#line 975 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 976 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;case(EVENTCODE_EEnvironmentStop):
#line 978 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const EEnvironmentStop&e= (EEnvironmentStop&)__eeInput;
#line 979 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_bMoving = FALSE ;
#line 980 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
PostMoving ();
#line 981 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 982 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;case(EVENTCODE_EDeactivate):
#line 984 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const EDeactivate&e= (EDeactivate&)__eeInput;
#line 985 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
m_epssState = PSSS_BEAM_DEACTIVATED ;
#line 986 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 987 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;case(EVENTCODE_EReturn):
#line 989 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
{const EReturn&e= (EReturn&)__eeInput;
#line 990 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE;
#line 991 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}ASSERT(FALSE);break;default: return FALSE; break;
#line 992 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
}return TRUE;}BOOL CPyramidSpaceShip::H0x02610031_Main_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x02610031
#line 994 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Destroy ();
#line 995 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
Return(STATE_CURRENT,EVoid());
#line 995 "D:/SE1_GPL/Sources/EntitiesMP/PyramidSpaceShip.es"
return TRUE; ASSERT(FALSE); return TRUE;};