cycloid Posted April 4, 2006 there are two sound types in Doom/Doom 2. 1. directional sounds, such as usual monster sounds 2. right-between-your-eyes sounds, such as weapons sounds however, some monster sounds are the latter, e.g. the Boss Brains "to end the game you must kill me john romero" is the between-the-eyes type no matter where you are or where you are facing you can hear it the same. some of the other sound pointers behave this way too, AFAIK the cyberdeemon CLOMP sound is one of these finally the point: can this be turned off for some of the codepointer-ed sounds, specifically the CLOMP,BRAINDIE etc. sounds? edit: ok so i've looked in the source, and indeed the spiderdemon and cyberdemon have special cases where their sound is played full-frontal to the player thus p_enemy.c // Check for bosses. if (actor->type==MT_SPIDER || actor->type == MT_CYBORG) { // full volume S_StartSound (NULL, sound); } else S_StartSound (actor, sound); now, presumably, for my new versions of these monsters to behave "normally" in this respect then all i have to do is swap their ids with, say, a lamp, that isn't otherwise being used. here's the full run down of which code pointers cause the in-yer-face sounds and when: A_Look (cyb/spid:wake up sound) A_Scream (cyb/spid:death sound) A_BrainAwake (hard coded:BOSSIT) A_BrainPain (hard coded:BOSPN) A_BrainScream (hard coded:BOSDTH) A_BrainSpit (hard coded:BOSPIT) to clarify, the spiderdemon and cyberdemon IDs are both immune to missile splash damage: p_map.c// // PIT_RadiusAttack // "bombsource" is the creature // that caused the explosion at "bombspot". // boolean PIT_RadiusAttack (mobj_t* thing) ... // Boss spider and cyborg // take no damage from concussion. if (thing->type == MT_CYBORG || thing->type == MT_SPIDER) return true; further investigations into code pointer functions direct from the source, should answer any queries once and for all: A_KeenDie calls A_Fall and then, if all are dead, the door open function with a tag of 666, the map number/moster type etc never come into it, it just blindly calls the function A_Hoof, A_Metal, A_BabyMetal play their respective sounds and then call the monster's "chase" pointer (walk towards player), nothing special happens otherwise, these are stnadard "Play sound where monster is" effects A_StartFire, A_FireCrackle call their respective sound fx and then attempt to update the archvile flame at the player's position, but wait, if you use this pointer for an effect on a monster instead of the player then the flame part simply doesnt happen, i've used the FLAMST sound like this myself for an extra monster sound as all it sounds like is "ff" , so you dont even notice when the archvile attacks you that it doesnt happen as you still hear the other "crackle" sound A_XScream just plays the gib, "slop" sound, urgh, icky! A_Pain plays the monster's pain sound, simple A_Fall just makes the monster non solid, could get wierd! A_SpawnSound plays the cube spawn sound, but then calls A_SpawnFly to actually launch it, which would be interesting as a monster heat seeking frag attack, but probably crashworthy A_PlayerScream interesting, plays the player's death sound (or the gib sound), could possibly be called for in-the-distance torture sfx :-) A_BrainDie exits level instantly A_BossDeath (the big one): (if player dies before sequence is complete it will fail, so suicide exits are not possible) Doom2 : map07 and Mancubus ID = sector 666 : lower floor to lowest adjacent floor : map07 and Arachnotron ID = sector 667 : raise by texture height uDoom : e1m8 and baron ID = sector 666 : lower floor to lowest adjacent floor : e2m8 and cyb ID = end level : e3m8 and spid ID = end level : e4m6 and cyb ID = sector 666 : open door fast : e4m8 and spid ID = sector 666 : lower floor to lowest adjacent floor 0 Share this post Link to post