[Fixed] Strife A_CheckTerrain doesn't kill the calling actor

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Strife A_CheckTerrain doesn't kill the calling actor

Postby Nash » Sun Mar 28, 2021 2:40 am

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
AKA Nash Muhandes! Twitter/Facebook/Youtube: nashmuhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes

Re: Strife A_CheckTerrain doesn't kill the calling actor

Postby Nash » Sun Mar 28, 2021 4:31 am

A_CheckTerrain checks for this:

Code: Select allExpand view
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
Nash
AKA Nash Muhandes! Twitter/Facebook/Youtube: nashmuhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes

Re: Strife A_CheckTerrain doesn't kill the calling actor

Postby Rachael » Sun Mar 28, 2021 7:10 am

What that means is this check is failing for some reason:
Code: Select allExpand view
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
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Strife A_CheckTerrain doesn't kill the calling actor

Postby Graf Zahl » Sun Mar 28, 2021 7:42 am

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany


Return to Closed Bugs

Who is online

Users browsing this forum: No registered users and 0 guests