Tomb Raider Forums  

Go Back   Tomb Raider Forums > Tomb Raider Level Editor and Modding > Tomb Raider Level Editor > Tutorials and Resources

Closed Thread
 
Thread Tools
Old 30-06-24, 13:02   #1
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default TEN - Legacy (classic) triggers

Made using Tomb Editor 1.7.1. pack (including Tomb Engine 1.4.)
Last update to TE/TEN: 1.7.2./1.5.


TEN has a fancy new trigger system, using volumes.
However, the good old ("legacy" or "classic") trigger system also works in TEN.
In this tutorial I told that why you need legacy triggers in TEN, and I also told some details about how to use them there.

Now you can get to know of further details about TEN legacy (classic) trigger system. (I mean, I cannot say "it works as in the classic engines", because it is not fully true. So you'd better meet the differences between using it there and using it in TEN.)
I won't be too detailed, though, these things basically should be really familiar from the old times...

CONTENTS:

1. The trigger editor
2. Trigger types
3. Trigger actions
4. Trigger parameters and timers
5. The mechanism of the trigger activation
6. Single trigger activations and triggers called once
7. Trigger bit flags
8. Overlapped triggers
9. The trigger name
10. Additional features
----------

Notes:
  • As the title says, it is “only” a Tomb Engine (TEN) tutorial. Many aspects you need to know for this tutorial are specific Tomb Editor (TE), TombIDE (TIDE), WadTool (WT) etc. features.
    So non-TEN features are only referred now, if it is necessary. And as much as I found it necessary. You need to also meet these features in other tutorials, for further details about them.
  • Some related TEN features are only mentioned, but not discussed in this tutorial, because they belong better to (an)other tutorial(s).
    Find another info source or be patient till those other tutorials are made.
  • Some setups mentioned in this tutorial perhaps have not implemented into TEN yet.
  • Some options or commands can be executed in several ways. I may not introduce all of the ways in the tutorial. (Using default keys are presumed.)

Last edited by AkyV; 04-11-24 at 19:57.
AkyV is online now  
Old 30-06-24, 13:26   #2
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

1. The trigger editor

When you hit T shortcut key to place a trigger (after selecting the floor sectors where the trigger will be placed), then the trigger editor panel pops up.
Its difference from a TRLE or an NGLE trigger editor panel is mostly the design - and, of course, it also misses the TRNG-specific contents:
  • Trigger Type window - here you can choose the trigger type you want:
    Antipad, Antitrigger, Climb, Combat, Crawl, Dummy, Heavy, HeavyAntitrigger, HeavySwitch, Key, Monkey, Pad, Pickup, Switch, TightRope, Trigger.
  • What window - here you can choose the trigger action you want:
    Camera, FinishLevel, FlipEffect, FlipMap, FlipOff, FlipOn, FlyByCamera, GlobalEvent, Object, PlayAudio (aka CD), Secret, Sink, Target, VolumeEvent.
  • (#) Param window - here you type some parameter value for the trigger (or choose it from a list).
  • (&) Timer window - here you type mostly some timer value for the trigger. Some triggers use this window for some secondary trigger parameter (typed or chosen from a list).
  • (E) Extra window - used only for TRNG triggers. TEN always ignores it.
  • Bit 1, Bit 2, Bit 3, Bit 4, Bit 5: these options are always all ticked initially. Always active at some trigger actions, but always inactive (i.e. useless) at other trigger actions. However, at some trigger actions, even if the options are active, you shouldn't untick them, because that will have no effect. So you should untick them (if necessary) only at FlipMap, PlayAudio and some Object trigger actions, to control how the trigger works.
  • One Shot: the option is initially unticked. Do not bother about that, only in the cases what I mention below in the tutorial.
    In the case of GlobalEvent and VolumEvent trigger actions the option is inactive, saying that this option for those actions can be set not here, but at event set editors.
  • Raw mode (show numeric values): practically it is useless, mostly it only shows trigger types and trigger actions with their numerical ID, instead of their textual name. (It is an important function mostly at TRNG, where you often refers to some trigger contents with some numerical ID.)
  • Occasional buttons on the trigger editor panel:

    • Locate: now the parameter of the trigger is a specific object, effect, camera, placed on the map. Click on the button, so the TE will show you this object, effect, camera in its room.
    • Reset: this will necessarily refreshes the contents of the window, next to this button.

    Click image for larger version

Name:	69.jpg
Views:	39
Size:	55.7 KB
ID:	6697

Last edited by AkyV; 13-07-24 at 11:47.
AkyV is online now  
Old 30-06-24, 13:28   #3
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

2. Trigger types

The trigger types you can choose in Trigger Type window - this will define the condition how the trigger will be activated, if the activator acts like this in the 3D trigger zone:
  • Trigger types to execute exactly the trigger action:

    • The activator of the trigger is Lara:

      • Climb: Lara is climbing/grabbing.
      • Combat: Lara is holding a weapon.
      • Crawl: Lara is crawling/crouching/on all four.
      • Key: Lara is using a key.
      • Monkey: Lara is monkey swinging.
      • Pad: Lara (or the vehicle she is just driving) touches the floor, doing anything.
      • Pickup: Lara is picking up an item.
      • Switch: Lara is using a switch.
      • TightRope: Lara is moving on a tightrope.
      • Trigger: Lara (or the vehicle she is just driving) is anywhere, doing anything.
        And Trigger trigger type is also needful additionally for some other trigger types - see more below (as "overlaps").

    • The activator of the trigger is not Lara:

      • Heavy: usually use this. (See below more about non-Lara activators.)
      • HeavySwitch: used with some special, complex setups. (Details later in the tutorial.)

  • Trigger types to execute the trigger action in reverse:

    • The activator of the trigger is Lara:

      • Antipad: Lara (or the vehicle she is just driving) touches the floor, doing anything.
      • Antitrigger: Lara (or the vehicle she is just driving) is anywhere, doing anything.

    • The activator of the trigger is not Lara: HeavyAntitrigger. (See below more about non-Lara activators.)

  • For a special trigger action:
    Dummy: traversable platforms (placed in the trigger zone) will be solid when the activator (mostly Lara) touches them.
    This trigger type seems useless in TEN. I mean, seemingly there are no traversable platforms in TEN, they all have an initial collision (where they have their collision box). (That is why we ignore this trigger in the further parts of the tutorial.)
About non-Lara activators:
It is not obvious at all, that which are the non-Lara activators of "heavy(...)" triggers, and how they do the activation. For this, there are specific setups of specific objects. Moreover, some of them haven't been implemented yet into TEN.
That is why I will not list them in this tutorial. Instead, I will mention them in tutorials where I concentrate on the specific setups of the specific objects.
However, now I list some frequently used activators of these triggers (which have already been implemented into TEN, anyway), only as some examples:
  • A SHATTER Static object, if it’s placed in the trigger zone, and Lara/anybody else/anything else shatters it.
  • A ROLLINGBALL object is rolled into the trigger zone.
  • The flaming torch (in Lara’s hand), if there is a flame object in the trigger zone, and also a Heavy to activate that flame. The player must hit CTRL (Action key) there for the activation (i.e. to make Lara touch the torch to the flame object).
  • A PUSHABLE_OBJECT, if Lara pushes/pulls it into the trigger zone, leaving it there.
  • A flyby camera, having "Activate heavy trigger" option ticked at its settings panel, placed in the trigger zone – activates when the flyby sequence just reaches this camera.
--------

Notes:
  • Standing on ghost blocks is considered as standing on the floor - i.e. Pad triggers work now.
    On the other hand, standing on platform objects is not considered as standing on a floor. (The floor below the platform is still considered as a floor.) You need TEN volumes or global events if you want to activate something when Lara is standing on a platform.
  • There are also other ways to make the trigger action work in reverse:
    Eg. when Lara is not turning on a switch, but turning it off, then the trigger action will work in reverse in some cases. (See more below.)
  • Feel free to use Heavy(Antitrigger)s instead of Lara's triggers for flyby cameras in the title level. (Unlike in legacy engines.)
  • Not only Lara is able to activate her triggers: see the classic setup of the mechanical scarab. (Not implemented yet into TEN.)
  • In TEN, Lara's vehicles do not activate Heavy(Antitrigger)s ever, they always use Lara's triggers.

Last edited by AkyV; 21-07-24 at 10:03.
AkyV is online now  
Old 30-06-24, 13:29   #4
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

3. Trigger actions

The trigger actions you can choose in What window - this will define the main purpose of the trigger, i.e. this thing will happen when the trigger is just activated by its activator:
  • Useable trigger type: Trigger (only if Lara, the activator is on the water surface or in the deep water):
    Sink action makes Lara be drawn to a Sink effect, while being in the trigger zone. (Or you can use even Combat trigger type, if you want the activation only when Lara is holding the harpoon gun.)
    See the settings panel of the Sink effect to adjust its strength.
  • Useable trigger types: Climb, Combat, Crawl, Heavy, Monkey, Pad, TightRope, Trigger:

    • Camera: it makes a Camera or Locked Camera show something different than the game camera usually shows. (The Camera/Locked Camera target is Lara by default.)
      This special view will be turned off when:

      • The activator has just left the trigger zone.
      • The player hits the Look key.
      • Lara draws a weapon.
      • The camera timer (see below) expires.
      • A flyby sequence (see below) starts. (If Lara, the activator is still in the trigger zone when the flyby sequence ends, then the Camera/Locked Camera view will be restored.)

      But also keep in mind:

      • The special view will turn off when she draws a weapon - so it cannot be turned on when she enters the trigger zone with armed hands, even if the trigger type is Combat.
        Except if you use Locked Cameras, that is why we have them. Use them if you don't want her armed hands to disable the trigger to work. (At least, it should be like that. I mean, for the time being Locked Cameras seem buggy in TEN, working like Cameras.)
      • Be careful with Heavy triggers, i.e. if the activator is not Lara. I mean, as I said above, Heavy activators are really different, so they act differently with Camera triggers.
        I mean, the thing that how they react for leaving the trigger zone, Look key, timer or weapons or flyby sequences, is not so obvious. For example, probably the Camera trigger won't turn off when a non-Lara activator leaves its trigger zone.
        That is why I suggest heavily to test each situation carefully, when you set a Camera trigger action for a Heavy trigger type.

    • FinishLevel: it finishes the level, loading the player to the next level of the game.
    • FlipEffect: it performs some special effect. (See more about the effect types below.)
    • FlipMap: it turns on a specific flipmap.
    • FlipOff: it turns off a specific flipmap.
    • FlipOn: it turns on a specific flipmap. (The difference from FlipMap is that a FlipOn trigger could turn on a flipmap only if that flipmap was turned on before at least once.)
    • FlyByCamera: it plays a flyby camera sequence.
      If the camera is not set as a loop, then it stops by itself at its end. And you can also abort it by hitting the Look key (except if you set it differently).
      You can have several options (on the settings panel of each camera) to adjust exactly how the actual sequence should work.
    • GlobalEvent: this trigger action is made for TEN, because it is able to execute a so-called TEN global event set. Moreover, it will execute it in a local way, i.e. when the activator activates the trigger in the trigger zone.
    • Object: it activates (enables) a specific Moveable object placed in the map. (Eg. a baddy will be spawned, a flame nullmesh object will start burning, the door will open, the object - made invisible by ticking it on its settings panel - will be visible etc.)
      Typing the proper OCB value on its settings panel will define that how this object will act when being enabled. (Though, this feature is not available for every object slot.)
    • PlayAudio (previously known as CD): it plays a specific audio track.
    • Secret: it defines a secret place of your level. (I.e. it plays the secret sound, adding to the statistics that you have found a secret.)
    • Target: it makes any Moveable object placed in the map (mostly a neutral CAMERA_TARGET nullmesh) as a camera target:

      • There must be another trigger on the sector of the Target trigger. This "another trigger" is a Camera trigger. When the Camera/Locked Camera of this Camera trigger is working, showing a special view, then the camera target will be not Lara, but the object chosen for this Target trigger.
      • Or: use the Target trigger without a Camera trigger overlapped with it. Now Lara, the only activator (i.e. Heavy doesn't work now) will be forced to look at the target.

    • VolumeEvent: this trigger action is made for TEN, because it is able to execute a so-called TEN volume (local) event set.

  • Other trigger types can be used only with Object trigger action, i.e. they will do something on a specific Moveable object placed in the map:

    • Switch: a specific switch object placed in the map is chosen here. It will cause something when Lara turning it on.
      This "something" is defined in another trigger, which is overlapped with the Switch trigger.
    • Key: a specific key hole object placed in the map is chosen here. It will cause something when Lara using the proper key item in it.
      This "something" is defined in another trigger, which is overlapped with the Key trigger.
    • Pickup: a specific item placed in the map is chosen here. It will cause something when Lara is picking it up. (64 needs to be added to the OCB value of the item.)
      This "something" is defined in another trigger, which is overlapped with the Pickup trigger.
    • Antitrigger, Antipad, HeavyAntitrigger: it deactivates (disables) a specific Moveable object placed in the map. (Eg. a flame nullmesh object will stop burning, the door will close etc.)
    • HeavySwitch: see later in the tutorial. (It could be also useable for FlipMap triggers.)

    An important development only for TEN users:
    Key holes can be used more than once if you set Switch trigger type instead of Key trigger. (Which doesn't mean automatically that you can use the same key here more than once. That is another adjustment we won't discuss in this tutorial. So you can also do it with picking up the same key type more than once.)
--------

Notes:
  • Some messes in legacy triggers was made seemingly clear in TE.
    I mean, eg. previously flyby sequences used Object triggers, and used only their own dedicated triggers in the title level. But in TE all the flyby sequences will use FlyByCamera triggers.
  • Seemingly there is a TEN feature when the Camera trigger has just been turned off: the view will be not cut back to Lara (as in legacy engines), but it will go back to her continuously.
    However, it seems not general, but only if she was the trigger activator.
    And it happens in a logical way. I mean, the view moves continuously only in her actual room, i.e. not going through the walls, when that camera was in a different room.
  • The new key feature is useable only if you don't need a "done" object in the setup. So it works only for key items, and doesn't work for puzzle items.
    It is because if PUZZLE_DONE shows that the puzzle has just been put into the receptacle (i.e. the key hole, which is a PUZZLE_HOLE object now) at the first usage, then that can't be "withdrawn", to make the hole empty again for the second usage.
  • VolumeEvent triggers are useable when you don't want to use an "Anti" trigger to disable a Moveable object: so use a Climb, Combat, Crawl, Heavy, Monkey, Pad, TightRope, Trigger trigger type, while the trigger action is VolumeEvent, and the event set (referred as the trigger parameter) should have contents about the deactivation (disable) of the object.

Last edited by AkyV; 10-09-24 at 09:06.
AkyV is online now  
Old 30-06-24, 13:29   #5
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

4. Trigger parameters and timers

Each trigger action has its own parameters.

Parameters of (#) Param window:
  • Camera: listing all the Cameras and Locked Cameras placed in the map.
    Choose the one which this trigger will use.
  • FinishLevel: type a level ID here, which one the trigger will load the player to.
    See the level blocks in the Gameflow.lua script file: the topmost one is the title level. having ID 0. Below that all the level blocks are for "real" levels: the one just below the topmost one has ID 1, the one just below that has ID 2 etc. (If you type 0, then the game loads to the level which follows the current level in the script.)
    Type the largest ID of your levels + 1 (or any bigger number), to make the trigger load you back to the title.
  • FlipEffect: type the ID of an effect here (see the effect list here, probably the column for TR4).
    This effect will be performed by this trigger.
  • FlipMap, FlipOff, FlipOn: type the ID of a flipmap here, which one the trigger will turn on/off.
    You can find the flipmap IDs amongst the values on TE GUI.
  • FlyByCamera: listing all the Flyby cameras placed in the map.
    Choose the one whose sequence this trigger will start. (Feel free to choose any camera of a sequence - but it will always start from its first camera.)
  • GlobalEvent: listing all the current global event set names.
    Choose the one which this trigger will perform.
  • Object: listing all the Moveable objects placed in the map.
    Choose the one which this trigger will use. (Depending on the chosen trigger action, this object will act differently - see in the previous post why.)
  • PlayAudio: type the ID of an audio file here (see Engine\Audio subfolder of the project folder), which this trigger will play.
    As you probably remember, this trigger (called CD before) has many limitations about audio file IDs at legacy engines: some IDs were hardcoded to be played always in a single way, other IDs were hardcoded to be played as a loop background track etc. These limitations still exist here.
  • Secret: type any number here. However, practically it should be a really low number, with only one digit. This number will identify this secret place, so it is logical that the first secret place you add to this level, has ID 1, the second one is ID 2, the third one is ID 3 etc. (Even in the game the secret places can be revealed not in this order, it doesn't matter at all.)
    So eg. a Secret trigger with ID 3 will play the secret sound, adding to the statistics that you have found the secret place marked with ID 3.
  • Sink: listing all the Sink effects placed in the map.
    Choose the one which one Lara will be drawn to, when being in this trigger zone.
  • Target: listing all the Moveable objects placed in the map.
    Choose the one which this trigger will use as a camera target.
  • VolumeEvent: listing all the current volume (local) event set names.
    Choose the one which this trigger will perform.
Timers or secondary parameters of (&) Timer window:
  • Camera: a timer will abort the camera view, if the value typed here is not the default 0.
    Type 1-255 here if you want to time the camera view for 1-255 seconds. (But never use a negative timer.)
  • FinishLevel: place a LARA_START_POS nullmesh object on the level whereto this trigger will load the player.
    Type a random number (one digit should be enough, and the best if you start with 1 at the first object like that) as the OCB value of the object. Type the same number in this Timer value.
    Now the trigger will not load the player to LARA object of that level, but to that LARA_START_POS object.
    I.e. this trigger will make an alternative position to start a level. (I.e. if Lara goes back to a level, but restarting it somewhere else.)
  • FlipEffect, FlipMap, FlipOff, FlipOn, FlyByCamera, PlayAudio, Secret, Sink, Target: the window is useless for these trigger actions. Keep always the default 0 value here.
  • GlobalEvent: at a global event set different contents can be defined for the Loop, Save/Load, Start/End, Use Item phases of the game.
    Choose the proper phase here, and the trigger will perform the contents which are set at that phase of the selected event set. ("Proper" means now what you want. I mean, the phase you choose has nothing got to do with legacy triggers, it only tells some contents now.)
  • Object: a timer will disable the object, if the value typed here is not the default 0.
    Type 2-255 here if you want to time the enabled status of the object only for 2-255 seconds. (1 seems useless.)

    • It should work nicely just as I told, at Climb, Combat, Crawl, Heavy, Monkey, Pad, TightRope, Trigger triggers.
    • As I said above, in the case of Key, Pickup, Switch triggers these triggers refers to the key, pickable item, switch which can be used. So the trigger overlapped with them refers to what will happen when this key, switch has been used or if this item has been picked up.
      So eg. if you want to open a door by using a switch, then this overlapped trigger is an Object, naming that door object.
      However, if you want to time the enabled status of that door now, then you should use the Timer window of the Switch Object trigger for this now, not the Timer window of the Object trigger where this door is named.
      (But it is not true with cameras: i.e. if the trigger overlapped is not an Object trigger now, but it is a timed camera, then the camera timer must be set at the Timer window of the Camera trigger, as usual.)
    • Timers are useless in "Anti" triggers or in HeavySwitch triggers (or at objects which cannot be timed: mostly creatures). In their cases always keep the default 0 value here.
    • Unlike at legacy engines, legacy triggers cannot handle negative timers in the usual way. (Eg. if a trigger activates a flame with -5 negative timer, then the flame won't be ignited at once when the trigger activates it, only in 5 seconds - this is how a negative timer should work.)
      Later you'll get to know methods with TEN events (even if they are performed by legacy triggers) which are able to simulate these negative timers.

  • VolumeEvent: at a local event set different contents can be defined for the Enter, Inside, Leave phases of a volume.
    Choose the proper phase here, and the trigger will perform the contents which are set at that phase of the selected event set. ("Proper" means now what you want. I mean, the phase you choose has nothing got to do with legacy triggers, it only tells some contents now.)
--------

Notes:
  • Flipeffects for animations will probably look really ugly placed in the map. So I suggest using effect IDs like that only as animation commands.
  • Notes to switches:

    • If Lara turns off a switch, then the triggers overlapped with the Switch trigger will be executed again. - But:

      • If this overlapped trigger is an Object, to enable a Moveable object, or a FlipMap, to turn on a flipmap, then it works in reverse, as an "Anti" trigger, to disable that object, or a FlipOff trigger, to turn that flipmap off.
      • If the object - eg. a creature - cannot be disabled, then it will be ignored when the switch is just being turned off.
      • As I said above, you can use Switch triggers at keyholes if you want to use that keyhole more than once.
        However, in that case the Switch trigger works like at switches - so as I just told. I mean eg. if there is an Object trigger overlapped with the Switch trigger, then the first usage of the switch (turning it on) will enable that object, the second usage of the switch (turning it off) will disable that object, the third usage of the switch (turning it on) will enable that object again etc.
        So: using a key at the first time in the keyhole is enabling now, using a key at the second time in the keyhole is disabling now, using a key at the third time in the keyhole is enabling now again etc. - If you want the keyhole to enable the object each time when a key is used, then the trigger action should be a VolumeEvent, where the event set is for enabling that object. (Or the opposite: if you want the keyhole to disable the object each time when a key is used, then the trigger action should be a VolumeEvent, where the event set is for disabling that object.)

    • A switch to time a Moveable object cannot be used physically while the timer is counting.
      When the timer expires, then the switch will go back into the "off" position by itself - activating the overlapped triggers in the same way as if Lara herself turned it off.
    • Be careful: in some complex setups the switch starts to behave in a different way than usual (i.e. when the thing affected by the switch could be affected by even other triggers, too).
      It means that thing is "off" when the switch is in "on" position, or the opposite: is "on" when the switch is in "off" position - i.e. the states are changed:

      • the switch needs to be moved into the other position to restore the proper state. So eg. if the thing is "off" when the switch is "on", and Lara moves the switch into "off" position, then the thing will remain "off", as it should here. Now moving then switch into "on" position, the thing will be "on", as it should here. Or
      • the states seem permanently changed. So eg. if the thing is "off" when the switch is "on", and Lara moves the switch into "off" position, then the thing will be "on".

  • Notes to secrets:

    • In TEN not the audio track with ID 005 is the secret sound any more.
      TEN will always search the biggest ID with three digits, and that will be played as the secret sound. (So eg. 999.wav will be surely played as the secret sound.)
    • If an ID is referred more than once in Secret trigger Param windows of a level, then only the first activation will be accepted, the further ones will be ignored. (It can be useful eg. if Lara can reach the secret place from different directions, so you place a Secret trigger at each entrance.)

  • The legacy trigger activator must be compatible with the activator of the chosen event set, if you choose VolumeEvent action. Eg. if it is a Heavy trigger, then it is a bad idea if the event set has Lara activator.

Last edited by AkyV; 25-11-24 at 20:52.
AkyV is online now  
Old 30-06-24, 13:31   #6
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

5. The mechanism of the trigger activation

Trigger types clearly say the condition when a legacy trigger will be executed.
I mean, eg. a "Crawl" trigger type clearly defines that it will activate its trigger action only:
  • when Lara crawls into the trigger zone, or
  • when Lara goes into the trigger zone, not crawling, and then crouches/goes on all four there. (Or perhaps then also starts crawling there, but it is not necessary any more.)
But it is also a question that when these activations will be ended? - Because:
  • In the case of Lara activator:

    • Usually the activation will happen again and again while Lara is in the trigger zone, and the trigger condition is also true. (So eg. in the case of a Crawl trigger the activation will happen again and again while Lara is in the trigger zone, and she is crawling/crouching/on all four.)
    • The activation can be single (see below how you can make it). Which means the activation will happen only once, when Lara enters the trigger zone (and the condition is also true), and never again while she is inside, even if the trigger condition is still true.

  • In the case of non-Lara activators:
    As I said, the behaviors of non-Lara activators are different.
    That is why I suggest to test at each occasion, that the activation they cause will be multiplied or single.
    (Or, see above what I said at Camera triggers: even if it leaves the trigger zone, the activation still continues.)
See some examples that how triggers react for multiplied or single activations:
  • A flame emitter naturally is ignited at the first moment when the trigger enables it. So a single activations is enough.
    However, you can also use a multiplied activation. Now in the first moment of the activation, the trigger ignites the flame.
    However, after that the trigger wants to ignite the flame again and again while the activator is still in the trigger zone - but it is meaningless, nothing happens, the flame is already burning. (And, for the same reason, if the activator leaves the trigger zone, and comes back later, nothing happens, it is still burning - either the activation is single, or multiple. First you need to disable the flame - and then this enabling trigger will be able to work again.)
  • A timed flame emitter naturally is ignited at the first moment when the trigger enables it, and the timer should start immediately. So a single activation should be enough.
    However, you can also use a multiplied activation. Now the same thing happens after that I said above: the trigger wants to ignite the flame again and again, so the timer wants to start again and again. That is why while the activator remains in the trigger zone, the timer won't run, because it will be started again and again, the flame remains surely burning.
    When the activator leaves the trigger zone at last, then the timer is able to start running at last.
    (Naturally it is not true for camera timers which starts immediately.)
  • With a VolumeEvent trigger you will be able to make eg. a one moment long blue light flashing through the whole level.
    If it is a single activation, then it will happen only once, so that flash will be really one moment long.
    If it is a multiplied activation, then that one moment long flash will be activated again and again while the activator is inside the trigger zone. And those one moment long flashes, one after the other, will be united into one, long, continuous flash, till the activator leaves the trigger zone.
--------

Note:
Be careful: many times it seems when the activator goes into the trigger zone, and then leaves it without stopping that movement, then the activation won't happen. - For example:
  • Lara crawls through the trigger zone of Crawl trigger type, without stopping inside.
  • Lara pushes/pulls through a PUSHABLE_OBJECT the trigger zone of Heavy trigger type, without stopping inside.

Last edited by AkyV; 20-07-24 at 10:58.
AkyV is online now  
Old 30-06-24, 13:32   #7
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

6. Single trigger activations and triggers called once

There are some ways to make a trigger activation single:
  • See what I said above: when a multiplied activation currently cannot happen again (eg. igniting a burning flame), then the first moment in the activation is actually the activation itself, so it can be considered as a single one. (Except naturally when it has a timer, then it cannot run now, starting it again and again.)
  • Trigger activations will be automatically single at short activations, like: using a key in the keyhole, picking up an item, using a switch.
  • Some actions are logically work in a single way: eg. there is only one moment for a FinishLevel trigger, because in the next moment the game starts loading the next level.
    Or: FlipEffect triggers to play a sound or PlayAudio triggers will never start the sound/audio again and again while the activator is in the trigger zone. (Otherwise you could hear only the first moment of the sound/audio again and again, while the activator is there.) Etc.
  • Triggers can be called once (initially or forced).
However, once called triggers and triggers with single activation are not exactly the same, because:
  • If the trigger should work with a multiplied activation, then calling it once will turn it into a "perfect" single activation - which means this time the timer will also work as it should work at a single activation.
    So eg. if it is a timed flame, then the timer will start immediately, when Lara, the activator enters the trigger zone. (I.e. there are no further moments for the activation now even technically, after its first moment.)
  • The trigger is either for multiplied or for single activation, calling it once will let it be executed only once.
    So eg. it is a timed flame, the timer has been expired, the flame is not burning any more. After that the activator enters the trigger zone again, but nothing will happen, the flame won't be burning any more.
  • Triggers with the same contents can't be activated if you already activated the once called trigger.
    So eg. it is a timed flame, the timer has been expired, the flame is not burning any more. After that the activator enters another trigger zone, which should also ignite this flame (even if this other trigger is not timed, and/or not set to be called only once). But nothing will happen, the flame won't be burning any more.
    (But it is true only if the contents of these two triggers are arranged in the same way. I mean, eg. if both flame-enabling trigger is an Object action. Because if one of them eg. is a VolumeEvent action, then these triggers won't affect each other in this.)
The way to force a trigger to be called only once is:
Just simply Tick One Shot option at the trigger editor panel.
But:
  • The option has no effect in the case of FlipOff, FlipOn, FinishLevel, FlipEffect, PlayAudio (for background loop tracks), Sink trigger actions.
    If you want these triggers to work only once (or only at a limited times), then you can disable the trigger (temporarily or permanently) with the so-called TRIGGER_TRIGGERER method.
  • You don't need the option in the case of these trigger actions, which are initially called only once: PlayAudio (for foreground single tracks), Secret.
  • Target trigger actions to draw Lara's attention also will work only once initially everyway. Previously that was reset each time when you loaded a savegame - but it seems it has been fixed for TEN.
  • Target trigger actions with cameras will always work together with the Camera trigger overlapped with it, Camera trigger either has this option ticked or not.
  • An item can be picked up naturally only once, and a key hole can be used only once (usually - I mean, see what I told above: some key holes can be used more than once), and there are switches which Lara can use only once, to turn them on (because they have no animations for turning them off).
    Which means in their case using One Shot option seems meaningless. - But it is not always true, because:

    • If you want to disable triggers with the same contents, then tick One Shot even at the key, pickup, switch setups.
      Eg. there is a Pickup trigger to open a door (with an overlapping Object trigger) when an Uzi item is picked up. If this setup has a One Shot ticked, then you won't be able to open the door later again with another Object trigger, if you closed that door in the meantime.
    • If the trigger overlapped with the Key trigger can be triggered more than once theoretically (eg. because it is to open a timed door) then I recommend using One Shot, due to technical reasons. (Because if Lara steps to the key hole later then the door will open again automatically for that time, though she naturally hasn’t just used a key there again.)

  • In the case of GlobalEvent or VolumeEvent trigger actions: set it at event set editors.
    In fact, global and volume events can be set even for 2, 3,... 100 shots. These shots will be counted at each moment which the activator spends in the trigger zone, aggregated for all the triggers of this event.
--------

Notes:
  • Be careful: One Shot won't be ignored when it cannot do anything.
    For example: there is a door never opened before. You have a Trigger to open it, and a One Shot Antitrigger to close it. If you activate the Antitrigger before opening the door, then naturally nothing will happen. However, One Shot was accepted - so if you open the door now with the Trigger, then after that you won't be able to close it with the Antitrigger, which can't be used any more.
  • Switches and One Shot (some switches may act a bit differently):

    • One Shot ticked (at a not timed trigger) will freeze the switch in "on" position, it cannot be turned off ever.
    • As I said above, a switch to time a Moveable object cannot be used physically while the timer is counting.
      When the timer expires, then the switch will go back into the "off" position by itself - activating the overlapped triggers in the same way as if Lara herself turned it off. - And (if the trigger has One Shot as well) now it will freeze in "off" position, it cannot be again turned on ever.
    • Just as I said at timers: in the case of using key or switch or an item picked up, usually you should adjust One Shot at Key, Pickup or Switch trigger. Except for cameras. (However, in some situtations cameras don't need another One Shot, if their Key, Pickup or Switch already has their own One Shot.)

  • As I said above, camera timers starts immediately. But One Shot turns multiplied activation into a single one, so even timers of Object triggers start immediately, if they are set as One Shot.
  • In a TRIGGER_TRIGGERER setup, place a TRIGGER_TRIGGERER nullmesh object on a trigger sector (the tip of the nullmesh can indicate any direction), if you want that trigger to be disabled temporarily or permanently. And also select that sector, and click on "Set trigger triggerer" button of Sector Options window (to have a blue frame around that sector, only on the plan view grid).
    Now the trigger will be disabled in the game, the activator cannot use it. You need to enable that nullmesh object with a trigger (somewhere else in the map), so the disabled trigger becomes ready to be enabled - till you perhaps disable the nullmesh with another trigger somewhere else in the map.
    (If the disabled trigger has more than one sectors, then you need other TRIGGER_TRIGGERER nullmeshes and other blue frames on all these sectors, too.)

    Click image for larger version

Name:	74.jpg
Views:	23
Size:	86.6 KB
ID:	6853

Last edited by AkyV; 20-07-24 at 11:08.
AkyV is online now  
Old 30-06-24, 13:36   #8
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

7. Trigger bit flags

Bit 1, Bit 2, Bit 3, Bit 4, Bit 5 options on the trigger editor panel are called "bit flags".
As I said above, you should be interested in using them only at FlipMap, PlayAudio and some Object trigger actions.

Using bit flags is useful when you want to make a group activation. I.e. when you need more than one triggers to activate one thing.

Bit flags for flipmaps

Probably the easiest way to demonstrate how Bit flags work, if I demonstrate it with FlipMap triggers.
When you have a trigger to acivate a flipmap, then initially all its bit flags are ticked. Feel free to untick any of these options.
What happens? Well, the trigger won't activate the trigger in the game any more.
Why? Because all the bit flags should be active to turn on the flipmap.

A bit flag set at a trigger is active:
  • if it is ticked there, and
  • if that trigger has just been activated.
So, when usually all the bit flags are ticked at a FlipMap trigger, then the flipmap will turn on immediately when the activator has just activated the trigger - because it also means the activator has just activated all the codebits.
But when one or more bit flags are not ticked at that trigger, then the activation of the unticked bit flags will not happen when the activator has just activated the trigger - so at another FlipMap trigger (or even at other FlipMap triggers) the missing bit flags should be also activated. In that moment, the flipmap turns on.
Feel free:
  • to choose different trigger types (or even different activators) for these triggers, and/or
  • to decide that which bit flags will be ticked/unticked at which trigger.
For example - there are three triggers to turn flipmap#1 on:
  • Trigger with bit flag1 and 5 ticked, bit flag 2, 3, 4 unticked.
  • Pad with bit flag 3 and 4 ticked, bit flag 1, 2, 5 unticked.
  • Heavy with bit flag 2 ticked, bit flag 1, 3, 4, 5 unticked.
The order of activating the triggers is not important - so eg. this will happen now:
  • Lara activates the Trigger (nothing will happen), and then
  • pushing/pulling a PUSHABLE_OBJECT on the Heavy activates that trigger (nothing will happen), and then
  • Lara activates the Pad - and, at last, in that moment the flipmap will turn on.
Why? Because bit flag 1 and 5 are ticked at Trigger, bit flag 3 and 4 are ticked at Pad, and bit flag 2 is ticked at Heavy - so if all the triggers are activated, then it also means that all the five bit flags are activated.

Interesting: what will happen if a bit flag is set at more than one of these three triggers? So eg. if bit flag 5 is ticked not only at Trigger, but even at Pad, too? (Or if you activate Trigger with bit flag 5 ticked twice?)
Nothing: if a bit flag was activated once then it will be ignored, to make this activation for that flipmap. (It is not true if you use switches, but I will talk about it later in this tutorial.)

Bit flags for objects

Bit flags are useable for an Object trigger only if the purpose of the trigger is to enable the object.
Anyway, bit flags basically work the same way as with flipmaps. (So you need more than one triggers to enable an object. Eg. to ignite a flame.) However, a big difference is that:
  • You can also see the five bit flags on the settings panel of Moveable objects.

    Name:  70.jpg
Views: 148
Size:  11.5 KB
  • The bit flags at the objects are initially not all ticked, but the opposite: all unticked.
  • If you tick a bit flag at an object, then it is handled as active right away.
    So in a setup like this the flame will be burning just after activating the two triggers:

    • Trigger with bit flag 1 and 5 ticked, bit flag 2, 3, 4 unticked.
    • Pad with bit flag 3 and 4 ticked, bit flag 1, 2, 5 unticked.
    • The object with bit flag 2 ticked, bit flag 1, 3, 4, 5 unticked.
However, like at flipmaps, you can use a setup for objects when bit flags were set only at triggers. Feel free to decide that which version you use for an object. (Except: see more below to understand that when bit flags are important to set on object settings panel.)

Bit flags for audio tracks

Using bit flags for audio tracks (i.e. for PlayAudio triggers) is a bit different than with flipmaps or objects.
I mean, as I said, a PlayAudio trigger initially play foreground single tracks only once. That is why another "One Shot effect" naturally also works here: if a PlayAudio played a foreground track once, then another PlayAudio trigger cannot play it any more on that level.
But, with these triggers, you can play a single audio track on a level maximum six times (still only once at each trigger), if you won't tick all the six options on the trigger editor panel, at that trigger - for example:
  • PlayAudio trigger for the first play: only bit flag 1 is ticked.
  • PlayAudio trigger for the second play: only bit flag 2 is ticked.
  • PlayAudio trigger for the third play: only bit flag 3 is ticked.
  • PlayAudio trigger for the fourth play: only bit flag 4 is ticked.
  • PlayAudio trigger for the fifth play: only bit flag 5 is ticked.
  • PlayAudio trigger for the sixth play: only One Shot is ticked. (Yes, One Shot option has a special task for PlayAudio triggers.)
However, it is not an order, so you can use for the first play even eg. the trigger with bit flag 3 ticked.

Automatic activation

If a bit flag set at an object is active initially, then all the bit flags set at an object should mean they are all active initially.
And, as you already know, if all the bit flags are active, then that means that object is enabled.
So, tick all the bit flags at a Moveable object, and then that object will be initially (i.e. immediately, when the level starts) enabled in that level, without any triggering.
After that, if you affect this object by a disabling trigger, that will be disabled, and, after that, it can be enabled by an enabling trigger.
However, if the first trigger is not for disabling, but enabling, then it will also disable (!) the object. If you want to re-enable it after that, then first you need to affect it by a disabling trigger (which cause nothing), and then an enabling trigger will enable it at last.

HeavySwitch triggers

This is a special Heavy, where your primary purpose is to define a specific activator for the trigger.
See for example when not any PUSHABLE_OBJECT, but only a specific PUSHABLE_OBJECT is able to activate the trigger:
In this setup there are eg. these things in the map:
  • A HeavySwitch trigger, to enable a flame object. The trigger has bit flag 1, 2 and 5 ticked.
  • That flame object, having only bit flag 3 and 4 ticked.
  • PUSHABLE_OBJECT "A", having only bit flag 1, 2 and 5 ticked.
  • PUSHABLE_OBJECT "B", having only bit flag 3 ticked.
  • PUSHABLE_OBJECT "C", having only bit flag 4 ticked.
If Lara pushes/pulls PUSHABLE_OBJECT B or C on the trigger, then nothing will happen, because they don't have the same bit flags ticked as the trigger.
But if Lara pushes/pulls PUSHABLE_OBJECT A on the trigger, then the trigger will be activated, because it has the same bit flags ticked as the trigger.
If the trigger has just been activated, then the flame starts burning, because bit flags 1, 2 and 5 has just been activated by the trigger, and bit flags 3 and 4 were active initially at the object.

But these specific setups are also available with HeavySwitch triggers:
  • What I have described so far about HeavySwitch triggers are not about group activations. But HeavySwitch is able to use bit flags even for group activations (to enable an object or to turn a flipmap on). - Let's see two examples:

    • Use HeavySwitch instead of Heavy, if you want to use specified activators for the triggers, for the group activation.
      See eg. a setup where there are two PUSHABLE_OBJECTs and two HeavySwitch triggers placed on the map. One of the objects should be pushed/pulled on one of the triggers, and the other object should be pushed/pulled on the other trigger. Both triggers are to enable the same flame nullmesh - when both the triggers are activated (so if all the bit flags are active):

      • HeavySwitch A has only bit flag 1, 2 and 5 ticked. In this case the PUSHABLE_OBJECT that should be pushed/pulled on this trigger also has only bit flag 1, 2 and 5 ticked.
        The trigger won't activate if Lara moves the other PUSHABLE_OBJECT on it.
      • HeavySwitch B has only bit flag 3 and 4 ticked. In this case the PUSHABLE_OBJECT that should be pushed/pulled on this trigger also has only bit flag 3 and 4 ticked.
        The trigger won't activate if Lara moves the other PUSHABLE_OBJECT on it.

      Because it is a setup to enable an object, then eg. it also works: HeavySwitch A (and its PUSHABLE_OBJECT) has only bit flag 1 and 2 ticked, HeavySwitch B (and its PUSHABLE_OBJECT) has only bit flag 3 ticked, and the object to be enabled has only bit flag 4 and 5 ticked.
    • If the group activation is for Lara's triggers, then usually you don't need a HeavySwitch (see that Trigger/Pad example above).
      But if you use shootable/breakable switches when Lara is using switches for a group activation, then you need one Heavyswitch, instead of "one Switch and another trigger overlapped with it". - For example if you want to enable a flame when Lara shoots two shootable switches:

      • HeavySwitch A has only bit flag 1, 2 and 5 ticked. In this case its switch also has only bit flag 1, 2 and 5 ticked.
        The trigger is to enable to Flame_Emitter X.
      • HeavySwitch B has only bit flag 3 and 4 ticked. In this case its switch also has only bit flag 3 and 4 ticked.
        The trigger is also to enable to Flame_Emitter X.

      (Or an alternative setup here is naturally when the flame itself also has some bits ticked.)

  • The LIGHTNING_CONDUCTOR setup.
  • The SCALES setup.
--------

Notes:
  • The screenshots in the linked setups are made in TRLE, not in TE. (Because those tutorials are old, made using still TRLE.) But I think it doesn't matter, you will be able to identify what you can just see.
  • If you want to use these "group of triggers" to time an object, then the timer value will be used which timer is set at the trigger which was activated at the latest.
  • If you want to use these "group of triggers" only once for a flipmap or an object, then tick One Shot at all of these triggers.
    (Or, it is enough at the latest trigger, if you know which trigger will be activated at the latest.)
  • If at least one of these triggers has a Key, Pickup or Switch trigger overlapped with it, then these triggers should have all the bit flags ticked, and you need to do this ticking/unticking thing at the Key/Pickup/Switch trigger.
    (And don't forget to set the timer and One Shot - if they are needful - at Key, Pickup or Switch, the way as I told it above, in the previous chapters.)
  • Some of the bit flags ticked will be ignored at the second or latter usages. (And not only at the trigger where they were used previously. I mean, even if it is a trigger for the same thing, also not having all the bit flags ticked, somewhere else in the map.)
    It is always true for FlipMap triggers. I mean, if there are two or more FlipMap triggers to turn on a flipmap together, then, after turning it off, any of these FlipMap triggers will be able to turn it on again, only by itself, not needing the other triggers again.
    In the case of objects it is not always true: if there are two or more Object triggers to enable an object together, then, after disabling it, still all the triggers are needed again to enable it again. - But keep in mind:

    • "Not always" means there are exceptions:
      If the object isn't disabled by a disabling trigger, but it is disabled by the timer (expired) or the switch (turning it off). Now even one of these triggers (using its own 0 or other timer value) could be enough to enable it again.
    • If an object has been disabled, then naturally its bit flags have been deactivated. So, even if that bit flag was active initially before, set at the object, not at the trigger.
      That is why that example above (i.e. when bit 2 is set at the object) wouldn't work at the second time, i.e. to ignite again the disabled (by a disabling trigger) flame. So, for a second time to ignite it, you need an Object trigger with bit flag 2 set, together with the two initial triggers.

  • Notes for PlayAudio:

    • You don't need to use all the options ticked at a level. So eg. for playing a track maximum twice at a level, use 3 ticked at one trigger, and 5 ticked at the other one.
    • If a bit flag was used for a trigger, then another trigger with the same bit flag is already useless after that.
    • Using more than one bit flags at a trigger could end in interesting situations.
      Eg. there is a trigger with bit 2+4 ticked, and another one with simply bit 2 ticked.
      If bit 2 trigger was activated first, then bit 2+4 can be activated after that, because bit 4 wasn't used.
      But if 2+4 trigger was activated first, then bit 2 cannot be activated after that, because bit 2 was already used.
    • When FlipEffects play some sound, that can be restarted even if it still plays. However, foreground single audio tracks won't restart while the track is still playing - the trigger to restart it will be considered as it started the track, though. (Which is bad, because PlayAudio triggers for a specific track can be activated a limited times, so it means you "wasted" a trigger for it, if the restarting trigger was a PlayAudio.)

Last edited by AkyV; 11-10-24 at 17:51.
AkyV is online now  
Old 30-06-24, 13:36   #9
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

8. Overlapped triggers

We are talking about overlapped triggers when more than one legacy triggers are placed on the same floor sector.
In this case naturally all these triggers will be activated, when the activator enters this common trigger zone.

Important that TE differs from the older editor in that that TRLE and NGLE wouldn't let you place more than one "special" trigger on the same sector.
They called a trigger special:
  • if the trigger had other trigger type than Trigger, and/or
  • if the value in the Timer window is not 0, and/or
  • if One Shot is set, and/or
  • if at least one bit flag is not set.
So it is not true any more in TE, you can overlap any legacy trigger with any other legacy trigger, on the same sector.
However, as you'll see below, it is still not obvious that you should do it, because triggers on the same sector may not work the way as you think they should do, if the triggers are adjusted not properly.

Mandatory overlaps

As you already know, some trigger setups work properly only if there are overlapped triggers on a sector.
Adjust the main trigger (Camera, Key, Pickup, Switch) as I told above, but you'd better always select the other trigger(s) there with Trigger trigger type:
  • If you want a Camera trigger to show another target than Lara, then you also need a Target trigger on the sector where the Camera trigger is placed.
  • If you want to cause something when Lara uses a key (or a puzzle item), then you need a Key trigger for the hole object of this key, on the hole object sector, and (an)other trigger(s) overlapped with it. This "(an)other trigger(s)" tell(s) which will be activated when the key is used in that hole.
  • If you want to cause something when Lara picks up an item, then you need a Pickup trigger for this item, on the sector where this item is placed, and (an)other trigger(s) overlapped with it. This "(an)other trigger(s)" tell(s) which will be activated when the item is picked.
  • If you want to cause something when Lara uses a switch, then you need a Switch trigger for this switch, on the sector of this switch, and (an)other trigger(s) overlapped with it. This "(an)other trigger(s)" tell(s) which will be activated when the switch is used.
And I have already also told that how to set timer, One Shot, bit flags in setups like this.

Adopting trigger values

If the overlap is not mandatory, then many times nothing special happens, the triggers in the overlap will do what they should do, without noticing each other.
For example, there are two Trigger triggers on the same sector. One is to ignite Flame A, the other one is to ignite Flame B. When Lara goes into the common trigger zone of these triggers, then both flames start burning, as it should.
But you can be sure about it only if these things are all true for all the triggers in the overlap:
  • the trigger type is Trigger, and
  • the value in the Timer window is 0, and
  • One Shot is unticked, and
  • bit flags are all ticked.
In other cases you need to be careful with the trigger values, because the triggers in that overlap will perhaps affect each other.
So in these "affecting" cases you need to consider one main trigger. The further triggers in the overlap are secondary triggers, which will always adopt some values of the main trigger.

Make some trigger overlap on a sector (actually with any legacy triggers). - Three triggers will be enough, for a spectacular example.
Now select that sector, and see the Classic Triggers window (which is in the bottom left corner of TE). The main trigger is always a trigger in the overlap which is in the topmost position of this window. The other two triggers of the overlap are secondary triggers.

Click image for larger version

Name:	72.jpg
Views:	23
Size:	18.5 KB
ID:	6816

Which means, be careful with these parameters of the secondary triggers, because the secondary triggers will adopt the values of these parameters from the main trigger:
  • the trigger type, and
  • the value in the Timer window, and
  • One Shot is ticked/unticked, and
  • bit flags ticked/unticked.
The best if you keep the default values of the secondary triggers (Trigger trigger type, 0 timer, One Shot unticked, bit flags are all ticked), and then the adoption will happen without any problem.
So keep in mind that the trigger type, the timer value, the One Shot status and the bit flag status you adjust at the main trigger, will be all used at the secondary triggers as well.

Let's see some examples to make it clear:
  • The main trigger is a Heavy to ignite a flame. The secondary trigger is a Trigger to open a door. When Lara pushes/pulls a PUSHABLE_OBJECT on the sector, then the flame starts burning and the door opens.
  • The main trigger times a flame for 5 seconds. The secondary trigger has no timer for a door. Let's suppose the activator is Lara this time. When she enters the common trigger zone then the flame starts burning and the door opens. When she lefts the trigger zone, then the timer starts, so the flame will be extinguished in 5 seconds, and the door will also close in that moment.
  • The main trigger has One Shot set to ignite a flame. The secondary trigger has One Shot unset to open a door. The flame start burning and the door opens, when the activator enters the common trigger zone. Later Antitriggers will extinguish the flame and close the door. After that the activator enters the common trigger zone again - but nothing will happen this time, the flame won't start burning again, and the door won't open again.
  • The main trigger has bit flag 1 and 2 set to ignite a flame and the secondary trigger has all the bit flags set to open a door. And there are another sector somewhere else with other triggers, where the main trigger is to open the same door, with bit flag 3, 4 and 5 set, and the secondary trigger is to ignite the same flame, with all the bit flags set. When the activator enters one of these common trigger zones, then nothing will happen. But when the activator (which could be naturally even another activator) enters the other common trigger zone as well, then the flame starts burning and the door opens.
The wrong switches

When you use the wrong switches that means a group activation where there are more switches are placed than you need - so if you use not only the switches you need for the group activation, but even other switches, then nothing will happen.
Previously I said that reusing bit flags will not ruin the setup, which isn't true for the switches. So eg. if there is a Switch trigger with bit flags 1, 2 and 5 ticked, and another Switch trigger with bit flags 2, 3 and 4 ticked, and you should use both the switches to open a door - then nothing will happen, because bit flag 2 is repeated in the setup.
Now you need this to keep in mind:
  • Unticked+Unticked=Deactivated
  • Ticked+Unticked=Activated
  • Ticked+Ticked=Deactivated
So bit flag 2 is deactivated in this setup, after using both the switches (because ticked here and ticked also there means "deactivated") - but, as you can see, if there is a third trigger, then you can open the door, using the formula of "if you add an unticked bit to a ticked bit, that will be an activated bit".
So, 1, 3, 4 and 5 bits are active (ticked) after using the first two switches, that is why the Switch trigger of the third switch must be unticked for bit 1, 3, 4 and 5. But 2 is deactivated (unticked) after using the first two switches, that is why the Switch trigger of the third switch must be ticked for bit 2.
It will be easier to understand if we use the binary way for the formulas, where 0 means unticked, deactivated, and 1 means ticked, activated:
  • 0+0=0
  • 1+0=1
  • 1+1=0
So listing the original two switches, and realizing the bits in 1-2-3-4-5 order, we can tell, that:

1-1-0-0-1
0-1-1-1-0
-----------
1-0-1-1-1

But if the third switch is also used, then:

1-0-1-1-1
0-1-0-0-0
-----------
1-1-1-1-1

Naturally you don't need a third switch, the door will open even if you set only bit flag 2 at the door object instead. - But my purpose was to make it clear now how it work witch only switches.

Till this moment, naturally we haven't talked about wrong switches yet, I only have introduced a simpler setup which will make the wrong switches understandable:
So let's say there are a fourth and fifth switches also placed, and if you use any of them instead of the third switch, then the solution will be wrong, the door won't open:

Using the fourth switch after using the first two switches:

1-0-1-1-1
1-0-0-0-1
-----------
0-0-1-1-0

Or using the fifth switch after using the first two switches:

1-0-1-1-1
1-1-0-0-1
-----------
0-1-1-1-0

So you need to move the fourth/fifth switch back into off position, trying the third switch instead.
Or - please notice if you also use the fifth switch after the fourth switch, ignoring the third switch, then the solution will be also proper:

0-0-1-1-0
1-1-0-0-1
-----------
1-1-1-1-1

However, this is even more interesting than that, if these triggers are able to do more than one things.
So eg. if not only one Trigger is overlapped with each Switch trigger, but even more, eg. there are further two Triggers at each Switch trigger to open further two doors (Door B and Door C). So eg. if the first, second, fourth and fifth switch is used, then three doors will be open.
In fact, this is not the real reason why I called it even more interesting. The reason is you can define different wrong switches for different doors now. Let's say this is what we want now:
  • Door B will open if Lara uses the first, the second and the fourth switches.
  • Door C will open if Lara uses the first, the second and the fifth switches.
The solutions:
  • As you know, the solution is wrong (0-0-1-1-0), when Lara uses the fourth switch after the first and the second switches. To reach the proper solution (1-1-1-1-1), only for Door B, tick bit flag 1, 2 and 5 (1-1-0-0-1) at Door B.
  • As you know, the solution is wrong (0-1-1-1-0), when Lara uses the fifth switch after the first and the second switches. To reach the proper solution (1-1-1-1-1), only for Door C, tick bit flag 1 and 5 (1-0-0-0-1) at Door C.
--------

Notes:
  • If two or more triggers are overlapped with each other on more than one sectors, then naturally they can affect each other on all the overlapped sectors.
    However, if some of their sectors are not overlapped with each other, then on those sectors they naturally won't affect each other.

    Click image for larger version

Name:	71.jpg
Views:	27
Size:	43.8 KB
ID:	6815
  • Interesting when a main trigger doesn't need some data, but you define it there, because its secondary triggers need that.
    For example: it is meaningless to type any non-0 value into the Timer window of a Secret trigger, because they have no either timer or secondary parameter, the trigger will ignore that window. However, if the Secret is the main trigger, and an Object (which can be timed) is a secondary one, then you need to type the timer at the Secret, if you want to time that object, and the timer of the Object trigger will adopt it.
    But I could also tell these now:

    • Or the opposite can also happen: if the timed Object trigger is the main trigger, and the Secret trigger is a secondary one, then the Secret trigger won't adopt the timer value, because that is meaningless for a trigger like that.
    • It is more interesting when the values for this window are not something to type, but they are listed. - I mean, see GlobalEvent and VolumeEvent triggers.
      Use Raw mode option of the trigger to see that what are the numerical ID values of these list entries. Yes, it is true: if GlobalEvent or VolumeEvent is the main trigger, then this ID will be adopted for secondary triggers, eg. as a timer value if it is an Object secondary trigger...
      (But listed values cannot be overwritten, so if VolumeEvent is a secondary trigger here, then always surely the value will be used for it which is listed in that window.)
    • If the One Shot feature is not an option, but a constant trigger property (see eg. PlayAudio triggers), then that won't be adopted by other triggers. (Or the opposite: this kind of "One Shot" can't be changed if this is a secondary trigger.)
    • Another peculiar example for adopting: FlipEffect triggers can't use Antitrigger trigger types, so they will adopt it without what they can't use. I mean, they will adopt the Trigger part of the Antitrigger, without the "Anti" part.

  • You can make nice tricky setups with trigger overlaps - for example:
    The main trigger is to spawn a baddy, only with bit flag 1, 2 and 4 set. There is a secondary tigger to open a door. The door object has bit flag 3 and 5 ticked.
    So, the secondary trigger adopts bit flag 1, 2 and 4 set. But, thanks to the bit flags set at the door, there is a complete 1-2-3-4-5 series of bit flags set for the door.
    So, after activating the triggers in the overlap, the door has opened everyway, but the baddy has not come to life yet, you need to activate another trigger with bit flag 3 and 5 set to spawn the baddy.
  • Camera triggers won't adopt Timer value or One Shot status, these values always need to be set at the Camera trigger.
    But the opposite is not true this time. I mean, if the main trigger is a Camera trigger, then its timer and One Shot values will be adopted by the secondary triggers. (But naturally the timer could work differently: it starts immediately for the camera with Lara activator, but for Objects - except with One Shot - only if she has left the trigger zone.) - And, just like in other cases, secondary triggers will adopt bit flag values from camera main triggers, even if cameras themselves won't use them. And naturally they will also adopt the trigger type.
  • The order of using "the good switches" is not important. Eg. when using the first, the second and the fourth switches opens a door, then it will naturally also work when they are used in eg. fourth-first-second order.
  • In "the wrong switches" setup the bit flags at the object won't be useless after their first usage. So if Lara later moves the proper switches into on position again, then the required thing will happen again.

Last edited by AkyV; 11-10-24 at 17:58.
AkyV is online now  
Old 01-07-24, 18:15   #10
AkyV
Moderator
 
Joined: Dec 2011
Posts: 5,074
Default

9. The trigger name

The names of legacy triggers are seeable in some places of TE. See the Classic Triggers window I said, where you can see all the trigger names of the selected sector. Or, if the trigger itself is selected, then you can also see its name in the top left corner of TE big editor window. Etc.
This name is always organized this way - i.e. the name contains these components, in this order:
  1. Trigger type
  2. Trigger action
  3. Param window value
  4. Timer window value
  5. the name of the room where the trigger is placed
The general formula for a legacy trigger name is:

Trigger_type [Trigger_action] "for/#" Param_value ("Timer:" Timer_value) "in" 'room_name'

We don't need to explain trigger type, trigger action or room name, but let's see the other components:
  • The Param value is always led in by one of these signs:

    • "for" - if the subject of the trigger is something placed in the map (i.e. at Camera, FlyByCamera, Object, Sink, Target trigger actions) or a new (TEN) trigger action (GlobalEvent, VolumeEvent).
    • "#" - if the subject of the trigger is something else (i.e. at FinishLevel, FlipEffect, FlipMap, Flipoff, FlipOn, PlayAudio, Secret trigger actions).

  • The Param value always looks like one of these:

    • If the trigger subject is something placed in the map:

      1. first the name of the subject is written,
      2. then (the name of the room where this subject is placed),
      3. and then [the unique ID of the subject].

      The name could be:

      • the name of the Moveable object slot selected in Param window: at Object and Target trigger actions,
      • "Camera" or "Locked camera": at Camera trigger actions,
      • "Flyby cam (camera sequence ID:camera unique ID)": at FlyByCamera trigger actions,
      • "Sink (sink strength)": at Sink trigger actions,

    • If it is a new (TEN) trigger action: the name of the event set selected in Param window.
    • If it is a FinishLevel trigger action: the level ID number typed in Param window.
    • If it is a FlipEffect trigger action: the effect ID number typed in Param window.
    • If it is a FlipMap, FlipOff, FlipOn trigger action: the flipmap ID number typed in Param window.
    • If it is a PlayAudio trigger action: the audio file ID number typed in Param window.
    • If it is a Secret trigger action: the secret place ID number typed in Param window.

  • The Timer value always looks like one of these:

    • If it is a Camera or an Object trigger action: the timer value typed in Timer window.
    • If it is a FinishLevel trigger action: the value typed in Timer window, referring to the corresponding LARA_START_POS object. Or 0, if that is typed there, because there is no object liket that.
    • If it is a FlipEffect, FlipMap, FlipOff, FlipOn, FlyByCamera, PlayAudio, Secret, Sink or a Target trigger actions: the default 0 value left in Timer window.
    • If it is a GlobalEvent or VolumeEvent trigger action: as I said above, the listed entries at these actions could be also represented by ID numbers. The ID number of the selected entry is shown here now.
Let's see some examples for legacy trigger names:
  • Example#1:

    Trigger [Object] for DOOR_TYPE4 (Room74) [door_type4_85] (Timer: 5) in 'Room106'

    • the trigger type is Trigger,
    • the trigger action is Object,
    • the subject of the trigger is a Moveable object of DOOR_TYPE4 slot, having door_type4_85 unique ID, placed in Room74,
    • the trigger will time the object for 5 seconds,
    • the trigger is placed in Room106.

  • Example#2:

    Pad [FlipMap] #2 (Timer: 0) in 'Room79'

    • the trigger type is Pad,
    • the trigger action is FlipMap,
    • the subject of the trigger is the flipmap having ID 2,
    • the Timer value should be skipped now,
    • the trigger is placed in Room79.

  • Example#3:

    Heavy [FlipEffect] #31 (Timer: 0) in 'Big Chamber'

    • the trigger type is Heavy,
    • the trigger action is FlipEffect,
    • the subject of the trigger is the effect having ID 31,
    • the Timer value should be skipped now,
    • the trigger is placed in the room having the name of Big Chamber.

  • Example#4:

    Monkey [VolumeEvent] for Spawn baddy in big room (Timer: 2) in 'Room59 (Flipped)'

    • the trigger type is Monkey,
    • the trigger action is VolumeEvent,
    • the subject of the trigger is a local (volume) event set, named as "Spawn baddy in big room"
    • the entry selected in Timer window has ID 2, which is named as "On Volume Leave".
    • the trigger is placed in the flipped version of Room59.
--------

Note: legacy trigger names in TRLE or NGLE don't have so much information like in TE.
On the other hand, TRLE or NGLE said something about legacy trigger names that is missing in TE, because the state of One Shot and the states of bit flags were also shown in the trigger names of the old editors.

Last edited by AkyV; 11-10-24 at 17:58.
AkyV is online now  
Closed Thread

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 19:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Tomb Raider Forums is not owned or operated by CDE Entertainment Ltd.
Lara Croft and Tomb Raider are trademarks of CDE Entertainment Ltd.