aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/server/ai_sentence.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/server/ai_sentence.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/server/ai_sentence.h')
-rw-r--r--mp/src/game/server/ai_sentence.h344
1 files changed, 172 insertions, 172 deletions
diff --git a/mp/src/game/server/ai_sentence.h b/mp/src/game/server/ai_sentence.h
index 9535c539..8099fce0 100644
--- a/mp/src/game/server/ai_sentence.h
+++ b/mp/src/game/server/ai_sentence.h
@@ -1,172 +1,172 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef AI_SENTENCE_H
-#define AI_SENTENCE_H
-
-#include "ai_component.h"
-#include "ai_basenpc.h"
-#include "SoundEmitterSystem/isoundemittersystembase.h"
-
-
-//-----------------------------------------------------------------------------
-// Sentence helper class used by humanoids sometimes. To use:
-// 1) Include it into the leaf class
-// 2) Use DEFINE_EMBEDDED to save/load its state
-// 3) Call Init in the CreateComponents method
-// 4) Use Speak() when it's time to speak
-// 5) Add m_Sentences.UpdateSentenceQueue(); to the PrescheduleThink method of an NPC
-// to get queued sentence support working
-//-----------------------------------------------------------------------------
-enum SentenceCriteria_t
-{
- SENTENCE_CRITERIA_ALWAYS = 0,
- SENTENCE_CRITERIA_NORMAL, // Obeys gag rules
- SENTENCE_CRITERIA_IN_SQUAD,
- SENTENCE_CRITERIA_SQUAD_LEADER,
-};
-
-enum SentencePriority_t
-{
- SENTENCE_PRIORITY_INVALID = -1,
- SENTENCE_PRIORITY_NORMAL = 0,
- SENTENCE_PRIORITY_MEDIUM = 1,
- SENTENCE_PRIORITY_HIGH = 2,
-};
-
-
-//-----------------------------------------------------------------------------
-// This is the met of the class
-//-----------------------------------------------------------------------------
-abstract_class CAI_SentenceBase : public CAI_Component
-{
- DECLARE_CLASS_NOBASE( CAI_SentenceBase );
- DECLARE_SIMPLE_DATADESC();
-
-public:
- CAI_SentenceBase();
-
- void SetVoicePitch( int voicePitch );
- int GetVoicePitch() const;
-
- // Check for queued-up-sentences + speak them
- void UpdateSentenceQueue();
-
- // Returns the sentence index played, which can be used to determine
- // the sentence length of time using engine->SentenceLength
- int Speak( const char *pSentence, SentencePriority_t nSoundPriority = SENTENCE_PRIORITY_NORMAL, SentenceCriteria_t nCriteria = SENTENCE_CRITERIA_IN_SQUAD );
-
- // Returns the sentence index played, which can be used to determine
- // the sentence length of time using engine->SentenceLength. If the sentence
- // was queued, then -1 is returned, which is the same result as if the sound wasn't played
- int SpeakQueued( const char *pSentence, SentencePriority_t nSoundPriority = SENTENCE_PRIORITY_NORMAL, SentenceCriteria_t nCriteria = SENTENCE_CRITERIA_IN_SQUAD );
-
- // Clears the sentence queue
- void ClearQueue();
-
-protected:
- virtual float GetVolume() = 0;
- virtual soundlevel_t GetSoundLevel() = 0;
-
-private:
- // Speech criteria
- bool MatchesCriteria( SentenceCriteria_t nCriteria );
-
- // Play the actual sentence
- int PlaySentence( const char *pSentence );
-
- // Debug output
- void SentenceMsg( const char *pStatus, const char *pSentence );
-
- int m_voicePitch;
- int m_nQueuedSentenceIndex;
- float m_flQueueTimeout;
- int m_nQueueSoundPriority;
-};
-
-
-//-----------------------------------------------------------------------------
-// NOTE: This is a template class so each user has a different set of globals
-//-----------------------------------------------------------------------------
-template< class NPC_CLASS >
-class CAI_Sentence : public CAI_SentenceBase
-{
- DECLARE_CLASS_NOFRIEND( CAI_Sentence, CAI_SentenceBase );
-
-public:
- void Init( NPC_CLASS *pOuter, const char *pGameSound );
-
-protected:
- virtual float GetVolume() { return m_sentenceVolume; }
- virtual soundlevel_t GetSoundLevel() { return m_sentenceSoundlevel; }
-
-private:
- static float m_sentenceVolume;
- static soundlevel_t m_sentenceSoundlevel;
- static int m_voicePitchMin;
- static int m_voicePitchMax;
-};
-
-
-//-----------------------------------------------------------------------------
-// Voice pitch
-//-----------------------------------------------------------------------------
-inline void CAI_SentenceBase::SetVoicePitch( int voicePitch )
-{
- m_voicePitch = voicePitch;
-}
-
-inline int CAI_SentenceBase::GetVoicePitch() const
-{
- return m_voicePitch;
-}
-
-
-//-----------------------------------------------------------------------------
-// Set up the class's sentence information
-//-----------------------------------------------------------------------------
-template< class NPC_CLASS >
-void CAI_Sentence< NPC_CLASS >::Init( NPC_CLASS *pOuter, const char *pGameSound )
-{
- SetOuter( pOuter );
-
- if ( m_voicePitchMin <= 0 || m_voicePitchMax <= 0 )
- {
- // init the sentence parameters using a dummy gamesounds entry
- CSoundParameters params;
- if ( GetOuter()->GetParametersForSound( pGameSound, params, NULL ) )
- {
- m_sentenceVolume = params.volume;
- m_sentenceSoundlevel = params.soundlevel;
- m_voicePitchMin = params.pitchlow;
- m_voicePitchMax = params.pitchhigh;
- }
- }
-
- // Select a voice pitch
- if ( random->RandomInt(0,1) )
- {
- SetVoicePitch( random->RandomInt( m_voicePitchMin, m_voicePitchMax ) );
- }
- else
- {
- SetVoicePitch( 100 );
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// Global instantiation
-//-----------------------------------------------------------------------------
-template< class NPC_CLASS > float CAI_Sentence< NPC_CLASS >::m_sentenceVolume = 1.0f;
-template< class NPC_CLASS > soundlevel_t CAI_Sentence< NPC_CLASS >::m_sentenceSoundlevel = SNDLVL_NORM;
-template< class NPC_CLASS > int CAI_Sentence< NPC_CLASS >::m_voicePitchMin = 0;
-template< class NPC_CLASS > int CAI_Sentence< NPC_CLASS >::m_voicePitchMax = 0;
-
-
-
-#endif // AI_SENTENCE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef AI_SENTENCE_H
+#define AI_SENTENCE_H
+
+#include "ai_component.h"
+#include "ai_basenpc.h"
+#include "SoundEmitterSystem/isoundemittersystembase.h"
+
+
+//-----------------------------------------------------------------------------
+// Sentence helper class used by humanoids sometimes. To use:
+// 1) Include it into the leaf class
+// 2) Use DEFINE_EMBEDDED to save/load its state
+// 3) Call Init in the CreateComponents method
+// 4) Use Speak() when it's time to speak
+// 5) Add m_Sentences.UpdateSentenceQueue(); to the PrescheduleThink method of an NPC
+// to get queued sentence support working
+//-----------------------------------------------------------------------------
+enum SentenceCriteria_t
+{
+ SENTENCE_CRITERIA_ALWAYS = 0,
+ SENTENCE_CRITERIA_NORMAL, // Obeys gag rules
+ SENTENCE_CRITERIA_IN_SQUAD,
+ SENTENCE_CRITERIA_SQUAD_LEADER,
+};
+
+enum SentencePriority_t
+{
+ SENTENCE_PRIORITY_INVALID = -1,
+ SENTENCE_PRIORITY_NORMAL = 0,
+ SENTENCE_PRIORITY_MEDIUM = 1,
+ SENTENCE_PRIORITY_HIGH = 2,
+};
+
+
+//-----------------------------------------------------------------------------
+// This is the met of the class
+//-----------------------------------------------------------------------------
+abstract_class CAI_SentenceBase : public CAI_Component
+{
+ DECLARE_CLASS_NOBASE( CAI_SentenceBase );
+ DECLARE_SIMPLE_DATADESC();
+
+public:
+ CAI_SentenceBase();
+
+ void SetVoicePitch( int voicePitch );
+ int GetVoicePitch() const;
+
+ // Check for queued-up-sentences + speak them
+ void UpdateSentenceQueue();
+
+ // Returns the sentence index played, which can be used to determine
+ // the sentence length of time using engine->SentenceLength
+ int Speak( const char *pSentence, SentencePriority_t nSoundPriority = SENTENCE_PRIORITY_NORMAL, SentenceCriteria_t nCriteria = SENTENCE_CRITERIA_IN_SQUAD );
+
+ // Returns the sentence index played, which can be used to determine
+ // the sentence length of time using engine->SentenceLength. If the sentence
+ // was queued, then -1 is returned, which is the same result as if the sound wasn't played
+ int SpeakQueued( const char *pSentence, SentencePriority_t nSoundPriority = SENTENCE_PRIORITY_NORMAL, SentenceCriteria_t nCriteria = SENTENCE_CRITERIA_IN_SQUAD );
+
+ // Clears the sentence queue
+ void ClearQueue();
+
+protected:
+ virtual float GetVolume() = 0;
+ virtual soundlevel_t GetSoundLevel() = 0;
+
+private:
+ // Speech criteria
+ bool MatchesCriteria( SentenceCriteria_t nCriteria );
+
+ // Play the actual sentence
+ int PlaySentence( const char *pSentence );
+
+ // Debug output
+ void SentenceMsg( const char *pStatus, const char *pSentence );
+
+ int m_voicePitch;
+ int m_nQueuedSentenceIndex;
+ float m_flQueueTimeout;
+ int m_nQueueSoundPriority;
+};
+
+
+//-----------------------------------------------------------------------------
+// NOTE: This is a template class so each user has a different set of globals
+//-----------------------------------------------------------------------------
+template< class NPC_CLASS >
+class CAI_Sentence : public CAI_SentenceBase
+{
+ DECLARE_CLASS_NOFRIEND( CAI_Sentence, CAI_SentenceBase );
+
+public:
+ void Init( NPC_CLASS *pOuter, const char *pGameSound );
+
+protected:
+ virtual float GetVolume() { return m_sentenceVolume; }
+ virtual soundlevel_t GetSoundLevel() { return m_sentenceSoundlevel; }
+
+private:
+ static float m_sentenceVolume;
+ static soundlevel_t m_sentenceSoundlevel;
+ static int m_voicePitchMin;
+ static int m_voicePitchMax;
+};
+
+
+//-----------------------------------------------------------------------------
+// Voice pitch
+//-----------------------------------------------------------------------------
+inline void CAI_SentenceBase::SetVoicePitch( int voicePitch )
+{
+ m_voicePitch = voicePitch;
+}
+
+inline int CAI_SentenceBase::GetVoicePitch() const
+{
+ return m_voicePitch;
+}
+
+
+//-----------------------------------------------------------------------------
+// Set up the class's sentence information
+//-----------------------------------------------------------------------------
+template< class NPC_CLASS >
+void CAI_Sentence< NPC_CLASS >::Init( NPC_CLASS *pOuter, const char *pGameSound )
+{
+ SetOuter( pOuter );
+
+ if ( m_voicePitchMin <= 0 || m_voicePitchMax <= 0 )
+ {
+ // init the sentence parameters using a dummy gamesounds entry
+ CSoundParameters params;
+ if ( GetOuter()->GetParametersForSound( pGameSound, params, NULL ) )
+ {
+ m_sentenceVolume = params.volume;
+ m_sentenceSoundlevel = params.soundlevel;
+ m_voicePitchMin = params.pitchlow;
+ m_voicePitchMax = params.pitchhigh;
+ }
+ }
+
+ // Select a voice pitch
+ if ( random->RandomInt(0,1) )
+ {
+ SetVoicePitch( random->RandomInt( m_voicePitchMin, m_voicePitchMax ) );
+ }
+ else
+ {
+ SetVoicePitch( 100 );
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Global instantiation
+//-----------------------------------------------------------------------------
+template< class NPC_CLASS > float CAI_Sentence< NPC_CLASS >::m_sentenceVolume = 1.0f;
+template< class NPC_CLASS > soundlevel_t CAI_Sentence< NPC_CLASS >::m_sentenceSoundlevel = SNDLVL_NORM;
+template< class NPC_CLASS > int CAI_Sentence< NPC_CLASS >::m_voicePitchMin = 0;
+template< class NPC_CLASS > int CAI_Sentence< NPC_CLASS >::m_voicePitchMax = 0;
+
+
+
+#endif // AI_SENTENCE_H