Difference between revisions of "Action specials"

From ECWolf Wiki
(Reformatted a bit and specified arguments in a more readable fashion.)
m (Improving formatting)
Line 23: Line 23:
  
 
== List of Action specials ==
 
== List of Action specials ==
* 1:'''Door_Open'''(tag, speed, delay, lock, type)
+
* 1: <tt>Door_Open( tag, speed, delay, lock, type )</tt>
 
:Activates a map tile as a sliding door.
 
:Activates a map tile as a sliding door.
::'''tag''' - The tag of the map tile which houses the door.  
+
::<tt>tag</tt> - The tag of the map tile which houses the door.  
::'''speed''' - Typical speed for a Wolf3D door is 16.  
+
::<tt>speed</tt> - 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.
+
::<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.
::'''lock''' - 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
::'''type''' - Whether the door is facing east-west (0) or north-south (1).
+
::<tt>type</tt> - Whether the door is facing east-west (0) or north-south (1).
* 2:'''Pushwall_Move'''(tag, speed, direction, distance)
+
* 2: <tt>Pushwall_Move( tag, speed, direction, distance )</tt>
 
:Moves the pushwall in the trigger's tile.  
 
:Moves the pushwall in the trigger's tile.  
::'''tag''' - The tag of the map tile.
+
::<tt>tag</tt> - The tag of the map tile.
::'''speed''' - Typical speed for a Wolf3D pushwall is 8.
+
::<tt>speed</tt> - Typical speed for a Wolf3D pushwall is 8.
::'''direction''' - The direction to move.  See the general notes about how directions are specified.
+
::<tt>direction</tt> - 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.
+
::<tt>distance</tt> - 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)
+
* 3: <tt>Exit_Normal( pos )</tt>
 
:Exits the level using the standard exit.  
 
:Exits the level using the standard exit.  
::'''pos''' - reserved and should be 0.
+
::<tt>pos</tt> - reserved and should be 0.
* 4:'''Exit_Secret'''(pos)
+
* 4: <tt>Exit_Secret( pos )</tt>
 
:Exits the level using the secret exit.
 
:Exits the level using the secret exit.
::'''pos''' - reserved and should be 0.
+
::<tt>pos</tt> - reserved and should be 0.
* 5:'''Teleport_NewMap'''(map, pos, flags)
+
* 5: <tt>Teleport_NewMap( map, pos, flags )</tt>
 
:Exits and travels to the specified map by levelnum.
 
:Exits and travels to the specified map by levelnum.
::'''map''' - The levelnum to travel to.
+
::<tt>map</tt> - The levelnum to travel to.
::'''pos''' - reserved and should be 0.
+
::<tt>pos</tt> - reserved and should be 0.
::'''flags''' - 1 = Keep direction, 2 = Keep position
+
::<tt>flags</tt> - 1 = Keep direction, 2 = Keep position
* 6:'''Exit_VictorySpin'''()
+
* 6: <tt>Exit_VictorySpin()</tt>
 
:Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the {{Class|BJRun}} actor which is spawned.
 
:Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the {{Class|BJRun}} actor which is spawned.
* 7:'''Exit_Victory'''(pos)
+
* 7: <tt>Exit_Victory( pos )</tt>
 
:Exits the level using the victory exit.
 
:Exits the level using the victory exit.
::'''pos''' - reserved and should be 0.
+
::<tt>pos</tt> - reserved and should be 0.
* 8:'''Trigger_Execute'''(x, y, z)
+
* 8: <tt>Trigger_Execute( x, y, z )</tt>
 
:Executes all triggers on a given map spot. Useful for activating something on monster death or having multiple switches do the same thing.
 
: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.
+
::<tt>x</tt> - The X coordinate of the tile.
::'''y''' - The Y coordinate of the tile.
+
::<tt>y</tt> - The Y coordinate of the tile.
::'''z''' - The Z coordinate of the tile.
+
::<tt>z</tt> - The Z coordinate of the tile.
* 9:'''StartConversation'''(tid, facetalker) {{new}}
+
* 9: <tt>StartConversation( tid, faceTalker )</tt> {{new}}
 
: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:'''Door_Elevator'''(switchtag, speed, delay, lock, type) {{new}}
+
* 10: <tt>Door_Elevator( switchTag, speed, delay, lock, type )</tt> {{new}}
 
: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:'''Elevator_SwitchFloor'''(elevtag, doortag, callspeed, nexttag) {{new}}
+
* 11: <tt>Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )</tt> {{new}}
 
{{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.
::'''elevtag''' - Should the tag of the first switch in the sequence.
+
::<tt>elevTag</tt> - Should the tag of the first switch in the sequence.
::'''doortag''' - The point to the door for this stop.
+
::<tt>doorTag</tt> - The point to the door for this stop.
::'''callspeed''' - The time is takes for the elevator to move to or from this floor.
+
::<tt>callSpeed</tt> - The time is takes for the elevator to move to or from this floor.
::'''nexttag''' - The point in the next switch in the sequence.
+
::<tt>nextTag</tt> - The point in the next switch in the sequence.

Revision as of 02:32, 9 March 2016

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 tile as a sliding door.
tag - The tag of the map tile 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) or north-south (1).
  • 2: Pushwall_Move( tag, speed, direction, distance )
Moves the pushwall in the trigger's tile.
tag - The tag of the map tile.
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 ) (New from 1.4)
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 ) (New from 1.4)
Similar to Door_Open in every manner except that the tag should point to the elevator switch.
  • 11: Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag ) (New from 1.4)
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.