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

1132 lines
50 KiB
C++

/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#line 4 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
#include "StdH.h"
#include "EntitiesMP/WorldSettingsController.h"
#include <EntitiesMP/ModelHolder2.h>
#include <EntitiesMP/ModelHolder2_tables.h>
#line 25 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
#define MIPRATIO 0.003125f //(2*tan(90/2))/640
void CModelHolder2::SetDefaultProperties(void) {
m_fnModel = CTFILENAME("Models\\Editor\\Axis.mdl");
m_fnTexture = CTFILENAME("Models\\Editor\\Vector.tex");
m_fnReflection = CTString("");
m_fnSpecular = CTString("");
m_fnBump = CTString("");
m_fStretchAll = 1.0f;
m_fStretchX = 1.0f;
m_fStretchY = 1.0f;
m_fStretchZ = 1.0f;
m_strName = "";
m_strDescription = "";
m_bColliding = FALSE ;
m_iModelAnimation = 0;
m_iTextureAnimation = 0;
m_stClusterShadows = ST_CLUSTER ;
m_bBackground = FALSE ;
m_bTargetable = FALSE ;
m_cstCustomShading = CST_NONE ;
m_aShadingDirection = ANGLE3D(AngleDeg (45.0f) , AngleDeg (45.0f) , AngleDeg (45.0f));
m_colLight = C_WHITE ;
m_colAmbient = C_BLACK ;
m_fnmLightAnimation = CTString("");
m_iLightAnimation = 0;
m_aoLightAnimation.SetData(NULL);
m_bAttachments = TRUE ;
m_bActive = TRUE ;
m_fMipAdd = 0.0f;
m_fMipMul = 1.0f;
m_fMipFadeDist = 0.0f;
m_fMipFadeLen = 0.0f;
m_rMipFadeDistMetric = -1.0f;
m_fMipFadeLenMetric = -1.0f;
m_bRandomStretch = FALSE ;
m_fStretchRndX = 0.2f;
m_fStretchRndY = 0.2f;
m_fStretchRndZ = 0.2f;
m_fStretchRndAll = 0.0f;
m_fStretchRandom = FLOAT3D(1 , 1 , 1);
m_penDestruction = NULL;
m_vDamage = FLOAT3D(0 , 0 , 0);
m_tmLastDamage = -1000.0f;
m_penDestroyTarget = NULL;
m_penLastDamager = NULL;
m_tmSpraySpawned = 0.0f;
m_fSprayDamage = 0.0f;
m_penSpray = NULL;
m_fMaxDamageAmmount = 0.0f;
m_fClassificationStretch = 1.0f;
m_colBurning = COLOR(C_WHITE | CT_OPAQUE );
m_dmtLastDamageType = DMT_CHAINSAW ;
m_fChainSawCutDamage = 300.0f;
m_iFirstRandomAnimation = -1;
m_fMaxTessellationLevel = 0.0f;
CRationalEntity::SetDefaultProperties();
}
#line 107 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void CModelHolder2::Precache(void) {
#line 108 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
PrecacheClass (CLASS_BLOOD_SPRAY , 0);
#line 109 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 112 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
BOOL CModelHolder2::FillEntityStatistics(EntityStats * pes)
#line 113 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 114 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_strName = m_fnModel . FileName () + ", " + m_fnTexture . FileName ();
#line 115 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_ctCount = 1;
#line 116 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_ctAmmount = 1;
#line 117 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestruction != NULL ){
#line 118 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_strName += " (destroyable)";
#line 119 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_fValue = GetDestruction () -> m_fHealth ;
#line 120 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_iScore = 0;
#line 121 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 122 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_fValue = 0;
#line 123 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pes -> es_iScore = 0;
#line 124 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 125 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE ;
#line 126 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 129 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D CModelHolder2::GetClassificationBoxStretch(void)
#line 130 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 131 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return FLOAT3D (m_fClassificationStretch , m_fClassificationStretch , m_fClassificationStretch );
#line 132 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 136 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT CModelHolder2::GetMaxTessellationLevel(void)
#line 137 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 138 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return m_fMaxTessellationLevel ;
#line 139 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 143 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void CModelHolder2::ReceiveDamage(CEntity * penInflictor,enum DamageType dmtType,
#line 144 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fDamageAmmount,const FLOAT3D & vHitPoint,const FLOAT3D & vDirection)
#line 145 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 146 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fNewDamage = fDamageAmmount ;
#line 149 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestruction == NULL ){
#line 151 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return ;
#line 152 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 153 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(dmtType == DMT_BURNING )
#line 154 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 155 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
UBYTE ubR , ubG , ubB , ubA ;
#line 156 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGBA (m_colBurning , ubR , ubG , ubB , ubA );
#line 157 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ubR = ClampDn (ubR - 4 , 32);
#line 158 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_colBurning = RGBAToColor (ubR , ubR , ubR , ubA );
#line 159 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 161 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CModelDestruction * penDestruction = GetDestruction ();
#line 163 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fNewDamage *= DamageStrength (penDestruction -> m_eibtBodyType , dmtType );
#line 165 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(fNewDamage == 0){
#line 167 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return ;
#line 168 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 169 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fKickDamage = fNewDamage ;
#line 170 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if((dmtType == DMT_EXPLOSION ) || (dmtType == DMT_IMPACT ) || (dmtType == DMT_CANNONBALL_EXPLOSION ))
#line 171 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 172 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fKickDamage *= 1.5f;
#line 173 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 174 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(dmtType == DMT_CLOSERANGE ){
#line 175 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fKickDamage = 0.0f;
#line 176 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 177 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(dmtType == DMT_CHAINSAW ){
#line 178 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fKickDamage = 0.0f;
#line 179 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 180 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(dmtType == DMT_BULLET && penDestruction -> m_eibtBodyType == EIBT_ROCK ){
#line 181 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fKickDamage = 0.0f;
#line 182 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 183 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(dmtType == DMT_BURNING )
#line 184 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 185 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fKickDamage = 0.0f;
#line 186 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 189 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
TIME tmNow = _pTimer -> CurrentTick ();
#line 190 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
TIME tmDelta = tmNow - m_tmLastDamage ;
#line 191 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_tmLastDamage = tmNow ;
#line 194 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_penLastDamager = penInflictor ;
#line 197 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(tmDelta >= _pTimer -> TickQuantum * 3){
#line 198 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_vDamage = FLOAT3D (0 , 0 , 0);
#line 199 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 201 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vDirectionFixed ;
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(vDirection . ManhattanNorm () > 0.5f){
#line 203 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
vDirectionFixed = vDirection ;
#line 204 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 205 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
vDirectionFixed = FLOAT3D (0 , 1 , 0);
#line 206 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 207 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vDamageOld = m_vDamage ;
#line 208 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_vDamage += vDirectionFixed * fKickDamage ;
#line 211 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_vDamage . Length () > GetHealth ()){
#line 212 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(! penDestruction -> m_bRequireExplosion ||
#line 213 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
dmtType == DMT_EXPLOSION || dmtType == DMT_CANNONBALL || dmtType == DMT_CANNONBALL_EXPLOSION )
#line 214 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 215 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
EDeath eDeath ;
#line 216 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SendEvent (eDeath );
#line 218 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_dmtLastDamageType = dmtType ;
#line 219 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 220 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 222 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fMaxDamageAmmount < fDamageAmmount ){
#line 223 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fMaxDamageAmmount = fDamageAmmount ;
#line 224 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 227 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if((dmtType != DMT_BURNING ) && (dmtType != DMT_CHAINSAW ) &&
#line 228 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
(m_tmSpraySpawned <= _pTimer -> CurrentTick () - _pTimer -> TickQuantum * 8 ||
#line 229 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fSprayDamage + fNewDamage > 50.0f))
#line 230 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 232 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CPlacement3D plSpray = CPlacement3D (vHitPoint , ANGLE3D (0 , 0 , 0));
#line 233 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_penSpray = CreateEntity (plSpray , CLASS_BLOOD_SPRAY );
#line 234 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_penSpray -> SetParent (this );
#line 235 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ESpawnSpray eSpawnSpray ;
#line 238 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fMaxDamageAmmount > 10.0f){
#line 239 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . fDamagePower = 3.0f;
#line 240 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else if(m_fSprayDamage + fNewDamage > 50.0f){
#line 241 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . fDamagePower = 2.0f;
#line 242 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 243 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . fDamagePower = 1.0f;
#line 244 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 246 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . sptType = penDestruction -> m_sptType ;
#line 247 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . fSizeMultiplier = penDestruction -> m_fParticleSize ;
#line 250 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vDn (- en_mRotation (1 , 2) , - en_mRotation (2 , 2) , - en_mRotation (3 , 2));
#line 253 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vHitPointRelative = vHitPoint - GetPlacement () . pl_PositionVector ;
#line 254 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vReflectingNormal ;
#line 255 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetNormalComponent (vHitPointRelative , vDn , vReflectingNormal );
#line 256 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
vReflectingNormal . Normalize ();
#line 258 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vProjectedComponent = vReflectingNormal * (vDirection % vReflectingNormal );
#line 259 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT3D vSpilDirection = vDirection - vProjectedComponent * 2.0f - vDn * 0.5f;
#line 261 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . vDirection = vSpilDirection ;
#line 262 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . penOwner = this ;
#line 263 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . colCentralColor = penDestruction -> m_colParticles ;
#line 264 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . colBurnColor = m_colBurning ;
#line 265 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
eSpawnSpray . fLaunchPower = penDestruction -> m_fParticleLaunchPower ;
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_penSpray -> Initialize (eSpawnSpray );
#line 268 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_tmSpraySpawned = _pTimer -> CurrentTick ();
#line 269 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fSprayDamage = 0.0f;
#line 270 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fMaxDamageAmmount = 0.0f;
#line 271 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 273 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(dmtType == DMT_CHAINSAW && m_fChainSawCutDamage > 0)
#line 274 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 275 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fChainSawCutDamage -= fDamageAmmount ;
#line 276 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fChainSawCutDamage <= 0)
#line 277 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 278 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
EDeath eDeath ;
#line 279 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SendEvent (eDeath );
#line 281 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_dmtLastDamageType = dmtType ;
#line 282 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 283 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 285 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fSprayDamage += fNewDamage ;
#line 286 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 289 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void * CModelHolder2::GetEntityInfo(void) {
#line 290 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CModelDestruction * pmd = GetDestruction ();
#line 291 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(pmd != NULL )
#line 292 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 293 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return GetStdEntityInfo (pmd -> m_eibtBodyType );
#line 294 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 295 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return CEntity :: GetEntityInfo ();
#line 296 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 298 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
class CModelDestruction * CModelHolder2::GetDestruction(void)
#line 299 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 300 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ASSERT (m_penDestruction == NULL || IsOfClass (m_penDestruction , "ModelDestruction"));
#line 301 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return (CModelDestruction *) & * m_penDestruction ;
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 303 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
BOOL CModelHolder2::IsTargetable(void)const
#line 304 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 305 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return m_bTargetable ;
#line 306 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 309 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CAnimData * CModelHolder2::GetAnimData(SLONG slPropertyOffset)
#line 310 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 311 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(slPropertyOffset == offsetof (CModelHolder2 , m_iModelAnimation )){
#line 312 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return GetModelObject () -> GetData ();
#line 313 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else if(slPropertyOffset == offsetof (CModelHolder2 , m_iTextureAnimation )){
#line 314 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return GetModelObject () -> mo_toTexture . GetData ();
#line 315 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else if(slPropertyOffset == offsetof (CModelHolder2 , m_iLightAnimation )){
#line 316 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return m_aoLightAnimation . GetData ();
#line 317 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 318 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return CEntity :: GetAnimData (slPropertyOffset );
#line 319 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 320 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 323 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void CModelHolder2::AdjustMipFactor(FLOAT & fMipFactor)
#line 324 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 326 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fMipFadeDist > 0){
#line 327 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CModelObject * pmo = GetModelObject ();
#line 328 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(pmo == NULL ){
#line 329 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return ;
#line 330 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fMipForFade = fMipFactor ;
#line 339 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(fMipForFade > m_fMipFadeDist ){
#line 341 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fMipFactor = UpperLimit (0.0f);
#line 342 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return ;
#line 343 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 346 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fFade = (m_fMipFadeDist - fMipForFade );
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fMipFadeLen > 0){
#line 348 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fFade /= m_fMipFadeLen ;
#line 349 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 350 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(fFade > 0){
#line 351 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fFade = 1.0f;
#line 352 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 353 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 355 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fFade = Clamp (fFade , 0.0f , 1.0f);
#line 357 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pmo -> mo_colBlendColor = (pmo -> mo_colBlendColor & ~ 255) | UBYTE (255 * fFade );
#line 358 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 360 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
fMipFactor = fMipFactor * m_fMipMul + m_fMipAdd ;
#line 361 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 364 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
BOOL CModelHolder2::AdjustShadingParameters(FLOAT3D & vLightDirection,COLOR & colLight,COLOR & colAmbient)
#line 365 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 366 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
switch(m_cstCustomShading )
#line 367 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 368 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
case CST_FULL_CUSTOMIZED :
#line 369 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 371 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_aoLightAnimation . GetData () != NULL ){
#line 373 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SLONG colFrame0 , colFrame1 ;FLOAT fRatio ;
#line 374 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_aoLightAnimation . GetFrame (colFrame0 , colFrame1 , fRatio );
#line 375 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
UBYTE ubAnimR0 , ubAnimG0 , ubAnimB0 ;
#line 376 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
UBYTE ubAnimR1 , ubAnimG1 , ubAnimB1 ;
#line 377 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGB (colFrame0 , ubAnimR0 , ubAnimG0 , ubAnimB0 );
#line 378 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGB (colFrame1 , ubAnimR1 , ubAnimG1 , ubAnimB1 );
#line 381 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fAnimR = NormByteToFloat (Lerp (ubAnimR0 , ubAnimR1 , fRatio ));
#line 382 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fAnimG = NormByteToFloat (Lerp (ubAnimG0 , ubAnimG1 , fRatio ));
#line 383 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fAnimB = NormByteToFloat (Lerp (ubAnimB0 , ubAnimB1 , fRatio ));
#line 386 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
UBYTE ubLightR , ubLightG , ubLightB ;
#line 387 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
UBYTE ubAmbientR , ubAmbientG , ubAmbientB ;
#line 388 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGB (m_colLight , ubLightR , ubLightG , ubLightB );
#line 389 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGB (m_colAmbient , ubAmbientR , ubAmbientG , ubAmbientB );
#line 390 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colLight = RGBToColor (ubLightR * fAnimR , ubLightG * fAnimG , ubLightB * fAnimB );
#line 391 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colAmbient = RGBToColor (ubAmbientR * fAnimR , ubAmbientG * fAnimG , ubAmbientB * fAnimB );
#line 394 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 395 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colLight = m_colLight ;
#line 396 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colAmbient = m_colAmbient ;
#line 397 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 400 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CWorldSettingsController * pwsc = GetWSC (this );
#line 401 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(pwsc != NULL && pwsc -> m_bApplyShadingToModels )
#line 402 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 404 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
COLOR colShade = GetWorld () -> wo_atbTextureBlendings [ 9 ] . tb_colMultiply ;
#line 405 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colLight = MulColors (colLight , colShade );
#line 406 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colAmbient = MulColors (colAmbient , colShade );
#line 407 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 409 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
AnglesToDirectionVector (m_aShadingDirection , vLightDirection );
#line 410 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
vLightDirection = - vLightDirection ;
#line 411 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
break ;
#line 412 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 413 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
case CST_CONSTANT_SHADING :
#line 414 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 416 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
UBYTE lR , lG , lB , aR , aG , aB , rR , rG , rB ;
#line 417 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGB (colLight , lR , lG , lB );
#line 418 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ColorToRGB (colAmbient , aR , aG , aB );
#line 419 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colLight = 0;
#line 420 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
rR = (UBYTE ) Clamp ((ULONG ) lR + aR , (ULONG ) 0 , (ULONG ) 255);
#line 421 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
rG = (UBYTE ) Clamp ((ULONG ) lG + aG , (ULONG ) 0 , (ULONG ) 255);
#line 422 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
rB = (UBYTE ) Clamp ((ULONG ) lB + aB , (ULONG ) 0 , (ULONG ) 255);
#line 423 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colAmbient = RGBToColor (rR , rG , rB );
#line 424 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
break ;
#line 425 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 426 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
case CST_NONE :
#line 427 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 429 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
break ;
#line 430 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 431 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 433 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_colBurning != COLOR (C_WHITE | CT_OPAQUE ))
#line 434 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 435 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colAmbient = MulColors (colAmbient , m_colBurning );
#line 436 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
colLight = MulColors (colLight , m_colBurning );
#line 437 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE ;
#line 438 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 439 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return m_stClusterShadows != ST_NONE ;
#line 440 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 443 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void CModelHolder2::MirrorAndStretch(FLOAT fStretch,BOOL bMirrorX)
#line 444 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 445 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchAll *= fStretch ;
#line 446 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(bMirrorX ){
#line 447 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchX = - m_fStretchX ;
#line 448 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 449 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 452 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void CModelHolder2::StretchModel(void) {
#line 454 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(Abs (m_fStretchX ) < 0.01f){m_fStretchX = 0.01f;}
#line 455 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(Abs (m_fStretchY ) < 0.01f){m_fStretchY = 0.01f;}
#line 456 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(Abs (m_fStretchZ ) < 0.01f){m_fStretchZ = 0.01f;}
#line 457 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fStretchAll < 0.01f){m_fStretchAll = 0.01f;}
#line 459 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(Abs (m_fStretchX ) > 1000.0f){m_fStretchX = 1000.0f * Sgn (m_fStretchX );}
#line 460 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(Abs (m_fStretchY ) > 1000.0f){m_fStretchY = 1000.0f * Sgn (m_fStretchY );}
#line 461 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(Abs (m_fStretchZ ) > 1000.0f){m_fStretchZ = 1000.0f * Sgn (m_fStretchZ );}
#line 462 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fStretchAll > 1000.0f){m_fStretchAll = 1000.0f;}
#line 464 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_bRandomStretch ){
#line 465 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_bRandomStretch = FALSE ;
#line 467 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRndX = Clamp (m_fStretchRndX , 0.0f , 1.0f);
#line 468 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRndY = Clamp (m_fStretchRndY , 0.0f , 1.0f);
#line 469 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRndZ = Clamp (m_fStretchRndZ , 0.0f , 1.0f);
#line 470 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRndAll = Clamp (m_fStretchRndAll , 0.0f , 1.0f);
#line 472 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRandom (1) = (FRnd () * m_fStretchRndX * 2 - m_fStretchRndX ) + 1;
#line 473 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRandom (2) = (FRnd () * m_fStretchRndY * 2 - m_fStretchRndY ) + 1;
#line 474 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRandom (3) = (FRnd () * m_fStretchRndZ * 2 - m_fStretchRndZ ) + 1;
#line 476 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT fRNDAll = (FRnd () * m_fStretchRndAll * 2 - m_fStretchRndAll ) + 1;
#line 477 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRandom (1) *= fRNDAll ;
#line 478 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRandom (2) *= fRNDAll ;
#line 479 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchRandom (3) *= fRNDAll ;
#line 480 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 482 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> StretchModel (FLOAT3D (
#line 483 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchAll * m_fStretchX * m_fStretchRandom (1) ,
#line 484 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchAll * m_fStretchY * m_fStretchRandom (2) ,
#line 485 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fStretchAll * m_fStretchZ * m_fStretchRandom (3)));
#line 486 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ModelChangeNotify ();
#line 487 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 490 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
void CModelHolder2::InitModelHolder(void) {
#line 493 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fnModel == ""){
#line 494 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnModel = CTFILENAME ("Models\\Editor\\Axis.mdl");
#line 495 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 497 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fnReflection == CTString ("Models\\Editor\\Vector.tex")){
#line 498 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnReflection = CTString ("");
#line 499 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 500 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fnSpecular == CTString ("Models\\Editor\\Vector.tex")){
#line 501 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnSpecular = CTString ("");
#line 502 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 503 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fnBump == CTString ("Models\\Editor\\Vector.tex")){
#line 504 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnBump = CTString ("");
#line 505 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 507 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_bActive ){
#line 508 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
InitAsModel ();
#line 509 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 510 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
InitAsEditorModel ();
#line 511 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 513 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetModel (m_fnModel );
#line 514 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
INDEX iAnim = m_iModelAnimation ;
#line 515 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
FLOAT tmOffsetPhase = 0.0f;
#line 516 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_iFirstRandomAnimation >= 0)
#line 517 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 518 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
INDEX ctAnims = GetModelObject () -> GetAnimsCt () - m_iFirstRandomAnimation ;
#line 519 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
iAnim = m_iFirstRandomAnimation + Clamp (INDEX (FRnd () * ctAnims ) , INDEX (0) , ctAnims );
#line 520 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
tmOffsetPhase = FRnd () * 10.0f;
#line 521 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 523 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> PlayAnim (iAnim , AOF_LOOPING );
#line 524 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> OffsetPhase (tmOffsetPhase );
#line 527 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fnOldModel == ""){
#line 529 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnOldModel = m_fnModel ;
#line 531 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 533 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fnOldModel != m_fnModel ){
#line 534 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnOldModel = m_fnModel ;
#line 535 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> AutoSetTextures ();
#line 536 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnTexture = GetModelObject () -> mo_toTexture . GetName ();
#line 537 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnReflection = GetModelObject () -> mo_toReflection . GetName ();
#line 538 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnSpecular = GetModelObject () -> mo_toSpecular . GetName ();
#line 539 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnBump = GetModelObject () -> mo_toBump . GetName ();
#line 540 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 541 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 543 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_bAttachments )
#line 544 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 545 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> AutoSetAttachments ();
#line 546 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 547 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
else
#line 548 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 549 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> RemoveAllAttachmentModels ();
#line 550 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 552 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
try
#line 553 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 554 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> mo_toTexture . SetData_t (m_fnTexture );
#line 555 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> mo_toTexture . PlayAnim (m_iTextureAnimation , AOF_LOOPING );
#line 556 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> mo_toReflection . SetData_t (m_fnReflection );
#line 557 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> mo_toSpecular . SetData_t (m_fnSpecular );
#line 558 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> mo_toBump . SetData_t (m_fnBump );
#line 559 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}catch (char * strError ){
#line 560 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
WarningMessage (strError );
#line 561 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 564 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
StretchModel ();
#line 565 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
ModelChangeNotify ();
#line 567 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_bColliding && m_bActive ){
#line 568 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetPhysicsFlags (EPF_MODEL_FIXED );
#line 569 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetCollisionFlags (ECF_MODEL_HOLDER );
#line 570 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 571 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetPhysicsFlags (EPF_MODEL_IMMATERIAL );
#line 572 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetCollisionFlags (ECF_IMMATERIAL );
#line 573 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 575 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
switch(m_stClusterShadows ){
#line 576 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
case ST_NONE :
#line 577 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 578 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetFlags (GetFlags () & ~ ENF_CLUSTERSHADOWS );
#line 580 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
break ;
#line 581 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 582 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
case ST_CLUSTER :
#line 583 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 584 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetFlags (GetFlags () | ENF_CLUSTERSHADOWS );
#line 586 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
break ;
#line 587 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 588 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
case ST_POLYGONAL :
#line 589 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 591 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetFlags (GetFlags () & ~ ENF_CLUSTERSHADOWS );
#line 592 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
break ;
#line 593 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 594 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 596 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_bBackground ){
#line 597 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetFlags (GetFlags () | ENF_BACKGROUND );
#line 598 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 599 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetFlags (GetFlags () & ~ ENF_BACKGROUND );
#line 600 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 602 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
try {
#line 603 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_aoLightAnimation . SetData_t (m_fnmLightAnimation );
#line 604 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}catch (char * strError ){
#line 605 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
WarningMessage (TRANS ("Cannot load '%s': %s") , (CTString &) m_fnmLightAnimation , strError );
#line 606 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fnmLightAnimation = "";
#line 607 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 608 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_aoLightAnimation . GetData () != NULL ){
#line 609 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_aoLightAnimation . PlayAnim (m_iLightAnimation , AOF_LOOPING );
#line 610 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 612 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestruction == NULL ){
#line 613 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_strDescription . PrintF ("%s,%s undestroyable" , (CTString &) m_fnModel . FileName () , (CTString &) m_fnTexture . FileName ());
#line 614 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 615 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_strDescription . PrintF ("%s,%s -> %s" , (CTString &) m_fnModel . FileName () , (CTString &) m_fnTexture . FileName () ,
#line 616 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_penDestruction -> GetName ());
#line 617 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 619 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return ;
#line 620 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 624 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SLONG CModelHolder2::GetUsedMemory(void)
#line 625 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 627 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SLONG slUsedMemory = sizeof (CLight ) - sizeof (CRationalEntity ) + CRationalEntity :: GetUsedMemory ();
#line 629 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_fnModel . Length ();
#line 630 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_fnTexture . Length ();
#line 631 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_fnReflection . Length ();
#line 632 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_fnSpecular . Length ();
#line 633 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_fnBump . Length ();
#line 634 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_strName . Length ();
#line 635 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_strDescription . Length ();
#line 636 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += m_fnmLightAnimation . Length ();
#line 637 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
slUsedMemory += 1 * sizeof (CAnimObject);
#line 638 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return slUsedMemory ;
#line 639 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
BOOL CModelHolder2::
#line 644 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
Die(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CModelHolder2_Die
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CModelHolder2::Die expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 647 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{FOREACHINLIST (CEntity , en_lnInParent , en_lhChildren , itenChild ){
#line 649 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
itenChild -> SendEvent (ERangeModelDestruction ());
#line 650 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}}
#line 653 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CModelDestruction * pmd = GetDestruction ();
#line 654 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
pmd -> SpawnDebris (this );
#line 656 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CModelHolder2 * penNext = pmd -> GetNextPhase ();
#line 657 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(penNext != NULL ){
#line 659 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CEntity * penNew = GetWorld () -> CopyEntityInWorld (* penNext , GetPlacement ());
#line 660 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
penNew -> GetModelObject () -> StretchModel (GetModelObject () -> mo_Stretch );
#line 661 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
penNew -> ModelChangeNotify ();
#line 662 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
((CModelHolder2 *) penNew ) -> m_colBurning = m_colBurning ;
#line 663 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
((CModelHolder2 *) penNew ) -> m_fChainSawCutDamage = m_fChainSawCutDamage ;
#line 665 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(pmd -> m_iStartAnim != - 1)
#line 666 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 667 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
penNew -> GetModelObject () -> PlayAnim (pmd -> m_iStartAnim , 0);
#line 668 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 671 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
CModelHolder2 & mhNew = * ((CModelHolder2 *) penNew );
#line 672 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_cstCustomShading = m_cstCustomShading ;
#line 673 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_colLight = m_colLight ;
#line 674 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_colAmbient = m_colAmbient ;
#line 675 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_fMipFadeDist = m_fMipFadeDist ;
#line 676 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_fMipFadeLen = m_fMipFadeLen ;
#line 677 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_fMipAdd = m_fMipAdd ;
#line 678 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_fMipMul = m_fMipMul ;
#line 681 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_dmtLastDamageType == DMT_CHAINSAW )
#line 682 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{
#line 683 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
EDeath eDeath ;
#line 684 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_fChainSawCutDamage = 0.0f;
#line 685 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
mhNew . m_dmtLastDamageType = DMT_CHAINSAW ;
#line 686 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
penNew -> SendEvent (eDeath );
#line 687 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 688 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 700 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestroyTarget != NULL ){
#line 702 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SendToTarget (m_penDestroyTarget , EET_TRIGGER , m_penLastDamager );
#line 703 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 706 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
Destroy ();
#line 707 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
Return(STATE_CURRENT,EVoid());
#line 707 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CModelHolder2::
#line 709 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CModelHolder2_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CModelHolder2::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 712 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
InitModelHolder ();
#line 715 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_fMipFadeLenMetric > m_rMipFadeDistMetric ){m_fMipFadeLenMetric = m_rMipFadeDistMetric ;}
#line 738 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_rMipFadeDistMetric > 0.0f){
#line 739 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fMipFadeDist = Log2 (m_rMipFadeDistMetric * 1024.0f * MIPRATIO );
#line 740 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fMipFadeLen = Log2 ((m_rMipFadeDistMetric + m_fMipFadeLenMetric ) * 1024.0f * MIPRATIO ) - m_fMipFadeDist ;
#line 741 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}else {
#line 742 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fMipFadeDist = 0.0f;
#line 743 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_fMipFadeLen = 0.0f;
#line 744 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 748 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestruction != NULL && ! IsOfClass (m_penDestruction , "ModelDestruction")){
#line 749 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
WarningMessage ("Destruction '%s' is wrong class!" , m_penDestruction -> GetName ());
#line 750 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_penDestruction = NULL ;
#line 751 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 754 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x00d20001, FALSE, EBegin());return TRUE;}BOOL CModelHolder2::H0x00d20001_Main_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d20001
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 758 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestruction != NULL ){
#line 759 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetHealth (GetDestruction () -> m_fHealth );
#line 760 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 761 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 762 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;case(EVENTCODE_EActivate):{const EActivate&e= (EActivate&)__eeInput;
#line 765 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SwitchToModel ();
#line 766 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_bActive = TRUE ;
#line 767 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_bColliding ){
#line 768 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetPhysicsFlags (EPF_MODEL_FIXED );
#line 769 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetCollisionFlags (ECF_MODEL_HOLDER );
#line 770 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 771 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 772 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;case(EVENTCODE_EDeactivate):{const EDeactivate&e= (EDeactivate&)__eeInput;
#line 774 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SwitchToEditorModel ();
#line 775 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetPhysicsFlags (EPF_MODEL_IMMATERIAL );
#line 776 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetCollisionFlags (ECF_IMMATERIAL );
#line 777 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_bActive = FALSE ;
#line 778 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetPhysicsFlags (EPF_MODEL_IMMATERIAL );
#line 779 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
SetCollisionFlags (ECF_IMMATERIAL );
#line 780 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 781 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;case(EVENTCODE_ERangeModelDestruction):{const ERangeModelDestruction&e= (ERangeModelDestruction&)__eeInput;
#line 785 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
{FOREACHINLIST (CEntity , en_lnInParent , en_lhChildren , itenChild ){
#line 787 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
itenChild -> SendEvent (ERangeModelDestruction ());
#line 788 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}}
#line 790 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
Destroy ();
#line 791 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 792 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;case(EVENTCODE_EDeath):{const EDeath&e= (EDeath&)__eeInput;
#line 795 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_penDestruction != NULL ){
#line 796 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
Jump(STATE_CURRENT, STATE_CModelHolder2_Die, TRUE, EVoid());return TRUE;
#line 797 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 798 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 799 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;case(EVENTCODE_EChangeAnim):{const EChangeAnim&eChange= (EChangeAnim&)__eeInput;
#line 802 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_iModelAnimation = eChange . iModelAnim ;
#line 803 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_iTextureAnimation = eChange . iTextureAnim ;
#line 804 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_iLightAnimation = eChange . iLightAnim ;
#line 805 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(m_aoLightAnimation . GetData () != NULL ){
#line 806 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
m_aoLightAnimation . PlayAnim (m_iLightAnimation , eChange . bLightLoop ? AOF_LOOPING : 0);
#line 807 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 808 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(GetModelObject () -> GetData () != NULL ){
#line 809 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> PlayAnim (m_iModelAnimation , eChange . bModelLoop ? AOF_LOOPING : 0);
#line 810 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 811 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
if(GetModelObject () -> mo_toTexture . GetData () != NULL ){
#line 812 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
GetModelObject () -> mo_toTexture . PlayAnim (m_iTextureAnimation , eChange . bTextureLoop ? AOF_LOOPING : 0);
#line 813 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}
#line 814 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 815 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;default:{
#line 817 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
return TRUE;
#line 818 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}ASSERT(FALSE);break;
#line 819 "D:/SE1_GPL/Sources/EntitiesMP/ModelHolder2.es"
}return TRUE;}BOOL CModelHolder2::H0x00d20002_Main_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x00d20002
; ASSERT(FALSE); return TRUE;};