DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ReplaceSoundEventHandler.c
См. документацию.
2{
3 SOUND_COMMON = 0 // "Sound"
4 SOUND_WEAPON, // "SoundWeapon"
5 SOUND_ATTACHMENT, // "SoundAttachment"
6 SOUND_VOICE // "SoundVoice"
7}
8
9enum EReplaceSoundEventID
10{
14 CLEANHANDS_SECONDARY
15}
16
17// Main purpose is to intercept animation system based sound event calls and replace them with different ones based on context
19{
21
23 protected ref Timer m_UpdateTimer;
24
34
35 // Inserts sound replace event to array of event maps, creates new event map if first sound of an event type is being registered
36 protected void RegisterEvent(ReplaceSoundEventBase soundEvent)
37 {
38 int sType = soundEvent.GetSoundEventType();
39
40 if (!m_SoundEventReplaceMaps.IsValidIndex(sType))
41 {
43 m_SoundEventReplaceMaps.InsertAt(replaceMap, sType);
44 }
45
46 m_SoundEventReplaceMaps[sType].Insert(soundEvent.GetSoundAnimEventClassID(), soundEvent);
47 }
48
49 int GetSoundEventID(int anim_id, ESoundEventType soundType)
50 {
51 if (!m_SoundEventReplaceMaps.IsValidIndex(soundType))
52 return 0;
53
54 ReplaceSoundEventBase soundEvent = m_SoundEventReplaceMaps[soundType].Get(anim_id);
55 if (!soundEvent)
56 return 0;
57
58 return soundEvent.GetSoundEventID();
59 }
60
62 {
63 if (!m_SoundEventReplaceMaps.IsValidIndex(soundType))
64 return null;
65
66 foreach (int animID, ReplaceSoundEventBase soundEvent : m_SoundEventReplaceMaps[soundType])
67 {
68 if (soundEvent.GetSoundEventID() == id)
69 return soundEvent;
70 }
71
72 return null;
73 }
74
75 bool PlayReplaceSound(int soundEventID, ESoundEventType soundType, int flags)
76 {
77 ReplaceSoundEventBase soundEvent = GetSoundEventByID(soundEventID, soundType);
78 if (!soundEvent)
79 return false;
80
81 ReplaceSoundEventBase soundEventObj = ReplaceSoundEventBase.Cast(soundEvent.ClassName().ToType().Spawn());
82 soundEventObj.Init(m_Player);
83 if (soundEventObj.Play())
84 return true;
85
86 return false;
87 }
88}
class DigSoundEventBase extends ReplaceSoundEventBase DigSecondarySoundEvent
Определения ActionSurfaceEvents.c:15
void DigPrimarySoundEvent()
Определения ActionSurfaceEvents.c:16
class CleanHandsSoundEventBase extends ReplaceSoundEventBase CleanHandsSecondarySoundEvent
Определения ActionSurfaceEvents.c:53
void CleanHandsPrimarySoundEvent()
Определения ActionSurfaceEvents.c:54
map
Определения ControlsXboxNew.c:4
DayZPlayer m_Player
Определения Hand_Events.c:42
ref Timer m_UpdateTimer
Определения RadialMenu.c:20
enum ESoundEventType m_SoundEventReplaceMaps
enum ESoundEventType CLEANHANDS_PRIMARY
void ReplaceSoundEventHandler(PlayerBase player)
Определения ReplaceSoundEventHandler.c:25
enum ESoundEventType DIG_PRIMARY
enum ESoundEventType DIG_SECONDARY
ESoundEventType
Определения ReplaceSoundEventHandler.c:2
@ SOUND_COMMON
Определения ReplaceSoundEventHandler.c:3
@ SOUND_ATTACHMENT
Определения ReplaceSoundEventHandler.c:5
@ SOUND_VOICE
Определения ReplaceSoundEventHandler.c:6
ReplaceSoundEventBase GetSoundEventByID(int id, ESoundEventType soundType)
Определения ReplaceSoundEventHandler.c:61
bool PlayReplaceSound(int soundEventID, ESoundEventType soundType, int flags)
Определения ReplaceSoundEventHandler.c:75
int GetSoundEventID()
Определения SoundEvents.c:150
Определения PlayerBaseClient.c:2
int GetSoundAnimEventClassID()
Определения ReplaceSoundEventBase.c:20
void Init(PlayerBase player)
Определения ReplaceSoundEventBase.c:25
EReplaceSoundEventID GetSoundEventID()
Определения ReplaceSoundEventBase.c:15
ESoundEventType GetSoundEventType()
Определения ReplaceSoundEventBase.c:10
Определения DayZPlayerImplement.c:63
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native void RegisterEvent(string pName, int pId)
register events