The Freehold
New member
I'm trying to update my heatmap reduction mod by adding in a sounds.xml. I can make change all the heat_map_strength and heat_map_time values quiet easily.
<reduce_all_heat_map_sounds>
<!-- heat_map_strength: how much to add to heat map (once 100 is hit, horde scout is spawned) -->
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.05']/@heat_map_strength">0.025</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.1']/@heat_map_strength">0.05</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.2']/@heat_map_strength">0.1</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.25']/@heat_map_strength">0.125</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.3']/@heat_map_strength">0.15</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.4']/@heat_map_strength">0.2</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.5']/@heat_map_strength">0.25</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.6']/@heat_map_strength">0.3</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.65']/@heat_map_strength">0.325</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.75']/@heat_map_strength">0.375</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.8']/@heat_map_strength">0.4</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.9']/@heat_map_strength">0.45</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='1.0']/@heat_map_strength">0.5</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='1.42']/@heat_map_strength">0.71</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='1.5']/@heat_map_strength">0.75</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='2.1']/@heat_map_strength">1.05</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='5']/@heat_map_strength">2.5</set>
<!-- heat_map_time: how long this heat "event" will stick around and add to the local heat map strength. (60 equals about 100 seconds) -->
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='60']/@heat_map_time">30</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='90']/@heat_map_time">45</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='120']/@heat_map_time">60</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='180']/@heat_map_time">90</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='300']/@heat_map_time">150</set>
</reduce_all_heat_map_sounds>
It works great, but it's ham-fisted. I don't want to reduce all noise based heat map values. I'd much prefer to offer the option to have a more targeted version available, one that only reduces the heat_map_strength and heat_map_time of weapons' fire and explosion, but I can't seem to get that to work.
I've tried...
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_strength='5']/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_time='300']/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_strength]/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_time]/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and almost every combination of code I can think of. I could use some help here, please.
<reduce_all_heat_map_sounds>
<!-- heat_map_strength: how much to add to heat map (once 100 is hit, horde scout is spawned) -->
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.05']/@heat_map_strength">0.025</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.1']/@heat_map_strength">0.05</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.2']/@heat_map_strength">0.1</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.25']/@heat_map_strength">0.125</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.3']/@heat_map_strength">0.15</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.4']/@heat_map_strength">0.2</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.5']/@heat_map_strength">0.25</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.6']/@heat_map_strength">0.3</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.65']/@heat_map_strength">0.325</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.75']/@heat_map_strength">0.375</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.8']/@heat_map_strength">0.4</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='0.9']/@heat_map_strength">0.45</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='1.0']/@heat_map_strength">0.5</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='1.42']/@heat_map_strength">0.71</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='1.5']/@heat_map_strength">0.75</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='2.1']/@heat_map_strength">1.05</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_strength='5']/@heat_map_strength">2.5</set>
<!-- heat_map_time: how long this heat "event" will stick around and add to the local heat map strength. (60 equals about 100 seconds) -->
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='60']/@heat_map_time">30</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='90']/@heat_map_time">45</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='120']/@heat_map_time">60</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='180']/@heat_map_time">90</set>
<set xpath="/Sounds/SoundDataNode/Noise[@heat_map_time='300']/@heat_map_time">150</set>
</reduce_all_heat_map_sounds>
It works great, but it's ham-fisted. I don't want to reduce all noise based heat map values. I'd much prefer to offer the option to have a more targeted version available, one that only reduces the heat_map_strength and heat_map_time of weapons' fire and explosion, but I can't seem to get that to work.
I've tried...
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_strength='5']/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_time='300']/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_strength]/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise[@heat_map_time]/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and
<!-- explosion_grenade -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise/@heat_map_strength">2.5</set> <!-- explosion_grenade heatmapstrength; original value 5 -->
<set xpath="/Sounds/SoundDataNode[@name='explosion_grenade']/Noise/@heat_map_time">150</set> <!-- explosion_grenade HeatMapTime; original value 300 -->
and almost every combination of code I can think of. I could use some help here, please.