Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
infectedsoundeventhandler.c
Go to the documentation of this file.
13
14class InfectedSoundEventHandler extends SoundEventHandler
15{
17 static ref InfectedSoundEventBase m_AvailableStates[SOUND_EVENTS_MAX];
20
22 {
23 m_Infected = pInfected;
24 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_CALM_IDLE] = new CalmIdleSoundEvent();
25 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_CALM_MOVE] = new CalmMoveSoundEvent();
26 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_DISTURBED_IDLE] = new DisturbedIdleSoundEvent();
27 //m_AvailableStates[EInfectedSoundEventID.MINDSTATE_CHASE_IDLE] = new ChaseIdleSoundEvent();
28 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_CHASE_MOVE] = new ChaseMoveSoundEvent();
29 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_ALERTED_IDLE] = new AlertedIdleSoundEvent();
30 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_ALERTED_MOVE] = new AlertedMoveSoundEvent();
31 }
32
33 override static int GetSoundEventType(int id)
34 {
35 return m_AvailableStates[id].GetSoundEventType();
36 }
37
39 {
41 {
42 return m_CurrentState.GetSoundEventID();
43 }
44 return -1;
45 }
46
48 {
50 {
51 return m_CurrentState.GetSoundEventType();
52 }
53 return -1;
54 }
55
56 void Stop()
57 {
58 if ( m_CurrentState )
59 {
60 m_CurrentState.Stop();
61 }
62 }
63
64 void SoftStop()
65 {
66 if ( m_CurrentState )
67 {
68 m_CurrentState.SoftStop();
69 }
70 }
71
72 bool IsPlaying()
73 {
74 if ( m_CurrentState && m_CurrentState.IsSoundCallbackExist() )
75 {
76 return true;
77 }
78
79 return false;
80 }
81
82 override bool PlayRequest(int id, bool sent_from_server = false)
83 {
84 InfectedSoundEventBase requested_state = m_AvailableStates[id];
85
86 if ( !requested_state.CanPlay() )
87 {
88 return false;
89 }
90
92 {
93 if (!m_CurrentState.IsSoundCallbackExist())
94 {
95 //Print("Missing callback - cleanup and continue");
96 delete m_CurrentState;
97 }
98
100 if (GetCurrentStateEventID() == id)
101 {
102 //Print("Same ID - skipping");
103 return false;
104 }
105 }
106
107 if (m_CurrentState)
108 {
109 m_CurrentState.SoftStop();
110 m_CurrentState = InfectedSoundEventBase.Cast(requested_state.ClassName().ToType().Spawn());
112 m_CurrentState.Play();
113 return true;
114 }
115 else
116 {
117 m_CurrentState = InfectedSoundEventBase.Cast(requested_state.ClassName().ToType().Spawn());
119 m_CurrentState.Play();
120 return true;
121 }
122
123 return false;//should never get here
124 }
125}
bool IsPlaying()
Returns true when the Effect is playing, false otherwise.
Definition effect.c:197
void Stop()
Stops all elements this effect consists of.
Definition effect.c:183
enum EInfectedSoundEventType m_Infected
void SoftStop()
void InfectedSoundEventHandler(ZombieBase pInfected)
@ MINDSTATE_ALERTED_MOVE
@ MINDSTATE_DISTURBED_IDLE
@ MINDSTATE_CHASE_MOVE
@ MINDSTATE_ALERTED_IDLE
@ MINDSTATE_CALM_IDLE
@ MINDSTATE_CALM_MOVE
ref InfectedSoundEventBase m_CurrentState
override int GetCurrentStateEventID()
enum EInfectedSoundEventID SOUND_EVENTS_MAX
override int GetCurrentStateEventType()
class MindStateSoundEventBase extends InfectedSoundEventBase CalmIdleSoundEvent()
Definition mindstates.c:15
void ChaseMoveSoundEvent()
Definition mindstates.c:56
class ChaseMoveSoundEvent extends MindStateSoundEventBase AlertedIdleSoundEvent()
Definition mindstates.c:55
class CalmMoveSoundEvent extends MindStateSoundEventBase DisturbedIdleSoundEvent()
Definition mindstates.c:35
void CalmMoveSoundEvent()
Definition mindstates.c:36
EAnimPlayState PlayRequest()
int GetSoundEventType()