Strife A_CheckTerrain doesn't kill the calling actor
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Strife A_CheckTerrain doesn't kill the calling actor
In Strife MAP24, the Conversion Chapel level, there's a bunch of Zombie actors who have A_CheckTerrain in their states. This is supposed to kill them when they are in an "instant death" sector. However, this never happens, resulting in an eventual build-up on the conveyor belt, because the zombies that get teleported to that instant death sector at the end of the conveyor belt don't actually die, hence blocking the teleport line for all of the other zombies in line on the conveyor belt.
Re: Strife A_CheckTerrain doesn't kill the calling actor
A_CheckTerrain checks for this:
Using a simple print string reveals that the "killing" sector's 'special' is 0. So that's probably why the check is failing.
HOWEVER, despite the sector special being 0, it still does kill the player at least (if I walk into that room, I'll die). Odd.
Code: Select all
if (sec->special == Damage_InstantDeath)
HOWEVER, despite the sector special being 0, it still does kill the player at least (if I walk into that room, I'll die). Odd.
Re: Strife A_CheckTerrain doesn't kill the calling actor
What that means is this check is failing for some reason:
And in turn what that means is the actors are not staying on the floor for some reason. Either that, or the check for PortalBlocksMovement should be ||'d instead of &&'d. I am not sure though.
Code: Select all
if (self->Z() == sec->floorplane.ZatPoint(self) && sec->PortalBlocksMovement(sector_t::floor))
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49053
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Strife A_CheckTerrain doesn't kill the calling actor
This fell victim to the sector damage refactor some 5 years ago.
That special now gets mapped to a sector with sector damage of TELEFRAG_DAMAGE damage points and then cleared off the sector.
So, either the check needs to be adapted or the special not be deleted.
That special now gets mapped to a sector with sector damage of TELEFRAG_DAMAGE damage points and then cleared off the sector.
So, either the check needs to be adapted or the special not be deleted.