Manager class for managing Effect (EffectParticle, EffectSound) More...
Static Private Member Functions | |
Generic playback | |
Methods for playing Effect
| |
static int | PlayInWorld (notnull Effect eff, vector pos) |
Play an Effect. | |
static int | PlayOnObject (notnull Effect eff, Object obj, vector local_pos="0 0 0", vector local_ori="0 0 0", bool force_rotation_relative_to_world=false) |
Play an Effect. | |
static void | Stop (int effect_id) |
Stops the Effect. | |
Create/Play sound | |
Methods for playing/creating sound | |
static EffectSound | CreateSound (string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false, bool enviroment=false) |
Create an EffectSound. | |
static EffectSound | PlaySound (string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false) |
Create and play an EffectSound. | |
static EffectSound | PlaySoundParams (notnull SoundParams params, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false) |
Create and play an EffectSound. | |
static EffectSound | PlaySoundCachedParams (string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false) |
Create and play an EffectSound, using or creating cached SoundParams. | |
static EffectSound | PlaySoundEnviroment (string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false) |
Create and play an EffectSound, updating environment variables. | |
static EffectSound | PlaySoundOnObject (string sound_set, Object parent_object, float play_fade_in=0, float stop_fade_out=0, bool loop=false) |
Create and play an EffectSound. | |
Generic API | |
General methods used for SEffectManager | |
static void | DestroyEffect (Effect effect) |
Unregisters, stops and frees the Effect. | |
static bool | IsEffectExist (int effect_id) |
Checks whether an Effect ID is registered in SEffectManager. | |
static Effect | GetEffectByID (int effect_id) |
Gets the Effect with the given registered Effect ID. | |
static int | EffectRegister (Effect effect) |
Registers Effect in SEffectManager. | |
static protected int | GetFreeEffecterID () |
static void | EffectUnregister (int id) |
Unregisters Effect in SEffectManager. | |
static void | EffectUnregisterEx (Effect effect) |
Unregisters Effect in SEffectManager. | |
static protected int | GetFreeEffectID () |
Helper function for EffectRegister to decide an Effect ID. | |
Sound helpers | |
Sound specific helper methods | |
static bool | DestroySound (EffectSound sound_effect) |
Legacy, backwards compatibility. | |
static SoundParams | GetCachedSoundParam (string soundset) |
Get or create a cached SoundParams object. | |
Events | |
Various events that can be overriden for custom behaviour | |
static void | Event_OnSoundWaveEnded (EffectSound effect_sound) |
Event called from EffectSound.Event_OnSoundWaveEnded. | |
static void | Event_OnFrameUpdate (float time_delta) |
Event called on frame. | |
Lifetime | |
Creation and cleanup | |
static void | Init () |
Initialize the containers. | |
static void | InitServer () |
static void | Cleanup () |
Cleanup method to properly clean up the static data. | |
static int | CreateParticleServer (vector pos, EffecterParameters parameters) |
returns unique effecter ID | |
static void | ReinitParticleServer (int effecterID, EffecterParameters parameters) |
allows re-initializing existing effecter with new parameters (extept m_EffecterType, obviously) | |
static void | ReactivateParticleServer (int effecterID) |
static void | StartParticleServer (int effecterID) |
static void | StopParticleServer (int effecterID) |
static void | DestroyEffecterParticleServer (int effecterID) |
static void | OnUpdate (float timeslice) |
Static Private Attributes | |
static protected ref map< int, ref Effect > | m_EffectsMap |
Static map of all registered effects <id, Effect> | |
static protected ref array< int > | m_FreeEffectIDs |
Static array of IDs that were previously used, but freed up by unregistering. | |
static protected int | m_HighestFreeEffectID = 1 |
Counter for quickly getting the next ID if FreeEffectIDs array is empty. | |
static const int | INVALID_ID = 0 |
As the counter starts at 1, Effect ID can never be 0. | |
static protected bool | m_IsCleanup |
Bool to check whether Cleanup is happening, which means that the maps should no longer be accessed. | |
static protected bool | m_IsInitialized |
Bool to check whether Init was called. | |
static protected ref map< string, ref SoundParams > | m_ParamsMap |
Static map of cached sound params, to prevent having to recreate them. | |
static ref ScriptInvoker | Event_OnFrameUpdate |
Static invoker for the SEffectManager.Event_OnFrameUpdate called form MissionGameplay.OnUpdate. | |
static protected ref map< int, EffecterBase > | m_EffectersMap |
static protected ref array< int > | m_FreeEffecterIDs |
Static array of IDs that were previously used, but freed up by unregistering Effecters. | |
static protected int | m_HighestFreeEffecterID = 1 |
Manager class for managing Effect (EffectParticle, EffectSound)
|
inlinestaticprivate |
Cleanup method to properly clean up the static data.
References ScriptInvoker::Clear(), Effect(), EffecterBase(), ErrorEx, Event_OnFrameUpdate, GetGame(), m_EffectersMap, m_EffectsMap, m_HighestFreeEffectID, m_IsCleanup, m_IsInitialized, m_ParamsMap, and Print().
Referenced by MissionBaseWorld::MissionBase(), and CGame::~CGame().
|
inlinestaticprivate |
returns unique effecter ID
References ECE_PLACE_ON_SURFACE, EffecterBase(), GetFreeEffecterID(), GetGame(), and m_EffectersMap.
Referenced by CheckContactCache(), ActionMineBush::OnExecuteServer(), OnExecuteServer(), ItemBase::PlayCatchParticleSynced(), and ActionFishingNew::PlaySplashEffectSynced().
|
inlinestaticprivate |
Create an EffectSound.
sound_set | string The sound set name of the sound |
position | vector The position to play the sound |
play_fade_in | float The fade in duration of the sound (Optional) |
stop_fade_out | float The fade out duration of the sound (Optional) |
loop | bool Whether the sound should loop (Optional) |
enviroment | bool Whether to set environment variables (Optional) |
EffectSound
The created EffectSound References EffectRegister(), EffectSound::SetEnviromentVariables(), EffectSound::SetSoundFadeIn(), EffectSound::SetSoundFadeOut(), EffectSound::SetSoundLoop(), and EffectSound::SetSoundSet().
Referenced by BoatScript::HandleBoatSplashSound(), HandleEngineSound(), FlashbangEffect::PlaySound(), PlaySound(), PlaySoundCachedParams(), PlaySoundEnviroment(), PlaySoundOnObject(), PlaySoundParams(), and UpdateMusic().
|
inlinestaticprivate |
Unregisters, stops and frees the Effect.
effect_sound | EffectSound The EffectSound to free |
Referenced by BoatScript::CleanupEffects(), CleanupEffects(), CleanupSound(), Destroy(), ActionBuildShelter::DestroyActionLoopSound(), DestroySound(), EEDelete(), Roadflare::EEDelete(), ManBase::EEDelete(), House::EEDelete(), OnRingingStartClient(), OnRingingStopClient(), InventoryItem::OnRPC(), OnVariablesSynchronized(), ItemBase::OnWorkStop(), RemoveParticle(), ManBase::SetDecayEffects(), FlashbangEffect::StopSound(), KitchenTimer::TurnOff(), ~Bottle_Base(), ~ClockBase(), DayZIntroSceneXbox::~DayZIntroSceneXbox(), ItemBase::~Defibrillator(), DestructionEffectBase::~DestructionEffectBase(), FireworksLauncher::~FireworksLauncher(), FireworksLauncherClientEvent::~FireworksLauncherClientEvent(), FlashbangEffect::~FlashbangEffect(), InventoryItem::~ItemBase(), ~LandMineTrap(), ~LargeTent(), Backpack_Base::~LargeTentBackPack(), ParticleEffecter::~ParticleEffecter(), ManBase::~PlayerBase(), ItemBase::~PowerGeneratorBase(), and ~TreeEffecter().
|
inlinestaticprivate |
References EffecterBase(), and m_EffectersMap.
Referenced by DecreaseLifespan(), ActionFishingNewCB::DestroySplashEffectSynced(), OnEndServer(), and ItemBase::SetActive().
|
inlinestaticprivate |
Legacy, backwards compatibility.
sound_effect | EffectSound The EffectSound to free |
bool
A bool which is always true References DestroyEffect().
Referenced by CleanSoundEffects(), CleanUpOnClosedClient(), and Land_Underground_Stairs_Exit::CleanUpOnClosedClient().
Registers Effect in SEffectManager.
effect | Effect The Effect to register |
int
The Effect ID References ErrorEx, GetFreeEffectID(), m_EffectsMap, and m_IsCleanup.
Referenced by CreateSound(), PlayInWorld(), and PlayOnObject().
|
inlinestaticprivate |
Unregisters Effect in SEffectManager.
id | int The ID of the Effect to unregister |
References Effect(), m_EffectsMap, m_FreeEffectIDs, and m_IsCleanup.
Referenced by EffectUnregisterEx(), and ~Effect().
|
inlinestaticprivate |
Unregisters Effect in SEffectManager.
effect | Effect The Effect to unregister |
References EffectUnregister().
Referenced by BoatScript::CleanupEffects().
|
inlinestaticprivate |
Event called on frame.
time_delta | float Time passed since the previous frame |
References Event_OnFrameUpdate, and ScriptInvoker::Invoke().
|
inlinestaticprivate |
Event called from EffectSound.Event_OnSoundWaveEnded.
effect_sound | EffectSound The EffectSound calling the event |
Referenced by EffectSound::Event_OnRegistered(), and EffectSound::Event_OnUnregistered().
|
inlinestaticprivate |
Get or create a cached SoundParams object.
soundset | string The sound set name of the sound |
SoundParams
The cached SoundParams for the given soundset References m_ParamsMap, and SoundParams().
Referenced by PlaySoundCachedParams().
Gets the Effect with the given registered Effect ID.
effect_id | int The Effect ID |
Effect
The Effect registered to the ID or null References m_EffectsMap, and m_IsCleanup.
|
inlinestaticprivate |
References m_FreeEffecterIDs, and m_HighestFreeEffecterID.
Referenced by CreateParticleServer().
|
inlinestaticprivate |
Helper function for EffectRegister to decide an Effect ID.
int
A currently unused Effect ID References m_FreeEffectIDs, and m_HighestFreeEffectID.
Referenced by EffectRegister().
|
inlinestaticprivate |
Initialize the containers.
References Event_OnFrameUpdate, m_EffectsMap, m_FreeEffectIDs, m_IsInitialized, and m_ParamsMap.
Referenced by CGame::CGame().
|
inlinestaticprivate |
References m_EffectersMap, and m_FreeEffecterIDs.
Referenced by CGame::CGame().
Checks whether an Effect ID is registered in SEffectManager.
effect_id | int The Effect ID to check |
bool
Whether there is an Effect registered for this ID References m_EffectsMap, and m_IsCleanup.
Referenced by CreateCarDestroyedEffect(), EOnPostSimulate(), and ManBase::SetDecayEffects().
|
inlinestaticprivate |
References EffecterBase(), and m_EffectersMap.
Referenced by CGame::OnUpdate().
Play an Effect.
eff | Effect The Effect to play |
pos | vector The position to play the Effect |
int
The registered ID of the Effect References EffectRegister().
Referenced by Hit_MeatBones::BloodSplatGround(), CreateParticle(), ImpactMaterials::EvaluateImpactEffect(), ManBase::OnParticleEvent(), ParticleEffecter::OnVariablesSynchronized(), OnVariablesSynchronized(), AmmoEffects::PlayAmmoEffect(), BleedingSourcesManagerBase::SetDiag(), DayZIntroSceneXbox::SetupParticles(), and Explosion::SpawnEffect().
|
inlinestaticprivate |
Play an Effect.
eff | Effect The Effect to play |
obj | Object The parent of the Effect |
local_pos | vector The local position to play the Effect in relation to the parent (Optional) |
local_ori | vector The local orientation to play the Effect in relation to the parent (Optional) |
force_rotation_relative_to_world | bool Whether to force the orientation to stay in WS (Optional) |
int
The registered ID of the Effect References EffectRegister(), ErrorEx, and EffectParticle::ForceParticleRotationRelativeToWorld().
Referenced by CreateCarDestroyedEffect(), EOnPostSimulate(), ManBase::SetDecayEffects(), and ItemBase::StartLoopSound().
|
inlinestaticprivate |
Create and play an EffectSound.
sound_set | string The sound set name of the sound |
position | vector The position to play the sound |
play_fade_in | float The fade in duration of the sound (Optional) |
stop_fade_out | float The fade out duration of the sound (Optional) |
loop | bool Whether the sound should loop (Optional) |
EffectSound
The created EffectSound References CreateSound(), and EffectSound::SoundPlay().
Referenced by CGame::DelayedMidAirDetonation(), House::EEInit(), ItemBase::EEItemAttached(), ItemBase::EEItemDetached(), HandleDoorsSound(), HandleEngineSound(), HandleSeatAdjustmentSound(), CarScript::OnAnimationPhaseStarted(), Weapon::OnFireModeChange(), InventoryItem::OnRPC(), CGame::OnRPC(), OnSteppedOn(), InventoryItemSuper::OnWasAttached(), InventoryItemSuper::OnWasDetached(), SpookyEventBase::Perform(), ActionBuildShelter::PlayActionFinishSound(), ActionBuildShelter::PlayActionLoopSound(), ActionBuildShelter::PlayActionStartSound(), InventoryItem::PlayAttachSound(), PlayDisarmingLoopSound(), PlayItemSoundClient(), PlayRepackingLoopSound(), Backpack_Base::PlayRepackingLoopSound(), PlaySoundActivate(), TrapBase::PlaySoundBiteEmpty(), TrapBase::PlaySoundBiteLeg(), TrapBase::PlaySoundOpen(), Edible_Base::SoundCookingStart(), Entity::SoundHardBushFallingPlay(), Entity::SoundHardTreeFallingPlay(), Entity::SoundSoftBushFallingPlay(), Entity::SoundSoftTreeFallingPlay(), StartActivate(), and GeyserTrigger::UpdateGeyserState().
|
inlinestaticprivate |
Create and play an EffectSound, using or creating cached SoundParams.
sound_set | string The sound set name of the sound |
position | vector The position to play the sound |
play_fade_in | float The fade in duration of the sound (Optional) |
stop_fade_out | float The fade out duration of the sound (Optional) |
loop | bool Whether the sound should loop (Optional) |
EffectSound
The created EffectSound References CreateSound(), GetCachedSoundParam(), SoundParams(), and EffectSound::SoundPlayEx().
Referenced by Land_WarheadStorage_PowerStation::OnVariablesSynchronized(), PlayItemSoundClient(), BoatScript::PlaySound(), and PlaySoundEx().
|
inlinestaticprivate |
Create and play an EffectSound, updating environment variables.
sound_set | string The sound set name of the sound |
position | vector The position to play the sound |
play_fade_in | float The fade in duration of the sound (Optional) |
stop_fade_out | float The fade out duration of the sound (Optional) |
loop | bool Whether the sound should loop (Optional) |
EffectSound
The created EffectSound References CreateSound(), and EffectSound::SoundPlay().
Referenced by ScriptConsoleSoundsTab::HandleKeys(), ScriptConsoleSoundsTab::OnClick(), ContainerLockedBase::OnDoorUnlocked(), OnVariablesSynchronized(), ItemBase::PlayCatchSound(), and IEntity::PlaySoundSetAtMemoryPoint().
|
inlinestaticprivate |
Create and play an EffectSound.
sound_set | string The sound set name of the sound |
parent_object | Object The parent Object for the sound to follow |
play_fade_in | float The fade in duration of the sound (Optional) |
stop_fade_out | float The fade out duration of the sound (Optional) |
loop | bool Whether the sound should loop (Optional) |
EffectSound
The created EffectSound References CreateSound(), EffectSound::SetParent(), EffectSound::SoundPlay(), and vector::Zero.
Referenced by ItemBase::DischargeClient(), ManBase::EEHitByRemote(), ManBase::OnBleedingSourceAdded(), ItemBase::OnIsCharged(), ManBase::OnPlayerRecievedHit(), ItemBase::OnWorkStart(), PlayEmptyingLoopSound(), PlayPouringLoopSound(), PlaySound(), IEntity::PlaySoundSet(), and StopEmptyingLoopSound().
|
inlinestaticprivate |
Create and play an EffectSound.
params | SoundParams Params to create the sound with |
position | vector The position to play the sound |
play_fade_in | float The fade in duration of the sound (Optional) |
stop_fade_out | float The fade out duration of the sound (Optional) |
loop | bool Whether the sound should loop (Optional) |
EffectSound
The created EffectSound References CreateSound(), and EffectSound::SoundPlayEx().
|
inlinestaticprivate |
References EffecterBase(), and m_EffectersMap.
Referenced by ActionMineBush::OnExecuteServer(), OnExecuteServer(), ItemBase::PlayCatchParticleSynced(), and ActionFishingNew::PlaySplashEffectSynced().
|
inlinestaticprivate |
allows re-initializing existing effecter with new parameters (extept m_EffecterType, obviously)
References EffecterBase(), and m_EffectersMap.
Referenced by ItemBase::PlayCatchParticleSynced(), and ActionFishingNew::PlaySplashEffectSynced().
|
inlinestaticprivate |
References EffecterBase(), and m_EffectersMap.
|
inlinestaticprivate |
Stops the Effect.
effect_id | int The ID of the Effect to Stop |
References Effect(), ErrorEx, and m_EffectsMap.
Referenced by EOnPostSimulate().
|
inlinestaticprivate |
References EffecterBase(), and m_EffectersMap.
|
staticprivate |
Static invoker for the SEffectManager.Event_OnFrameUpdate called form MissionGameplay.OnUpdate.
Referenced by Cleanup(), Event_OnFrameUpdate(), Init(), MissionBase::OnUpdate(), and SetEnableEventFrame().
|
staticprivate |
As the counter starts at 1, Effect ID can never be 0.
Referenced by Event_OnUnregistered().
|
staticprivate |
Static map of all registered effects <id, Effect>
Referenced by Cleanup(), EffectRegister(), EffectUnregister(), GetEffectByID(), Init(), IsEffectExist(), and Stop().
Static array of IDs that were previously used, but freed up by unregistering Effecters.
Referenced by GetFreeEffecterID(), and InitServer().
Static array of IDs that were previously used, but freed up by unregistering.
Referenced by EffectUnregister(), GetFreeEffectID(), and Init().
|
staticprivate |
Referenced by GetFreeEffecterID().
|
staticprivate |
Counter for quickly getting the next ID if FreeEffectIDs array is empty.
Referenced by Cleanup(), and GetFreeEffectID().
|
staticprivate |
Bool to check whether Cleanup is happening, which means that the maps should no longer be accessed.
Referenced by Cleanup(), EffectRegister(), EffectUnregister(), GetEffectByID(), and IsEffectExist().
|
staticprivate |
|
staticprivate |
Static map of cached sound params, to prevent having to recreate them.
Referenced by Cleanup(), GetCachedSoundParam(), and Init().