kraflab / dsda-doom

This is a successor of prboom+ with extra tooling for demo recording and playback, with a focus on speedrunning and quality of life.
321 stars 81 forks source link

UMAPINFO bossaction walkover actions to not work #410

Closed biwa closed 1 month ago

biwa commented 1 year ago

It looks like walkover actions to not work on bossaction in UMAPINFO.

Here's a simple UMAPINFO that is supposed to open two doors, one using action 2 (W1 Door Open Stay), one using action 103 (S1 Door Open Stay). The former does not work, the latter does.

MAP E1M8
{
       levelname = "Some map"
       bossaction = BaronOfHell, 2, 100 // W1 Door Open Stay, doesn't work
       bossaction = BaronOfHell, 103, 101 // S1 Door Open Stay, does work
}

Example map: umapinfo-walkover-bossaction.zip

It works as expected in Eternity Engine and GZDoom (although that has another bug with 4.10).

kraflab commented 1 year ago

@fabiangreffrath you might want to check if woof has inherited this problem as well

fabiangreffrath commented 1 year ago

I'll be far away from a computer until Monday. Let's get @rfomin and @ceski-1 into the boat.

rfomin commented 1 year ago

I confirm, it does not work in Woof either. It seems we need to change the P_UseSpecialLine() function if we want this to work.

JadingTsunami commented 1 year ago

This is the same bug we've known about for a long time, isn't it?

https://github.com/coelckers/prboom-plus/issues/176 https://github.com/coelckers/prboom-plus/issues/422

kraflab commented 1 month ago

https://github.com/kraflab/dsda-doom/commit/3bd7ead88a482ee0ea0a00cf00b4e1fa92ced3b0 2 changes: return !bossaction in P_UseSpecialLine when the line exists but isn't use-activatable (only the umapinfo call to this function changes), and set crossed lines to activatable by default when bossaction is true (previously it assumed bossaction = activated by monster = only a few lines work). This will get regression testing before 0.28 - will reopen if there are desyncs, in which case we'll have to come up with a comp option solution. I'd rather get this fixed at this point (it's been at least 3 years?) even if it means some future person may record a demo in an old version for a map that only works in the new one (well, they would have been playing the map in a port / version where it doesn't function, so how important is that demo?).