Bug #1634
[Hexen] Hypostyle: Death Wyvern gets stuck
Description
While playing through Hypostyle's boss battle (flying dragon thing in big lava room), it got stuck in the base of the room's center pillar and was easily killable.
Not sure if it was a one-off issue or a reproduceable bug. Should be retested.
Associated revisions
Fixed|Hexen: Death Wyvern gets stuck
The main trigger for the Wyvern getting stuck was that it chased the
dead Ettin that sometimes falls on the lava. If the Ettin is too
close to the central pillar, the Wyvern's requirement to get close
enough to the target was impossible.
Now the Wyvern just forgets about the Ettin after it has died.
Fixed the incorrect use of FIX2FLT (we're using coord_t),
addressed compiler warnings about calling abs() on an unsigned int,
and cleaned up the code a little.
IssueID #1634
History
#1 Updated by danij about 11 years ago
I've seen this happen a few times, though I can't be certain whether its not also present in vanilla (needs testing).
#2 Updated by vermil about 11 years ago
I believe the Death Wyvern's flight AI does have a flaw that can cause it to fly into the middle pillar under some circumstances. However, while it can get stuck on it for a short while, I can't recall it ever flying down to the floor and getting stuck permanently.
#3 Updated by danij about 11 years ago
I suspect that specific behavior (flying down to the floor) is a actually a symptom of a more general broken flier behavior (we already know DOOM and Heretic suffer from this).
#4 Updated by vermil about 11 years ago
I've just tested the Wyvern battle and after killing the Ettin in the middle it dropped down to the floor and stayed there.
I wonder if it's related to a bug I've raised with DaniJ before; that flying bad guys currently instantly drop to the floor upon killing something...
...One notes that the Wyvern's height seemed determined by the Ettin's corpse; if/when the Ettin's corpse goes over the edge of the pillar and into the lava, the Wyvern goes down with it. Though unlike fliers in Doom and Heretic, the move isn't instant and it also seems unable to raise back up.
#5 Updated by vermil about 11 years ago
Also, bad Skyjake: Wrong wiki :p
http://www.doomworld.com/vb/doom-general/52973-doom-wiki/
http://www.doomworld.com/vb/doom-general/57079-doomwiki-org-is-now-open/
The Doom community forked the wiki from Wika a couple of years ago after disagreeing with Wika's then new, advert dominated layout.
The Doom wiki, as used by the Doom community (and hence where the most up-to-date technical details on Doom) is now here: http://doomwiki.org/wiki/Entryway.
#6 Updated by skyjake about 11 years ago
- Description updated (diff)
- Priority changed from Lowest to High
I've raised the priority as this sounds reproducible.
(Also updated wiki link.)
#7 Updated by JGondek over 10 years ago
I can confirm this bug. A temporary workaround is to shoot the Ettin on the pillar along with the Wyvern so that its corpse won't get pushed down to the lava (might need a few retries). Then, the dragon flies as it should.
#8 Updated by skyjake over 9 years ago
- Assignee set to skyjake
- Target version set to 1.15
I started looking into this bug during my 1.15 RC playthrough. I feel like I'm close to a solution. The key is that the Wyvern should forget about the Ettin if it falls down (i.e., is already dead) and just continue pursuing the invisible flight targets.
#9 Updated by vermil over 9 years ago
The Wyvern does actually still follow it's invisible flight target's,but at the wrong height, which causes it to ultimately crash into the pillar.
Could it be related to the issue I mentioned in the comments of this tracker item; that flyers instantly jump to the height of their target when they kill them?
http://tracker.skyjake.fi/issues/1129
I didn't mention bad guy infighting in said comment, but since then I've witnessed flyers instantly jumping when they kill another bad guy they are targeting, as well as the player.
EDIT: Whoops, I've realized I basically wrote the above 4 comments up; though I didn't link to the report back then. My apologies.
#10 Updated by skyjake over 9 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
#11 Updated by skyjake over 9 years ago
vermil wrote:
Could it be related to the issue I mentioned in the comments of this tracker item; that flyers instantly jump to the height of their target when they kill them?
I don't think it's related, not at least very directly. What you're talking about probably has more to do with mobj Z collision checking when flying. The Wyvern has its own very specific flight logic that was going wrong here.
#12 Updated by skyjake over 9 years ago
- Status changed from Resolved to Closed
Fixed|Hexen: Death Wyvern gets stuck
The main trigger for the Wyvern getting stuck was that it chased the
dead Ettin that sometimes falls on the lava. If the Ettin is too
close to the central pillar, the Wyvern's requirement to get close
enough to the target was impossible.
Now the Wyvern just forgets about the Ettin after it has died.
Fixed the incorrect use of FIX2FLT (we're using coord_t),
addressed compiler warnings about calling abs() on an unsigned int,
and cleaned up the code a little.
IssueID #1634