| 4706 | } |
| 4707 | |
| 4708 | static void EmitterStateChangedCallback(uint32_t num_awake_emitters, dmhash_t emitter_id, dmParticle::EmitterState emitter_state, void* user_data) |
| 4709 | { |
| 4710 | GuiEmitterStateChangedData* data = (GuiEmitterStateChangedData*)(user_data); |
| 4711 | |
| 4712 | if (!dmScript::IsCallbackValid(data->m_LuaInfo.m_Callback)) |
| 4713 | return; |
| 4714 | |
| 4715 | GuiPfxEmitterScriptCallbackData callback_data = { data, emitter_id, emitter_state }; |
| 4716 | dmScript::InvokeCallback(data->m_LuaInfo.m_Callback, PushPfxCallbackArguments, &callback_data); |
| 4717 | |
| 4718 | // The last emitter belonging to this particlefx har gone to sleep, release lua reference. |
| 4719 | if(num_awake_emitters == 0 && emitter_state == dmParticle::EMITTER_STATE_SLEEPING) |
| 4720 | { |
| 4721 | dmScript::DestroyCallback(data->m_LuaInfo.m_Callback); |
| 4722 | data->m_LuaInfo.m_Callback = 0x0; |
| 4723 | } |
| 4724 | } |
| 4725 | |
| 4726 | /*# Plays a particle fx |
| 4727 | * Plays the paricle fx for a gui node |
nothing calls this directly
no test coverage detected