Serious-Engine/Sources/EntitiesMP/Camera.cpp

1031 lines
42 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/Camera.es"
#include "StdH.h"
#include <EntitiesMP/Camera.h>
#include <EntitiesMP/Camera_tables.h>
void CCamera::SetDefaultProperties(void) {
m_tmTime = 5.0f;
m_fFOV = 90.0f;
m_fLastFOV = 90.0f;
m_penTarget = NULL;
m_strName = "Camera";
m_penOnBreak = NULL;
m_bWideScreen = TRUE ;
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_fFOVp0 = 0.0f;
m_fFOVp1 = 0.0f;
m_fTFOVp0 = 0.0f;
m_fTFOVp1 = 0.0f;
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_penLast = NULL;
m_penPlayer = NULL;
m_strDescription = "";
m_bStopMoving = FALSE ;
m_colFade0 = 0;
m_colFade1 = 0;
m_bMoving = FALSE ;
m_penViewTarget0 = NULL;
m_penViewTarget1 = NULL;
m_vPosRatio0 = FLOAT3D(0 , 0 , 0);
m_vPosRatio1 = FLOAT3D(0 , 0 , 0);
m_fMyTimer = 0.0f;
m_fMyTimerLast = 0.0f;
m_bIgnoreTimeStretch = FALSE ;
m_bAutoRotation = FALSE ;
m_fStartHdg = 0.0f;
m_fRotateSpeed = 180.0f;
m_fRotateTime = 8.0f;
m_fRadX = 8.0f;
m_fHeight = 4.0f;
m_fRadZ = 8.0f;
m_penAutoCameraEndTarget = NULL;
m_eetAutoCameraEndEvent = EET_STOP ;
m_vRelTargetOffset = FLOAT3D(0 , 0 , 0);
CMovableModelEntity::SetDefaultProperties();
}
#line 80 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
void CCamera::RenderParticles(void)
#line 81 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 82 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(Particle_GetViewer () == this ){
#line 83 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Particles_ViewerLocal (this );
#line 84 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 85 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 88 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
BOOL CCamera::MovesByTargetedRoute(CTString & strTargetProperty)const
#line 89 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 90 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
strTargetProperty = "Target";
#line 91 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE ;
#line 92 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 95 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
BOOL CCamera::DropsMarker(CTFileName & fnmMarkerClass,CTString & strTargetProperty)const
#line 96 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 97 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
fnmMarkerClass = CTFILENAME ("Classes\\CameraMarker.ecl");
#line 98 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
strTargetProperty = "Target";
#line 99 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE ;
#line 100 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 103 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
const CTString & CCamera::GetDescription(void)const
#line 104 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 105 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penTarget != NULL ){
#line 106 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
((CTString &) m_strDescription ) . PrintF ("->%s" , m_penTarget -> GetName ());
#line 107 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}else {
#line 108 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
((CTString &) m_strDescription ) . PrintF ("-><none>");
#line 109 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 110 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return m_strDescription ;
#line 111 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 113 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
void CCamera::GetAutoRotatePlacement(FLOAT tmCurrent,FLOAT3D & vPos,FLOATmatrix3D & mRot,
#line 114 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CPlacement3D & plNew,FLOAT3D vTarget)const
#line 115 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 117 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fT = m_fStartHdg + m_fRotateSpeed * tmCurrent ;
#line 118 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fX = m_fRadX * Sin (fT );
#line 119 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fZ = m_fRadZ * Cos (fT );
#line 120 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
vPos = FLOAT3D (fX , - m_fHeight , fZ );
#line 121 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vDir = vPos ;
#line 122 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
vDir . Normalize ();
#line 123 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ANGLE3D ang ;
#line 124 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
DirectionVectorToAngles (vDir , ang );
#line 125 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
plNew . pl_PositionVector = vTarget - vPos ;
#line 126 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
plNew . pl_OrientationAngle = ang ;
#line 128 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
MakeRotationMatrix (mRot , ang );
#line 129 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return ;
#line 130 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 132 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CPlacement3D CCamera::GetLerpedPlacement(void)const
#line 133 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 134 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fLerpFactor ;
#line 135 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(IsPredictor ()){
#line 136 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
fLerpFactor = _pTimer -> GetLerpFactor ();
#line 137 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}else {
#line 138 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
fLerpFactor = _pTimer -> GetLerpFactor2 ();
#line 139 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 141 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_bAutoRotation && m_bMoving )
#line 142 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 143 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fTime = Lerp (m_fMyTimerLast , m_fMyTimer , fLerpFactor );
#line 145 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vPos ;
#line 146 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATmatrix3D mRot ;
#line 147 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CPlacement3D plNew ;
#line 149 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vTarget = FLOAT3D (0 , 0 , 0);
#line 150 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penTarget != NULL )
#line 151 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 152 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcm = & (CCameraMarker &) * m_penTarget ;
#line 153 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(pcm -> m_penViewTarget != NULL )
#line 154 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 155 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
vTarget = pcm -> m_penViewTarget -> GetLerpedPlacement () . pl_PositionVector + m_vRelTargetOffset ;
#line 156 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 157 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 159 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
GetAutoRotatePlacement (fTime , vPos , mRot , plNew , vTarget );
#line 160 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return plNew ;
#line 161 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 162 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
else if(m_penViewTarget0 != NULL )
#line 163 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 164 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CPlacement3D plNew = LerpPlacementsPrecise (en_plLastPlacement , en_plPlacement , fLerpFactor );
#line 165 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATmatrix3D mRot ;
#line 166 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CalcTargetedRotation (plNew . pl_PositionVector , m_penViewTarget0 , m_vPosRatio0 , mRot , TRUE );
#line 167 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
DecomposeRotationMatrixNoSnap (plNew . pl_OrientationAngle , mRot );
#line 168 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return plNew ;
#line 169 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 170 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
else
#line 171 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 172 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return LerpPlacementsPrecise (en_plLastPlacement , en_plPlacement , fLerpFactor );
#line 173 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 175 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 178 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
void CCamera::CalcTargetedRotation(const FLOAT3D & vMyPos,CEntity * penViewTarget,
#line 179 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vPosRatio,FLOATmatrix3D & mRotTarget,BOOL bLerping)const
#line 180 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 181 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vAbsPos ;
#line 182 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
penViewTarget -> GetEntityPointRatio (vPosRatio , vAbsPos , bLerping );
#line 183 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vDir ;
#line 184 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
vDir = vAbsPos - vMyPos ;
#line 185 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
vDir . Normalize ();
#line 186 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ANGLE3D aDir ;
#line 187 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
DirectionVectorToAnglesNoSnap (vDir , aDir );
#line 188 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
MakeRotationMatrixFast (mRotTarget , aDir );
#line 189 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 191 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
void CCamera::PreMoving()
#line 192 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 194 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_plLastPlacement = en_plPlacement ;
#line 195 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 198 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
void CCamera::DoMoving()
#line 199 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 200 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! m_bMoving ){
#line 201 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return ;
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 203 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT tmCurrent ;
#line 204 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! m_bIgnoreTimeStretch )
#line 205 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 206 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
tmCurrent = _pTimer -> CurrentTick ();
#line 207 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 208 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
else
#line 209 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 210 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fMyTimerLast = m_fMyTimer ;
#line 211 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fMyTimer += _pTimer -> TickQuantum / _pNetwork -> GetRealTimeFactor ();
#line 212 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
tmCurrent = m_fMyTimer ;
#line 213 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 215 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_bAutoRotation )
#line 216 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 218 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(tmCurrent > m_fRotateTime )
#line 219 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 220 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bStopMoving = TRUE ;
#line 221 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return ;
#line 222 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 223 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vPos ;
#line 224 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATmatrix3D mRot ;
#line 225 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CPlacement3D plNew ;
#line 227 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vTarget = FLOAT3D (0 , 0 , 0);
#line 228 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penTarget != NULL )
#line 229 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 230 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcm = & (CCameraMarker &) * m_penTarget ;
#line 231 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(pcm -> m_penViewTarget != NULL )
#line 232 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 233 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
vTarget = pcm -> m_penViewTarget -> GetPlacement () . pl_PositionVector + m_vRelTargetOffset ;
#line 234 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 235 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 236 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
GetAutoRotatePlacement (tmCurrent , vPos , mRot , plNew , vTarget );
#line 237 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_vNextPosition = vPos ;
#line 238 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_mNextRotation = mRot ;
#line 239 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CacheNearPolygons ();
#line 240 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetPlacement_internal (plNew , mRot , TRUE );
#line 241 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return ;
#line 242 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 245 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
BOOL bLerping = TRUE ;
#line 248 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(tmCurrent > (m_tmAtMarker + m_tmDelta - _pTimer -> TickQuantum * 3 / 2))
#line 249 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 251 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcmNm1 = & (CCameraMarker &) * m_penLast ;
#line 252 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcmNp0 = & (CCameraMarker &) * m_penTarget ;
#line 253 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcmNp1 = & (CCameraMarker &) * pcmNp0 -> m_penTarget ;
#line 254 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcmNp2 = & (CCameraMarker &) * pcmNp1 -> m_penTarget ;
#line 257 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FOREVER {
#line 259 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(pcmNp0 -> m_penTrigger != NULL ){
#line 261 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SendToTarget (pcmNp0 -> m_penTrigger , EET_TRIGGER , m_penPlayer );
#line 262 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 265 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! pcmNp0 -> m_bSkipToNext ){
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
break ;
#line 268 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 271 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcmNm1 = pcmNp0 ;
#line 272 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcmNp0 = pcmNp1 ;
#line 273 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcmNp1 = pcmNp2 ;
#line 274 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcmNp2 = (CCameraMarker *) & * pcmNp2 -> m_penTarget ;
#line 277 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
bLerping = FALSE ;
#line 278 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 281 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penTarget = pcmNp1 ;
#line 282 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penLast = pcmNp0 ;
#line 285 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker & cmNm1 = * pcmNm1 ;
#line 286 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker & cmNp0 = * pcmNp0 ;
#line 287 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker & cmNp1 = * pcmNp1 ;
#line 288 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker & cmNp2 = * pcmNp2 ;
#line 291 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
const FLOAT3D & vPNm1 = cmNm1 . GetPlacement () . pl_PositionVector ;
#line 292 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
const FLOAT3D & vPNp0 = cmNp0 . GetPlacement () . pl_PositionVector ;
#line 293 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
const FLOAT3D & vPNp1 = cmNp1 . GetPlacement () . pl_PositionVector ;
#line 294 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
const FLOAT3D & vPNp2 = cmNp2 . GetPlacement () . pl_PositionVector ;
#line 295 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ANGLE3D aPNm1 = cmNm1 . GetPlacement () . pl_OrientationAngle ;
#line 296 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ANGLE3D aPNp0 = cmNp0 . GetPlacement () . pl_OrientationAngle ;
#line 297 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ANGLE3D aPNp1 = cmNp1 . GetPlacement () . pl_OrientationAngle ;
#line 298 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ANGLE3D aPNp2 = cmNp2 . GetPlacement () . pl_OrientationAngle ;
#line 299 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fFOVm1 = cmNm1 . m_fFOV ;
#line 300 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fFOVp0 = cmNp0 . m_fFOV ;
#line 301 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fFOVp1 = cmNp1 . m_fFOV ;
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fFOVp2 = cmNp2 . m_fFOV ;
#line 303 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_colFade0 = cmNp0 . m_colFade ;
#line 304 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_colFade1 = cmNp1 . m_colFade ;
#line 305 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penViewTarget0 = cmNp0 . m_penViewTarget ;
#line 306 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penViewTarget1 = cmNp1 . m_penViewTarget ;
#line 307 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vPosRatio0 = FLOAT3D (0 , 0 , 0);
#line 308 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vPosRatio1 = FLOAT3D (0 , 0 , 0);
#line 309 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penViewTarget0 != NULL )
#line 310 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 311 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vPosRatio0 = cmNp0 . m_vPosRatio ;
#line 312 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 313 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penViewTarget1 != NULL )
#line 314 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 315 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vPosRatio1 = cmNp1 . m_vPosRatio ;
#line 316 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 319 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qPNm1 ;qPNm1 . FromEuler (aPNm1 );
#line 320 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qPNp0 ;qPNp0 . FromEuler (aPNp0 );
#line 321 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qPNp1 ;qPNp1 . FromEuler (aPNp1 );
#line 322 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qPNp2 ;qPNp2 . FromEuler (aPNp2 );
#line 325 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(qPNm1 % qPNp0 < 0){
#line 326 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qPNp0 = - qPNp0 ;
#line 327 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 328 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(qPNp0 % qPNp1 < 0){
#line 329 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qPNp1 = - qPNp1 ;
#line 330 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 331 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(qPNp1 % qPNp2 < 0){
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qPNp2 = - qPNp2 ;
#line 333 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 336 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_tmAtMarker = m_tmAtMarker + m_tmDelta ;
#line 337 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_tmDelta = cmNp0 . m_fDeltaTime ;
#line 338 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vPNp0 = vPNp0 ;
#line 339 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vPNp1 = vPNp1 ;
#line 340 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fFOVp0 = fFOVp0 ;
#line 341 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fFOVp1 = fFOVp1 ;
#line 342 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_qPNp0 = qPNp0 ;
#line 343 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_qPNp1 = qPNp1 ;
#line 346 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT tmDNm1 = cmNm1 . m_fDeltaTime ;
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT tmDNp0 = cmNp0 . m_fDeltaTime ;
#line 348 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT tmDNp1 = cmNp1 . m_fDeltaTime ;
#line 349 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fD0 = 2 * tmDNp0 / (tmDNm1 + tmDNp0 );
#line 350 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fD1 = 2 * tmDNp0 / (tmDNp0 + tmDNp1 );
#line 353 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fBNp0 = cmNp0 . m_fBias ;
#line 354 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fTNp0 = cmNp0 . m_fTension ;
#line 355 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fCNp0 = cmNp0 . m_fContinuity ;
#line 356 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fBNp1 = cmNp1 . m_fBias ;
#line 357 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fTNp1 = cmNp1 . m_fTension ;
#line 358 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fCNp1 = cmNp1 . m_fContinuity ;
#line 360 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fF00 = (1 - fTNp0 ) * (1 - fCNp0 ) * (1 - fBNp0 ) / 2;
#line 361 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fF01 = (1 - fTNp0 ) * (1 + fCNp0 ) * (1 + fBNp0 ) / 2;
#line 362 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fF10 = (1 - fTNp1 ) * (1 + fCNp1 ) * (1 - fBNp1 ) / 2;
#line 363 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fF11 = (1 - fTNp1 ) * (1 - fCNp1 ) * (1 + fBNp1 ) / 2;
#line 366 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vTNp0 = ((vPNp1 - vPNp0 ) * fF00 + (vPNp0 - vPNm1 ) * fF01 ) * fD0 ;
#line 367 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vTNp1 = ((vPNp2 - vPNp1 ) * fF10 + (vPNp1 - vPNp0 ) * fF11 ) * fD1 ;
#line 370 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fTFOVp0 = ((fFOVp1 - fFOVp0 ) * fF00 + (fFOVp0 - fFOVm1 ) * fF01 ) * fD0 ;
#line 371 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fTFOVp1 = ((fFOVp2 - fFOVp1 ) * fF10 + (fFOVp1 - fFOVp0 ) * fF11 ) * fD1 ;
#line 374 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qTNp0 , qTNp1 ;
#line 375 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qTNp0 = (Log (qPNp0 . Inv () * qPNp1 ) * fF00 + Log (qPNm1 . Inv () * qPNp0 ) * fF01 ) * fD0 ;
#line 376 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qTNp1 = (Log (qPNp1 . Inv () * qPNp2 ) * fF10 + Log (qPNp0 . Inv () * qPNp1 ) * fF11 ) * fD1 ;
#line 379 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_qANp0 = qPNp0 * Exp ((qTNp0 - Log (qPNp0 . Inv () * qPNp1 )) / 2);
#line 380 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_qANp1 = qPNp1 * Exp ((Log (qPNp0 . Inv () * qPNp1 ) - qTNp1 ) / 2);
#line 383 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(cmNp0 . m_bStopMoving ){
#line 384 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bStopMoving = TRUE ;
#line 385 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 386 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 389 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fT = (tmCurrent - m_tmAtMarker ) / m_tmDelta ;
#line 390 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fH0 = 2 * fT * fT * fT - 3 * fT * fT + 1;
#line 391 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fH1 = - 2 * fT * fT * fT + 3 * fT * fT ;
#line 392 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fH2 = fT * fT * fT - 2 * fT * fT + fT ;
#line 393 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fH3 = fT * fT * fT - fT * fT ;
#line 396 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vPos = m_vPNp0 * fH0 + m_vPNp1 * fH1 + m_vTNp0 * fH2 + m_vTNp1 * fH3 ;
#line 397 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fFOV = m_fFOVp0 * fH0 + m_fFOVp1 * fH1 + m_fTFOVp0 * fH2 + m_fTFOVp1 * fH3 ;
#line 398 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qRot = Squad (fT , m_qPNp0 , m_qPNp1 , m_qANp0 , m_qANp1 );
#line 399 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATmatrix3D mRot ;
#line 400 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qRot . ToMatrix (mRot );
#line 403 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATmatrix3D mRotTarget0 = mRot ;
#line 404 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATmatrix3D mRotTarget1 = mRot ;
#line 405 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
BOOL bDoTargeting = FALSE ;
#line 406 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penViewTarget0 != NULL ){
#line 407 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CalcTargetedRotation (vPos , m_penViewTarget0 , m_vPosRatio0 , mRotTarget0 , FALSE );
#line 408 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
bDoTargeting = TRUE ;
#line 409 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 410 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penViewTarget1 != NULL ){
#line 411 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CalcTargetedRotation (vPos , m_penViewTarget1 , m_vPosRatio1 , mRotTarget1 , FALSE );
#line 412 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
bDoTargeting = TRUE ;
#line 413 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 416 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(bDoTargeting ){
#line 418 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qRot0 ;qRot0 . FromMatrix (mRotTarget0 );
#line 419 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qRot1 ;qRot1 . FromMatrix (mRotTarget1 );
#line 420 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOATquat3D qRot = Slerp (Clamp (fT , 0.0f , 1.0f) , qRot0 , qRot1 );
#line 421 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
qRot . ToMatrix (mRot );
#line 422 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 425 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_vNextPosition = vPos ;
#line 426 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_mNextRotation = mRot ;
#line 427 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CacheNearPolygons ();
#line 430 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CPlacement3D plNew ;
#line 431 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
plNew . pl_PositionVector = vPos ;
#line 432 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
DecomposeRotationMatrixNoSnap (plNew . pl_OrientationAngle , mRot );
#line 433 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetPlacement_internal (plNew , mRot , TRUE );
#line 435 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! bLerping ){
#line 437 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_plLastPlacement = en_plPlacement ;
#line 438 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 440 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fLastFOV = m_fFOV ;
#line 441 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fFOV = fFOV ;
#line 442 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 445 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
void CCamera::PostMoving()
#line 446 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 447 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! m_bMoving ){
#line 448 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return ;
#line 449 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 451 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_bStopMoving ){
#line 452 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bMoving = FALSE ;
#line 454 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
en_ulFlags |= ENF_INRENDERING ;
#line 455 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SendEvent (EStop ());
#line 456 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 457 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
BOOL CCamera::
#line 463 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
PlayStaticCamera(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CCamera_PlayStaticCamera
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CCamera::PlayStaticCamera expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 465 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bMoving = FALSE ;
#line 466 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ECameraStart eStart ;
#line 467 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
eStart . penCamera = this ;
#line 468 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer -> SendEvent (eStart );
#line 469 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetTimerAfter(m_tmTime );
Jump(STATE_CURRENT, 0x00dc0001, FALSE, EBegin());return TRUE;}BOOL CCamera::H0x00dc0001_PlayStaticCamera_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0001
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x00dc0002, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCamera::H0x00dc0002_PlayStaticCamera_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0002
;
#line 470 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ECameraStop eStop ;
#line 471 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
eStop . penCamera = this ;
#line 472 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer -> SendEvent (eStop );
#line 473 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 473 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CCamera::
#line 477 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
PlayAutoRotatingCamera(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CCamera_PlayAutoRotatingCamera
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CCamera::PlayAutoRotatingCamera expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 480 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
AddToMovers ();
#line 481 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bMoving = TRUE ;
#line 482 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ECameraStart eStart ;
#line 483 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
eStart . penCamera = this ;
#line 484 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer -> SendEvent (eStart );
#line 486 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00dc0004, FALSE, EBegin());return TRUE;}BOOL CCamera::H0x00dc0004_PlayAutoRotatingCamera_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0004
switch(__eeInput.ee_slEvent){case(EVENTCODE_EStop):{const EStop&e= (EStop&)__eeInput;
#line 488 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ECameraStop eStop ;
#line 489 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
eStop . penCamera = this ;
#line 490 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer -> SendEvent (eStop );
#line 491 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penAutoCameraEndTarget != NULL )
#line 492 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 493 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SendToTarget (m_penAutoCameraEndTarget , m_eetAutoCameraEndEvent , m_penPlayer );
#line 494 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 495 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 495 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 496 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}ASSERT(FALSE);break;default:{
#line 498 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 499 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}ASSERT(FALSE);break;
#line 500 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}return TRUE;}BOOL CCamera::H0x00dc0005_PlayAutoRotatingCamera_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0005
#line 501 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 501 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CCamera::
#line 505 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
PlayMovingCamera(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CCamera_PlayMovingCamera
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CCamera::PlayMovingCamera expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 508 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ECameraStart eStart ;
#line 509 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
eStart . penCamera = this ;
#line 510 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer -> SendEvent (eStart );
#line 513 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
INDEX ctMarkers = 1;
#line 514 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
INDEX ctNonSkipped = 0;
#line 515 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcm0 = (CCameraMarker *) & * m_penTarget ;
#line 516 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcm = (CCameraMarker *) & * pcm0 -> m_penTarget ;
#line 518 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
while(pcm != NULL && pcm -> m_penTarget != pcm0 )
#line 519 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 520 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcm = (CCameraMarker *) & * pcm -> m_penTarget ;
#line 521 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(pcm == NULL ){
#line 522 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
WarningMessage ("Movable camera - broken link!");
#line 523 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 523 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 524 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 525 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! pcm -> m_bSkipToNext ){
#line 526 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ctNonSkipped ++;
#line 527 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 528 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ctMarkers ++;
#line 529 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(ctMarkers > 500){
#line 530 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
WarningMessage ("Movable camera - invalid marker loop!");
#line 531 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 531 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 532 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 533 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 535 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(ctMarkers < 2){
#line 536 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
WarningMessage ("Movable camera requires at least 2 markers in order to work!");
#line 537 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 537 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 538 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 540 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(ctNonSkipped < 1){
#line 541 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
WarningMessage ("Movable camera requires at least 1 non-skipped marker!");
#line 542 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 542 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 543 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 546 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT tmCurrent ;
#line 547 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(! m_bIgnoreTimeStretch )
#line 548 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 549 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
tmCurrent = _pTimer -> CurrentTick ();
#line 550 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 551 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
else
#line 552 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 553 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
tmCurrent = m_fMyTimer ;
#line 554 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 556 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_tmAtMarker = tmCurrent ;
#line 557 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_tmDelta = 0.0f;
#line 558 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bStopMoving = FALSE ;
#line 559 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penLast = pcm ;
#line 560 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ASSERT (pcm -> m_penTarget == m_penTarget );
#line 561 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcm = (CCameraMarker *) & * m_penTarget ;
#line 562 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_colFade0 = m_colFade1 = pcm -> m_colFade ;
#line 565 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
AddToMovers ();
#line 566 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_bMoving = TRUE ;
#line 569 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00dc0007, FALSE, EBegin());return TRUE;}BOOL CCamera::H0x00dc0007_PlayMovingCamera_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0007
switch(__eeInput.ee_slEvent){case(EVENTCODE_EStop):{const EStop&e= (EStop&)__eeInput;
#line 571 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
ECameraStop eStop ;
#line 572 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
eStop . penCamera = this ;
#line 573 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer -> SendEvent (eStop );
#line 574 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 574 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 575 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}ASSERT(FALSE);break;default:{
#line 577 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 578 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}ASSERT(FALSE);break;
#line 579 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}return TRUE;}BOOL CCamera::H0x00dc0008_PlayMovingCamera_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0008
#line 582 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 582 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CCamera::
#line 587 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
PlayCamera(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CCamera_PlayCamera
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CCamera::PlayCamera expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 590 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker & cm = (CCameraMarker &) * m_penTarget ;
#line 592 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_bAutoRotation )
#line 593 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 594 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Jump(STATE_CURRENT, STATE_CCamera_PlayAutoRotatingCamera, TRUE, EVoid());return TRUE;
#line 595 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 597 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
else if(& cm != NULL )
#line 598 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 600 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Jump(STATE_CURRENT, STATE_CCamera_PlayMovingCamera, TRUE, EVoid());return TRUE;
#line 601 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 602 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
else
#line 603 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 605 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Jump(STATE_CURRENT, STATE_CCamera_PlayStaticCamera, TRUE, EVoid());return TRUE;
#line 606 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
} ASSERT(FALSE); return TRUE;};BOOL CCamera::
#line 610 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CCamera_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CCamera::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 613 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
InitAsEditorModel ();
#line 614 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetPhysicsFlags (EPF_MOVABLE );
#line 615 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetCollisionFlags (ECF_CAMERA );
#line 617 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT fSize = 5.0f;
#line 618 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
GetModelObject () -> mo_Stretch = FLOAT3D (fSize , fSize , fSize );
#line 619 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetModel (MODEL_CAMERA );
#line 620 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetModelMainTexture (TEXTURE_CAMERA );
#line 621 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_fLastFOV = m_fFOV ;
#line 623 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penTarget != NULL && ! IsOfClass (m_penTarget , "Camera Marker")){
#line 624 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
WarningMessage ("Entity '%s' is not of Camera Marker class!" , m_penTarget );
#line 625 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penTarget = NULL ;
#line 626 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 628 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(!(m_bAutoRotation || m_penTarget != NULL )){ Jump(STATE_CURRENT,0x00dc000c, FALSE, EInternal());return TRUE;}
#line 630 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetTimerAfter(0.1f);
Jump(STATE_CURRENT, 0x00dc000a, FALSE, EBegin());return TRUE;}BOOL CCamera::H0x00dc000a_Main_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc000a
switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x00dc000b, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CCamera::H0x00dc000b_Main_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc000b
;Jump(STATE_CURRENT,0x00dc000c, FALSE, EInternal());return TRUE;}BOOL CCamera::H0x00dc000c_Main_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc000c
#line 633 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vRelTargetOffset = FLOAT3D (0 , 0 , 0);
#line 634 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(m_penTarget != NULL )
#line 635 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 636 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CCameraMarker * pcm = & (CCameraMarker &) * m_penTarget ;
#line 637 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(pcm -> m_penViewTarget != NULL )
#line 638 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
#line 639 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
FLOAT3D vAbsTarget = FLOAT3D (0 , 0 , 0);
#line 640 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
pcm -> m_penViewTarget -> GetEntityPointRatio (pcm -> m_vPosRatio , vAbsTarget , FALSE );
#line 641 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_vRelTargetOffset = vAbsTarget - pcm -> m_penViewTarget -> GetPlacement () . pl_PositionVector ;
#line 642 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 643 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 645 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Jump(STATE_CURRENT,0x00dc000f, FALSE, EInternal());return TRUE;}BOOL CCamera::H0x00dc000f_Main_06(const CEntityEvent &__eeInput)
#line 646 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
{
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc000f
if(!(TRUE )){ Jump(STATE_CURRENT,0x00dc0010, FALSE, EInternal());return TRUE;}
#line 647 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00dc000d, FALSE, EBegin());return TRUE;}BOOL CCamera::H0x00dc000d_Main_04(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc000d
switch(__eeInput.ee_slEvent){case(EVENTCODE_ETrigger):{const ETrigger&eTrigger= (ETrigger&)__eeInput;
#line 649 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
CEntity * penCaused ;
#line 650 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
penCaused = FixupCausedToPlayer (this , eTrigger . penCaused , FALSE );
#line 651 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
if(IsDerivedFromClass (penCaused , "Player")){
#line 652 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
m_penPlayer = penCaused ;
#line 653 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Call(STATE_CURRENT, STATE_CCamera_PlayCamera, TRUE, EVoid());return TRUE;
#line 654 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}
#line 655 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE;
#line 656 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}ASSERT(FALSE);break;default: return FALSE; break;
#line 657 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}return TRUE;}BOOL CCamera::H0x00dc000e_Main_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc000e
Jump(STATE_CURRENT,0x00dc000f, FALSE, EInternal());return TRUE;
#line 658 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
}BOOL CCamera::H0x00dc0010_Main_07(const CEntityEvent &__eeInput) {
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00dc0010
;
#line 661 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Destroy ();
#line 662 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
Return(STATE_CURRENT,EVoid());
#line 662 "D:/SE1_GPL/Sources/EntitiesMP/Camera.es"
return TRUE; ASSERT(FALSE); return TRUE;};