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

Archvile ghosts in GZDoom

Recommended Posts

So I'm planning on restarting Icarus sometime soon, and theres a level that makes use of the archvile ghost trick. Last time I got to that level, it was ruined because the trick was removed.

Has it been reenabled, or if its still removed, is there a way to reenable it?

Share this post


Link to post

The ghost bug is absolutely impossible in ZDoom-based ports. Not even with compat settings.

See, the way Doom turns corpses into crushed gibs is by changing their state. The pool of blood is still an imp or whatever it was. But ZDoom doesn't do it that way. It doesn't set the crushed actor in a "pool of blood" state; instead it removes the actor and spawns a pool of blood actor in its place. So the pool of blood is no longer an imp, it's just a pool of blood. The imp has disappeared. There's nothing for the archvile to resurrect.

Share this post


Link to post

That's what happens when a map relies on a bug to work.

Share this post


Link to post

Or when an engine doesn't support a compatibility for a bug used as a feature in various well-known megawad levels.

Is there a technical impossibility disallowing a compatibility setting? Can't it be made to work on a per-level basis like other compatibility flags? You could even do something nifty like make the ghosts partially translucent, in ZDoom engines.

Share this post


Link to post

I don't know the motivation for the change. It's not necessary at all and ZDoom even has an alternative method of crushing corpses that could easily expanded to handle this as well.

Personally, I don't care. Arch-Vile ghosts are shit and for me disqualify any level using them by default so don't expect any change in attitude. Randy seems to share this opinion and any request concerning this issue had been closed outright so far.

Share this post


Link to post

Ghost monsters were a common occurrence for me in some of my older levels, so naturally they've become an accepted bug to me. I don't see how this is much different than preserving any other bug in the game that impacts the gameplay. I've even made my own wad to take advantage of the bug. But when I found out my wad didn't work because ZDoom "fixed" this, I think that's about the same time I stopped using ZDoom. :)

Share this post


Link to post
EarthQuake said:

I think that's about the same time I stopped using ZDoom. :)



That's your problem, not mine... :D

Share this post


Link to post

Levels that use the ghost monster bug:
Icarus MAP24 (The Haunting)
Requiem MAP23 (Hatred)
Hell to Pay MAP14 (The Habitat Deck) and MAP22 (Vile Temple)

Any other?

Graf Zahl said:

I don't know the motivation for the change. It's not necessary at all and ZDoom even has an alternative method of crushing corpses that could easily expanded to handle this as well.


Putting them in a Crush state inherited from Actor? That'd work, but I guess the reason a new actor is spawned is so as to use the blood translation on it. If a monster was raised from a translated gib, it would have to get back to the original color translation, which thus would have to be stored somewhere.

Share this post


Link to post

What about Plutonia's map 30? By IDCLIPing, I found a room that monsters teleport into only to get crushed. I never beat that level normally, but an Archvile in there?

Dont know if I ever ran into a monster I couldnt shoot in my IDDQD'ed slaughters though

EDIT: I remember a version of ZDoom that deleted any crushed monsters, instead of leaving the crushed remains actually. I remember being annoyed at it, because at that point in my life I looooved all the blood and guts in Doom.

Share this post


Link to post
Ragnor said:

What about Plutonia's map 30? By IDCLIPing, I found a room that monsters teleport into only to get crushed. I never beat that level normally, but an Archvile in there?



That room apparently was added to catch some of the spawned monsters. Normally not much will happen than some monsters and corpses piling up there. And if an AV comes in - well - I'd say the player is toast anyway. How are you supposed to fight a boss brain if there's ghosts running around the map? Considering the low probability of the boss spawning an AV I can't imagine that it was intended for that.

Share this post


Link to post

Is there a minimum amount of SpawnSpots you must have? (forcing a spot into that room) Or is there a linedef that teleports some of them there? More of a reason for me to finish Pultonia legitimately after all these years!

And because I reminded myself about Map30, I do faintly remember an imp I couldnt shoot way back in the day. I figured it was a massive bug and quit the game.

Also, add Eternal Doom to the wads that have ghosts. Whether intentional or not I dont know (I suck at Eternal and cant beat level three), but the general hint text file, well, hints, at ghosts:
"9) Monsters that walk thru walls can be hurt by the heat from rocket blasts"

Not surprising, since they appear in Icarus, also a TNT release.

Share this post


Link to post

There's 2 teleporters leading into the closed room in MAP30. Both are only accessible from specific spawn spots on the map.

Share this post


Link to post

Gez said:
Any other?

Level 32 of Plutonia 2 pays tribute to the Requiem level in one of its areas with a similar Nazi ghost fountain.

Share this post


Link to post
Gez said:

Putting them in a Crush state inherited from Actor? That'd work, but I guess the reason a new actor is spawned is so as to use the blood translation on it. If a monster was raised from a translated gib, it would have to get back to the original color translation, which thus would have to be stored somewhere.



Actually, the blood translation was a much later addition than adding the gib actor - but having it done like it is certainly made it easier to colorize the gib properly.

Share this post


Link to post

Thats something I always liked about PSX Doom, crushing a spectre would leave transparent pink gibs, and a Nightmare Spectre would leave dark green transparent gibs. I remember trying to make fuzzy gibs in the PC version soon after transitioning, and being dissapointed :p

Share this post


Link to post

I dont remember if I was playing Doom95 at the time or the original Doom 2, but I know at one point they left red gibs. Now I really wish my Win98 computer hadnt been lost/stolen in that last move, I would fire up Doom95 to see if my memories are messed up.

Share this post


Link to post

A squished spectre under Doom95, still partially invisible:



Doom95 should function in newer versions of Windows. The only thing that won't work for certain is mouse input.

Share this post


Link to post

Doom (and thus by default, all ports that haven't changed this for a reason or another) do this when a corpse is crushed:

    // crunch bodies to giblets
    if (thing->health <= 0)
    {
	P_SetMobjState (thing, S_GIBS);

	thing->flags &= ~MF_SOLID;
	thing->height = 0;
	thing->radius = 0;
The fuzz effect is caused by the actor having the MF_SHADOW flag. As you can see, this flag isn't affected -- the MF_SOLID flag is removed, the height and radius are set to 0, and the state is set to the S_GIBS state (which displays the POL5 sprite's A frame), but that's all. The rest of the actor is unchanged. Fortunately, the MF_SHOOTABLE flag isn't removed, or ghost monsters would truly be invulnerable, even to explosions.

@Myk: thanks for the info about Plutonia 2.

Share this post


Link to post
Gez said:

Fortunately, the MF_SHOOTABLE flag isn't removed, or ghost monsters would truly be invulnerable, even to explosions.

Wrong because an Arch-vile doing a resurrection restores the thing's flags value by accessing its mobjinfo record. Corpses are already non-shootable because that flag is cleared when the thing dies.

The part that causes ghost-hood isn't the &= ~MF_SOLID -- it's the radius and height being set to 0. Projectiles and hitscans cannot strike objects that are of either 0 radius or height, nor can they be clipped by linedefs due to their degenerate bounding box. Even line of sight checks fail on such objects.

Share this post


Link to post

I meant that the damage radius function's iterator aborts for non-shootable mobjs.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×