Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
cycloid

DEH/BEX : sounds that play "everywhere" and other code pointers

Recommended Posts

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

Share this post


Link to post

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  
×