Ok, Gumby are you ready for this...
How difficult would it be to base the volume, not only off of the volume passed in the mp3's init statement, but to also incorporate the games current volume setting into that as well. Such that an in game volume of 15 would play the sound at 100% of the volume set in the init statement. So if init is set to 50% and gVolume is set to 15 then the sound would play at 50%. Likewise, lowering gVolume to say 10 via the menubar would then force the same mp3 to play at the same level as if I had entered 33% instead of 50% (.67 * 50) and lowering it to 5 would play the sound at 16% (.33 * 50).
As well, F2, or toggle sound. Any thoughts on how we could go about giving a user the ability to mute or unmute. Even moreso, while a sound is playing.
*Edit
Actually it appears as though the current in-game volume controls do not actually work. It took me a bit of testing to come to this conclusion but now I am pretty sure of it. In both the pnc template and the parser template, changing the volume has no effect on the games actual volume. Add this code to the init section of any room to see for yourself
FormatPrint("volume: %d %d" sndVOLUME gVolume)
Then simply go in the room, exit it and change the volume via menubar and then reenter room. I can't get either of the values to change and they should be changing as the volume is changed... which tells me the volume isn't changing.
Also, closely tied into that I tried to do some basic manipulating of the volume variable in the sciAudio script by adding this to the top of the if <> volume -111 snippet, for testing I figured just using a switch statement would be the easiest to see a result.
(if(<> volume -111)
(switch(sndVOLUME)
(case 0 = volume 0)
(case 8 = volume (/ 3 volume)) // until we fix the volume control issue noted above... this is the only case triggered.
(case 10 = volume (* (/ 3 volume) 2))
(case 15 = volume (* 1 volume))
)
...
Unfortunately, the value passed to the command.con didn't come out looking very pretty.
soundClass noSoundClass
volume u?

˦amp;??^]übr /> loopFadeInMillisecs 0000
** Edit 2
Ok I am no closer to any kind of solution, but assuming that someone figures out how to fix the in-game volume control, this line in the sciaudio script I believe makes sense logically, unfortunately it is still no closer to working as this time it sends an empty result to the con file which quickly kills the player.
//StrCat(@msgBuf (/ (* gVolume volume) 15))