Jean-Yves
by Fluen

JEAN_YVES is a very special object. He is a complex animating which must be triggered. But he can't be anti-triggered and doesn't disappear when flipeffect 46 (kills all enemies currently active in the level) is used. So even though he is listed among the friends and enemies in the wad list he still is an animating.

Jean-Yves is complex because he has 16 different animations. They are divided into four groups and the game engine plays the animations within each group in a random order repeatedly so he appears to be doing something for a long time.

When he uses:

- Group 1 (animations 0-3), he sits by his desk, writing with pauses from time to time.
- Group 2 (animations 4-7), he stands near a bookcase, searching for books
- Group 3 (animations 8-11), he sits by a small table, reading
- Group 4 (animations 12-15), he stands at the opposite side of his desk, comparing stuff

The wad from the Alexandria-level (Alexhub) contains Jean-Yves and the office furniture made for his animations. To use it all you need:

JEAN_YVES
ANIMATING2 (his desk)
ANIMATING7 (a small table with a book)
ANIMATING8 (the chair for his desk)
ANIMATING9 (the chair for the small table)
ROCK0 (a bookcase)
You don't need the MIP-versions of the objects.

If you want to make use of all of Jean-Yves' animations you must make a room minimum 3 blocks wide and 7 blocks long. To demonstrate his functions I have made a room 7 x 7 blocks in size:

The four blocks with numbers tell where Jean-Yves appears when he goes through the corresponding group of animations.

Notice the red block (no. 1). This is where you must place Jean-Yves no matter what animation group he's supposed to go through.

Animation group 1

To make Jean-Yves sit by his desk, writing, you don't have to do anything special:

1. Place JEAN_YVES at the red block and place a trigger for him somewhere.
2. Place ANIMATING8 at the same block.
3. Place ANIMATING2 at the block with the number 4. It needs to be rotated 180 degrees (one half round) to have the correct orientation.

In the editor window everything appears as it will in game (this is the only time it does so):

. . . of course provided Jean-Yves doesn't take a break during work!

Animation group 2

To make Jean-Yves stand near a bookcase searching for books, you need to work with flipeffects.

1. Place JEAN_YVES at the red block and place a trigger for him somewhere.
2. Place ROCK0 near the block with the number 2. I have indicated where with the green block with no number in this picture. Rotate it 270 degrees (three quarters).

Yes, it looks odd in the editor window:

Now you must place a flipeffect trigger in order to make Jean-Yves appear at the bookcase in game:

1. Select a random object (just to avoid editing an existing trigger) and place a trigger for it somewhere (in this case close to the trigger for Jean-Yves).
2. Open the trigger dialogue (click over the field next to the purple trigger button in the editor window).

3. Click over the select-what-to-trigger-field and select 'flipeffect'. The trigger has now changed from a trigger for the random object to a flipeffect trigger.

The flipeffect in question must be a flipeffect 30 with a timer value of 1.
4. Click over the field next to the select-what-to-trigger-field, which now says 'flipeffect'.
5. Write '30' and press enter to make it stick (so the editor remembers it).
6. Click over the timer-field, write '1' and press enter.

And the result:

Animation group 3

You have to go through about the same procedure as for animation group 2 to make Jean-Yves sit by a small table, reading:

1. Place JEAN_YVES at the red block and place a trigger for him somewhere.
2. Place ANIMATING7 at the block with the number 3.
3. Place ANIMATING9 at the same block.

This time the flipeffect 30 trigger must have a timer value of 2:
1. Select a random object and place a trigger for it somewhere near the trigger for JEAN_YVES.
2. Open the trigger dialogue.
3. Click over the select-what-to-trigger-field and select 'flipeffect'.
4. Click over the field next to the select-what-to-trigger-field, which now says 'flipeffect'.
5. Write '30' and press enter.
6. Click over the timer-field, write '2' and press enter.

In the editor window the setup looks strange:

But it works fine in game:

Animation group 4

This setup is similar to the setup for animation group 1 as Jean-Yves merely moves to the opposite side of his desk:

1. Place JEAN_YVES at the red block and place a trigger for him somewhere.
2. Place ANIMATING2 at the block with the number 4. It needs to be rotated 180 degrees (one half round) to have the correct orientation.

And the last flipeffect 30 trigger must have a timer value of 3:
1. Select a random object and place a trigger for it somewhere near the trigger for JEAN_YVES.
2. Open the trigger dialogue.
3. Click over the select-what-to-trigger-field and select 'flipeffect'.
4. Click over the field next to the select-what-to-trigger-field, which now says 'flipeffect'.
5. Write '30' and press enter.
6. Click over the timer-field, write '3' and press enter.

This looks almost reasonable in the editor window:

And in game:

The whole row of animations

You may use all of those animation groups Jean-Yves contains in one single level. You just have to trigger them one by one.

In that case you'll have to place all the mentioned objects:
1. Place JEAN_YVES at the red block and place a trigger for him somewhere.
2. Place ANIMATING8 at the same block.
3. Place ANIMATING2 at the block with the number 4. It needs to be rotated 180 degrees (one half round) to have the correct orientation.
4. Place ROCK0 near the block with the number 2. I have indicated where with the green block with no number in this picture. Rotate it 270 degrees (three quarters round).
5. Place ANIMATING7 at the block with the number 3.
6. Place ANIMATING9 at the same block.

7. Place a flipeffect 30 trigger with a timer value of 1 somewhere.
8. Place a flipeffect 30 trigger with a timer value of 2 somewhere else.
9. Place a flipeffect 30 trigger with a timer value of 3 a third place.

When Lara moves through the level and returns to Jean-Yves from time to time she'll find him busy with different actions depending on how far the player has come in the level.

If you have played TR4 - The Last Revelation you already know that this was exactly the intention with Jean-Yves. Lara met him in Alexandria (a hub level) and received some information from him. Depending on where the player then went in the subsequent levels Lara would find him doing different types of work on her return (a way to show time passing I believe) and gain additional information as a hint on how to proceed.

Note: the animation groups can only be triggered in the described order and they can't be changed. If the player passes the trigger for the animation group 3 (flipeffect 30 with 2 as timer value - Jean-Yves reads by the small table) before he/she reaches the trigger for animation group 2 (flipeffect 30 with a timer value of 1 - Jean-Yves stands by the bookcase) the latter will not work and the player will never see Jean-Yves search for books. So give the placement of the flipeffect 30 triggers some consideration.

A little about the flipeffect 30

You may already have learned that the flipeffect 30 is used to control the artificial intelligence of the complex characters in TRLE - the Guide and Von Croy. This will probably cause trouble if you are trying to use one of those and Jean-Yves in the same level.

But the effect of the flipeffect 30 triggers lasts for more than the present level. As I have explained above, Lara moves around in several levels connected to Alexandria in TR4. The flipeffect 30 triggers are scattered all over those levels, yet affect Jean-Yves when the player returns to Alexandria.
The game engine remembers the triggered flipeffect 30 values.

Right away this may be a problem if you have used one of the complex characters (the Guide, Von Croy or Jean-Yves) in one level and want to use one of the others in a later level. But you can reset the game memory of the flipeffect 30 triggers - but only for a price.

The ResetHUB-command

The script line ResetHUB = x will reset the flipeffect triggers. But all puzzle items, key items and pickup items are deleted from the players inventory when this command is used. The only exceptions to this rule appears to be the quest items and the ordinary pickups (medipacks and such like).
The command also resets the level it refers to. So it's not much good if you want to reset Jean-Yves in a hub level as you may have to start the level over again every time you arrive there.

But if you use the ResetHUB command you have the opportunity to use Jean-Yves in more than one level and have him go through the different animation groups all over again.

I'll give you an example of how the ResetHUB-command is used.
Let us assume you are making a whole series of levels taking place in Lara's mansion:
Title level
Level 1 - Outdoor Training Course
Level 2 - The Basement
Level 3 - The Kitchen
Level 4 - The Library
Level 5 - The Attic

In 'The Kitchen' Jean-Yves can be found doing something at the kitchen table (animation group 4 - standing by the desk) and later in 'The Library' the player will meet him again searching for books (animation group 2 - standing by a bookcase).
This can't be done unless Jean-Yves is reset somewhere in between.

The script might look like this (note: this is adapted from the TR4 scripts):

[Title]
LoadCamera= 68096,1152,90624,68032,703,91542,1
Level= DATA\TITLE,104

[Level]
Name= Outdoor Training Course
Horizon= ENABLED
Layer1= 160,160,192,7
LoadCamera= 7835,-569,88960,5000,-323,88346,20
Level= DATA\OUTDOOR,110

[Level]
Name= The Basement
LoadCamera= 82362,-258,18777,84018,-1495,20276,33
Level= DATA\BASEMENT,110

[Level]
Name= The Kitchen
Horizon= ENABLED
Layer1= 160,160,192,7
ResetHUB = 4
LoadCamera= 87075,-14188,26581,89090,-15443,25670,29
Level= DATA\KITCHEN,107

[Level]
Name= The Library
Horizon= ENABLED
Layer1= 192,128,192,8
LoadCamera= 85312,-2666,39478,83984,-2559,39490,2
Level= DATA\LIBRARY,110

[Level]
Name= The Attic
Horizon= ENABLED
Layer1= 160,160,192,7
LoadCamera= 2070,-4610,38237,4155,-5672,39707,7
Level= DATA\ATTIC,107

'The Library' is level 4 and the level where Jean-Yves must be reset as he has already served his purpose in 'The Kitchen'. The ResetHUB command must be placed among the script lines for the level Lara's going from and use the number of the level she's going to (the title level doesn't count in the numbering).

Jean-Yves in plural

It's possible to have more than one Jean-Yves in your level. But be careful about it as he can't be anti-triggered or removed in any other way so he most likely takes up precious game memory. It takes only a few active enemies in a level to strain the game engine and because of Jean-Yves' strange status as an animating with an artificial intelligence I believe every version of him will occupy some of that memory. Use this possibility at your own risk.

The flipeffect 30 triggers will affect all versions of Jean-Yves in a level so they'll all go through the same animation group. But the game engine will assign every version of Jean-Yves his very own random order of the four animations in the selected group as this picture shows: