Scroller linedef types

From Eternity Wiki
Jump to navigationJump to search
Back to Linedef types

Static Scrollers[edit]

The most basic kind of scrolling linedef causes some part of the tagged sector or tagged wall to scroll, in proportion to the length of the linedef the trigger is on, and according to the direction that trigger linedef lies. For each 32 units of length of the trigger, the tagged object scrolls 1 unit per frame. Since the length of a linedef doesn't change during gameplay, these types are static, the scrolling effect remains constant during gameplay. However, these effects can be combined with, and/or canceled by, other scrollers.

  • 250 — Scroll Tagged Ceiling

The ceiling of the tagged sector scrolls in the direction of the linedef trigger, 1 unit per frame for each 32 units of linedef trigger length. Objects attached to the ceiling do not move.

UDMF equivalent: Scroll_Ceiling(tag, 4, 0, 0, 0)

  • 251 — Scroll Tagged Floor

The floor of the tagged sector scrolls in the direction of the linedef trigger, 1 unit per frame for each 32 units of linedef trigger length. Objects resting on the floor do not move.

UDMF equivalent: Scroll_Floor(tag, 4, 0, 0, 0)

  • 252 — Carry Objects on Tagged Floor

Objects on the floor of the tagged sector move in the direction of the linedef trigger, 1 unit per frame for each 32 units of linedef trigger length. The floor itself does not scroll.

UDMF equivalent: Scroll_Floor(tag, 4, 1, 0, 0)

  • 253 — Scroll Tagged Floor, Carry Objects

UDMF equivalent: Scroll_Floor(tag, 4, 2, 0, 0)

Both the floor of the tagged sector and objects resting on that floor move in the direction of the linedef trigger, 1 unit per frame for each 32 units of linedef trigger length.

  • 254 — Scroll Tagged Wall, Same as Floor/Ceiling

Walls with the same tag as the linedef trigger scroll at the same rate as a floor or ceiling controlled by one of 250-253, allowing their motion to be synchronized. When the linedef trigger is not parallel to the wall, the component of the linedef in the direction perpendicular to the wall causes the wall to scroll vertically. The length of the component parallel to the wall sets the horizontal scroll rate, the length of the component perpendicular to the wall sets the vertical scroll rate.

UDMF equivalent: Scroll_Texture_Model(tag, 0)

MBF21[edit]

  • 1024 — scroll tagged walls by sidedef offsets, speed divided by 8

Similar to special 255, but this one causes tagged lines to scroll, instead of the trigger linedef only. In addition, the speed is divided by 8, so you have finer control.

Simple Static Scrollers[edit]

For convenience three simpler static scroll functions are provided for when you just need a wall to scroll and don't need to control its rate and don't want to bother with proportionality.

  • 255 -- Scroll Wall Using Sidedef Offsets

For simplicity, a static scroller is provided that scrolls the first sidedef of a linedef, based on its x- and y- offsets. No tag is used. The x offset controls the rate of horizontal scrolling, 1 unit per frame per x offset, and the y offset controls the rate of vertical scrolling, 1 unit per frame per y offset.

UDMF equivalent: Scroll_Texture_Offset

  • 48 -- Animated wall, Scrolls Left

A linedef with this type scrolls its first sidedef left at a constant rate of 1 unit per frame.

UDMF equivalent: Scroll_Texture_Left(64)

  • 85 -- Animated wall, Scrolls Right

A linedef with this type scrolls its first sidedef right at a constant rate of 1 unit per frame.

UDMF equivalent: Scroll_Texture_Right(64)

  • 417 -- Animated wall, Scrolls Up

A linedef with this type scrolls its first sidedef up at a constant rate of 1 unit per frame.

UDMF equivalent: Scroll_Texture_Up(64)

  • 418 -- Animated wall, Scrolls Down

A linedef with this type scrolls its first sidedef down at a constant rate of 1 unit per frame.

UDMF equivalent: Scroll_Texture_Down(64)

  • 419 -- Animated wall, Scrolls Down Fast

A linedef with this type scrolls its first sidedef down at a constant rate of 3 units per frame.

UDMF equivalent: Scroll_Texture_Down(192)

Dynamic Scrolling[edit]

To achieve dynamic scrolling effects, the position or rate of scrolling is controlled by the relative position of the floor and ceiling of the sector on the scrolling trigger's first sidedef. The direction of scrolling remains controlled by the direction of the linedef trigger. Either the floor or ceiling may move in the controlling sector, or both. The control variable is the amount of change in the sum of the floor and ceiling heights.

All scroll effects are additive, and thus two or more effects may reinforce and/or cancel each other.

Displacement Scrollers[edit]

In the first kind, displacement scrolling, the position of the scrolled objects or walls changes proportionally to the motion of the floor or ceiling in the sector on the first sidedef of the scrolling trigger. The proportionality is set by the length of the linedef trigger. If it is 32 units long, the wall, floor, ceiling, or object moves 1 unit for each unit the floor or ceiling of the controlling sector moves. If it is 64 long, they move 2 units per unit of relative floor/ceiling motion in the controlling sector and so on.

  • 245 -- Scroll Tagged Ceiling w.r.t. 1st Side's Sector

The tagged sector's ceiling texture scrolls in the direction of the scrolling trigger line, when the sector on the trigger's first sidedef changes height. The amount moved is the height change times the trigger length, divided by 32. Objects attached to the ceiling do not move.

UDMF equivalent: Scroll_Ceiling(tag, 5, 0, 0, 0)

  • 246 -- Scroll Tagged Floor w.r.t. 1st Side's Sector

The tagged sector's floor texture scrolls in the direction of the scrolling trigger line when the sector on the trigger's first sidedef changes height. The amount moved is the height change times the trigger length, divided by 32. Objects on the floor do not move.

UDMF equivalent: Scroll_Floor(tag, 5, 0, 0, 0)

  • 247 -- Push Objects on Tagged Floor wrt 1st Side's Sector

Objects on the tagged sector's floor move in the direction of the scrolling trigger line when the sector on the trigger's first sidedef changes height. The amount moved is the height change times the trigger length, divided by 32.

UDMF equivalent: Scroll_Floor(tag, 5, 1, 0, 0)

  • 248 -- Push Objects & Tagged Floor wrt 1st Side's Sector

The tagged sector's floor texture, and objects on the floor, move in the direction of the scrolling trigger line when the sector on the trigger's first sidedef changes height. The amount moved is the height change times the trigger length, divided by 32.

UDMF equivalent: Scroll_Floor(tag, 5, 2, 0, 0)

  • 249 -- Scroll Tagged Wall w.r.t 1st Side's Sector

Walls with the same tag as the linedef trigger scroll at the same rate as a floor or ceiling controlled by one of 245-249, allowing their motion to be synchronized. When the linedef trigger is not parallel to the wall, the component of the linedef in the direction perpendicular to the wall causes the wall to scroll vertically. The length of the component parallel to the wall sets the horizontal scroll displacement, the length of the component perpendicular to the wall sets the vertical scroll displacement. The distance scrolled is the controlling sector's height change times the trigger length, divided by 32.

UDMF equivalent: Scroll_Texture_Model(lineid, 1)

MBF21[edit]

  • 1025 -- Scroll Tagged Wall by Sidedef Offsets w.r.t. 1st Side's Sector

Similar to 249, but uses the sidedef offsets of the trigger linedef (divided by 8) instead of the line's vector.

Accelerative Scrollers[edit]

The second kind of dynamic scrollers, accelerative scrollers, also react to height changes in the sector on the first sidedef of the linedef trigger, but the RATE of scrolling changes, not the displacement. That is, changing the controlling sector's height speeds up or slows down the scrolling by the change in height times the trigger's length, divided by 32.

An on/off scroller can be made by using an accelerative scroller and any linedef that changes the controlling sector's heights. If a scroll effect which is initially on is desired, then the accelerative scroller should be combined with a static one which turns the scroll effect on initially. The accelerative scroller would then need to be set up to cancel the static scroller's effect when the controlling sector's height changes.

  • 214 -- Accel Tagged Ceiling w.r.t. 1st Side's Sector

The tagged sector's ceiling's rate of scroll changes in the direction of the trigger linedef (use vector addition if already scrolling) by the change in height of the sector on the trigger's first sidedef times the length of the linedef trigger, divided by 32. For example, if the ceiling is motionless originally, the linedef trigger is 32 long, and the ceiling of the controlling sector moves 1 unit, the tagged ceiling will start scrolling at 1 unit per frame.

UDMF equivalent: Scroll_Ceiling(tag, 6, 0, 0, 0)

  • 215 -- Accel Tagged Floor w.r.t. 1st Side's Sector

The tagged sector's floor's rate of scroll changes in the direction of the trigger linedef (use vector addition if already scrolling) by the change in height of the sector on the trigger's first sidedef times the length of the linedef trigger, divided by 32. For example, if the floor is motionless originally, the linedef trigger is 32 long, and the ceiling of the controlling sector moves 1 unit, the tagged floor will start scrolling at 1 unit per frame.

UDMF equivalent: Scroll_Floor(tag, 6, 0, 0, 0)

  • 216 -- Accel Objects on Tagged Floor wrt 1st Side's Sector

Objects on the tagged sector's floor's rate of motion changes in the direction of the trigger linedef (use vector addition if already moving) by the change in height of the sector on the trigger's first sidedef times the length of the linedef trigger divided by 32. For example, if the objects are motionless originally, the linedef trigger is 32 long, and the ceiling of the controlling sector moves 1 unit, the objects on the tagged floor will start moving at 1 unit per frame.

UDMF equivalent: Scroll_Floor(tag, 6, 1, 0, 0)

  • 217 -- Accel Objects&Tagged Floor wrt 1st Side's Sector

The tagged sector's floor, and objects on it, change its rate of motion in the direction of the trigger linedef (use vector addition if already moving) by the change in height of the sector on the trigger's first sidedef times the length of the linedef trigger, divided by 32. For example, if the floor and objects are motionless originally, the linedef trigger is 32 long, and the ceiling of the controlling sector moves 1 unit, the objects and the tagged floor will start moving at 1 unit per frame.

UDMF equivalent: Scroll_Floor(tag, 6, 2, 0, 0)

  • 218 -- Accel Tagged Wall w.r.t 1st Side's Sector

Walls with the same tag as the linedef trigger increase their scroll rate in sync with a floor or ceiling controlled by one of 214-217. When the linedef trigger is not parallel to the wall, the component of the linedef in the direction perpendicular to the wall causes the wall to increase its vertical scroll rate. The length of the component parallel to the wall sets the change in horizontal scroll rate, the length of the component perpendicular to the wall sets the change in vertical scroll rate. The rate change is the height change times the trigger length, divided by 32.

UDMF equivalent: Scroll_Texture_Model(lineid, 2)

MBF21[edit]

  • 1026 -- Accel Tagged Wall by Sidedef Offsets w.r.t 1st Side's Sector

Similar to 218, but uses the sidedef offsets divided by 8 instead of the linedef vector.