Difference between revisions of "Action specials"
From ECWolf Wiki
DavidAramant (talk | contribs) (Reformatted a bit and specified arguments in a more readable fashion.) |
m (→List of Action specials: Added double door type values (2,3) to Door_Open type parameter description.) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 23: | Line 23: | ||
== List of Action specials == | == List of Action specials == | ||
− | * 1: | + | * 1: <tt>Door_Open( tag, speed, delay, lock, type )</tt> |
− | :Activates a map | + | :Activates a map spot as a sliding door. |
− | :: | + | ::<tt>tag</tt> - The tag of the map spot which houses the door. |
− | :: | + | ::<tt>speed</tt> - Typical speed for a Wolf3D door is 16. |
− | :: | + | ::<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>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: | + | * 2: <tt>Pushwall_Move( tag, speed, direction, distance )</tt> |
− | :Moves the pushwall in the trigger's | + | :Moves the pushwall in the trigger's map spot. |
− | :: | + | ::<tt>tag</tt> - The tag of the map spot. |
− | :: | + | ::<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: | + | * 3: <tt>Exit_Normal( pos )</tt> |
:Exits the level using the standard exit. | :Exits the level using the standard exit. | ||
− | :: | + | ::<tt>pos</tt> - reserved and should be 0. |
− | * 4: | + | * 4: <tt>Exit_Secret( pos )</tt> |
:Exits the level using the secret exit. | :Exits the level using the secret exit. | ||
− | :: | + | ::<tt>pos</tt> - reserved and should be 0. |
− | * 5: | + | * 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. | ||
− | :: | + | ::<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: | + | * 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. | ||
− | :: | + | ::<tt>pos</tt> - reserved and should be 0. |
− | * 8: | + | * 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: | + | * 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: | + | * 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: | + | * 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. | ||
− | :: | + | ::<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.