I have no clear memories of whether this happened when I played Heretic without Zdoom or not, but the Imps seem to get stuck when they're killed in a lot of places in mid air - close to a wall, or to the ceiling. It might have been this way before, but still, if a way can be found around it, it would be nice.
[Fixed] Heretic stuck dead imps
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.
-
Curunir
- Posts: 1041
- Joined: Sun Nov 02, 2003 11:24 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Heretic stuck dead imps
Yes, I do play a lot of Heretic! 
I have no clear memories of whether this happened when I played Heretic without Zdoom or not, but the Imps seem to get stuck when they're killed in a lot of places in mid air - close to a wall, or to the ceiling. It might have been this way before, but still, if a way can be found around it, it would be nice.
I have no clear memories of whether this happened when I played Heretic without Zdoom or not, but the Imps seem to get stuck when they're killed in a lot of places in mid air - close to a wall, or to the ceiling. It might have been this way before, but still, if a way can be found around it, it would be nice.
-
Chilvence
- Posts: 1647
- Joined: Mon Aug 11, 2003 6:36 pm
Yeah, they probably landed on each other, confusing the crash state (ie when it hits the ground) into thinking that they had landed on the ground. There are some things in heretic/hexen that stop being clipped to the floor when they land, for instance monster gibs.
So its probably the original behaviour.
So its probably the original behaviour.
-
Curunir
- Posts: 1041
- Joined: Sun Nov 02, 2003 11:24 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
That's fine. I could live with stuck imps (which I later found were named Gargoyles actually)
The thing is, noone's paying attention to the end-level screen bug which is a lot more in-your-face and bugs me (oh, teh play on word) a lot more. But I don't feel it's correct to spam the thread with more posts just to keep it up the list.
And that is why, I shamelessly mention it here
The thing is, noone's paying attention to the end-level screen bug which is a lot more in-your-face and bugs me (oh, teh play on word) a lot more. But I don't feel it's correct to spam the thread with more posts just to keep it up the list.
And that is why, I shamelessly mention it here
-
HotWax
- Posts: 10002
- Joined: Fri Jul 18, 2003 6:18 pm
- Location: Idaho Falls, ID
He already fixed it. Check the thread (now in the Closed Bugs forum) here.Curunir wrote:That's fine. I could live with stuck imps (which I later found were named Gargoyles actually)
The thing is, noone's paying attention to the end-level screen bug which is a lot more in-your-face and bugs me (oh, teh play on word) a lot more. But I don't feel it's correct to spam the thread with more posts just to keep it up the list.
And that is why, I shamelessly mention it here
-
Curunir
- Posts: 1041
- Joined: Sun Nov 02, 2003 11:24 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Regarding the stuck imps. Yesterday I took a look at the death code of them and found something. It's definitely a bug in the original implementation.
If a Heretic imp dies an extreme death the function A_ImpXDeath1 is called which sets the NOGRAVITY flag. 3 frames later the function A_ImpXDeath2 is called which clears that flag again. The problem occurs when the imp hits something in between these 2 functions. It enters the crash state and never executes A_ImpXDeath2 so the NOGRAVITY flag is never cleared.
Fix: clear the NOGRAVITY flag in A_ImpExplode as well. That should fix this and possibly any other cause for a floating imp.
If a Heretic imp dies an extreme death the function A_ImpXDeath1 is called which sets the NOGRAVITY flag. 3 frames later the function A_ImpXDeath2 is called which clears that flag again. The problem occurs when the imp hits something in between these 2 functions. It enters the crash state and never executes A_ImpXDeath2 so the NOGRAVITY flag is never cleared.
Fix: clear the NOGRAVITY flag in A_ImpExplode as well. That should fix this and possibly any other cause for a floating imp.