Index: src/sound.cpp
===================================================================
--- src/sound.cpp	(revision 56125)
+++ src/sound.cpp	(working copy)
@@ -238,7 +238,7 @@
 
 static std::string pick_one(const std::string &files)
 {
-	std::vector<std::string> ids = utils::split(files);
+	std::vector<std::string> ids = utils::square_parenthetical_split(files,',',"[","]");
 
 	if (ids.empty())
 		return "";
Index: data/core/macros/sound-utils.cfg
===================================================================
--- data/core/macros/sound-utils.cfg	(revision 56125)
+++ data/core/macros/sound-utils.cfg	(working copy)
@@ -369,124 +369,124 @@
 #!         [/frame]
 
 #define SOUND_LIST:HOLY
-magic-holy-1.ogg,magic-holy-2.ogg,magic-holy-3.ogg,magic-holy-4.ogg #enddef
+magic-holy-[1~4].ogg #enddef
 
 #define SOUND_LIST:HOLY_MISS
-magic-holy-miss-1.ogg,magic-holy-miss-2.ogg,magic-holy-miss-3.ogg,magic-holy-miss-4.ogg #enddef
+magic-holy-miss-[1~4].ogg #enddef
 
 #define SOUND_LIST:MISS
-miss-1.ogg,miss-2.ogg,miss-3.ogg #enddef
+miss-[1~3].ogg #enddef
 
 #define SOUND_LIST:THROW
-throw-1.wav,throw-2.wav,throw-3.wav,throw-4.wav #enddef
+throw-[1~4].wav #enddef
 
 #define SOUND_LIST:SWORD_SWISH
 sword-1.ogg #enddef
 
 #define SOUND_LIST:BAT_HIT
-bat-hit-1.ogg,bat-hit-2.ogg,bat-hit-3.ogg,bat-hit-4.ogg #enddef
+bat-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:DRAKE_HIT
-drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg #enddef
+drake-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:DWARF_HIT
-dwarf-hit-1.ogg,dwarf-hit-2.ogg,dwarf-hit-3.ogg,dwarf-hit-4.ogg #enddef
+dwarf-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:DWARF_DIE
-dwarf-die-1.ogg,dwarf-die-2.ogg #enddef
+dwarf-die-[1~2].ogg #enddef
 
 #define SOUND_LIST:ELF_HIT
-human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg #enddef
+human-hit-[1~4].ogg,elf-hit-[1~2].ogg #enddef
 
 #define SOUND_LIST:ELF_FEMALE_HIT
-human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg #enddef
+human-female-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:GOBLIN_HIT
-goblin-hit-1.ogg,goblin-hit-2.ogg,goblin-hit-3.ogg #enddef
+goblin-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:GOBLIN_DIE
-goblin-die-1.ogg,goblin-die-2.ogg #enddef
+goblin-die-[1~2].ogg #enddef
 
 #define SOUND_LIST:GRYPHON_HIT
-gryphon-hit-1.ogg,gryphon-hit-2.ogg,gryphon-hit-3.ogg #enddef
+gryphon-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:GRYPHON_DIE
-gryphon-die-1.ogg,gryphon-die-2.ogg #enddef
+gryphon-die-[1~2].ogg #enddef
 
 #define SOUND_LIST:HORSE_HIT
-horse-hit-1.ogg,horse-hit-2.ogg,horse-hit-3.ogg #enddef
+horse-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:HUMAN_HIT
-human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,human-hit-5.ogg #enddef
+human-hit-[1~5].ogg #enddef
 
 #define SOUND_LIST:HUMAN_FEMALE_HIT
-human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg #enddef
+human-female-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:HUMAN_OLD_HIT
-human-old-hit-1.ogg,human-old-hit-2.ogg,human-old-hit-3.ogg,human-old-hit-4.ogg #enddef
+human-old-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:HUMAN_OLD_DIE
-human-old-die-1.ogg,human-old-die-2.ogg,human-old-die-3.ogg #enddef
+human-old-die-[1~3].ogg #enddef
 
 #define SOUND_LIST:HUMAN_DIE
-human-die-1.ogg,human-die-2.ogg,human-die-3.ogg #enddef
+human-die-[1~3].ogg #enddef
 
 #define SOUND_LIST:HUMAN_FEMALE_DIE
-human-female-die-1.ogg,human-female-die-2.ogg,human-female-die-3.ogg #enddef
+human-female-die-[1~3].ogg #enddef
 
 #define SOUND_LIST:LICH_HIT
-lich-hit-1.ogg,lich-hit-2.ogg #enddef
+lich-hit-[1~2].ogg #enddef
 
 #define SOUND_LIST:NAGA_HIT
-naga-hit-1.ogg,naga-hit-2.ogg,naga-hit-3.ogg #enddef
+naga-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:OGRE_HIT
-ogre-hit-1.ogg,ogre-hit-2.ogg,ogre-hit-3.ogg,ogre-hit-4.ogg #enddef
+ogre-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:OGRE_DIE
-ogre-die-1.ogg,ogre-die-2.ogg,ogre-die-3.ogg #enddef
+ogre-die-[1~3].ogg #enddef
 
 #define SOUND_LIST:ORC_HIT
-orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg #enddef
+orc-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:ORC_DIE
-orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg #enddef
+orc-die-[1~3].ogg #enddef
 
 #define SOUND_LIST:ORC_SMALL_HIT
-orc-small-hit-1.ogg,orc-small-hit-2.ogg,orc-small-hit-3.ogg,orc-small-hit-4.ogg #enddef
+orc-small-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:ORC_SMALL_DIE
-orc-small-die-1.ogg,orc-small-die-2.ogg #enddef
+orc-small-die-[1~2].ogg #enddef
 
 #define SOUND_LIST:SKELETON_HIT
-skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg #enddef
+skeleton-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:SKELETON_BIG_HIT
-skeleton-big-hit-1.ogg,skeleton-big-hit-2.ogg,skeleton-big-hit-3.ogg #enddef
+skeleton-big-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:SKELETON_DIE
-skeleton-die-1.ogg,skeleton-die-2.ogg #enddef
+skeleton-die-[1~2].ogg #enddef
 
 #define SOUND_LIST:TROLL_HIT
-troll-hit-1.ogg,troll-hit-2.ogg,troll-hit-3.ogg,troll-hit-4.ogg #enddef
+troll-hit-[1~4].ogg #enddef
 
 #define SOUND_LIST:TROLL_DIE
-troll-die-1.ogg,troll-die-2.ogg,troll-die-3.ogg #enddef
+troll-die-[1~3].ogg #enddef
 
 #define SOUND_LIST:WOLF_GROWL
-wolf-growl-1.ogg,wolf-growl-2.ogg,wolf-growl-3.ogg,wolf-growl-4.ogg #enddef
+wolf-growl-[1~4].ogg #enddef
 
 #define SOUND_LIST:WOLF_HIT
-wolf-hit-1.ogg,wolf-hit-2.ogg,wolf-hit-3.ogg #enddef
+wolf-hit-[1~3].ogg #enddef
 
 #define SOUND_LIST:WOLF_DIE
-wolf-die-1.ogg,wolf-die-2.ogg,wolf-die-3.ogg,wolf-die-4.ogg #enddef
+wolf-die-[1~4].ogg #enddef
 
 #define SOUND_LIST:ZOMBIE_WEAK_HIT
-zombie-hit-4.ogg,zombie-hit-5.ogg,zombie-hit-6.ogg #enddef
+zombie-hit-[4~6].ogg #enddef
 
 #define SOUND_LIST:ZOMBIE_HIT
-zombie-hit-1.ogg,zombie-hit-2.ogg,zombie-hit-3.ogg,zombie-hit-4.ogg,zombie-hit-5.ogg,zombie-hit-6.ogg #enddef
+zombie-hit-[1~6].ogg #enddef
 
 #define SOUND:SLOW
     # A convenient way to use the standard slowing sound in an attack
Index: src/game_config.cpp
===================================================================
--- src/game_config.cpp	(revision 56125)
+++ src/game_config.cpp	(working copy)
@@ -135,7 +135,7 @@
 	namespace sounds {
 		const std::string turn_bell = "bell.wav",
 		timer_bell = "timer.wav",
-		receive_message = "chat-1.ogg,chat-2.ogg,chat-3.ogg",
+		receive_message = "chat-[1~3].ogg",
 		receive_message_highlight = "chat-highlight.ogg",
 		receive_message_friend = "chat-friend.ogg",
 		receive_message_server = "receive.wav",
Index: data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Star.cfg
===================================================================
--- data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Star.cfg	(revision 56125)
+++ data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Star.cfg	(working copy)
@@ -185,7 +185,7 @@
                 begin=-75
                 end=0
                 image="units/elves-desert/shyde-ftouch-attack3.png"
-                sound=magic-thorns-1.ogg,magic-thorns-2.ogg
+                sound=magic-thorns-[1,2].ogg
                 halo=halo/elven/nature-halo6.png
                 halo_x,halo_y=0,-12
             [/frame]
@@ -196,7 +196,7 @@
                 begin=-75
                 end=0
                 image="units/elves-desert/shyde-ftouch-attack3.png"
-                sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
+                sound=magic-thorns-miss-[1,2].ogg
                 halo=halo/elven/nature-halo6.png
                 halo_x,halo_y=0,-12
             [/frame]
Index: data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Shyde.cfg
===================================================================
--- data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Shyde.cfg	(revision 56125)
+++ data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Shyde.cfg	(working copy)
@@ -176,7 +176,7 @@
                 begin=-75
                 end=0
                 image="units/elves-desert/shyde-ftouch-attack3.png"
-                sound=magic-thorns-1.ogg,magic-thorns-2.ogg
+                sound=magic-thorns-[1,2].ogg
                 halo=halo/elven/nature-halo6.png
                 halo_x,halo_y=0,-12
             [/frame]
@@ -187,7 +187,7 @@
                 begin=-75
                 end=0
                 image="units/elves-desert/shyde-ftouch-attack3.png"
-                sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
+                sound=magic-thorns-miss-[1,2].ogg
                 halo=halo/elven/nature-halo6.png
                 halo_x,halo_y=0,-12
             [/frame]
Index: data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Druid.cfg
===================================================================
--- data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Druid.cfg	(revision 56125)
+++ data/campaigns/Under_the_Burning_Suns/units/elves/Desert_Druid.cfg	(working copy)
@@ -153,7 +153,7 @@
                 end=75
                 image="units/elves-desert/druid-magic-4.png"
                 halo="halo/elven/nature-halo5.png"
-                sound=magic-thorns-1.ogg,magic-thorns-2.ogg
+                sound=magic-thorns-[1,2].ogg
                 halo_x,halo_y=0,-12
             [/frame]
         [/if]
@@ -164,7 +164,7 @@
                 end=75
                 image="units/elves-desert/druid-magic-4.png"
                 halo="halo/elven/nature-halo5.png"
-                sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
+                sound=magic-thorns-miss-[1,2].ogg
                 halo_x,halo_y=0,-12
             [/frame]
         [/else]
Index: data/core/units/elves/Druid.cfg
===================================================================
--- data/core/units/elves/Druid.cfg	(revision 56125)
+++ data/core/units/elves/Druid.cfg	(working copy)
@@ -165,7 +165,7 @@
                 end=75
                 image="units/elves-wood/druid-magic-4.png"
                 halo="halo/elven/nature-halo5.png"
-                sound=magic-thorns-1.ogg,magic-thorns-2.ogg
+                sound=magic-thorns-[1,2].ogg
                 halo_x,halo_y=0,-12
             [/frame]
         [/if]
@@ -176,7 +176,7 @@
                 end=75
                 image="units/elves-wood/druid-magic-4.png"
                 halo="halo/elven/nature-halo5.png"
-                sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
+                sound=magic-thorns-miss-[1,2].ogg
                 halo_x,halo_y=0,-12
             [/frame]
         [/else]
Index: data/core/units/elves/Shyde.cfg
===================================================================
--- data/core/units/elves/Shyde.cfg	(revision 56125)
+++ data/core/units/elves/Shyde.cfg	(working copy)
@@ -187,7 +187,7 @@
                 begin=-75
                 end=0
                 image="units/elves-wood/shyde-ftouch-attack3.png"
-                sound=magic-thorns-1.ogg,magic-thorns-2.ogg
+                sound=magic-thorns-[1,2].ogg
                 halo=halo/elven/nature-halo6.png
                 halo_x,halo_y=0,-12
             [/frame]
@@ -198,7 +198,7 @@
                 begin=-75
                 end=0
                 image="units/elves-wood/shyde-ftouch-attack3.png"
-                sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
+                sound=magic-thorns-miss-[1,2].ogg
                 halo=halo/elven/nature-halo6.png
                 halo_x,halo_y=0,-12
             [/frame]
Index: data/core/units/humans/Mage.cfg
===================================================================
--- data/core/units/humans/Mage.cfg	(revision 56125)
+++ data/core/units/humans/Mage.cfg	(working copy)
@@ -84,7 +84,7 @@
                 begin=-350
                 end=-100
                 image="units/human-magi/mage-attack-magic2.png"
-                sound=magic-missile-1-miss.ogg,magic-missile-2-miss.ogg,magic-missile-3-miss.ogg
+                sound=magic-missile-[1~3]-miss.ogg
             [/frame]
         [/if]
         [else]
@@ -93,7 +93,7 @@
                 begin=-350
                 end=-100
                 image="units/human-magi/mage-attack-magic2.png"
-                sound=magic-missile-1.ogg,magic-missile-2.ogg,magic-missile-3.ogg
+                sound=magic-missile-[1~3].ogg
             [/frame]
         [/else]
         [frame]
Index: data/core/units/humans/Mage_Silver.cfg
===================================================================
--- data/core/units/humans/Mage_Silver.cfg	(revision 56125)
+++ data/core/units/humans/Mage_Silver.cfg	(working copy)
@@ -90,7 +90,7 @@
                 begin=-350
                 end=-100
                 image="units/human-magi/silver-mage-attack-magic2.png"
-                sound=magic-missile-1-miss.ogg,magic-missile-2-miss.ogg,magic-missile-3-miss.ogg
+                sound=magic-missile-[1~3]-miss.ogg
             [/frame]
         [/if]
         [else]
@@ -99,7 +99,7 @@
                 begin=-350
                 end=-100
                 image="units/human-magi/silver-mage-attack-magic2.png"
-                sound=magic-missile-1.ogg,magic-missile-2.ogg,magic-missile-3.ogg
+                sound=magic-missile-[1~3].ogg
             [/frame]
         [/else]
         [frame]
