Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
SEffectManager Class Reference

Manager class for managing Effect (EffectParticle, EffectSound). More...

Static Protected Member Functions

Generic playback

Methods for playing Effect

Note
Since 1.15, these should work on EffectSound as well
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 int GetFreeEffecterID ()
static void EffectUnregister (int id)
 Unregisters Effect in SEffectManager.
static void EffectUnregisterEx (Effect effect)
 Unregisters Effect in SEffectManager.
static 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 Protected Attributes

static ref ScriptInvoker Event_OnFrameUpdate
 Static invoker for the SEffectManager.Event_OnFrameUpdate called form MissionGameplay.OnUpdate.
static const int INVALID_ID = 0
 As the counter starts at 1, Effect ID can never be 0.
static ref map< int, EffecterBasem_EffectersMap
static ref map< int, ref Effectm_EffectsMap
 Static map of all registered effects <id, Effect>.
static ref array< intm_FreeEffecterIDs
 Static array of IDs that were previously used, but freed up by unregistering Effecters.
static ref array< intm_FreeEffectIDs
 Static array of IDs that were previously used, but freed up by unregistering.
static int m_HighestFreeEffecterID = 1
static int m_HighestFreeEffectID = 1
 Counter for quickly getting the next ID if FreeEffectIDs array is empty.
static bool m_IsCleanup
 Bool to check whether Cleanup is happening, which means that the maps should no longer be accessed.
static bool m_IsInitialized
 Bool to check whether Init was called.
static ref map< string, ref SoundParamsm_ParamsMap
 Static map of cached sound params, to prevent having to recreate them.

Detailed Description

Manager class for managing Effect (EffectParticle, EffectSound).

Warning
Keeps a ref to any Effect registered (Created/Played), make sure to perform the necessary cleanup

Definition at line 5 of file effectmanager.c.

Member Function Documentation

◆ Cleanup()

void Cleanup ( )
inlinestaticprotected

Cleanup method to properly clean up the static data.

Note
Will be called when MissionBase is destroyed

Definition at line 518 of file effectmanager.c.

References Effect(), EffecterBase(), ErrorEx, Event_OnFrameUpdate, g_Game, m_EffectersMap, m_EffectsMap, m_HighestFreeEffectID, m_IsCleanup, m_IsInitialized, m_ParamsMap, and Print().

Referenced by CGame::~CGame(), and MissionBaseWorld::MissionBase().

◆ CreateParticleServer()

◆ CreateSound()

EffectSound CreateSound ( string sound_set,
vector position,
float play_fade_in = 0,
float stop_fade_out = 0,
bool loop = false,
bool enviroment = false )
inlinestaticprotected

Create an EffectSound.

Warning
Read PlayInWorld warning
Parameters
sound_setstring The sound set name of the sound
positionvector The position to play the sound
play_fade_infloat The fade in duration of the sound (Optional)
stop_fade_outfloat The fade out duration of the sound (Optional)
loopbool Whether the sound should loop (Optional)
enviromentbool Whether to set environment variables (Optional)
Returns
EffectSound The created EffectSound

Definition at line 144 of file effectmanager.c.

References EffectRegister(), EffectSound::SetEnviromentVariables(), EffectSound::SetSoundFadeIn(), EffectSound::SetSoundFadeOut(), EffectSound::SetSoundLoop(), and EffectSound::SetSoundSet().

Referenced by BoatScript::HandleBoatSplashSound(), FlashbangEffect::PlaySound(), PlaySound(), PlaySoundCachedParams(), PlaySoundEnviroment(), PlaySoundOnObject(), PlaySoundParams(), and UpdateMusic().

◆ DestroyEffect()

◆ DestroyEffecterParticleServer()

void DestroyEffecterParticleServer ( int effecterID)
inlinestaticprotected

◆ DestroySound()

bool DestroySound ( EffectSound sound_effect)
inlinestaticprotected

Legacy, backwards compatibility.

Parameters
sound_effectEffectSound The EffectSound to free
Returns
bool A bool which is always true

Definition at line 432 of file effectmanager.c.

References DestroyEffect().

Referenced by CleanSoundEffects(), CleanUpOnClosedClient(), and Land_Underground_Stairs_Exit::CleanUpOnClosedClient().

◆ EffectRegister()

int EffectRegister ( Effect effect)
inlinestaticprotected

Registers Effect in SEffectManager.

Note
Already handled in SEffectManager Create/Play methods
This will make SEffectManager hold a strong ref for the Effect
Parameters
effectEffect The Effect to register
Returns
int The Effect ID

Definition at line 322 of file effectmanager.c.

References Effect(), ErrorEx, GetFreeEffectID(), m_EffectsMap, and m_IsCleanup.

Referenced by CreateSound(), Car::HandleDoorsSound(), Car::HandleEngineSound(), Car::HandleSeatAdjustmentSound(), CarScript::OnAnimationPhaseStarted(), PlayInWorld(), and PlayOnObject().

◆ EffectUnregister()

void EffectUnregister ( int id)
inlinestaticprotected

Unregisters Effect in SEffectManager.

Note
Will automatically occur on stop when the Effect is AutoDestroy
ID can be gotten from the Effect by calling Effect.GetID
Generic Play methods will also return the ID
Parameters
idint The ID of the Effect to unregister

Definition at line 369 of file effectmanager.c.

References Effect(), m_EffectsMap, m_FreeEffectIDs, and m_IsCleanup.

Referenced by ~Effect(), and EffectUnregisterEx().

◆ EffectUnregisterEx()

void EffectUnregisterEx ( Effect effect)
inlinestaticprotected

Unregisters Effect in SEffectManager.

Parameters
effectEffect The Effect to unregister

Definition at line 391 of file effectmanager.c.

References Effect(), and EffectUnregister().

Referenced by BoatScript::CleanupEffects().

◆ Event_OnFrameUpdate()

void Event_OnFrameUpdate ( float time_delta)
inlinestaticprotected

Event called on frame.

Note
Called from MissionGameplay.OnUpdate
Effects register themselves by Effect.SetEnableEventFrame(true)
EffectSound is automatically registered
Parameters
time_deltafloat Time passed since the previous frame

Definition at line 480 of file effectmanager.c.

References Event_OnFrameUpdate.

◆ Event_OnSoundWaveEnded()

void Event_OnSoundWaveEnded ( EffectSound effect_sound)
inlinestaticprotected

Event called from EffectSound.Event_OnSoundWaveEnded.

Note
Every registered sound is registered to call this
Parameters
effect_soundEffectSound The EffectSound calling the event

Definition at line 468 of file effectmanager.c.

Referenced by EffectSound::Event_OnRegistered(), and EffectSound::Event_OnUnregistered().

◆ GetCachedSoundParam()

SoundParams GetCachedSoundParam ( string soundset)
inlinestaticprotected

Get or create a cached SoundParams object.

Parameters
soundsetstring The sound set name of the sound
Returns
SoundParams The cached SoundParams for the given soundset

Definition at line 443 of file effectmanager.c.

References m_ParamsMap, and SoundParams().

Referenced by PlaySoundCachedParams().

◆ GetEffectByID()

Effect GetEffectByID ( int effect_id)
inlinestaticprotected

Gets the Effect with the given registered Effect ID.

Parameters
effect_idint The Effect ID
Returns
Effect The Effect registered to the ID or null

Definition at line 307 of file effectmanager.c.

References Effect(), m_EffectsMap, and m_IsCleanup.

◆ GetFreeEffecterID()

int GetFreeEffecterID ( )
inlinestaticprotected

Definition at line 344 of file effectmanager.c.

References m_FreeEffecterIDs, and m_HighestFreeEffecterID.

Referenced by CreateParticleServer().

◆ GetFreeEffectID()

int GetFreeEffectID ( )
inlinestaticprotected

Helper function for EffectRegister to decide an Effect ID.

Returns
int A currently unused Effect ID

Definition at line 400 of file effectmanager.c.

References m_FreeEffectIDs, and m_HighestFreeEffectID.

Referenced by EffectRegister().

◆ Init()

void Init ( )
inlinestaticprotected

Initialize the containers.

Note
This is done this way, to have these not exist on server

Definition at line 498 of file effectmanager.c.

References Event_OnFrameUpdate, m_EffectsMap, m_FreeEffectIDs, m_IsInitialized, and m_ParamsMap.

Referenced by CGame::CGame().

◆ InitServer()

void InitServer ( )
inlinestaticprotected

Definition at line 508 of file effectmanager.c.

References m_EffectersMap, and m_FreeEffecterIDs.

Referenced by CGame::CGame().

◆ IsEffectExist()

bool IsEffectExist ( int effect_id)
inlinestaticprotected

Checks whether an Effect ID is registered in SEffectManager.

Parameters
effect_idint The Effect ID to check
Returns
bool Whether there is an Effect registered for this ID

Definition at line 294 of file effectmanager.c.

References m_EffectsMap, and m_IsCleanup.

Referenced by Car::CreateCarDestroyedEffect(), Car::EOnPostSimulate(), and ManBase::SetDecayEffects().

◆ OnUpdate()

void OnUpdate ( float timeslice)
inlinestaticprotected

Definition at line 640 of file effectmanager.c.

References EffecterBase(), and m_EffectersMap.

Referenced by CGame::OnUpdate().

◆ PlayInWorld()

int PlayInWorld ( notnull Effect eff,
vector pos )
inlinestaticprotected

Play an Effect.

Warning
As the Effect is automatically registered, it will not be freed automatically (because of the ref) Unless 'SetAutodestroy(true)' is called on the created 'Effect', which will clean it up when the sound stop Alternatively, SEffectManager.DestroyEffect can be called manually, which will also unregister and cleanup
Parameters
effEffect The Effect to play
posvector The position to play the Effect
Returns
int The registered ID of the Effect

Definition at line 47 of file effectmanager.c.

References Effect(), and EffectRegister().

Referenced by Hit_MeatBones::BloodSplatGround(), CreateParticle(), ImpactMaterials::EvaluateImpactEffect(), ManBase::OnParticleEvent(), OnVariablesSynchronized(), ParticleEffecter::OnVariablesSynchronized(), AmmoEffects::PlayAmmoEffect(), DayZIntroSceneXbox::SetupParticles(), and Explosion::SpawnEffect().

◆ PlayOnObject()

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 )
inlinestaticprotected

Play an Effect.

Warning
Read PlayInWorld warning
Parameters
effEffect The Effect to play
objObject The parent of the Effect
local_posvector The local position to play the Effect in relation to the parent (Optional)
local_orivector The local orientation to play the Effect in relation to the parent (Optional)
force_rotation_relative_to_worldbool Whether to force the orientation to stay in WS (Optional)
Returns
int The registered ID of the Effect

Definition at line 70 of file effectmanager.c.

References Effect(), EffectRegister(), ErrorEx, and EffectParticle::ForceParticleRotationRelativeToWorld().

Referenced by Car::CreateCarDestroyedEffect(), Car::EOnPostSimulate(), ManBase::SetDecayEffects(), and ItemBase::StartLoopSound().

◆ PlaySound()

EffectSound PlaySound ( string sound_set,
vector position,
float play_fade_in = 0,
float stop_fade_out = 0,
bool loop = false )
inlinestaticprotected

◆ PlaySoundCachedParams()

EffectSound PlaySoundCachedParams ( string sound_set,
vector position,
float play_fade_in = 0,
float stop_fade_out = 0,
bool loop = false )
inlinestaticprotected

Create and play an EffectSound, using or creating cached SoundParams.

Warning
Calls CreateSound, read CreateSound warning
Parameters
sound_setstring The sound set name of the sound
positionvector The position to play the sound
play_fade_infloat The fade in duration of the sound (Optional)
stop_fade_outfloat The fade out duration of the sound (Optional)
loopbool Whether the sound should loop (Optional)
Returns
EffectSound The created EffectSound

Definition at line 207 of file effectmanager.c.

References CreateSound(), GetCachedSoundParam(), SoundParams(), and EffectSound::SoundPlayEx().

Referenced by Land_WarheadStorage_PowerStation::OnVariablesSynchronized(), PlayItemSoundClient(), BoatScript::PlaySound(), and Car::PlaySoundEx().

◆ PlaySoundEnviroment()

EffectSound PlaySoundEnviroment ( string sound_set,
vector position,
float play_fade_in = 0,
float stop_fade_out = 0,
bool loop = false )
inlinestaticprotected

Create and play an EffectSound, updating environment variables.

Warning
Calls CreateSound, read CreateSound warning
Parameters
sound_setstring The sound set name of the sound
positionvector The position to play the sound
play_fade_infloat The fade in duration of the sound (Optional)
stop_fade_outfloat The fade out duration of the sound (Optional)
loopbool Whether the sound should loop (Optional)
Returns
EffectSound The created EffectSound

Definition at line 228 of file effectmanager.c.

References CreateSound(), and EffectSound::SoundPlay().

Referenced by ScriptConsoleSoundsTab::HandleKeys(), ScriptConsoleSoundsTab::OnClick(), ContainerLockedBase::OnDoorUnlocked(), OnVariablesSynchronized(), ItemBase::PlayCatchSound(), and IEntity::PlaySoundSetAtMemoryPoint().

◆ PlaySoundOnObject()

EffectSound PlaySoundOnObject ( string sound_set,
Object parent_object,
float play_fade_in = 0,
float stop_fade_out = 0,
bool loop = false )
inlinestaticprotected

Create and play an EffectSound.

Warning
Calls CreateSound, read CreateSound warning
Parameters
sound_setstring The sound set name of the sound
parent_objectObject The parent Object for the sound to follow
play_fade_infloat The fade in duration of the sound (Optional)
stop_fade_outfloat The fade out duration of the sound (Optional)
loopbool Whether the sound should loop (Optional)
Returns
EffectSound The created EffectSound

Definition at line 247 of file effectmanager.c.

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().

◆ PlaySoundParams()

EffectSound PlaySoundParams ( notnull SoundParams params,
vector position,
float play_fade_in = 0,
float stop_fade_out = 0,
bool loop = false )
inlinestaticprotected

Create and play an EffectSound.

Warning
Calls CreateSound, read CreateSound warning
Parameters
paramsSoundParams Params to create the sound with
positionvector The position to play the sound
play_fade_infloat The fade in duration of the sound (Optional)
stop_fade_outfloat The fade out duration of the sound (Optional)
loopbool Whether the sound should loop (Optional)
Returns
EffectSound The created EffectSound

Definition at line 188 of file effectmanager.c.

References CreateSound(), SoundParams(), and EffectSound::SoundPlayEx().

◆ ReactivateParticleServer()

void ReactivateParticleServer ( int effecterID)
inlinestaticprotected

◆ ReinitParticleServer()

void ReinitParticleServer ( int effecterID,
EffecterParameters parameters )
inlinestaticprotected

allows re-initializing existing effecter with new parameters (extept m_EffecterType, obviously)

Definition at line 593 of file effectmanager.c.

References EffecterBase(), EffecterParameters(), and m_EffectersMap.

Referenced by ItemBase::PlayCatchParticleSynced(), and ActionFishingNew::PlaySplashEffectSynced().

◆ StartParticleServer()

void StartParticleServer ( int effecterID)
inlinestaticprotected

Definition at line 611 of file effectmanager.c.

References EffecterBase(), and m_EffectersMap.

◆ Stop()

void Stop ( int effect_id)
inlinestaticprotected

Stops the Effect.

Parameters
effect_idint The ID of the Effect to Stop

Definition at line 110 of file effectmanager.c.

References Effect(), ErrorEx, and m_EffectsMap.

Referenced by Car::EOnPostSimulate().

◆ StopParticleServer()

void StopParticleServer ( int effecterID)
inlinestaticprotected

Definition at line 621 of file effectmanager.c.

References EffecterBase(), and m_EffectersMap.

Field Documentation

◆ Event_OnFrameUpdate

ref ScriptInvoker Event_OnFrameUpdate
staticprotected

Static invoker for the SEffectManager.Event_OnFrameUpdate called form MissionGameplay.OnUpdate.

Definition at line 24 of file effectmanager.c.

Referenced by Cleanup(), Event_OnFrameUpdate(), Init(), MissionBase::OnUpdate(), and SetEnableEventFrame().

◆ INVALID_ID

const int INVALID_ID = 0
staticprotected

As the counter starts at 1, Effect ID can never be 0.

Definition at line 14 of file effectmanager.c.

Referenced by Event_OnUnregistered().

◆ m_EffectersMap

◆ m_EffectsMap

ref map<int, ref Effect> m_EffectsMap
staticprotected

Static map of all registered effects <id, Effect>.

Definition at line 8 of file effectmanager.c.

Referenced by Cleanup(), EffectRegister(), EffectUnregister(), GetEffectByID(), Init(), IsEffectExist(), and Stop().

◆ m_FreeEffecterIDs

ref array<int> m_FreeEffecterIDs
staticprotected

Static array of IDs that were previously used, but freed up by unregistering Effecters.

Definition at line 28 of file effectmanager.c.

Referenced by GetFreeEffecterID(), and InitServer().

◆ m_FreeEffectIDs

ref array<int> m_FreeEffectIDs
staticprotected

Static array of IDs that were previously used, but freed up by unregistering.

Definition at line 10 of file effectmanager.c.

Referenced by EffectUnregister(), GetFreeEffectID(), and Init().

◆ m_HighestFreeEffecterID

int m_HighestFreeEffecterID = 1
staticprotected

Definition at line 30 of file effectmanager.c.

Referenced by GetFreeEffecterID().

◆ m_HighestFreeEffectID

int m_HighestFreeEffectID = 1
staticprotected

Counter for quickly getting the next ID if FreeEffectIDs array is empty.

Definition at line 12 of file effectmanager.c.

Referenced by Cleanup(), and GetFreeEffectID().

◆ m_IsCleanup

bool m_IsCleanup
staticprotected

Bool to check whether Cleanup is happening, which means that the maps should no longer be accessed.

Definition at line 16 of file effectmanager.c.

Referenced by Cleanup(), EffectRegister(), EffectUnregister(), GetEffectByID(), and IsEffectExist().

◆ m_IsInitialized

bool m_IsInitialized
staticprotected

Bool to check whether Init was called.

Definition at line 18 of file effectmanager.c.

Referenced by Cleanup(), and Init().

◆ m_ParamsMap

ref map<string, ref SoundParams> m_ParamsMap
staticprotected

Static map of cached sound params, to prevent having to recreate them.

Definition at line 21 of file effectmanager.c.

Referenced by Cleanup(), GetCachedSoundParam(), and Init().


The documentation for this class was generated from the following file: