Strife A_CheckTerrain doesn't kill the calling actor

Bugs that have been investigated and resolved somehow.

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.
Post Reply
User avatar
Nash
 
 
Posts: 17429
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Strife A_CheckTerrain doesn't kill the calling actor

Post by Nash »

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.
User avatar
Nash
 
 
Posts: 17429
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Strife A_CheckTerrain doesn't kill the calling actor

Post by Nash »

A_CheckTerrain checks for this:

Code: Select all

if (sec->special == Damage_InstantDeath)
 
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.
User avatar
Rachael
Posts: 13527
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: Strife A_CheckTerrain doesn't kill the calling actor

Post by Rachael »

What that means is this check is failing for some reason:

Code: Select all

if (self->Z() == sec->floorplane.ZatPoint(self) && sec->PortalBlocksMovement(sector_t::floor)) 
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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
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

Post by Graf Zahl »

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.
Post Reply

Return to “Closed Bugs [GZDoom]”