coelckers / prboom-plus

This is a cleaned up copy of the PrBoom+ SVN repository as a courtesy for those interested in forking that port
287 stars 115 forks source link

LineEffect MBF demo compatibility #414

Open ioan-chera opened 2 years ago

ioan-chera commented 2 years ago

I suspect that A_LineEffect with one-time activation specials behaves differently between PrBoom+ and MBF. Under MBF it's supposed to flag the entire thing as unable to activate any subsequent LineEffects, regardless of which frame invokes it. Under PrBoom+ it only zeroes out the misc1 field of the current state, other states with LineEffect will still be able to trigger their specials. Observe:

PrBoom+: https://github.com/coelckers/prboom-plus/blob/b3173735a1c14495e4a7f4c0ecc230a843b26db5/prboom2/src/p_enemy.c#L2825-L2831 (it's implied that the line special field becomes 0 after one-time activation is performed)

WinMBF: https://github.com/team-eternity/WinMBF/blob/3af60d718b1fe272769ee9eeb768b88e29a6cd7e/Source/p_enemy.c#L2548

I wouldn't suggest you to change the current PrBoom+ behaviour, but if recording as -complevel 11 (MBF) it would be worth making it act like in MBF, so that the same demo can be played in e.g. Eternity.

rfomin commented 2 years ago

There are many differences between MBF and -complevel 11. Perhaps this is more suitable for MBF22 (or revision of MBF21).

fabiangreffrath commented 2 years ago

We have documented a selection of this here: https://github.com/fabiangreffrath/woof/commit/377a60079cb48c5c2d28459b3d29fe2f02e18629