DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
InfectedSoundEventHandler.c
См. документацию.
13
14class InfectedSoundEventHandler extends SoundEventHandler
15{
20
22 {
23 m_Infected = pInfected;
26 m_AvailableStates[EInfectedSoundEventID.MINDSTATE_DISTURBED_IDLE] = new DisturbedIdleSoundEvent();
27 //m_AvailableStates[EInfectedSoundEventID.MINDSTATE_CHASE_IDLE] = new ChaseIdleSoundEvent();
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.
Определения Effect.c:195
enum EInfectedSoundEventType m_Infected
void SoftStop()
Определения InfectedSoundEventBase.c:25
void InfectedSoundEventHandler(ZombieBase pInfected)
Определения InfectedSoundEventHandler.c:21
EInfectedSoundEventID
Определения InfectedSoundEventHandler.c:2
@ MINDSTATE_ALERTED_MOVE
Определения InfectedSoundEventHandler.c:9
@ ENUM_COUNT
Определения InfectedSoundEventHandler.c:11
@ MINDSTATE_DISTURBED_IDLE
Определения InfectedSoundEventHandler.c:5
@ MINDSTATE_CHASE_MOVE
Определения InfectedSoundEventHandler.c:7
@ MINDSTATE_ALERTED_IDLE
Определения InfectedSoundEventHandler.c:8
@ MINDSTATE_CALM_IDLE
Определения InfectedSoundEventHandler.c:3
@ MINDSTATE_CALM_MOVE
Определения InfectedSoundEventHandler.c:4
ref InfectedSoundEventBase m_CurrentState
Определения InfectedSoundEventHandler.c:18
static ref InfectedSoundEventBase m_AvailableStates[SOUND_EVENTS_MAX]
Определения InfectedSoundEventHandler.c:17
override int GetCurrentStateEventID()
Определения InfectedSoundEventHandler.c:38
enum EInfectedSoundEventID SOUND_EVENTS_MAX
override int GetCurrentStateEventType()
Определения InfectedSoundEventHandler.c:47
class MindStateSoundEventBase extends InfectedSoundEventBase CalmIdleSoundEvent()
Определения MindStates.c:15
void ChaseMoveSoundEvent()
Определения MindStates.c:56
class ChaseMoveSoundEvent extends MindStateSoundEventBase AlertedIdleSoundEvent()
Определения MindStates.c:55
class CalmMoveSoundEvent extends MindStateSoundEventBase DisturbedIdleSoundEvent()
Определения MindStates.c:35
void CalmMoveSoundEvent()
Определения MindStates.c:36
EAnimPlayState PlayRequest()
Определения SmptAnimMeta.c:65
int GetSoundEventType()
Определения SoundEvents.c:155
override bool CanPlay()
Определения MindStates.c:3
Определения ZombieFemaleBase.c:2
void Stop()
Stops all elements this effect consists of.
Определения Effect.c:181