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.
Issue with PhoenixFX2's player-freezing behavior
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.
-
- Posts: 4949
- Joined: Sun Nov 14, 2010 12:59 am
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Issue with PhoenixFX2's player-freezing behavior
I call that undefined behavior based on using a hacky player projectile on a monster. Changing this is bound to cause more serious issues.
- Marisa the Magician
- Posts: 3886
- Joined: Fri Feb 08, 2008 9:15 am
- Preferred Pronouns: She/Her
- Operating System Version (Optional): (btw I use) Arch
- Graphics Processor: nVidia with Vulkan support
- Location: Vigo, Galicia
- Contact:
Re: Issue with PhoenixFX2's player-freezing behavior
Would this still be triggered if one player in deathmatch used a tomed phoenix rod on another player?
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Issue with PhoenixFX2's player-freezing behavior
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... )
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... )