Triggers (XG)

From Doomsday Wiki
(Redirected from XG triggers)
Jump to: navigation, search

Cleanup Note: This article should be cleaned up to be more readable and/or to more closely follow the Wiki article guidelines.

An XG line type's activation type concerns the event(s) that lead to the triggering of the line's class.

A trigger is made up of two parts:

  • triggerer/object type (e.g. player, monster, missile etc)
  • event type (e.g. cross, push etc)

For instance, a player crossing a line is an event (player_cross) that could trigger an XG line. XG lines can be triggered by numerous different events (see below). It is also possible to assign multiple trigger events to an XG line and freely mix n' match activation/deactivation trigger events.

An example would be a switch that can be activated when shot as well as when the player "uses" it. Once triggered, a line's class might be executed depending on the line's "event type" (see below), the current "state" of the line (ie active/inactive) and the XG line activation requirements.

In order to function correctly an XG line definition MUST specify at least one trigger event and one function type.

There is an exception to this rule. If no trigger events are defined then the line's class can ONLY be triggered remotely (eg by a line using the Chain sequence (XG class)).

Event types

The flags listed below are used to define the type of events that can activate and deactivate a line. Combining the flags is allowed so lines can be activated or deactivated by several kinds of events. The line can also be set to be activated with one type of event and deactivated with another one.

There are two versions of each flag, suffixed _a and _d. Using the former activates the line (providing it's inactive) when the event in question occurs. The latter does the opposite. A flag with no suffix contains both the _a and _d versions (in other words that event can activate and deactivate the line).

To set the trigger event(s) and initial state within an Line Class definition use Flags e.g.:

Flags = flaga | flagb | flagc etc

Example:

Flags = player_use_a | active

Initial state flags

active

The line is initially active. If this flag is not set, the line is inactive after the map has been loaded.

Trigger types flags

Note: Chain trigger events are not affected by these flags.

player_use

Use events from a player mobj can activate/deactivate the line.

other_use

Use events from a mobj that is not a player can activate/deactivate the line.

player_shoot

Shoot events (caused by impact weapons: fist, chainsaw, pistol, shotguns, chaingun) whose originator is a player can activate/deactivate the line.

other_shoot

Shoot events (caused by impact weapons: fist, chainsaw, pistol, shotguns, chaingun) whose originator is not a player mobj can activate/deactivate the line.

any_cross

Cross events (mobj origin crosses the line while moving) from any kind of mobj can activate/deactivate the line.

monster_cross

Cross events (mobj origin crosses the line while moving)from mobjs that have the MF_COUNTKILL flag can activate/deactivate the line.

player_cross

Cross events (mobj origin crosses the line while moving) from player mobjs can activate/deactivate the line.

missile_cross

Cross events (mobj origin crosses the line while moving) from mobjs that have the MF_MISSILE flag can activate/deactivate the line.

player_hit

Hit events (line blocks mobj movement) from player mobjs can activate/deactivate the line.

other_hit

Hit events (line blocks mobj movement) from non-player mobjs can activate/deactivate the line.

monster_hit

Hit events (line blocks mobj movement) from mobjs that have the MF_COUNTKILL flag can activate/ deactivate the line.

missile_hit

Hit events (line blocks mobj movement) from mobjs that have the MF_MISSILE flag can activate/deactivate the line.

any_hit

Hit events (line blocks mobj movement) from any kind of mobj can activate/deactivate the line.

ticker

This is special kind of activation. It is done remotely by Ticker events (can happen up to 35 times per second controlled by Ticker start time, Ticker end time and Ticker tics) can activate/deactivate the line.