#ifndef AI_LANCEMATEAUDIO_HPP #define AI_LANCEMATEAUDIO_HPP #include "ai_squad.hpp" #pragma warning(push) #include #include #pragma warning(pop) namespace MechWarrior4 { class Mech; }; namespace MW4AI { namespace LancemateAudio { enum Category { AUDIO_FF1, AUDIO_FF2, AUDIO_FF3, AUDIO_FF4, AUDIO_OK, AUDIO_OKX, AUDIO_NO, AUDIO_TARGETDESTROYED, AUDIO_ATNAV, AUDIO_EJECT, AUDIO_IDLE, MAX_AUDIO_CATEGORIES }; enum Priority { PRIORITY_OPTIONAL, PRIORITY_MANDATORY }; class AudioManager { public: AudioManager(); ~AudioManager(); void PlayAudio(Category category, const Stuff::MString& talker_suffix); void PlayAudio(Category category, const MechWarrior4::AI& ai); void Update(MechWarrior4::Group& group, MechWarrior4::Mech& leader); void SetPissedOff(bool pissed_off); private: void AddAudioCue(Category category, int sound_id); void UpdateAudio(MechWarrior4::Group& group); private: Stuff::Time m_LastTimeAudioPlayed[MAX_AUDIO_CATEGORIES]; Stuff::Time m_LastTimeAnyAudioPlayed; Stuff::Time m_LastAudioUpdate; Stuff::Time m_LastTimeNotInactive; bool m_PissedOff; }; }; }; #endif // AI_LANCEMATEAUDIO_HPP