ZDoom Line Specials

72:ThrustThing

Name

ThrustThing — thrust the actor that triggered the special.

Synopsis

ThrustThing (angle, force, bNoLimit);
ThrustThing (
  angle,     // Byte angle to thrust the thing
  force,     // How much force to thrust the thing with
  bNoLimit   // Whether or not to limit the thing's maximum velocity
);

Parameters

angle
This is the direction to thrust the thing.
force
This is how fast to thrust the thing away, in units/tic. This is combined with angle to produce a velocity that is added to the thing's current velocity.
bNoLimit
In Doom and Hexen, every moving thing is normally limited to moving no faster than 30 units/tic. If you want to be able to thrust the thing faster than this, set bNoLimit to 1, and there will be no limit to how fast the thing will be able to travel. If you want to use a value of force larger than 30, you'll probably also want to set bNoLimit to 1.

ACS

This special works equally well whether you use it in a script or on a line. However, if you want to use an insanely strong force, you will need to use this special in a script because lines can only accept a maximum value of 255 for any parameters.

Remarks

ThrustThing operates on whatever activated it. It cannot be used to push random actors around on the map.

The force paremeter to ThrustThing does not directly determine how far the actor gets pushed, as some earlier versions of this reference suggested. Instead, it determines how "hard" the actor is pushed. The actor is then subject to friction, which will eventually slow it down to a stop. This means that the same force value will push an actor a different distance on icy and sludgy surfaces than it would on a normal surface.

If the user has compat_wallrun enabled, then every ThrustThing will act as if bNoLimit is 0. This is because wallrunning requires this limit to be in place, or the player would be able to run through walls.

ZDoom removed the maximum speed in version 1.23 beta 25, which broke earlier maps that relied on ThrustThing having a limit. This oversight was corrected in version 2.0.22, when the bNoLimit paremeter was added.

Examples

Thrust the activator north with an initial speed of 8 units/tic (not terribly fast):

ThrustThing (64, 8);

Thrust the activator west with an initial speed of 5000 units/tic (ludicrously fast):

ThrustThing (128, 5000, 1);

First Available In

Hexen
ZDoom 2.0.22 added bNoLimit

See Also