Jump to content

Bug I found using PrBoom+

Recommended Posts

I do not know if this bug is in the Vanilla Doom engine or is specific to PrBoom+, basically I have found scenarios in which blast damage goes through a solid barrier which straddles the y co-ordinate of the explosion.


If a barrel is crushed by a crusher and

1) A solid barrier (can be a high floor, low ceiling or void) has two vertices on either side (the barrel side and the opposite side) which are exactly on the same y co-ordinate as the barrel AND

2) There is a linedef, possibly anywhere else in the map which is exactly east-west with the ends of it having that same y co-ordinate as the barrel, and

3) Also a few other vertices on that same y co-ordinate as the barrel in the vicinity of the barrel or other side of the barrier (I am less clear on where they have to be, still experimenting with this), 


then the bug takes effect and any thing on the other side of the barrier with its centre EXACTLY on the same y co-ordinate as the barrel will receive blast damage when the barrel is crushed, as though there was no barrier in between. 


In the attached file DemoBug, if you use the switch and turn around you will see the first barrel get crushed and the other barrel explode even though the pillar should prevent this.



VGA and Fonze like this

Share this post

Link to post

Sounds like the Blind Sergeant of Doom II Map 02. This is where an X coordinate gets erroneously checked against a Y coordinate when the walls are exactly horizontal (or vertical). A Cut and Paste code bug caused this rare check to occur, making Doom get "side of line" checks wrong.


Fixing the bug can cause demo desync, hence the different behavior via complevel.

therektafire and Fonze like this

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now