Difference between revisions of "Action specials"

From ECWolf Wiki
m (Minor wording changes)
m (→‎List of Action specials: Added double door type values (2,3) to Door_Open type parameter description.)
 
(One intermediate revision by one other user not shown)
Line 29: Line 29:
 
::<tt>delay</tt> - Tics until the door closes.  300 is normal for a Wolf3D door.  -1 means the door will stay open until manually closed.
 
::<tt>delay</tt> - Tics until the door closes.  300 is normal for a Wolf3D door.  -1 means the door will stay open until manually closed.
 
::<tt>lock</tt> - Lock specifies what keys are needed according to [[LOCKDEFS]].  0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver
 
::<tt>lock</tt> - Lock specifies what keys are needed according to [[LOCKDEFS]].  0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver
::<tt>type</tt> - Whether the door is facing east-west (0) or north-south (1).
+
::<tt>type</tt> - Whether the door is facing east-west (0), north-south (1), east-west double door (2), or north-south double door (3).
 
* 2: <tt>Pushwall_Move( tag, speed, direction, distance )</tt>
 
* 2: <tt>Pushwall_Move( tag, speed, direction, distance )</tt>
 
:Moves the pushwall in the trigger's map spot.  
 
:Moves the pushwall in the trigger's map spot.  
Line 57: Line 57:
 
::<tt>y</tt> - The Y coordinate of the tile.
 
::<tt>y</tt> - The Y coordinate of the tile.
 
::<tt>z</tt> - The Z coordinate of the tile.
 
::<tt>z</tt> - The Z coordinate of the tile.
* 9: <tt>StartConversation( tid, faceTalker )</tt> {{new}}
+
* 9: <tt>StartConversation( tid, faceTalker )</tt>
 
:This is an experimental function for starting a [[USDF]] dialog. Not very useful with current implementation. Documented here for completeness.
 
:This is an experimental function for starting a [[USDF]] dialog. Not very useful with current implementation. Documented here for completeness.
* 10: <tt>Door_Elevator( switchTag, speed, delay, lock, type )</tt> {{new}}
+
* 10: <tt>Door_Elevator( switchTag, speed, delay, lock, type )</tt>
 
:Similar to Door_Open in every manner except that the tag should point to the elevator switch.
 
:Similar to Door_Open in every manner except that the tag should point to the elevator switch.
* 11: <tt>Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )</tt> {{new}}
+
* 11: <tt>Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )</tt>
 
{{Note|Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.}}
 
{{Note|Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.}}
 
:Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.
 
:Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.

Latest revision as of 23:15, 23 August 2023

Action specials are function which are activated either by UWMF#Triggers or DECORATE actions.

General notes:

  • Tags are arbitrary numbers used to link a trigger to the tile that executes it.
  • Speeds are represented in the number of pixels traveled per tic/16. ECWolf runs at 70 tics per second.
  • Directions are relative to the triggering side or absolute if the 8 is added. Note that diagonal movement is not supported yet
    • 0 = right
    • 1 = back right
    • 2 = back
    • 3 = back left
    • 4 = left
    • 5 = towards left
    • 6 = towards
    • 7 = towards right
    • 8 = east
    • 9 = northeast
    • 10 = north
    • 11 = northwest
    • 12 = west
    • 13 = southwest
    • 14 = south
    • 15 = southwest

List of Action specials

  • 1: Door_Open( tag, speed, delay, lock, type )
Activates a map spot as a sliding door.
tag - The tag of the map spot which houses the door.
speed - Typical speed for a Wolf3D door is 16.
delay - Tics until the door closes. 300 is normal for a Wolf3D door. -1 means the door will stay open until manually closed.
lock - Lock specifies what keys are needed according to LOCKDEFS. 0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver
type - Whether the door is facing east-west (0), north-south (1), east-west double door (2), or north-south double door (3).
  • 2: Pushwall_Move( tag, speed, direction, distance )
Moves the pushwall in the trigger's map spot.
tag - The tag of the map spot.
speed - Typical speed for a Wolf3D pushwall is 8.
direction - The direction to move. See the general notes about how directions are specified.
distance - The distance in tiles to move. A value of 0 means the map tile will move until it is blocked by something.
  • 3: Exit_Normal( pos )
Exits the level using the standard exit.
pos - reserved and should be 0.
  • 4: Exit_Secret( pos )
Exits the level using the secret exit.
pos - reserved and should be 0.
  • 5: Teleport_NewMap( map, pos, flags )
Exits and travels to the specified map by levelnum.
map - The levelnum to travel to.
pos - reserved and should be 0.
flags - 1 = Keep direction, 2 = Keep position
  • 6: Exit_VictorySpin()
Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the BJRun actor which is spawned.
  • 7: Exit_Victory( pos )
Exits the level using the victory exit.
pos - reserved and should be 0.
  • 8: Trigger_Execute( x, y, z )
Executes all triggers on a given map spot. Useful for activating something on monster death or having multiple switches do the same thing.
x - The X coordinate of the tile.
y - The Y coordinate of the tile.
z - The Z coordinate of the tile.
  • 9: StartConversation( tid, faceTalker )
This is an experimental function for starting a USDF dialog. Not very useful with current implementation. Documented here for completeness.
  • 10: Door_Elevator( switchTag, speed, delay, lock, type )
Similar to Door_Open in every manner except that the tag should point to the elevator switch.
  • 11: Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )
Note: Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.
Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.
elevTag - Should the tag of the first switch in the sequence.
doorTag - The point to the door for this stop.
callSpeed - The time is takes for the elevator to move to or from this floor.
nextTag - The point in the next switch in the sequence.