Page 1 of 1

[won't change] Dead-but-Solid items aren't solid

Posted: Sat Oct 07, 2006 9:45
by MartinHowe
Consider this actor:

Code: Select all

ACTOR DemonSolid : Demon 15959
{
//
// This is a demon that is solid when dead
//
// This is needed to create a pile of dead demons of
// which some can be resurrected for a special effect.
//
//$Category butchery
//
    DeathHeight 10
    States
    {
    Death:
        SARG I 8
        SARG J 8 A_Scream
        SARG K 4
        SARG L 4  //  note the removal of A_NoBlocking
        SARG M 4
        SARG N -1
        Stop
    }
}
A load of these things are placed on the map one above the other at different heights and killed by a script when the level starts. They should fall on top of each other creating a pile of dead demons. At level start they do indeed "sit" on top of each other in 3D; however, when killed, they don't block each other as they ought to, but instead all fall in the same place with no height variation. Even placing an explicit call to A_SetSolid() in the second death state has no effect!

It is definitely the death code in the engine that is causing the problem; they do indeed "sit" on top of each other in the intended way until they are killed. Even explicitly giving them the same DeathHeight as their "normal" height makes no difference.

Posted: Sat Oct 07, 2006 10:12
by Graf Zahl
Corpses are special and they need to be so this won't change.

Posted: Sat Oct 07, 2006 10:19
by MartinHowe
Graf Zahl wrote:Corpses are special and they need to be so this won't change.
OK. Now please would you explain HOW they are special? In order to approximate what I want to do as closely as it can be within the limitations of the engine, I first need to know HOW corpses are special. Please also state whether this "specialness" is GZDoom-specific, or applicable to "normal" ZDoom as well.

Posted: Sat Oct 07, 2006 10:27
by Graf Zahl
Corpses need special treatment so items can't step up on them. And that's what interferes with your idea.

Posted: Sat Oct 07, 2006 10:38
by MartinHowe
Thanks, I think I have enough to go on now.