by Skippy » Wed Feb 13, 2008 9:31 am
I think there's a bit of confusion here. In your first post you wanted a full-volume positional sound (ie panned according to where the emitter is relative to the camera). Now you're asking for a full-volume surround sound. This is exactly how the +BOSS flag behaves already, so I assume your first statement is the valid one.
In case there's still confusion, let me point out that Doom's definition of a 'surround sound' is one that is played at the centre of the stereo mix (ie with equal volume in both left and right channels) regardless of where the emitter is positioned relative to the camera - the equivalent of a value of 2 in the attenuation parameter of A_PlaySoundEx. The +BOSS flag implies this behaviour in the original Doom executables and that's how it must stay for compatibility reasons.
If you use GZDoom or the SVN, you can easily achieve what you want with actor replacement and custom Spawn and Death states.
Code: Select all
actor CyberNoSurround : Cyberdemon replaces Cyberdemon {
seesound ""
deathsound ""
States
{
Spawn:
CYBR AB 10 A_LookEx(0, 0, 0, 0, 0, "ISeeYou")
loop
ISeeYou:
TNT1 A 0 A_PlaySoundEx("cyber/sight","Voice",0,1)
Goto See
Death:
CYBR H 10
CYBR I 10 A_PlaySoundEx("cyber/death","Voice",0,1)
CYBR JKL 10
CYBR M 10 A_NoBlocking
CYBR NO 10
CYBR P 30
CYBR P -1 A_BossDeath
}
}
I think there's a bit of confusion here. In your first post you wanted a full-volume positional sound (ie panned according to where the emitter is relative to the camera). Now you're asking for a full-volume surround sound. This is exactly how the +BOSS flag behaves already, so I assume your first statement is the valid one.
In case there's still confusion, let me point out that Doom's definition of a 'surround sound' is one that is played at the centre of the stereo mix (ie with equal volume in both left and right channels) regardless of where the emitter is positioned relative to the camera - the equivalent of a value of 2 in the attenuation parameter of A_PlaySoundEx. The +BOSS flag implies this behaviour in the original Doom executables and that's how it must stay for compatibility reasons.
If you use GZDoom or the SVN, you can easily achieve what you want with actor replacement and custom Spawn and Death states.
[code]actor CyberNoSurround : Cyberdemon replaces Cyberdemon {
seesound ""
deathsound ""
States
{
Spawn:
CYBR AB 10 A_LookEx(0, 0, 0, 0, 0, "ISeeYou")
loop
ISeeYou:
TNT1 A 0 A_PlaySoundEx("cyber/sight","Voice",0,1)
Goto See
Death:
CYBR H 10
CYBR I 10 A_PlaySoundEx("cyber/death","Voice",0,1)
CYBR JKL 10
CYBR M 10 A_NoBlocking
CYBR NO 10
CYBR P 30
CYBR P -1 A_BossDeath
}
}
[/code]