; Settings for "CAMPNESS". This is used to determine when VoiceMoveToCamp is used. All the nearby
; friendly buildings (only buildings) add up their campness. If the campness of the unit's current
; location is less than or equal to VoiceMoveToCampMaxCampnessAtStartPoint, and the campness of the
; unit's move-to locaion is greater than or equal to VoiceMoveToCampMinCampnessAtEndPoint, we do
; VoiceMoveToCamp or VoiceRetreatToCastle
#define CAMPNESS_DEFAULT 2000 ; E.g. 3 normal buildings in an area make it a camp
#define CAMPNESS_FORTRESS 3000 ; Unless it's by itself, a fortress is normally in a camp
#define CAMPNESS_FORTRESS_EXPANSION 700 ; A well-built fortress, by itself, is a camp!
#define CAMPNESS_WALL 1 ; Walls don't make a camp, but they do prevent you from using VoiceMoveToCamp near them (because sometimes you get a bunch of old walls left laying around)
#define CAMPNESS_DEFENSIVE_TOWER 2000 ; Defensive structures count same as production buildings
#define CAMPNESS_RESOURCE_BUILDING 1000 ; An outlying farm or two doesn't make a camp. Want some production buildings -- but they still help (2 production plus a farm is good enough)
#define CAMPNESS_SUMMONED 0 ; Summoning in a lone tower to help with a battle does NOT prevent VoiceRetreatToCastle if you run from the battle
#define CAMPNESS_SUMMONED_CITADEL #ADD( CAMPNESS_FORTRESS 0 ) ; ... except for a summoned citadel. Those things still count as a fortress
#define CAMPNESS_ALWAYS_CAMP 5000 ; Special structure which is preplaced and always counts as a camp
#define CAMPNESS_TECH_BUILDING 0 ; Not really a camp placed by the user
#define CAMPNESS_RESOURCE_REBUILD_HOLE 1 ; Don't count moving to smashed rubble as being a move to camp
AudioSettings
AudioRoot = Data\Audio ; relative to the current working directory
SoundsFolder = Sounds ; relative to Audio Root
MusicFolder = Tracks ; relative to Audio Root
StreamingFolder = Speech ; relative to Audio Root
AmbientStreamFolder = AmbientStreams ; relative to Audio Root
SoundsExtension = wav ; What is the extension for sound effects? (Probably wav)
UseDigital = Yes ; Should be Yes
UseMidi = No ; Should be No
OutputRate = 44100 ; Can be 11025, 22050, 44100, etc.
OutputBits = 16 ; 8 or 16. Probably 16
OutputChannels = 2 ; Should be 2 for stereo, 1 for monoaural (We want stereo)
MixaheadLatency = 112 ; Time, in milliseconds, that Miles should "mix ahead"
; Larger numbers mean that you will get less audio corruption
; when there is heavy CPU or I/O usage in other parts of the
; game. E.g. less skips and clicks in the music. This is
; especially noticable for Windows 98 & Me.
; However, this also adds to the time that the audio system
; takes to react to any requests. E.g. if this is 6000, then
; it will take 6 seconds between the time a unit starts moving
; and the time its move loop starts playing.
; Number should be divisible by 8.
; The Miles default is 64. Setting it lower is NOT recommended.
; We may want to consider setting it slightly higher, though.
; In particular, we may want to consider setting this higher for
; low-end machines (esp 98 + Me) which are more likely to starve
; their audio threads.
MixaheadLatencyDuringMovies = 700 ; Mix ahead while full screen movies are playing. Higher because
; we're in a tight loop and often being starved.
LoopBufferLengthMS = 500 ; To work correctly with hardware providers, we need to put looped
; sounds into a buffer which we then "fill behind the read pointer."
; This is the size of that buffer, in MS. If this number is too small,
; we risk having repeated sound fragments (if the read pointer loops
; all the way round before we fill the buffer any more). Making this
; number too large will waste memory, plus it will make such sounds
; less responsive to stop requests.
; Actually, there's no point in making this below 384 MS. The code
; internally will force all buffers to be at least 33K, because
; Miles copies data in in 16K chunks. So setting this smaller won't
; make your buffers any smaller. (384 MS = 33K divided by the data
; rate of a 44.1K, 16 bit sound. OK, actually for a stereo sound,
; this could be 192, but we mostly work on mono sounds.)
; Note that file read of the next .wav file takes place during this
; time, so 1/2 of the buffer duration needs to be enough time to read a
; wav off of disk, decompress it (if needed), and shove it into
; the buffer.
LoopBufferCallbackCallsPerBufferLength = 8 ; Number of times callback should check the buffer during the
; length given by LoopBufferLengthMS. (e.g. if this is 8 and
; LoopBufferLengthMS is 80, the callback will check every 10 milliseconds)
; Higher numbers will decrease the chance that we'll only notice the
; buffer needs servicing when it's close to running out of sound,
; but it will increase the CPU usage.
; This was the old workaround for the Audigy 2 bug, where all the newer Creative Labs cards would quit
; working after a bit over 6 hours. Now, Miles better internal workaround seems to be in place, and
; CL has promised to fix their drivers, so we shouldn't need it anymore.
; Set these to something other than zero to reenable the hack-around.
ForceResetTimeSeconds = 0 ; 14400 ; 4 hours If we haven't reset the entire audio system for this many seconds when loading/exiting a level, reset it
EmergencyResetTimeSeconds = 0 ; 21600 ; 6 hours If we haven't reset the entire audio system for this many seconds, regardless of where we are, reset it.
MusicScriptLibraryName = "Libraries\Music_MusicScripts_Single\Music_MusicScripts_Single.map" ; Name of the MAP file containing the music scripts.
AutomaticSubtitleDurationMS = 20000 ; If the string "DIALOGEVENT:<soundfilename>Subtitle" is defined, a subtitle will
; be displayed when the sound file is played. This is the amount of time the
; subtitle stays visible.
AutomaticSubtitleWindowWidth = 640 ; Width of window to display subtitles in
AutomaticSubtitleLines = 8 ; Lines of text to display
AutomaticSubtitleWindowColor = R:0 G:0 B:0 A:128 ; Color of window to display subtitles in
AutomaticSubtitleTextColor = R:255 G:204 B:0 A:255 ; Color of actual text
PositionDeltaForReverbRecheck = 10 ; How far I need to move to get a recheck for reverb-suppress areas
SampleCount2D = 4 ; How many 2-D (UI) samples should we allow simultaneously (Note: Hardware may support less than the desired number)
SampleCount3D = 25 ; How many 3-D (World) samples should we allow simultaneously (Note: Hardware may support less than the desired number)
StreamCount = 3 ; How many streaming audio things should we allow simultaneously (Note: Hardware may support less than the desired number)
GlobalMinRange = 5000 ; What is the minimum range when the global type is specified?
GlobalMaxRange = 5000000 ; What is the maximum range when the global type is specified?
; This should be very, very large -- bigger than the diagonal of the largest possible map
; Also used as the max range of sounds with a minimum volume
TimeToFadeAudio = 2000 ; How many ms should audio take to fade in/out.
AudioFootprintInBytes = 8388608 ; 8 Megs
MinSampleVolume = 2 ; Sounds quiter than this will be clipped out
AmbientStreamHysteresisVolume = 10 ; How much louder a new ambient stream needs to be than the currently playing ambient stream before we switch over
MillisecondsPriorToPlayingToReadSoundFile = 1000 ; For sounds with long delays, how long before the sound is due to play should we ask the cache to read the file
SuppressOcclusion = No ; Can be set to yes to debug problems related to occlusion
MinOcclusion = 5% ; There appears to be a bug in Miles that setting a very small occlusion value will cause a horrible
; squeal / squeak sound. To avoid, take any occlusion value < MinOcclusion and just tell Miles to
;; You can set this if you don't want them to be the same as tactical
;LivingWorldZoomFadeDistanceForMaxEffect = 300 ; How far off screen do the sounds need to be to get the full fading effect? (in War of the Rings)
;LivingWorldZoomFadeZeroEffectEdgeLength = 450 ; When the shortest edge of the viewed region is longer than this, we do not use zoom-based fadeout (in War of the Rings)
;LivingWorldZoomFadeFullEffectEdgeLength = 175 ; When the shortest edge of the viewed region is shorter than this, we apply 100% of the zoom-based fadeout (in War of the Rings)
; Settings for VoiceMoveToCamp/VoiceRetreatToCastle. Sorry, but they have to go somewhere
VoiceMoveToCampMaxCampnessAtStartPoint = 0 ; The 'campness' level at the unit's current position must be no more than this to use VoiceMoveToCamp
VoiceMoveToCampMinCampnessAtEndPoint = 5000 ; The 'campness' level at the move-to position must be no less than this
; Don't play a given EnterState voice if we already played the exact same voice within this timeout:
MinDelayBetweenEnterStateVoiceMS = 5000
End
; Some global settings for the AnimationSoundClientBehavior modules
AnimationSoundClientBehaviorGlobalSetting
MinMicrophoneDistanceToDirty = 61 ; How far does the microphone need to move before we look at all the
; AnimationSoundClientBehavior modules which were out of range at the
; start of the move and ask if they are now in range?
; Too small a value will cause us to be running though these lists
; every frame during cinematics; too large and we can get pretty close