[Fixed] Issue with PhoenixFX2's player-freezing behavior

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Issue with PhoenixFX2's player-freezing behavior

Postby Blue Shadow » Wed Sep 05, 2018 8:36 am

Tested with: 3.5.1 64-bit
Test material: phoenixfx2_bug.pk3



The demo file has a modified weredragon which fires PhoenixFX2 projectiles (the Phoenix Rod's powered-up mode projectiles) as a melee attack. It appears that these projectiles have the ability to render players immobile for a short amount of time upon impact. The problem is, they only seem to do that in certain situations, like when the player is invulnerable.

I found that this line in DamageMobj() interferes and breaks that behavior; it resets the ReactionTime field of the damaged actor to 0. As you know, for player actors, if that field is positive, the player can't move. The projectile adds to that field upon impact, so the player becomes unable to move, but that line overrides all of that, since it comes after the projectile does its thing. Of course, if that line isn't reached during the function's execution, the player does become affected, and loses the ability to move, like the case with invulnerability.
User avatar
Blue Shadow
 
Joined: 14 Nov 2010
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: Issue with PhoenixFX2's player-freezing behavior

Postby Graf Zahl » Wed Sep 05, 2018 11:34 am

I call that undefined behavior based on using a hacky player projectile on a monster. Changing this is bound to cause more serious issues.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Issue with PhoenixFX2's player-freezing behavior

Postby Marisa Kirisame » Wed Sep 05, 2018 2:10 pm

Would this still be triggered if one player in deathmatch used a tomed phoenix rod on another player?
User avatar
Marisa Kirisame
ZScript Crimester
 
 
 
Joined: 08 Feb 2008
Location: Vigo, Galicia
Discord: 霧雨魔理沙#1666
Twitch ID: MarisaDOOM
Github ID: OrdinaryMagician
Operating System: Other Linux 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Issue with PhoenixFX2's player-freezing behavior

Postby Graf Zahl » Thu Nov 01, 2018 2:21 am

No idea, actually, but that particular line of code is present in the original Doom code and propagated unaltered to Heretic, so I think this never really worked.
But as I understand it, this is only needed for monsters, not players, right?

EDIT: Actually thinking about it, this would also explain why under rare circumstances the player can immediately move when exiting a teleporter. I was never able to connect this to a specific cause but had it happen every now and then. (Yay, another original Doom.exe bug hunted down... :mrgreen:)
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