MCPcopy Create free account
hub / github.com/MergHQ/CRYENGINE / ProcessEvent

Method ProcessEvent

Code/CryEngine/CryEntitySystem/EntityAudioProxy.cpp:180–351  ·  view source on GitHub ↗

/////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

178
179//////////////////////////////////////////////////////////////////////////
180void CEntityAudioProxy::ProcessEvent(SEntityEvent& event)
181{
182 if (m_pEntity != nullptr)
183 {
184 switch (event.event)
185 {
186 case ENTITY_EVENT_XFORM:
187 {
188 int const nFlags = (int)event.nParam[0];
189
190 if ((nFlags & (ENTITY_XFORM_POS | ENTITY_XFORM_ROT)) > 0)
191 {
192 OnMove();
193 }
194
195 break;
196 }
197 case ENTITY_EVENT_ENTERAREA:
198 {
199 if ((m_pEntity->GetFlags() & ENTITY_FLAG_VOLUME_SOUND) > 0)
200 {
201 EntityId const nEntityID = static_cast<EntityId>(event.nParam[0]); // Entering entity!
202 IEntity* const pEntity = gEnv->pEntitySystem->GetEntity(nEntityID);
203
204 if ((pEntity != nullptr) && (pEntity->GetFlagsExtended() & ENTITY_FLAG_EXTENDED_AUDIO_LISTENER) > 0)
205 {
206 OnListenerEnter(pEntity);
207 }
208 else if ((pEntity != nullptr) && (m_audioEnvironmentId != INVALID_AUDIO_ENVIRONMENT_ID))
209 {
210 OnEnter(pEntity);
211 }
212 }
213
214 break;
215 }
216 case ENTITY_EVENT_LEAVEAREA:
217 {
218
219 break;
220 }
221 case ENTITY_EVENT_CROSS_AREA:
222 {
223 if ((m_pEntity->GetFlags() & ENTITY_FLAG_VOLUME_SOUND) > 0)
224 {
225 EntityId const nEntityID = static_cast<EntityId>(event.nParam[0]); // Crossing entity!
226 IEntity* const pEntity = gEnv->pEntitySystem->GetEntity(nEntityID);
227
228 if (pEntity != nullptr)
229 {
230 OnAreaCrossing(pEntity);
231 }
232 }
233
234 break;
235 }
236 case ENTITY_EVENT_MOVENEARAREA:
237 case ENTITY_EVENT_ENTERNEARAREA:

Callers

nothing calls this directly

Calls 3

GetFlagsMethod · 0.45
GetEntityMethod · 0.45
GetFlagsExtendedMethod · 0.45

Tested by

no test coverage detected