Polyobject specials

1:Polyobj_StartLine (po, mirror, sound)

po
which polyobj is being defined
mirror
polyobj that will mirror this one's movements
sound
door sound sequence to play when this polyobj moves

Starts defining a polyobject.

2:Polyobj_RotateLeft (po, speed, angle)

po
polyobj to rotate
speed
how quickly the polyobj should rotate
angle
byte angle to rotate the polyobj through

Rotates a polyobject left through the specified angle. If angle is 255, then the polyobject will rotate continuously and never stop.

3:Polyobj_RotateRight (po, speed, angle)

po
polyobj to rotate
speed
how quickly the polyobj should rotate
angle
byte angle to rotate the polyobj through

Rotates a polyobject right through the specified angle. If angle is 255, then the polyobject will rotate continuously and never stop.

4:Polyobj_Move (po, speed, angle, dist)

po
polyobj to move
speed
how quickly the polyobj should move
angle
direction the polyobj should move (this is a byte angle)
dist
distance to move

Moves a polyobject.

5:Polyobj_ExplicitLine (po, order, mirror, sound)

po
polyobj that is being defined
order
rendering order of this line
mirror
polyobj that will mirror the moves of this one
sound
door sound sequence to play when this polyobj moves

Explicitly includes a line as part of a polyobject.

6:Polyobj_MoveTimes8 (po, speed, angle, dist)

po
polyobj to move
speed
how quickly the polyobj shold move
angle
direction the polyobj should move (this is a byte angle)
dist
distance to move in units of 8

Moves a polyobject (dist * 8) units.

7:Polyobj_DoorSwing (po, speed, angle, delay)

po
polyobj to move
speed
how quickly to spin the polyobj
angle
byte angle to rotate the polyobj through
delay
delay in tics before returning to original orientation

Rotates a polyobject, waits, and then rotates it in the opposite direction until it has returned to its original orientation.

8:Polyobj_DoorSlide (po, speed, angle, dist, delay)

po
polyobj to move
speed
how quickly to move the polyobj
angle
direction to move the polyobj in (this is a byte angle)
dist
distance to move the polyobj
delay
delay in tics before returning to original position

Moves a polyobject, waits, and then moves it back to its original location.

90:Polyobj_OR_RotateLeft (po, speed)
91:Polyobj_OR_RotateRight (po, speed, angle)
92:Polyobj_OR_Move (po, speed, angle, distance)
93:Polyobj_OR_MoveTimes8 (po, speed, angle, distance)

The OR in these specials stands for OverRide. Under normal circumstances, if a polyobj is doing something, you cannot make it do something else until it has finished whatever it is doing. This can be a problem with perpetual polyobjs (such as Polyobj_RotateLeft or Right with a byte angle of 255). Using one of these four specials, you can force the polyobj to stop whatever it is doing and do something else.