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.
342 stars 87 forks source link

Draft udmf scroll / thrust fields #423

Closed kraflab closed 1 year ago

kraflab commented 1 year ago

Wall and sector scrolling / thrusting are notable omissions in the existing udmf specs. A subset of these is present in the eternity namespace, but the units are unintuitive and the control is limited. This draft adds scrolling properties to linedefs and sectors, and a separate set of thrust properties for sectors (e.g., for current, wind, etc, anything affecting the volume of the sector rather than its boundaries).

The unit of scrolling is map units per frame. The unit of thrust is map units per frame per frame (i.e., the value passed to P_ThrustMobj in vanilla ports or Thrust in gzdoom).

Since these features have been used to affect different entities in maps over the years, I've added mode fields that take flags for what to affect. This also makes it easy to add more options in the future if new use cases come up or if we miss something.