The Sekhmet release has these (new) EDF keywords. I couldn't find myself the exact answer as what they do, or didn't take my time to test them. What are their uses in the game? :D

Sound definition block
- Auto or CHAN_AUTO, from subchannel (Sound) respectively from PlaySoundEx (codep). It's a default for the former so I assume it makes it play like Doom, but what about the latter? Also play like Doom, or rather create a new sound channel instead everytime, like CHAN_AUTO from Quake?
- pcslump field. You write down the full name of the PC sound lump? If prefix is Yes, then this field is NOT required? Writing a wrong name yields an error (when sound settings point are to PC sound)?
- nopcsound. Is it required if prefix is Yes and the wad has no DP* equivalent, otherwise the game would quit with an error?
(added) - random. Is it a list of lumps, or mnemonics?

Thing type definition block
- acs_spawndata is a subblock with two fields, separated by white spaces: num and modes. What's modes? Is num the number needed by Hexen format's Thing_Spawn?
- defaultsprite. Huh?

chan_auto, in the context of A_PlaySoundEx, means to defer to the sound definition for the default channel assignment. However the default channel assignment for sounds is also chan_auto, so if none is specified in the sound, it plays on the "default" channel, and this presents DOOM semantics to the end user, where playing of sounds by objects cut off the sounds they were already playing. This is for compatibility.

pcslump overrides the default semantics that are used to find PC speaker lumps for emulation. It is only necessary to specify an explicit pcslump if your sound does not conform to the DS* convention for sound naming. Missing PC speaker lumps never cause errors; the sounds are ignored if no PC speaker sound is found for them.

nopcsound means that this sound is NOT played during PC speaker emulation, even IF it has a valid lump. This is a property adapted from the commented out fragment of code for PC speaker device handling that was left in the Heretic and Hexen source code that indicated which sounds (mainly active and pain sounds) that DOOM declined to play through the PC speaker, due to the fact they would cause important sounds to cut off constantly.

random is a list of strings giving the mnemonics of sounds to which this particular sound will be randomly aliased. Ex:

code:
random = { posdth1, posdth2, posdth3 }

The sounds listed therein may themselves be random sounds, sound aliases, or links, because resolution is done recursively.

acs_spawndata specifies the ACS number for a thingtype. "mode" is a flags field which may currently be a combination of values Doom or Heretic (or eventually Hexen or Strife, but these are not currently recognized values). The thing will be given the ACS spawn number only in the given modes. This is necessary because only 256 spawn id's are available.

defaultsprite controls the remapping behavior of skins for objects that use more than one sprite. Any frame not using the defaultsprite is ignored for remapping by the skin. If not set, the defaultsprite is adapted from the object's first spawn state.

AUTOTRANSLATE is a flags4 flag value which causes the thing using it to adapt the current gamemode's DOOM->target palette translation table when spawned in a non-DOOM gamemode. This allows objects like the MBF helper dog to be properly colored in Heretic without requiring me to manually recolor the sprite lumps. This is not generally useful to end users. The default translation lump for Doom->Heretic is TR_DINH and is contained in base/heretic/eternity.wad.

Calling it ACS spawn number is a bit reductive because it's also used by non-ACS things, such as the clay pots and suits of armors, or a few action specials. All these things can be used in a Hexen map with a blank BEHAVIOR lump.

Gez said:Calling it ACS spawn number is a bit reductive because it's also used by non-ACS things, such as the clay pots and suits of armors, or a few action specials. All these things can be used in a Hexen map with a blank BEHAVIOR lump.

True but you weren't around to offer a better name for it when I added it ;) Too late now :P :P :P