Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
scwiba

Can anyone make sense of this Action 20 bug?

Recommended Posts

I've been testing a map in PrBoom+, complevel 2, and encountered a bug I can't make any sense of. I have two instances of Action 20 (S1 Floor Raise to Next Higher Floor (changes texture)) in the last room of the map, both of which are intended to raise a series of columns out of lava in order to serve as stairs. Dummy sectors are used to let the columns know what heights they're supposed to raise to, and you can see the first instance working fine here:

http://i.imgur.com/cvZHEU0.png

So there you have the intended result, but here's what happens on the second set of columns:

http://i.imgur.com/ldMzy6h.png

Not only do they only raise by something like 32 and all stop in the same position, but after a few seconds, they go back DOWN to the level of the lava.

Now, there's a lot of other factors involved in the room, and it's clear that one of them is having an effect on this Action 20, but I'm not sure why or how. For instance, there's an Action 25 (W1 Crusher Start) that you must pass over to reach it, and I've attempted noclipping past or removing that linedef and the problem seems to go away. I've also removed the enemies and barrels in the area and the problem also goes away. But I can't come up with any reason why either of those changes would affect the behavior of the Action 20.

Does anyone know what's going on here? Here's the map (E1M1), pared down to just the room in question. For the record, the bug doesn't seem to appear in ZDoom, Eternity, or even PrBoom+ with complevel 9, so you'll have to use complevel 2 (or possibly Vanilla/Chocolate Doom) to even see it.

Share this post


Link to post

Did you try the pared-down map? Unless I'm missing something it works OK for me in Crispy Doom.

edit: never mind, it's definitely that Baron beneath the crusher. I killed him the first time before hitting the switch and it worked fine. Leaving him causes the problem to occur.

When I was testing stuff for Obsidian's Countdown to Extinction megawad, I came across a lot of stuff where barrels to be crushed that didn't have enough headroom -- I think at least 40 units -- would cause all sorts of unrelated stuff in the map to not work as expected. I still don't know why this is the case, mind you.

Share this post


Link to post

It's an issue with disjoint sectors. Your step sectors are made of two parts, one in the gameplay area and one next to the dummies. So for the game, the "sector area" is huge: for example, sector 36 doesn't go from [2644, -3216] to [2668, -3240] but from [1472, -2112] to [2668, -3240].

And then you've got a baron under a crusher in that area. Sector movement goes "is there some actor that's blocking sector movement within the sector area?", finds that yes there is, and so further sector movement is blocked. The game doesn't verify that the sector movement being blocked by the actor is really the sector movement we're looking at, so by blocking the crushers, the baron is also blocking the floor rise.

Workaround: move your dummy sectors elsewhere, so that you won't have crushers, doors, or other blockable movements between both parts of the sectors.

Share this post


Link to post

Bingo. I never knew that about disconnected sectors, but that explains all the weird behavior.

I actually haven't been able to get the whole thing working as intended (though I have come up with a different solution). The highest two steps still refuse to rise once the crusher connects with the baron, no matter where the dummy sectors are placed on the map. Even if the crusher falls nowhere within the raising sectors' areas. It actually seems like it's affected by proximity to the crusher.

Here's the new version, which avoids dummy sectors altogether:



Red is the crusher and yellow is the rising sector, still Action 20, which rises to the level of the adjacent walkway. It works correctly this way, but if, say, its westernmost linedef is 8 units closer to the crusher... we're back to it freezing as soon as the baron starts getting crushed.

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
Sign in to follow this  
×