void CJaw::DropUsed() { if (!gEnv->IsEditing()) { m_dropped = true; EnableUpdate(true); Pickalize(false,true); CreateSmokeEffect(); if (g_pGame->GetTacticalManager()) g_pGame->GetTacticalManager()->RemoveEntity(GetEntityId(), CTacticalManager::eTacticalEntity_Item); } if (m_playedDropAction) { DrawSlot(eIGS_ThirdPersonAux, true); DrawSlot(eIGS_ThirdPerson, false); } else { DrawSlot(eIGS_ThirdPersonAux, false); DrawSlot(eIGS_ThirdPerson, true); } }
ParticleComponent* ParticleFactory::CreateParticleSystem(ParticlePrefabs prefab, GameObject* object, IScene* scene) { switch (prefab) { case ParticleFactory::PointFire: { std::shared_ptr<ParticlePointEmitter> emitter = std::make_shared<ParticlePointEmitter> (ParticlePointEmitter(90, physx::PxVec3(0.0f, 0.0f, 0.0f), physx::PxVec3(-0.7f, 1.0f, -0.70f).getNormalized(), physx::PxVec3(0.70f, 1.0f, 0.70f).getNormalized(), 0.0f, 1.50f, 2.50f)); return CreateFireEffect(emitter, object, scene); } break; case ParticleFactory::SphereFire: { std::shared_ptr<SphereEmitter> emitter = std::make_shared<SphereEmitter> (SphereEmitter(90, physx::PxVec3(0.0f), 0.0f, 0.15f, 0.250f, true, 0.40f, true)); return CreateFireEffect(emitter, object, scene); } break; case ParticleFactory::PointSmoke: { std::shared_ptr<ParticlePointEmitter> emitter = std::make_shared<ParticlePointEmitter> (ParticlePointEmitter(90, physx::PxVec3(0.0f, 0.10f, 0.0f), physx::PxVec3(-0.5f, 1.0f, -0.50f).getNormalized(), physx::PxVec3(0.50f, 1.0f, 0.50f).getNormalized(), 0.0f, 1.50f, 2.50f)); return CreateSmokeEffect(emitter, object, scene); } break; case ParticleFactory::SphereSmoke: { std::shared_ptr<SphereEmitter> emitter = std::make_shared<SphereEmitter> (SphereEmitter(90, physx::PxVec3(0.0f), 0.0f, 0.25f, 0.50f, true, 0.50f, false)); return CreateSmokeEffect(emitter, object, scene); } break; case ParticleFactory::WaterMist: return CreateWaterMistEffect(object, scene); break; case ParticleFactory::EarthExplosion: return CreateExplosion(physx::PxVec4(0.410f, 0.41f, 0.41f, 0.8f), physx::PxVec4(0.55f, 0.27f, 0.062f, 0.0f), object, scene); break; case ParticleFactory::FireExplosion: return CreateExplosion(physx::PxVec4(1.0f, 0.3f, 0.0f, 1.0f), physx::PxVec4(1.0f, 0.0f, 0.0f, 0.20f), object, scene); break; case ParticleFactory::WaterExplosion: return CreateExplosion(physx::PxVec4(0.3f, 0.0f, 1.0f, 1.0f), physx::PxVec4(0.0f, 0.0f, 1.0f, 0.20f), object, scene); break; default: return nullptr; break; } }