Difference between revisions of "Action specials"
From ECWolf Wiki
m |
m (→List of Action specials: Added double door type values (2,3) to Door_Open type parameter description.) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Action specials are function which are activated either by [[UWMF#Triggers]] or [[DECORATE]] actions. | 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 == | == List of Action specials == | ||
− | * 1: | + | * 1: <tt>Door_Open( tag, speed, delay, lock, type )</tt> |
− | :Activates | + | :Activates a map spot as a sliding door. |
− | * 2: | + | ::<tt>tag</tt> - The tag of the map spot which houses the door. |
− | :Moves the pushwall in the trigger's | + | ::<tt>speed</tt> - Typical speed for a Wolf3D door is 16. |
− | * 3: | + | ::<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. |
− | :Exits the level using the standard exit. | + | ::<tt>lock</tt> - Lock specifies what keys are needed according to [[LOCKDEFS]]. 0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver |
− | * 4: | + | ::<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). |
− | :Exits the level using the secret exit. | + | * 2: <tt>Pushwall_Move( tag, speed, direction, distance )</tt> |
− | * 5: | + | :Moves the pushwall in the trigger's map spot. |
− | :Exits and travels to the specified map by levelnum. | + | ::<tt>tag</tt> - The tag of the map spot. |
− | * 6: | + | ::<tt>speed</tt> - Typical speed for a Wolf3D pushwall is 8. |
+ | ::<tt>direction</tt> - The direction to move. See the general notes about how directions are specified. | ||
+ | ::<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: <tt>Exit_Normal( pos )</tt> | ||
+ | :Exits the level using the standard exit. | ||
+ | ::<tt>pos</tt> - reserved and should be 0. | ||
+ | * 4: <tt>Exit_Secret( pos )</tt> | ||
+ | :Exits the level using the secret exit. | ||
+ | ::<tt>pos</tt> - reserved and should be 0. | ||
+ | * 5: <tt>Teleport_NewMap( map, pos, flags )</tt> | ||
+ | :Exits and travels to the specified map by levelnum. | ||
+ | ::<tt>map</tt> - The levelnum to travel to. | ||
+ | ::<tt>pos</tt> - reserved and should be 0. | ||
+ | ::<tt>flags</tt> - 1 = Keep direction, 2 = Keep position | ||
+ | * 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: | + | * 7: <tt>Exit_Victory( pos )</tt> |
− | :Exits the level using the victory exit. | + | :Exits the level using the victory exit. |
− | * 8: | + | ::<tt>pos</tt> - reserved and should be 0. |
+ | * 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. | ||
+ | ::<tt>x</tt> - The X coordinate of the tile. | ||
+ | ::<tt>y</tt> - The Y coordinate of the tile. | ||
+ | ::<tt>z</tt> - The Z coordinate of the tile. | ||
+ | * 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. | ||
+ | * 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. | ||
+ | * 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.}} | ||
+ | :Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door. | ||
+ | ::<tt>elevTag</tt> - Should the tag of the first switch in the sequence. | ||
+ | ::<tt>doorTag</tt> - The point to the door for this stop. | ||
+ | ::<tt>callSpeed</tt> - The time is takes for the elevator to move to or from this floor. | ||
+ | ::<tt>nextTag</tt> - The point in the next switch in the sequence. |
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.