www.tombraiderforums.com (https://www.tombraiderforums.com/index.php)
-   Next Generation Level Editor (https://www.tombraiderforums.com/forumdisplay.php?f=40)
-   -   TRNG - Updates (https://www.tombraiderforums.com/showthread.php?t=136922)

Titak 27-10-08 17:08

TRNG - Updates
This is the place to come to read about all the TRNG updates.
Look for the regular download site to get the latest updates:

The old update texts (before TRNG as I am posting them here are the exact quotes taken from the Skribblerz forum. The text is also always present at Paolone's site, whenever a new update is released - or, if it is not present there, you can get it amongst the files of the updater.

An older basic TRNG pack (with trngdll - copy the files into your TRLE folder, removing the TRLE editor, game exe, converter there:*

TRNG pack old

A newer basic TRNG pack (with trngdll - copy the files into your TRLE folder, removing the TRLE editor, game exe, converter there:*

TRNG pack new

Basic NG Center pack (with NG Scripter - copy the folder on your computer:*

NG Center pack

*: You don't need to copy these files if your TRNG version is or bigger. In those cases use the installer instead. (Links for the installers are added in the posts below. The latest installer is also available in the regular download sites.)

If you have an old update file (trngdll, NG Scripter, updater or Mk installer, perhaps put in your gamepack sent to trle.net in the old times) or description which is not available here, then please send us, and we will add in this thread.

Updates uploaded only for beta tests of test teams are not included!


1. The tutorial projects mentioned in the descriptions below are not linked here, because they can also be found in the regular download site. (The file name is perhaps different than the name mentioned in the descriptions, though.)

2. These files are probably before the TRNG era (in spite of the name of "trngdll"), so these are NGLE without TRNG, probably useable for TREP:


Titak 27-10-08 17:08

Copy the trngdll files into the TRLE folder, overwriting the old version of the file there.
Copy the NG Scripter files into the NG Center folder, overwriting the old version of the file there.

Older updates before
3 March 2008 are unknown, perhaps they don't exist.

trngdll & NG Scripter
(Released 3 March 2008)
  • Changes to the NG Scripter are with the help for script commands. The script command Animation= has changed and now has an additional two fields.
trngdll, NG Scripter not available any more.

trngdll & NG Scripter
(Released 18 March 2008)
  • Bug affecting pushable objects being used with raising blocks fixed. Pushables now raise and lower in real time with raising blocks.
  • Script command Equipment= added to set the amount of items at the start of each level.
  • Script command PreserveInventory= ENABLED/DISABLED added so you can use ResetHUB and still keep pickup items.
  • Script command TextureSequence= added so you can set an animation P-Range frame by frame up to 1000 frames in any desired sequential order.
  • Script command Enhanced Animation= added with many new Environment conditions (tutorial to follow).
  • Flipeffect added which disarms Lara completely.
trngdll, NG Scripter not available any more.

trngdll & NG Scripter
(Released 27 March 2008)
  • Bug in river animations ranges fixed.
  • Holster bug fixed.
  • A new menu item has been added to the NGLE Textures menu. This new feature allows you to replace all identical textures in your level at the same time with another texture in a different position in your TGA set.
  • Flipeffects and actions to handle advanced swap meshes for Lara and enemies added. This means it's now possible to swap Lara's joints, hair and screaming head with a single flipeffect or animcommand.
  • The number of slots that store alternative Lara or enemy layouts has been increased from 3 slots to 70. An inherent bug that forced Lara to return to an original mesh after a swap has been fixed. Now Lara and baddies will be saved and restored with all mesh changes to and from savegames.
  • A new animcommand has been added to flipeffects which performs single swap meshes for Lara's hands (with weapons or without), holsters and weapons on her back for use in cutscenes.
trngdll, NG Scripter not available any more.

(Released 2 April 2008)
  • Bug in river animation ranges has been fixed.
trngdll not available any more.

This scripter cannot be identified well. The last save of it is 7 April 2008, but its ID number (, i.e 6) is less than the ID (, i.e 14) of the previous (27 March 2008) update:

NG Scripter

(Released 8 April 2008)
  • New features for rolling balls. Rolling balls can now kill baddies and shatter objects. New physics have been added to add realism to rolling balls splashing into water. Rolling balls can now be pushed simply by adding OCB numbers (see new OCB list for details).
  • Bug affecting pushable objects and trapdoors has been fixed. Pushables will now fall when trapdoors open.
  • Bug where wraiths did not inflict harm on Lara has been fixed.
  • Bug where the NGLE crashed loading very old projects has been fixed.
trngdll not available any more.

(Released 17 April 2008)
  • Bug fixed for animcommands set in objects other than Lara.
trngdll not available any more.

trngdll & NG Scripter
(Released 19 April 2008)
  • Bug fixed in animcommands (exported triggers) where moveables placed differently by Lara caused a crash.
  • An animcommand has been added to change facings of moveables (to use together with real SetPosition command when lara rotates of 90 or 180 degrees).
  • Warning: syntax of MultEnvCondition script command has changed. Now there is a third field to host the EXTRA field, one for each ENV condtion.
  • Scripter: information added to MNEMONIC CONSTANTS list. In previous versions you could get descriptions of constants only in NEW SCRIPT commands sections, while now you can find descriptions of some constants just by clicking on it in the list.
  • Scripter: now you can select with precision the text of constants or script command names just by keeping down the CTRL key while you perform a single mouse click.
  • Scripter: a new script command has been added named TriggerGroup. This hosts two or more triggers or condition triggers exported by the NGLE with new button of Trigger Window named "Export Script Trigger".
    With TriggerGroup you can create complex conditional triggers to perform one trigger or another according to the response of one or more conditions.
  • Pushables have had added an OCB that features the ability to push a pushable into a void (ocb = 32).
  • Warning: This change has meant a change of syntax of OCB values for pushable objects. Now you have to always add the value 64 if you want to use some new NG features. Heights are computed 1 unit = 1 click. (One sector = 4 units/clicks). This change has been necessary to avoid conflicts with Planet Effects puzzle, where the (common) pushables require different ocb values according to with Planet Effects ocb values.
  • NGLE: the requesting of tga files when missing (after moving a project file from another folder) is now performed in advance to avoid problems when loading projects.
  • NGLE: fixed bug in Trigger window, where it was difficult to select an object to trigger some effects like "Camera", "Sink" or "Flyby Camera".
  • Bug fixed with some SWITCH TYPE objects, where Lara went into tilt when engaging the switch.
  • Bug fixed with Rollingball ocb 4 and 8. In previous versions the rolling ball lost alignment with sector grid after some pushing, preventing further pushing.
  • Bug fixed with Rollingball ocb 4 and 8. In previous versions it was possible to push a rollingball into a sector where there was already another rollingball or moveables.
  • Fixed bug in title or flyby sequence when player press the key "1" to select weapon guns, or other numeric keys for other weapons.
  • Added condition trigger to test amount of picked secrets.
  • Added condition trigger to test last number typed in KeyPad.
  • Added action trigger which hurts enemies by removing vitality points.
  • Added pushable to Animating objects you can move with action trigger "move animating..."
  • Added action trigger to move immediately some moveables to other positions (teleport).
  • Added script command GlobalTrigger which is used to perform some action when a global event happens. Currently there are global triggers for: Timer screen, selected item in inventory and killed enemy.
  • Added flipeffect to enable/disable infinite air for underwater Lara.
  • Added flipeffect to swap mesh, to handle two or many custom skins for Lara with correct set and restore.
  • Added flipeffect to show/hide holsters (used with swap mesh for holsterfree Lara skin).
  • Added flipeffect to disable the use of weapons without removing weapons (to use with swap mesh for holsterfree Lara skin).
trngdll, NG Scripter not available any more.

trngdll & NG Scripter
(Released 29 April 2008)

NG Scripter
  • Fixed bug using medipacks with shortcut 9 or 0 keys when there was a single big medipack.
  • Fixed bug about sounds for boats (using wad file v130).
  • Added extra slot for moveable. Now new objects like boats will not create trouble with sound effects (supporting new version of WADmerger with wad version number 130.) This is still being worked on by Paolone and Michiel but should be available shortly.
  • Added autodetection for widescreen monitors and compensation for screen ratio.
  • Warning: syntax changed for GlobalTrigger command. One field has been added at start to store the IdGlobalTrigger value, to recognize the globaltrigger command from others. See new syntax in "New Script commands" of Reference panel of NG Center program.
  • Added flipeffect to enable/disable global triggers.
  • Added new trigger condition for status lara: invulnerable, infinite air, transparent.
  • Fixed bug in NGLE. In trigger window when changing a value in "Timer Parameter <&>" list, the (further) selection in "(E)xtra field" was reset to first value of list.
  • Added condion trigger to detect collision between Lara and some moveables, slots or creature types.
  • Added flipeffect to recharge Lara for air, damage and cold water.
  • Added flipeffect to poison Lara or remove the poison.
  • Added flipeffects to modify type of rooms in game. These flipeffects are very useful to enable/disable dynamics in game like Rain, Snow, Damage rooms, Cold Water rooms and Quick Sands rooms.
  • Added flipeffect to modify intensity of rain and snow rooms.
  • Fixed bug in NGLE of previous versione about CAMERA and FLYBY cameras.
  • Fixed bug in NGLE about message "Cann't overlap special triggers" shown also for camera with timer values.
trngdll not available any more.

trngdll & NG Scripter
(Released 8 May 2008)

NG Scripter
  • Fixed bug in NGLE/TRNG when a trigger for a CAMERA or FLYBY was used in the same sector with an ACTION trigger causing camera problems.
  • Added flipeffect to perform a TriggerGroup from script.dat.
  • Added Action triggers to activate objects, cameras, sinks, flipmaps etc. These action or flipeffect triggers work like a duplicate of common triggers CAMERA, OBJECT etc, but their target is to be exported as animcommands or script triggers, while the standard trigger can't be exported.
  • Added new flipeffect so that a fixed camera will follow Lara on some axis or from above (see new camera project or YouTube video for more information).
  • Added new flipeffect to handle special camera effects: matrix, portrait, enemy camera (see new camera project or YouTube video for more information).
  • Extended the number of flipmaps from 10 to 32.
    Warning: owing to changes in the internal format of savegames, from this version of the new game engine onwards old savegames will not function. This is necessary to support the change for 10 flipmaps to 32 flipmaps, since in standard tomb4 only the first 10 flipmaps (from 0 to 9) were saved to and restored from savegames.
  • Added Organizer script command. With organizer command you can schedule the activating of triggers at specific times. The new game engine will handle up to 100 events with different timings of up to 18 hours.
trngdll, YouTube video: not available any more.

trngdll & NG Scripter
(Released 10 May 2008)
  • Fixed bug: when setting a value 1024 in a pushable object to deny north-south direction the pushable was not moveable in any direction.
  • Fixed bug: when lara pushed a pushable object over a ledge with an OCB 32 but with no click height set in OCB field, the pushable remained suspended in the air without falling.
  • Fixed bug: in previous version the game crashed attempting to save the game.
  • Fixed bug: the global trigger GT_USED_INVENTORY_ITEM was enabled for each key, puzzle item or quest item selected in inventory indifferently by the slot kind typed in Parameter field of GlobalTrigger command.
  • Added customize setting for CUST_ROLLINGBALL_PUSHING. Using some rolling balls the effect when Lara pushes a rolling ball (ocb 4 or 8) was not good . To solve this problem you can now use CUST_ROLLINGBALL_PUSHING to change many settings about the animations of pushing to adapt them to a better way of rolling balls.
trngdll, NG Scripter not available any more.

trngdll & NG Scripter
(Released 12 May 2008)

trngdll, NG Scripter
  • Fixed bug for young Lara pigtail joints stretching in mirror rooms.
  • Added to Animation command the FAN flag FAN_START_FROM_EXTRA_FRAME. You can use this flag when you want to start an animation from other than the first frame (0). The number of frame should be typed in the Extra field of Animation command.
  • Warning: the FAN_WHEN_ ... flags of animation command, have been (ALL) renamed as ENV_ conditions and moved into ENV_ Condition field. This change has been necessary to have space for other FAN flags and also for logical reasons: the FAN_WHEN flags were conditions and the field for conditions is the ENV_ Condition field. If you used some FAN_WHEN_... value, you can correct your Animation command removing the FAN_WHEN flag from FAN field, and using the corresponding new ENV_... condition in ENV field or in some MultEnvCondition= script command.
    For example the old flag FAN_WHEN_IS_STILL now has been moved to ENV field with name ENV_IS_STILL, while the old flag FAN_WHEN_FREE_HANDS becomes the ENV_FREE_HANDS flag in ENV Condition field etc.
  • Added new condition for Lara vitality equal than/less than/higher than.
  • Added new condition for current Lara animation.
  • Added new condition for current Lara state-id.
trngdll & NG Scripter
(Released 22 May 2008)

trngdll, NG Scripter
  • Added support for CD audio sounds in mp3, ogg and wav format, using bass.dll.
    Now you can have two channels for music, one in the background and one channel with foreground sound. Included is a sweet fadeout for audios.
    Warning: please do not place any bass.dll file in trle folder. TRNG uses a built in bass.dll library and it will be extracted in runtime. If you place a wrong version of bass.dll in trle folder this self extraction could fail.
  • Added script command NewSoundEngine= to enable/disable the use of new sound engine bass.dll.
  • Added script command SoundSettings= to force the quality for music and the volume level for music and sound effects.
  • Added customize option CUST_NEW_SOUND_ENGINE, to set features for new sound engine, like fadeout times and default extension for audio files.
  • Added script command ImportFile to store in script.dat file any file you wish to have in target trle folder when your level will be played, or to be loaded directly in RAM memory.
  • Added many new flipeffects to play/stop/modify the audio tracks on first or second channel.
  • Added flipeffects to play sounds imported in memory (with ImportFile script command) in any audio formats (.mp3 .mp2 .mp1 .ogg .wav .aiff).
  • Fixed bug: During pushing of rollingball there was a bug in last version ( where the rollingball moved diagonally instead to following the correct push direction.
(Released 26 May 2008)

  • Fixed bug in NGLE. When you export CONDITION trigger with [Export Script Trigger] button in Trigger window, the further (E) extra value of condition trigger was lost (not exported).
  • Fixed bug in TriggerGroup command. When you used a condition with ELSE the performed trigger was not correct in accordance with condition.
  • Added self correction when you set as default extension for sound the .mp3 extension but .mp3 file is missing. In this case TRNG will try to find same number of track in .wav format. This behavior corrects further problems when a level with .mp3 files has been installed with Level Manager, since Level Manager will convert .mp3 files to .wav format. Note: to avoid mp3 conversion in Level Manager you can import your .mp3 files in script.dat using ImportFile= in IMPORT_TEMPORARY mode.
  • Added ENV condition ENV_WALL_HOLE_IN_FRONT to test if there is a wall with a hole in wall in front of Lara with specific height from floor and with a specific height of hole.
  • Fixed bug for vertical triggers. The vertical trigger did not work correctly.
  • Fixed bug for CONDITION trigger. The condition, when it was true, was disabled until Lara was on same sector. Now it works always.
trngdll & NG Scripter
(Released 12 June 2008)

trngdll, NG Scripter
  • Fixed bug: when trng engine found a bass.dll in trle folder, it didn't extract its own built in bass.dll version; it used the existing bass.dll. However, if this dll had a wrong version number the game crashed. Now TRNG will delete any bass.dll in the trle folder if it is a wrong version and will rebuild a new one.
  • Added new flipeffects that draw Lara in specific directions. The flipeffects work like sinks but you can use them also on land with or without floor contact. Their description starts with : "Lara. (Physics) ..."
  • Added flipeffects to add a few weather effects: lightning, layer1, layer2, with their speeds and colours in run time.
    Remark: the change in progressive mode (colour fade) for sky is incompatible with lightning mode enabled, hence, you should use flipeffect to disable temporarily the lightning mode while the changing sky colour is active. At the end you can enable lightning again.
  • Added flipeffect to show text, which freezes the game until players hit the Escape key.
  • Fixed bug: the status of animation ranges was not preserved in savegames. (status = if animated textures were moving or not).
  • Fixed bug: further looped sounds on second channels were not preserved in savegames.
  • Fixed bug: some triangle fragments of animated textures were not animated in game.
  • Corrected description of OCB for KeyPad object. The old description gave an incorrect OCB value as an example to get the keypad working with four digit codes.
  • Added new script command ItemGroup, to store a list of moveable indices and then use the ItemGroup to perform some operation on all objects listed in ItemGroup command.
  • Added customize constant CUST_SPEED_MOVING to set the default speed for action trigger moving moveables.
  • Added global triggers GT_LOADED_SAVEGAME and GT_SAVED_SAVEGAME to detect when the game has been saved or loaded.
  • Added script command ColorRGB= to set rgb colour for use with some flipeffects or actions.
trngdll & NG Scripter
(Released 12 June 2008)

trngdll, NG Scripter

Unknown contents.

trngdll & NG Scripter
(Released 28 July 2008)

trngdll, NG Scripter
  • Fixed bug: If bass.dll is missing from the trle folder, at startup there is an error message and the bass.dll doesn't work although it did start next time you started the program.
  • Added for Animation script command the FAN_SET_NEUTRAL_STATE_ID fan constant. Adding this value in FAN field you can avoid interferences by the game engine during your special animation.
  • Added to mapconverter a function to repair v50 projects created in abnormal way, i.e. changing only version number in .prj file.
  • Added to mapconverter the feature to convert a v49 project (64x64) in v50 (128x128) preserving big textures (only 128x128) already placed in original project.
  • Fixed bug: when triggering a flipmap room where there was a pushable object, the collision was lost.
  • Fixed bug: when the game started in setup mode and bass.dll was enabled in script.dat the game crashed.
  • Enhanced NG_Scripter: now the mnemonic constant for slots will be accepted in all fields of all script commands.
  • Fixed bug: the FogRange script command didn't work correctly (Perhaps...).
  • Added action trigger to add particle effect and remove particle effect from some moveables.
  • Fixed bug: the texts shown on screen were damaged when they were in the top half of the screen and the horizon was enabled.
  • Added CUST constant (CUST_WEAPON) to customize weapon: shooting frequencey, autoshot and many other things.
  • Added CUST constant (CUST_AMMO) to customize each single ammo: damage, special effect, number of ammo in pickup box and many others.
  • Added CUST constant (CUST_SHOW_AMMO_COUNTER) to enable the ammo counter on screen.
(Released 31 July 2008)

  • Fixed bug: water flipmaps reverting to previous state after reloading a savegame has been fixed. The flipmaps are now stable.
trngdll not available any more.

trngdll & NG Scripter
(Released 1 August 2008)

trngdll, NG Scripter
  • Added multiple sound extensions for audio tracks. The new constant is SEXT_MULTIPLE to use in Customize=CUST_NEW_SOUND_ENGINE script command as extension type. With this setting you can mix audio tracks in the three most common formats: mp3, ogg and wav.
  • Fixed bug in NGLE: the names of sound tracks (used in some cd play flipeffects) were missing if the corresponding sound file with .wav extension was missing in audio folder.
  • Enhanced moving animating feature: now also other moveables moved with action triggers will be restored (from savegame) in their correct previous position.
  • Added to condition trigger "Lara status..." the condition for Lara is touching floor, to use in globaltrigger script command like PAD condition.
  • Added to flipeffect trigger for "Lara physics to attract Lara", the mode "pad+over" to do the work of the trigger in both situations.
  • Added customize constant CUST_SET_INV_ITEM to set an inventory item as "invariable" i.e. like the binoculars. The player will be able to use that item over and over while preserving it in inventory.
(Released 22 August 2008)


Unknown contents.

(Released 22 August 2008)

  • Quicksand now works.
  • Fixed bug in swap mesh action: performing action trigger "Swap Mesh of <#>moveable with (E)Slot" over item different than Lara, some vertices were damaged.
  • Fixed bug in Enemy script command. The flag NEF_NON_TARGET to prevent Lara aiming at enemies didn't work.
trngdll & NG Scripter
(Released 31 August 2008)

trngdll, NG Scripter
  • Added new slot for MotorBike (SideCar) Lara animations. Now you can have the jeep and the Motorbike in the same level. See the Jeep/Bike project file which has the Jeep and motorbike in same level. Follow the instructions in readme.txt file to update wadmerger and objects.h before creating it.
  • Added in diagnostic mode (enabled with script command Diagnostic= ENABLED) the number of sound effects missing in game. Useful to locate easily the sound effects (SFX) you forgot to insert in your level.
  • Added in diagnostic mode the view of currently played SFX sound numbers, to discover what sound was used by which moveable or effect.
  • Fixed bug in customize command. Using CUST_SET_CREDITS_LEVEL the value changed the number of secrets for the level instead of changing the number of final level to show credit texts.
trngdll & NG Scripter
(Released 19 September 2008)

trngdll, NG Scripter
  • Added script command Turbo to enchance the speed of the game engine using different methods. It's useful for very big levels that have problems keeping the correct frame rate. There are different flags you can use to enable specific optimizations.
  • Fixed bug in flipeffect "Lara. (Physics) Pad+Over Mode. Attract Lara in <&>direction with (E)speed". In the trigger window were missing fields values for direction and speed.
  • Added new flipeffect command to set dynamically in game the level far view about max distance visible for objects and rooms. ("Distance. Set level far view (max distance) to <#>number of sectors")
  • Fixed bug in TeethSpike when you use in script.dat the command: Enemy= TEETH_SPIKES, IGNORE, IGNORE, IGNORE, 1 to allow Lara to walk slowly through teethspikes with no damage. In previous versions the command "walk left" caused damage and in other walking modes Lara lost blood if it was missing the damage.
  • Fixed bug in "Customize=CUST_SHATTER_RANGE" script command. If you set as firstshatter a slot different by default Shatter0 the status "already destroyed" of shatter was not correctly saved/restored in savegames. Fixed aother bug regarding the same situation for shatter objects that were not destroied by jeep/sidecar when it was remapped with Customize=CUST_SHATTER_RANGE.
  • Fixed bug. When Lara has no more pistol ammo, tomb4 engine played the sound SARLID_PALACES (for sarcophagus). This bug occurred only when you placed in script.dat the commands to set a precise number of ammo for pistol instead of default infinite ammo. To set a specific number of pistol ammo you have to use rows like:
    Equipment= PISTOLS_AMMO_ITEM, 30
  • Fixed bug in trigger window of NGLE. Many flipeffects had a bad description about where to set the main parameter. It said "<#>" while the correct field was "<&>".
  • Fixed bug in extra slot for statics. If you used some EXTRA static this object could be destroyed by skeleton or templar despite not being in the default shatter range.
  • Added flipeffect trigger to change the status of a few static objects: remove collision, set glass or ice transparency factor, poison, damage, explosion).
  • Added new OCB codes for static object, to set in the planning stage (in ngle) about features (transparence, collision, damage, poison, bomb) and more also: , huge static (unlimited collision box) and hard shatter (destroyable only by explosive ammo).
  • Added new customize constant (CUST_STATIC_TRANSPARENCY) to choose the transparency level for glass and ice used with statics.
  • Added new script command "Parameters", useful for storing many parameters to use with some triggers when the trigger window was not able to accept all necessary values.
  • Added new flipeffect to move static or moveable items using all required data from script dat, stored in command "Paramaters=PARAM_MOVE_ITEM,.." This is an advanced moving, where you can assign a sound for moving or stop in final position. You can set some flags to enable all heavy and/or common triggers in the path of this moving item.
  • Added OCB for Rollingball, the ocb 64. This OCB enables common triggers. The rollingball, other than enabling heavy triggers (as default) will now also enable common triggers, i.e. the "trigger" usually triggered only by Lara. In this way a rollingaball will be able to trigger traps for Lara saving her, like the mechanical scarab.
  • Added new flipeffect to force an animation for Lara. These three new flipeffects work in similar way of old "Force animation for Lara" but in this case you can choose between three prefixed settings about handling of state id. With old force animation some level builders had trouble with this.
  • Added new flipeffect to play a sound effect. Different to the old flipeffects for sounds with this new flipeffect you can choose a sound from new global sound map, available only in wads version 130. There are 2048 sounds in global sound map, all sounds of all Lara adventures (tr1, tr2, tr3 and tr5, other to common tomb4 sounds).
  • Added new Flipeffects to create an animated rotation of statics object. ("Statics. Rotation. ....").
  • Added new Flipeffects to move statics objects. ("Statics. Move. ...").
trngdll & NG Scripter
(Released 24 September 2008)

trngdll, NG Scripter
  • Fixed possible bug in flybys when there are over 100 flyby cameras in current level.
  • Added CUST_LOOK_TRASPARENT to disable transparency for Lara while using the look feature. Use following line in [Level] section to disable the transparency: Customize= CUST_LOOK_TRASPARENT, DISABLED
  • Added to Organizer new flag FO_TICK_TIME to set as time the tick frames instead of seconds. One tick frame is 1/30 of second, so you can assign more precise and shorter time gaps.
  • Fixed bug about playing of audio CD Tracks. When you set looped sound for channel1, after saving and reloading the background sound that came back was that set in script.dat.
  • Fixed bug about playing of audio CD tracks. When starting an audio that was in single-playback mode it disappeared after saving and reloading.
    Remark: I suggest you don't use the obsolete "CD" trigger but the new flipeffect triggers for audio tracks: "Sound (CD) Play ..." because with these new triggers you can have the most control over the number of channels which play the track and its status looped/single-playback. Using old "CD" triggers you always get a track on channel 2 in single-playback mode.
  • Fixed bug in flipeffect "Moveable. Move...". If an animating was moved to aother room it disappeared when Lara left the room where the animating was in original position.
  • Fixed bug in flipeffect "Moveable. Move ...". Some direction set with DIR_... constant were swapped: south with west and north with east.
  • Enhanced error detection in scripter. When you use two commands with same id, like two "TriggerGroup=4,..." and "TriggerGroup=4, ...", NG Center will give an error for duplication of commands in same section.
  • Corrected in trigger window of NGLE the description of flipeffect: "Lara. (Health) Decrease Damage of <&>units in (E)way" because it was ambiguous. In reality this flipeffect works on "Damage room" changing the value in Damage Bar. So this description has been changed to: "Lara. (Health) Decrease Damage Bar of Damage room of <&>units in (E)way"
  • Added CUST_HAIR_TYPE constant to set hair style of Lara independently by setting of YoungLara command.
    You can also remove all floating hair, or set two tails or single ponytail.
  • Added new flipeffects to perform TriggerGroup in continue mode. In continue mode the triggergroup will always be performed regardless of whether Lara is over a trigger sector or not.
    The flipeffect is the usual: "TriggerGroup. Perform <&>TriggerGroup from script.dat in (E)way" But now in "(E)way" parameter you can choose also the way: "Continue performing (it will be always performed until you stop it)"
    In this way all triggers in this triggergroup will be continuously performed until you stop it using another new flipeffect: "TriggerGroup. Stop <&>TriggerGroup ..." This new feature is useful to simulate different physics over wider zones.
  • Added in savegame the infos about timing of flame emitter effects. Theorically this new feature should preserve the exact phase for each flame emitter, while in old tomb4, after reloading of savegame, each flame emiter was reseted at start of its cycle. In the reality I've not had the time to verify if this feature works fine. (It's not easy to recognize the precise cycle :-/ )
trngdll & NG Scripter
(Released 8 October 2008)

trngdll, NG Scripter
  • Fixed bug about sound for Teeth_spikes object. When you reload a savegame you hear the sound of activation for teeth_spikes object. The fixing disabled the sound when the teeth_spikes has the ocb 16 (the spikes are always extracted).
  • Fixed bug in flipeffect "Moveable. Move item ..." trigger or in action trigger "Move. Move ... <#>animating for (E) clicks", when these triggers moved a pushable object. If you saved the game while the pushable was at half of its movement, at reload the pushable restarted from initial position and all NG collisions were lost.
  • Fixed bugs in computations of timer (positive or negative value) for Action triggers like "Trigger. Door .." and "Trigger. Moveable. .."
  • Added extensive description for valid values to choose in trigger "TIMER_FIELD" to set a timer value to use for all triggers in that sector.
  • Extended flame emitters. Now the number of flame emitters enabled at the same time is 127 (old limit was 32).
  • Added Action trigger to set a mesh of some moveables as visible or less:
    "Enemy. Mesh. Set for <#>enemy the (E)mesh as ..."
  • Added Action trigger to show on screen the countdown about activation of some moveable:
    "Enemy. Timer. Show the trigger count-down for <#>enemy using (E)format"
    For example you can see the remaining time before a door is closed.
  • Fixed bug about loading/saving savegame. An error damaged many structures saved in savegame. This bug could damage the correct saving/restoring operations for many continue triggers and organizers.
  • Added overflow check for moveable data in savegame. If after saving game you get on screen the message "OVERFLOW SAVEGAME", contact me please. Send an email to Paolone2008@tele2.it
    The overflow is theorically possible because the number of items (moveables) has been increased from 256 (old tomb4) to 1024 (TRNG) while the savegame space for moveables is the same. If I discover there is the risk of overflow I'll try to expand the internal memory of old savegame structure.
  • Fixed bugs in saving/reloading savegames. The data about FMVs (movies) had been saved incorrectly and this error might corrupt other saved data.
trngdll & NG Scripter
(Released 13 October 2008)

trngdll, NG Scripter
  • Fixed bug about CD audio track management. In previous versions when you saved the game and in the past when you had played a single-playback audio track, when you reloaded the savegame that audio track played from the start again.
  • Added new feature about CD audio tracks management: now when you save a game while some audio track is playing, when you'll load a savegame the audio track will be played starting from the last effective position when you saved.
  • Fixed bug about CD audio track management. In previous versions when you set a flipeffect "Sound (CD)" trigger to start a track on channel 1, this track had played on channel 2 if it was set as "single-playback".
  • Added in diagnostic messages on screen some real-time infos about current cd tracks on channel1 and channel2.
    Remark: this feature is present only when the bass sounds are enabled.
  • Added fade-in effect to all cd audio track playing. In previous version there was only the fade-out, i.e. the progressive reduction of volume before ending an audio track. The fade-in is the opposite: instead of starting a track immediatly with full volume, the sound will start with very low volume and it will be increased until it reaches the max volume.
  • Added new flipeffect trigger to play cd track:
    "Sound. (CD) Play <&>CD Track on (E)channel with final restore of old track"
    This trigger works in a similar way to the old CD trigger, for example when a "secret" sound stops temporarily the background looped track and, at end of secret sound, the background loop restarts from the beginning.
    The difference with respect to the old method is this trigger restarts the background cd from same point where it was stopped and fade-out and fade-in will be applied for both sounds.
  • Fixed bug about sound for teeth-spike with ocb 16 (permanent up). In previous version when a teeth-spike with ocb 16 was triggered the sound was missing. Now the sound will be removed only for 0.5 seconds after last loading savegame or start new game operation, regardless of the ocb values.
  • Fixed bug about CUST_SHOW_AMMO_COUNTER customize constant. The number of shotgun ammo was wrong: it was as internal data multiplied by 6.
  • Fixed bug in NG_Center: when you added two Customize=CUST_AMMO in same level section the program gave an error for duplicated command.
  • Added in NG_Center in Tool panel, a tool [Format Sprite Slot] to format a sprite slot with the desired number of textures and their size.
  • Added in NG_Center in Tool panel a tool [Sprite Editor] to edit the textures of sprite slots with many textures or high dimension (128x128). This is useful because WADmerger often crashes when you try to add or replace too many big textures in sprite slots.
  • Added CUST_SET_OLD_CD_TRIGGER customize constant to restore previous behavior of "CD" trigger also using new bass sound engine. This is useful only for old level projects, because with new projects it is better using the new flipeffect "Sound. (CD) Play <&>CD Track on (E)channel with final restore of old track", because this new trigger uses fade-in/fade-out and restores the looped sound from its previous correct position, while the old cd trigger restarted always from the start with no fade-in.
  • Added CUST_ESCAPE_FLY_CAMERA customize constant to allow at player to abort a flyby sequence using the ESCape key.
    This could be useful when there are very long flyby sequences and the player would otherwise be forced to watch the same flyby many times.
  • Added CUST_PAUSE_FLY_CAMERA customize constant to allow to stop temporarily the current flyby sequence keeping down the key "P"
    It could be useful for level builders when reading the load camera infos (when you hit F1), while for players it could be useful for looking for clues during flybys.
  • Fixed bug with F1 key to show camera data on screen while running a flyby sequence. Half of the text was unreadable because it was out of screen.
  • Added CUST_TEXT_ON_FLY_SCREEN customize constant. It enables the printing of text also during flyby camera.
  • Added global trigger GT_COLLIDE_STATIC_SLOT. It enables the global trigger when Lara is touching the static of slot kind set in Parameter field of GlobalTrigger= script command.
  • Added the new 2048 OCB value for Statics. Setting 2048 in a static, when Lara contacts with that static the (further) heavy trigger placed under the static will be triggered.
  • Added global trigger GT_DISTANCE_FROM_STATIC to enable the trigger when Lara is close to a specific static item. This global trigger works like the GT_DISTANCE_FROM_ITEM global trigger but in this case it works on static items.
  • Added condition trigger "Collision. Lara is touching some static of <#>Slot static type" to check if Lara is touching some static type.
  • Added condition trigger "Collision. Lara is touching the <#>Static item" to check if Lara touches a specific static item.
trngdll & NG Scripter
(Released 17 October 2008)


The original scripter ZIP has ID, however, the unpacked contents is the same as
in NG Scripter That is why this ZIP was not added, see the previous update.
  • Fixed bug about FogRange script command. In previous version the first parameter (MinViewOfFog for distance fog) had no effect. Remark: now it works. Anyway remember you can type also negative values for MinViewOfFog and they are the negative values to give a most visible effect. However you can't use the value -1 because ng_center would confuse this -1 value with IGNORE preset value, so you can use any positive value and negative value except the -1.
  • WARNING: some changes in the extra ng header (the header added at end of some tomb raider files like: .tom, .tr4, and savegames) requires that these files are freshly created before using them with tomb4 version To recreate these files, output your WAD and convert your level. Additionally, previous savegames made prior to this release of will no longer function so don't use them.
  • Added new flipeffect: "Weather. Fog. Set <&>Distance for Fog Distance", to change in run time the fog intensity for distance fog.
  • Added new flipeffect: "Weather. Fog. Change Fog distance to <&>Distance in (E)seconds" to perform a change of distance fog in dynamic way. The density of distance fog will change progressivly in real time in the required time.
  • Extended number of lights and fogbulbs showed at same time, from 20 to 80.
  • Added new flipeffect: "Weather. Fog. Pulse Fog from current to <&>Distance in (E)seconds" to simulate a variation of fog density in endless way.
  • Fixed bug: when in game distance fog had been enables, inventory itens were also wrapped in the fog.
  • Updated the description of FogRange= script command, because previous description was not correct.
  • Fixed bug: while a pushable object was moving (from some NG triggers) and you saved and reloaded the game, it was not more possible to push or pull it.
  • Fixed bug: when Lara pushed a pushable close to another pushable with OCB 32 (throw down) the static pushable was moved up in weird way.
trngdll & NG Scripter
(Released 19 October 2008)

trngdll, NG Scripter
  • Expanded savegame memory. The zone to store moveable/dynamic data has been duplicated because in very huge levels the data for moveables might force an overflow.
  • Fixed bug. When Lara moves to go in water, starting from water depth 2 clicks, Lara was able to walk on the water surface.
  • Fixed bug in NG_Center. When you use the "Format Sprite" tool (in "Tools" panel) and you click on [Format] button before selecting a wad the program caused a crash.
  • Fixed bug. In versions and the cd tracks were not saved in savegames in correct way and for this reason, in some circustances, at reloading of savegame the background audio tracks were absent.
  • Added customize constant "CUST_CD_SINGLE_PLAYBACK" to set the management of single-playback cd track about the saving/reloading from savegame.
  • Added to CUST_ESCAPE_FLY_CAMERA customize constant, new (optional) parameter to set the scancode of keystroke to use to skip the flyby camera sequence.
  • Added to CUST_PAUSE_FLY_CAMERA customize constant, a new optional parameter to set the scancode of keystroke to use to freeze the current flyby camera sequence.
trngdll & NG Scripter
(Released 28 October 2008)

trngdll, NG Scripter
  • Fixed bug. When fog distance is working in game the inventory items were damaged by fog color. This is the second attempt to fix this bug.
  • Fixed bug. In Reference panel of NG_Center many descriptions (in green box at bottom) had bad formatting: the empty rows to separate different arguments were missing.
  • Added customize constant CUST_ADD_DEATH_ANIMATION, used to add a dead animation immortal creatures that didn't already have it. You should use this customize when you want kill an immortal creature by shooting him.
  • Added new script command WindowTitle=, to change the window title bar of tomb raider.
  • Fixed bug in "Enemy. Kill <#>object in (E) way" action trigger. In the kill mode "Kill Creature" there was a bug and the enemy remained still but yet visible.
  • Added in NG_Center the tool "Icon Replacer". With this tool you can replace the default icon of trng tomb4 with another custom icon. If you wish there is also available another trng tomb4 version that uses an icon of 64x64 pixels ("TrngTomb4_64.zip"), while the default trng tomb4 uses a 32x32 pixel icon. Both versions are fully compatible with Tomb_NextGeneration.dll and have no difference except the size of their icon.
  • Added new customize constant CUST_BAR, to customize size and colours of all progressive bars of trng engine: health bar, air bar, dash bar and load level bar.
  • Added new customize constant CUST_KEEP_DEAD_ENEMIES, to preserve the bodies of dead enemies as in old tomb raider adventures.
TrngTomb4_64.zip: not available any more.

Titak 31-10-08 16:32

trngdll & NG Scripter
(Released 31 October 2008)

trngdll, NG Scripter
  • Fixed bug. When using the command: Customize= CUST_KEEP_DEAD_ENEMIES, ENABLED All puzzle/pickup/combo items, although already picked up, reappeared in their original positions after saving/reloading savegames.
  • Fixed bug. When the command WindowTitle in [Level] section was used, all following script commands in same [Level] section were ignored.
  • Changed description for Customize=CUST_BAR. I added an important warning: it's necessary that the ColorRGB command linked with CUST_BAR was typed FIRST (above) where the Customize=CUST_BAR IDs are used.
  • Extended memory for cameras used by flyby camera sequences, from 128 to 512 single cameras.
  • Added flipeffect: "Lara. (Mesh) Torch. <&>Light/Put-Out the Torch in the hands of Lara"
  • Added flipeffect: "Lara. (Mesh) Torch. <&>Give/Remove Torch to/from hand of Lara"
  • This flipeffect is necessary because the other flipeffects for swap mesh don't change some properties about Lara with torch but they changed only the mesh of left hand of Lara.
  • Added Condition trigger: "Lara. (Holds) Lara is holding/driving the <#>item" to verify if lara is holding some items (weapons, flare, torch) or vehicles, pole, rope.
  • Added global trigger GT_LARA_HOLDS_ITEM constant for GlobalTrigger command. This global trigger works like above new condition trigger.

Titak 28-11-08 16:23

trngdll & NG Scripter
(Released 20 November 2008)

trngdll, NG Scripter
  • With this latest update, it's now possible use new fonts with bigger definitions than with the old tomb4 font. The font has been stored in new obect (sprite) named FONT_GRAPHICS. To use the new font just copy this object into the desired wad file with wadmerger. To update wad merger to recognize the new object just copy the two files TR4Objects.dat and Objects.h into the folder where you installed the latest version of WadMerger. The objects.h file also has to be copied into your TRLE folder to replace the previous version. These two files are stored in the Font Sample Project file linked above. Included in the download is an example illustrating how to use the new font and also new triggers to scroll and to show text.
  • Fixed bug about double width characters used in savegame screen. In previous version using in [title] level the command - TextFormat= IGNORE,IGNORE,IGNORE, SC_DOUBLE_WIDTH - the texts in load savegame screen were overlapped in a bad way. Now, setting the double width the texts are correctly aligned. However the info about game time has to be removed using the new customize: CUST_NO_TIME_IN_SAVELIST constant, since it is not possible to store all the information (SaveNumber / level Name/ DateSavegame) in a single row using double characters.
  • Fixed bug: when the game was started in setup mode it sometimes crashed.
  • Added two FT_ flags for TextFormat= script command to locate text in two new prefixed zones of screen:
    FT_UNDER_LEFT_BARS (for top left corner, avoiding default bars)
    FT_UNDER_RIGHT_BARS (for top right corner, avoiding default bars)
  • Added new trng font features. Now you can set different fonts with most definitions (single char up to 42x42 pixel as source) than old tomb raider font. The new font is stored in new sprite object named FONT_GRAPHICS and you can find it, with information about its usage, in Font Sample Project linked above.
  • Added new tool in Tool panel of NG_Center program to edit the new Fonts. Using this tool you can import from Windows fonts list a font and import it into your FONT_GRAPHICS object quickly. This tool allows you to also set some graphic characters to mix with text. Click on [Help] button in Font Editor window for more information.
  • Fixed bug: with some screen resolutions there was a misalignment between text of keypad (digits: "4848") and keypad object.
  • Added new FT_ constants for TextFormat command: FT_SIZE_MICRO_CHAR and FT_SIZE_ATOMIC_CHAR.
  • Different to other ft_size constants these settings ignore all shape and preset size of current font and they force characters to be of same size: squared (microcar) or high rect (atomic) and very small. Remark: the micro car is the same font size used to show digits in Keypad switch.
  • Added new flipeffect trigger to show a vertical scrolling text: "Text. Vertical Scrolling of ExtraNG <&>string with (E) speed" Remark: about the speed type you can choose between "Abs" and "Prop" groups. The "abs" is for "absolute" and this speed always moves the text with a perfect multiple or divisor by "1". The advantage with "abs" speed is that the movement flows more smoothly. On the other hand, the abs doesn't consider the current screen resolution, so in high resolution the speed will appear more slowly, while, with same speed setting, the effective speed with low resolution will be faster. The "prop" speed is the opposite. "Prop" is for "proportional" and the speed increment will be updated according to curret screen resolution. The advantge is that the effective speed will be always the same with all resolutions, but the movement could be a bit uneven in some circumstances; this depends on rounding of floating point values of Y coordinate.
  • Added new global trigger constant: GT_VSCROLL_COMPLETE, to detect when a scrolling text operation has been completed.
  • Added new global trigger constant: GT_VSCROLL_LAST_VISIBLE, to detect when a scrolling text showed on screen is also the last row. This global trigger may be used to create a chain of different scrolling text to simulate a multisize/multicolor scrolling text.

Titak 28-11-08 16:24

(Released 25 November 2008)

  • Added flipeffect "Text. Vertical Scolling of ExtraNG <&>string with (E)formatting data". The difference with the other flipeffect for scrolling text is that using the formatting data for scrolling you can also create a column with scrolling non-centered text placed in any X point of screen. Just to type valid values for X_Position and Y_Position in Parameters=PARAM_PRINT_TEXT
  • Added flipeffect "Text. Horizontal Scrolling of ExtraNG <&>string with (E)formatting data". You can have sliding text strips in any y position of screen.
  • Fixed bug in WindowTitle= script command. The bug used wrong text and in some circumstances could create other problems.
  • Fixed bug in flipeffect "Lara. (Move) Move Lara in LARA_START_POS with <&>OCB value in (E)way", Lara was no longer able to go back to the same room from where she had started the movement.
  • Changed the fogend value for distance fog. In previous version the FogEnd value (internal setting in directx) was set with same value of WorldFarView limit, while now the LevelFarView value is assigned to the FogEnd. The difference is that now you can set different values for FogEnd, level for level, since the LevelFarView might be changed for each level, while the WorldFarView can be set only once in [Options] section. The effective working of this new feature should be verified because I've had problems detecting the difference.

Titak 15-12-08 16:31

trngdll & NG Scripter
(Released 15 December 2008)

trngdll, NG Scripter
  • Fixed bug: when you used "Customize=CUST_KEEP_DEAD_ENEMIES, ENABLED" to preserve the body of dead enemies from disappearing, and you killed by explosion some enemeies, the dead enemy, after save/load savegame, reappeared in game, dead, but yet visible.
  • Added new object from Tomb Raider Chronicles: the Parallel Bar, over which Lara is able to pirouette. To see new the object in Wadmerger and in the NGLE you have to update the objects.h and "TR4Objects.dat" files in the Wadmarger installation folder. The objects.h has to be copied into both the trle folder and also into the Wadmerger folder.
    Remark: in ParallelBars object you should type an ocb value = 202.
    The ParallelBars requires lara animations: 461, 462 and 463.
    You will find all the necessary items to use this object in sample project: Tomb5Bars.zip which is also linked above.
  • Added the customize option CUST_PARALLEL_BARS, to change default behavior of Parallel Bar from Chronicles and to add new properties.
  • Added in NGLE the new button "Play". It works like "Exit & Play" but in this case the ngle will remain open while the tomb4 plays. The ngle, in this building mode, will be minimized and when you finish playing with tomb4, you just click on the NGLE icon in the task bar to restore it.
  • Fixed bug in lights for mirror rooms. There was an error in computing lights for hidden room of mirror.
  • Fixed bug in flipeffect for sounds: "Sound. (CD) Play <&>CD Track on (E)channel with final restore of old track".
    The audio track was played only the first time, while from second time the audio track was not played.
  • Fixed bug in NG_Center about french and german texts. Some default strings were missing in game.
  • Restyled in ng_center the [Strings] panel:
    - The String panel now works to double width, like the Script panel.
    - The font used to show strings now has a bigger size.
    - When you edit a string the "\n" newline formatters will be removed and replaced by itself, allowing work with multilinear strings with no need to type the \n formatter in editing phase.

*** IMPORTANT ****
The ascii format of texts in NG_Center and TRNG engine have been changed. In previous versions the national characters were typed using non standard ascii value. For example texts like: "Les ruines côtières" or "Münzstück", appeared in french.txt or german.txt in this way: "Les ruines c“tiŠres" o or "Mnzstck", with some vocals apparently damaged. In reality those "damaged" letters were necessary to tomb4 to show correct special vocals.
With this new version (from, you can type the texts in the normal way "Les ruines côtières" or "Münzstück"
It's important to remember to convert all texts to the new extended ansi format, using the new tool in [Tool] panel named [Convert texts to new format]. This tool will change all "damaged" special letters with correct letters. In future you'll have to type only normal texts, forgetting the old converting procedure. Remark: if you find in your language some texts with errors in special letters, please let me know.
  • Fixed bug in Customize=CUST_BAR. The YOrigin field had an error of compute.
  • Fixed bug in load camera phase. When the game was in full screen the title bar was flashing.
  • Added some new environment conditions for Animation command:
    ENV_IN_LEFT_SIDE_SECTOR, ;when lara is in left side of current sector
    ENV_IN_RIGHT_SIDE_SECTOR, ;same of above for right side
    ENV_ITEM_EXTRA_AT_LEFT, ;to detect an item at left of lara
    ENV_ITEM_EXTRA_AT_RIGHT ;same of above for right side
  • Added some new flipeffect to show text:
    "Text. Print PSX <&>String with (E)formatting data" ,
    "Text. Print PC <&>String with (E)formatting data" ,
    "Text. Print PC <&>string with (E)formatting data, and wait Escape",
    "Text. Print ExtraNG <&>string with (E)formatting data, and wait Escape"
  • Fixed bug in [NG Font Editor] tool of NG_Center. In importing phase some characters like the underscore "_" were missing because they were too low with respect to the baseline.
  • Added new FAN_ flags for Animation command: FAN_ENABLE_GRAVITY and FAN_DISABLE_GRAVITY
    The engine performs a computation to simulate the gravity only when the gravity flag is enabled. You can enable or disable gravity for your custom animation when it will be performed.
  • Fixed bug in Animation command: in some circumstances the value typed in Extra field was altered.
  • Added new ENV_ condition for Animation command: ENV_ITEM_TEST_POSITION
    This condition works in accordance with a new TestPosition command to detect precisely whether Lara has correct distance and orientation respect to other moveables. This ENV condition works better than other old ENV_ITEM_EXTRA_... conditions.
  • Added new script command: TestPosition.
    In this script command you can type all data necessary to detect the distance between Lara and some Moveable, to use together with ENV_ITEM_TEST_POSITION in Animation command.
  • Enhanced performance of FAN_ALIGN_TO_ENV_POS flag of Animation script command. Now when you use the FAN_ALIGN_TO_ENV_POS flag togheter with ENV_ITEM_TEST_POSITION condition, you can get a dynamic self-alignment of Lara in front of the desired object before performing your custom animation.
  • Added new ENV_ condition for Animation command: ENV_HOLD_EXTRA_ITEM_IN_HANDS
    This condition checks if lara is holding in hand the desired item typed in Extra field.
  • Added new FAN_ flag for Animation command: FAN_PERFORM_TRIGGER_GROUP
    With this flag the Animation command could be used to perform a TriggerGroup instead of an animation. In reality, it's probable you'll use this feature to perform a custom animation typed in trigger group by an exported flipeffect. The difference is that, in this way, you can perform also other triggers before or after the performing of your custom animation, to add new skills to Lara in accordance with your custom animation.
  • Added new ENV_ condition for Animation commands: ENV_CONDITION_TRIGGER_GROUP
  • Using this condition you can use as condition for your Animation command a triggergroup where you stored some exported condition triggers.
  • Added new flipeffect for custom animations:
    "AnimCommand. Set temporary Free Hands until is performing <&>Animation",
    "AnimCommand. Set temporary Free Hands for <&>Seconds",
    "AnimCommand. Remove Free Hands and restore previous status"
    The "Free Hands" is an internal animcommand already present in default tomb4, its name in Animation Editor was "Command3 (Unknown)" The difference with the new "Temporary Free Hands" is that you can in second moment restore the previous status about "what hands of lara are holding ..." This is useful when you want perform your custom animation while Lara holds weapons or a torch or she climbs or monkey swings, and at end of your custom animation you want to restore the previous status. If you try to perform a custom animation (without using Free Hands) while Lara is holding a weapon, the arms don't move in accordance with your animation because the hardcoded managements of weapons will not allow it. Another difference of the new temporary free hands, is that with old Free Hands if Lara was holding the torch the engine didn't accept the "Free Hands" command, while with new temp free hand it does.
  • Added new global triggers: GT_GAME_KEY1_COMMAND, GT_GAME_KEY2_COMMAND and GT_KEYBOARD_CODE, to perform a global trigger when the player sends some keyboard or game commands. You can also remove the desired command by adding to Flags field of GlobalTrigger command the new flag FGT_REMOVE_INPUT flag.
  • Added in NG_Center the [Undo] button, to restore previous 10 edit commands in Script panel. The main benefit is when you make a mistake with Cut/Paste/Delete (key) commands and you want to restore your previous text. Type the UNDO button many times to go back to older script versions.
  • Fixed some bugs of Animation Watcher (in Tools panel of NG_Center):
    - [Refresh] button didn't re-enable the current request
    - For all wads v130 version gave the error "wad ... is not a correct wad file"
    - Using Upper [Browse] button the program required to choose two wad files, also when only one was necessary.
  • Enhanced the [Find] text features in Reference panel. Now when you type two or more words separated by spaces, the Find feature will find all texts where both words are used in any order. For example if you type in find white box the text: "disable cust", the find procedure will find "CUST_DISABLE_FORCING_ANIM_96" and also "CUST_DISABLE_SCREAMING_HEAD"
  • Added in Reference panel of NG_Center a list of descriptive constants for all State-Id values. The state id constants begin all with the prefix "STATE_ ..."
  • Created tutorial for Animation command with sample project and study in depth of TestPosition command. (see AnimationTestPosition.zip file linked above).

Titak 07-01-09 16:47

Full Installer and TRNG Updater
(Released 5 January 2009)

Due to difficulties with the numbers of TRNG and NG Scripter files around and subsequent crashing problems caused by file mixing and incompatability issues, Paolone has put together a full installer for the TRNG and an Updater. Simply download the full installer and this will put all the latest files into their respective folders for you. Then download the updater to keep up to date with any recent patches.

Full Installer
TRNG Updater

  • Added in NG_Center new Updates panel. In Updates panel you can check for availability of new updates for TRNG tools only clicking a button.
  • Created a new update installer program to install the new updates while performing a check at the same time regarding incompatibility issues between your trle folder and your TRNG tools. You will be adivsed if errors are detected by installer program.
  • Fixed bug: (second attempt) when you used "Customize=CUST_KEEP_DEAD_ENEMIES, ENABLED" to preserve the body of dead enemies from disappearing, and you killed by explosion some enemey, the dead enemy, after save/load savegame, appeared newly in game, still, but yet visibile.
  • Fixed bug in flipeffect: "Lara. (Move) Move Lara in LARA_START_POS with <&>OCB value in (E)way", lara ended up very often in the walls.
  • Fixed bug in NGLE: in Set Trigger Type window, some LARA_START_POS object was missing in the list.
  • Fixed bug in option TRB_SELECTIVE_VIEW of Turbo= command. The hiding of static objects placed at back of current view camera sometimes didn't work. This bug happened when the static had the pivot (x,y,z origin) very far from effective visibility box and the static had been placed in ngle with a facing orientation different than default.
    Now trng is able to handle all facing and differences of pivot, anyway when the facing chosen has not a 90 degrees step the compute could be a bit slower, so if it's not strictly necessary, it's better to place the statics with facing of: 0, 90, 180 or 270 degrees, to enhance performance.
  • Fixed bug in NGLE: in some circustances the [Move Lara Here] button didn't remove the Lara to previous position.
  • Added new Condition: "Random. Condition is true with <#>chances on 64 computed in (E)way"
  • With this condition you can introduce random interactivity in game, choosing a probability value to perform or less the triggers on same sector of Random condition.
  • Fixed bug in NGLE: in Set Trigger Type window ngle refused a new trigger with message: "ERROR: Cannot overlap special triggers" also in improper situations.
  • Fixed bug in Diagnostic mode. When you enabled diagnostic and show text with flyby using commands:
  • Diagnostic= ENABLED ;in [Options] section and Customize= CUST_TEXT_ON_FLY_SCREEN,ENABLED ;in [Level] section the diagnostic messages about flyby showed an error in sequence ("Seq=") value.
  • Fixed bug: in previous version there was a problem about usage of trigger with FLYBY type. The current version will correct by itself every project when you'll load it. If ngle will be not able to fix the problem, NGLE will show a log about the position of trigger to fix.
  • Fixed bug in [Trigger -> Object] button. In previous versions the [Trigger->Object] button was not able to locate a Flyby camera starting from a FLYBY type trigger.
  • Fixed bug about Title project. The default title project used a format for FLYBY trigger different than new format used in NGLE. The old trigger format was not able to trigger the second flyby sequence. Now the title project will be converted to new FLYBY trigger format when you'll load it in NGLE.
  • Fixed bug in Parallel Bar management. If you set a custom exiting animation using a change state id in animation 462 with state id 129, to point to your exit custom animation, your custom animaton was performed only at start but then the code forced the animation 95.
  • Fixed bug about FAN_KEEP_NEXT_STATEID fan flag of Animation script command. In previous version the engine performed the FAN_KEEP_NEXT_STATEID fan in opposite way.
  • Fixed bug about flipeffect: "Lara. (Weapons) Disarm Lara in <&>way". If, after above flipeffect, lara found another weapon (like shotgun, uzi ect) and she shot until ending the ammo, the engine gave back to lara the pistols hence they were missing in inventory.
  • Added CUST_CAMERA constant for Customize= script command. With CUST_CAMERA you can change distance, and horizontal and vertical facing of standard cameras: chase camera and combat camera.
  • Added new flipeffect: "Camera. Change camera mode with <&>Parameters for (E)time". With this flipeffect you can change temporarily the inquadrature of lara (view of camera) for the required time.
  • Added PARAM_SET_CAMERA constant per Parameters script command. The PARAM_SET_CAMERA used to store the data required by new flipeffect "Camera. Change camera mode with <&>Parameters for (E)time"
  • Restored backward compatibility about old savegame format. In last versions of trng the internal savegame format had been changed to host more flipmaps and moveable data. For this change trng was not able to load old savegames. Now it has been added a check to support the old savegame format. However this backward compatibility works only when trng finds tomb raider files non-NG, i.e. files created with default tomb raider tools instead of new TRNG tools.
  • Fixed bug about parallel-bar object: in previous version lara was able to extract weapons (pistols) while she was turning hanged to parallel bar.
  • Fixed bug in NG_Center: in some circustance NG_Center broke the building with error message "Overflow"

Titak 18-01-09 11:23

TRNG Updater
(Released 15 January 2009)

TRNG Updater
  • Fixed bug in PARAM_SET_CAMERA data. The FSCAM_DISABLE_COMBAT_CAM flag had no effect in game.
  • In CUST_PARALLEL_BARS constant, there has been added another field named MaxTurns, to set the max number of turns to increase the jump power. This field works only when you set also the PB_PROGRESSIVE_CHARGE flag.
  • Added new flipeffect: "AnimCommand. Reset the number of turns (jump power) of ParallelBar" This flipeffect should be used as anim command exporting it with [Export as AnimCommand] button. You could use it when you create a custom animation to move Lara on the bar, when you want reset (to clear) the charge counter for next jump.
  • Added to condition trigger "Lara. (Status) Lara is performing <#>action is (E)", two new lara actions: "Lara is hanged" and "Lara is dripping". The "dripping" is when lara is wet because she has just gone off from water and she loses little drops.
  • Fixed (default) bug about screenshot capture. When tomb raider ran in windowed mode under windows XP with service pack 2 or higher, the screenshot "tomb#.tga" was very often "damaged". Now the screenshots will been saved in .bmp format with progressive names: "shot0.bmp" "shot1.bmp". You can use usual "." key or new F3 function key to catch a screen image. When you hit one of above keys you should hear also a little sound that announces a correctly saved screenshot capture.
  • Fixed bug in Damage= script command. NG_Center gave an error for duplicated Damage= command, although the two damage commands were set with different targets (one for DMG_COLD_WATER and other less).
  • Fixed bug in flipeffect trigger: "Lara. (Health) Lara invulnerable for <&>time with (E)effect
    If the game was saved while Lara was invulnerable, when the savegame was reloaded Lara was burning.
  • Fixed bug in Combat camera mode. In previous version ( the combat camera (when Lara extracts the weapons) had a bug causing different bad results.

Titak 21-02-09 18:36

TRNG Updater
(Released 29th January 2009)

TRNG Updater
  • Enhanced flipeffect "Lara. (Health) Lara invulnerable for <&>time with (E)effect"
    In previous versions Lara may be killed from Teeth Spikes and Rolling Ball, while now these objects have no effect on her when she is in invulnerable state.
  • Change method to handle flyby trigger and trigger for flyby cameras. Now ngle uses the default method used by old winroomedit to avoid troubles with triggering flyby in title projects.
  • Added in NG_Center (Settings panel) the option: "Keep always the window of NG_Center over other windows".
    In some cirustances could be useful to keep always visible over other window the ng_center window, for exaple when you are copying some values from reference panel to other program or document.
  • Added new cheats to help level builder in level exploration.
    All cheat requires to type four literals in short time:
    "KILL" : Kill all enemies
    "ROOM" : Reverse all flipmap rooms
    "IAIR" : Set Infinite AIR for Lara
    "GODS" : Set lara as semiGODS, she will be invulnerable to shoots, fallings, poison, flames, teethspikes and rollingballs
    "DOOR" : Open all doors of the level.
    "STAR" : Lara will shine like a STAR. Useful to work with very dark levels to have always an extra light.

    Remark: about NG cheats they will work only when in script.txt have been enabled FlyCheats and diagnostic mode in same time, i.e. you have to type in [Options] section:

    FlyCheat= ENABLED
    Diagnostic= ENABLED
  • Added new customize CUST_DISABLE_MISSING_SOUNDS to disable some unused sounds that could disturb the sounds for some new objects like boats.
    When you use boats you should use always this command:

  • Fixed bug about detector: the text for distance was too low respect than detector image.
  • Changed some sample projects on trng website: boats, elevators, detectors ect.
  • Added in NG_Center some short-cut buttons to launch: tomb4, ng_tom2pc or NGLE programs
  • Added in NG_Center the button [Reload] to use when you change the script files or help files directly in their folder and you want refresh ng_center with these new files.
  • Added in NG_Center the button [Trle] to have a short-cut to open the trle folder
  • Added the flag FSCAM_DISABLE_LOOK_CAM in Parameters=PARAM_SET_CAMERA script command. With this flag you can disable the LOOK feature until your set_camera command is working.

Titak 28-04-09 21:09

TRNG Updater
(Released: 28th April 2009)

TRNG Updater
  • Fixed bug in Update panel of NG_Center.
    Previous version was not able to verify for presence of new updates on line, because from january of 2009 I changed some internal format of my webiste.
    Now the NG_Center version is newly able to detect new online updates.
  • Fixed (old) bug in Tom2pc.
    When a sound sample (.wav) was missing the old tom2pc wrote damaged data from missing sound sample up to all following (present or less) samples.
    This chain of bugs can cause many problems.
    Now ng_tom2pc (with current version) replaces the missing sound sample with a default sound sample: the sound "back_jm1.wav" to avoid above problems.
    It has been chosen this sound because it's little and has a very low volume.
    Thanks to this default sample the tr4 file will be builded correctly.
    Remark: in spite of this substitution the mexage : ""*** File Not Found Name.wav" will be yet showed in log window of Tom2Pc
  • Fixed bug in Tomb_NextGeneration.dll: in previous version the library forgot to free some memory zones allocated in run-time, in this way the ram available for the PC decreased with each new running of the game.
  • Fixed bug under Windows Vista: in some circustances the CRS (Crash Resume System) failed to work when a crash happened exactly while the player selected the "P" key for pause menu.
  • Fixed bug in GlobalTrigger command.
    When the GlobalTrigger used the GT_CONDITION_GROUP flag and in the trigger group used as condition there was the TGROUP_OR operator, the game froze.
  • Fixed bug under windows 98/me: the trng was not able to locate own version numbers (1.2.x.x).
  • Fixed bug about combat camera + look or laser sight function: the camera went crazy when look mode was switched off.
  • Fixed bug about condition trigger: the test about waterskins had a wrong esite
  • Fixed bug in Elevators. In some (seldom) circustance a bug disabled all elevators of the level. This bug was more probably if you used more (than one) elevators in same level.
  • Fixed info text about [trle folder] icon in main window of NG_Center.
    The text (wrong) was "start ngle" while the correct text is "Explore TRLE folder"
  • Fixed bug: when player loaded a savegame from Inventory with Load Item the player went back to titles
  • Fixed bug. Saving while the elevator is moving, when you reload the game, the inner keypad disappeared.
  • Fixed bug. When Lara throw a Pushable, the pushable lose the collision or after saving game.

Titak 21-05-09 10:21

New Full Installer and TRNG Updater
(Released 20 May 2009)

Full Installer
TRNG Updater
  • Fixed bug in global trigger GT_USED_INVENTORY_ITEM: with some inventory items (like pickups) the trigger was not detected.
  • Added in Trigger Type of NGLE program the Find features to search flipeffects or actions whereby text patterns.
    Remark: you can insert also two or more words divided by spaces and the result will be the first trigger with the description containing both words. Further clicking of the [find] button will find the next occurrence.
  • Added new object Lara's Diary. You can download the sample level named "diary_images.zip" with all source files from the link above. Lara's diary allows you to show to player a book (the diary) with images and infos about your adventure. There are new flipeffect triggers to add new pages to Lara's diary.
  • Added new Script command "Diary=" to set data to have a Lara's diary in inventory to consult.
  • Added new script command WindowsFont= to set type of windows font to use. Currently the Windows fonts are allowed only with diary.
  • Fixed bug about "load camera" black screen. This bug happened when you used flipeffect "Force volumetric fx ... enabled" while the volumetric fx was not enabled in tomb4 settings.
  • Fixed bug in flipeffect: "Weather. Fog. <&>Enable/Disable all fog (distance fog or fog bulbs)", in some circumstances the whole level became dark, while in others nothing happened.
  • Added new feature to show bmp images in game. You can show pop-up image with the game goes on, or overlapped images that place in stand-by the game while they are shown. See sample demo named "Diary_Images.zip" to discover how to use this feature. Remark: read the readme file in paritcular about installation of images and the CONVERTER.exe utility. If you want you can try this level by simply adding the zip file to the TRLevel Manager 2009.
  • Added new script command "Image=" to set data necessary to show image.
  • Fixed bug about HUB levels. For hub level we mean levels linked back to previous levels with finish triggers. In previous version all changes performed with NG effects or actions were lost when Lara returned to the hub level. Now the changes should be preserved. However, the difficulty of this new feature means some testing will be required to ensure it works properly.
  • Fixed bug about invulnerability of Lara. Once Lara got invulnerability when she went to another level while burning.
  • Added to last crash report a memory image file with tomb4 critical memory zones. Now when TRNG has a crash you'll find the usual file "lastCrash#.txt" plus another file with the same name but with the extension ".mem" For example if your crash has the name "Last_Crash43.txt", there will also be created the file: "Last_Crash43.mem" The mem file will have a size of around 1 Mb, and when you report a crash it could be useful to supply also the .mem file.

Titak 04-06-09 19:49

TRNG Updater
(Released 2 June 2009)

TRNG Updater
  • Fixed bug about inventory item to activate Lara's Diary. When you chose the quest1 item the diary was not enabled.
  • Fixed bug in Diary command. In previous version NG_Center refused two Diary commands in same level section. In reality you can have up to 10 different diaries for level.
  • Fixed bug about Fog Bulbs. In previous version the fog bulbs were not visible.
  • Added new Savegame Panel. With new savegame panel you can have an image (screenshot) for each selected savegame to make selecting savegames much easier. You can set also increase the maximum number of savegame slots the old 15 slots up to 100 savegames slots.
  • Added new flipeffect to show statistics screen: "Show Statistics Screen"
  • Fixed bug about flyby sequence 0 in title level. In previous version trng refused to start a flyby sequence numbered "0". Note: this fixing requires verification. Remark: it's necessary to reload the project in NGLE and build a new .tom/.tr4 file to fix that bug.
  • Added for WindowsFont command the WFF_FORCE_FIXED_PITCH flag to force the character with fixed pitch (same width for all characters, i.e. the "W" will have same width as "i") The fixed pitch characters are useful to create well-sorted tables.
  • Enhanced the tool "Get screen Frames". Now you can type Org and Size also in micro units format to see the selected zones on the screen.
  • Fixed bug in Diary. In previous version it was not possible to take a screenshot. Now it's possible using the F3 key.
  • Fixed bug in Diary. When the game was played in windowed mode, the diary continued to receive keyboard input although there was another program working in the foreground.
  • Fixed bug in Diary. When the player kept down a key continuously (like RIGHT) the pages changed too quickly. Now it's necessary to release the key and press it again to move to the next page.
  • Added new Action trigger: "Enemy. Mesh. Set for <#>enmey the (E)transparecy level" With this trigger you can set the level of transparency of some moveables. Also when you set max level of transparency (127, the item will be invisible) the collision of object will be active and it could hurt and kill Lara or be killed by her. Remark: if you set a level of transparency other than 0 (zero it means: no transparency, normal opacity) and Lara kills the moveable, its body will remain with the same transparency but it will lose collision.
  • Added new Condition trigger: "Creature. The <#>creature has the (E)Transparency level". This condition works paired with above action trigger to force transparency level. Remark: for technical reasons in this condition you can't choose all values between 0-127 range but only a selection of them. For this reason it's advisable to set with the action trigger a transparency level of those presents in the condition list if you wish in the future to test the presence of that value.
  • Added new FAN_SET_LARA_PLACE flag for animation command. This flag is necessary when your custom animation tries to move Lara from one place to another, like from water to ground or vice-versa. For example this flag allows Lara to perform an animation from floating on water to a climbing animation. When you use this flag you have to type in Extra field of Animation command a PLACE_ constant to set the place where Lara should be at end of your animation.
  • Added new FAN_RANDOM flag for animation command. With this flag you can force a random animation within a given range of animations. Using this method you can simulate random events also in Lara's animatons. See description of FAN_RANDOM flag in Reference section of NG_Center program.
  • Added in main window of NG_Center the short-cut buttons to launch Wad Merger and StrPix. Just select the path the first time you use this feature and you'll have a quick way to open these two important utilties.

Titak 24-06-09 22:04

TRNG Updater
(Released 23 June 2009)

TRNG Updater
  • Fixed bug about FMV trigger. In previous versions the FMVs had problems on some computers when they were played in full screen mode.
    See also the demo example fmv_video_cutscenes.zip.
  • Added CUST_FMV_CUTSCENE constant, to customize the viewing of FMVs (video cutscenes) in game.
    If you are not satisfacted about the viewing of FMV you should read the documentation about FMV_... constant values and also for the new setting constant SET_SOFT_FULL_SCREEN, to use in Settings= command in [Otpions] section.
    See also the demo example video_fmv_cutscenes.zip.
  • Added new settings constant SET_SOFT_FULL_SCREEN.
    This setting should be used with Settings= script command to place in [Options] section and permits to have a non-exclusive full screen mode.
    It was the "exclusive" mode to get difficultous the playing of FMV in previous version, so now,using the soft full screen mode we solved the problems about playing fmv when player set its tomb4 in full screen mode.
    Remark: if tomb4 had been set as Windowed mode the SET_SOFT_FULL_SCREEN setting will have no effect.
  • Added new global trigger GT_FMV_COMPLETED, to detect when a fmv has been completed.
  • Added in NG_Center the new panel "Media".
    The first new tool in this panel is the [WMV Encoder] Since many people get leak results with encoding FMV from AVI to WMV, I supplied a professional front-end for Microsoft WMV encoder, with some infos about correct settings to get good quality WMV videos.
    Remark: at first execution the NG_Center will download and install byself the Microsoft WMV Encoder program.
  • Added new global trigger GT_TITLE_SCREEN, to detect the current screen showed in title level.
  • Fixed bug in flipeffect "Enemy. Mesh. Set for <#>enmey the (E)transparecy level".In previous version the max value to set was "127" but with that value some moveables (like animating) disappeared forever. Now the max value is "126" and also the condition trigger to test transparency has been changed to check the max value "126".
  • Fixed bug about CUST_LOOK_TRASPARENT setting. In previous version when you disabled the transparency for Lara in looking mode, the game had a crash.
  • Fixed bug in "Weather. Fog. Change Fog distance to <&>Distance in (E)seconds" and "Weather. Fog. Pulse Fog from current to <&>Distance in (E)seconds". In both triggers there was a bug causing the execution of these triggers only first time, while after, for whole level, the triggers didn't work anymore.
  • Fixed bug in trigger: "VolumetricFX. Enable Volumetric FX in current level". In previous version this trigger enabled correctly the fog bulbs but it let fog color in water and other transparent textures.
  • Fixed bug about items signed by fog in inventory. It seems some people had this problem, now I tried another way to remove fog effects from inventory viewing.
  • In NGLE it has been enhanced the error mexage: "EVIL: Unknown object type detected" with a new mexage to inform about the room and case where is this "Unknown object" You can find also the list of unknow objects in log file created using TOMB5log.exe utilty while you'are performing Output Wad with ngle.

Titak 13-07-09 09:01

TRNG Updater
(Released 12 July 2009)

TRNG Updater
  • Fixed bug about CUST_LOOK_TRASPARENT. In previous version ( the status ENABLED/DISABLED was inverted.
  • Fixed bug in FogRange= script command. In reality the bug was in old tomb4 code... The MaxFogDistance (the second parameter) was computed in a wrong way in old tomb4 and with this bug there was no effect on distance fog. Now you can modify this second parameter and get some interesting effects with the density of distance fog. In previous version the second parameter of fog range command was described as the limit for max distance for fog bulbs but now it works to set the limit of fog distance and if you reduce this value (rather than levelfarview) you can have a deep fog. See also the "fogdistancetutorial.zip" file where the FogRange command is explained with many examples and images.
  • Added new flipeffect trigger: "Weather. Fog. Set the <&>Color for Distance Fog" This flipeffect has the same syntax as old flipeffect "Set the RGB color for the fog bulbs to the <&>value", with the difference that, in this case, you can use the new flipeffect to set the color for Distance fog, while the old flipeffect worked only on fog bulbs color. These two flipeffects work always in accordance with volumetric fx enabled or disabled.
  • Added new flipeffect trigger: "Weather. Fog. <&>Enable/Disable Hardware Fog (caution!)" This flipeffect should be used with caution. When you disable the fog via hardware, the distance and volumetric fog will disappear. When volumetric fx is disabled this flip removes the distance fog; when volumetricx fx is enabled, the result is a curious "nightmare" effect with dark colorless scenes.
  • Added new flipeffect trigger: "Weather. Fog. Set <&>Max visibility distance for Fog Bulbs". This flipeffect allows the new max visibility distance for fog bulbs to be set. It's very improbable you need to use this flip, because trng sets by itself this value in worldfarview (or LevelFarView) and this is the most logical value. If you reduce the distance, some fog bulbs very far from Lara will be not shown in game.
  • Added new flipeffect trigger: "Weather. Fog. Set <&>End Fog limit for Distance fog". This flip allows to change in game the same value you can set in EndLimitDistanceFog field of FogRange command. Modifying the End Limit for fog distance you can get a very deep fog. See description of the (updated) FogRange command for more information.
  • Added new flipeffect trigger: "Weather. Fog. Change Start limit of Distance Fog in <&>way with (E)speed". This trigger changes in a dynamic and endless way the Start Fog limit for distance fog.
  • Added diagnostic command: H key. When you hit the H keystroke the diagnostic texts will be Hidden for 3 seconds. This command should be used to catch "cleaned" screenshots also when you have the diagnostic enabled.
  • Added in diagnostic texts some infos about fog distance: start-fog, end-fog limits and current fog color.
  • Added the customize constant CUST_FIX_WATER_FOG_BUG, used to fix the problem of excessive saturation of fog color over transparent textures.
  • Fixed bug. When Lara was in water 2 clicks deep and she had in front of her a wall she could become frozen.
  • Fixed bug. This was a very bad bug. When a trigger was used about a static object placed in a room preceded by some empty rooms (in room list of map project) once the trigger had been performed many errors could occur: game frozen, damage to Lara's ponytail, crashes and other unpredictable behaviors. To fix this bug in your level it's necessary to re-build the .TOM file using the updated version of tomb_nextgeneration.dll ( or higher).
  • Added ENV condition: ENV_ROOM_IS for Animation (or EnvMultCondition) script command. With this condition you can verify if Lara is in the room set in DistanceForEnv field. You can type in DistanceForEnv also some special constants of ROOM_.. type, to verify if lara is in (any) room of some ROOM_ type, like water, quicksand, outside etc.

Titak 19-07-09 09:41

TRNG Updater
(Released 17 July 2009)

TRNG Updater
  • Fixed bug in NGLE. When you loaded an external project (i.e. downloaded from somewhere) ngle signaled the wrong path of tga map and then it allowed you to select immediatly the correct path for tga map, but there was the bug that, after choosing correct tga file, ngle gave a new error: "Arg list too long".
  • Fixed bug about fog distance. On some computers the fog color persisted over the inventory items.
  • Added in NG_Center the icon to launch MetaSequoia program.
  • Fixed bug in NG_Center: in the [Settings] panel, the path of strpix and Wadmerger program were missing.
  • Fixed bug about Teeth Spikes. When you've set zero damage for teeth spikes, Lara lost blood in spite of missing life lost.
  • Introduced EXTRA_ flag constants to use in Extra field of Enemy script command. The values are the same, so the old Enemy commands will continue to work fine, anyway now you can type a mnemonic constant instead of a number to set some special customizing to enemy. See descriptions of EXTRA_ constants in Reference panel of NG_Center.
  • Added new EXTRA_ flag to disable the locust swarm attack from mutant: EXTRA_MUTANT_NO_LOCUSTS.

Titak 06-09-09 11:10

MK1 Full Installer (also updating to TRNG
(Released 27 July 2009)

Mk1 Full Installer
  • MK1 TRNG Full Installer. This is not a simple update but it is a full installer of the finished MK1 version of the TRNG. Version will not be developed as an update except as an update within the MK1 Full Installer to give to all people all the basic files required by future updates of TRNG Tools.
  • Added in [Settings] panel of NG_Center the button [Change Version] to restore previous versions of TRNG tools. This button allows you to use the new Restore System, where you can restore a previous version of trng tools, or even to return to earlier versions. This feature works only from version, the basic version of MK1 TRNG Full Installer. This means you cannot use this feature to come back to versions older than
  • Added in [Media] panel of NG_Center the [Object Manager] tool to find in Image Objects Collection an object whereby object name, level name or object type. The supplied Object Image Collection contains all objects of level editor wads and The Last Revelation tr4 files (989 objects). You can add new objects to the collection if you wish if you have the TRViewer program on your PC.
  • Added in NG_Center the icon of TrViewer program to launch this program with a shortcut.
  • Fixed bug in Action "Perform (E) flipeffect on <#>object" Above action worked simply by performing old flipeffects those, normally, available only from animcommands. When the flipeffect called by above action performed a change of position/visibility of animating object the change was not stored in savegame.
  • Fixed bug in Elevator with Single Door. When an elevator used an animating single door, the position of door was not correctly saved/restored in/from savegame.
  • Fixed bug in Enemy= script command. When you typed in Damage1, Damag2, Damage3 fields (the three last fields of Enemy command) the values IGNORE, the damage resulted as "0" in game. Now the IGNORE means "allow the standard damage for this Enemy".
TRNG Updater
(Released 30 July 2009)

TRNG Updater

  • Fixed bug about incompatibility savegames created by older versions with newer. When a savegame created with an old version is loaded it will be read by a new version and in some circumstances the savegame will be not shown in load/save screen.
  • Added global triggers: GT_ELEVATOR_STOPS_AT_FLOOR and GT_ELEVATOR_STARTS_FROM_FLOOR These two global trigger allow to detect when a given elevator reaches or leaves a specific floor.
  • Fixed bug about hub Levels. When Lara returned to a previously visited level, the settings about fog distance color was lost.
  • Fixed bug about "Arg list too big" message in NGLE. When you loaded an imported project (downloaded from the net, for example) the inner paths for .tga and .wad are uncorrect, and this is obvious. The problem was in the new method applied in version where the immediate request for tga map loading caused an error allowing spaces in path chosen by user. Now the spaces will be filled using short path format, with some "~1" characters in the path, like the old winroomedit did in that situation.
TRNG Updater
(Released 17 Aug 2009)

TRNG Updater

  • Fixed bug about Detector object. When you were in a level with the detector on the screen, and Lara went to
    another level with a finish trigger, the detector remained on the screen despite being missing in this target level.
  • Added in NG_Center, in the [Strings] panel, a language selector to force the language to copy in trle folder and therefore to use in game.
  • Enhanced in NG_Center the check about missing string in language text file when it is other than english.txt In previous versions, ng_center verified the presence only for texts in english.txt, while now it checks for presence of extra ng strings also in other languages when you select another language as "Main Language".
  • Removed the flipeffect "Weather. Fog. <&>Enable/Disable Hardware Fog (onfly for nightmare effects)". Now this flipeffect has only the effect of enabling the hardware fog (but it should be already enabled by default, so it's no longer useful) The reason for this elimination is that the disabling of hardware fog has not the same effect on all computers and it could cause many problems with compatibility with previous dll versions.
  • Fixed bug about incompatibility of savegames. When with versions greater than you loaded a savegame created with version older than the game screen appears almost black.
  • Fixed bug in NGLE. When you performed an [Output Wad] or an [Exit and Play] operation, you risked having a crash. This was a bad bug, and theorically it could happen everytime, however it was more probable when you had a small level with few rooms.
  • Added the PARAM_BIG_NUMBERS value for Parameters script command. With this new command you can store some big numbers to use in trigger type window with flipeffects or actions. The reason for this command is that in the Trigger Type Window it is not possible to type numbers bigger than 255, while using this new method you can use for your trigger some values up to 65535 or $FFFF
  • Created new feature about TRNG Variables. There are too many new triggers for variables to list all here, anyway remember that all triggers (flipeffects, actions and conditions) start always with the description "Variables. ..." About description of TRNG Variables download the trng_variables.zip file where you find a project with some examples and a little html tutorial about advanced usage: trng timer, text placefolders and new skills with modification of critical memory zones.
  • Added new feature about reading/modifing of Critical Memory Zones of trng tomb4 engine, to create by yourself new skills. In trng_variables.zip file you find also the full html documentation about the different critical memory zones, with descriptions for all known fields.
  • Added in [Reference] panel of NG_Center the list "VARIABLE PLACEFOLDERS" with keycodes to add in your strings to show in game the content of trng variables.
  • Added script command DiagnosticType to select what shows in Diagnostic mode on the screen. Since the diagnostic infos have been increased over time and others could be added in the future, it's necessary to be able to choose what shows, otherwise the full diagnostic data might not not fit within your screen space. Remark: if you omit the DiagnosticType command all infos will be shown at the same time but the screen is not able to host all this information because now there are also infos about trng variables.
  • Added new diagnostic mode to perform a debug of script commands: triggerGroup, GlobalTrigger, Organizer and Switch. Using the DGX_LOG_SCRIPT_COMMANDS flag with DiagnosticType, you can have in the log created with Tomb4_log.exe utility (you can find in TRLE\TOOLS) the diagnostic of all script commands performed in game.
  • Added new global triggers GT_BEFORE_SAVING_VARIABLES and GT_AFTER_RELOADING_VARIABLES, to give you the opportunity to save and restore in game some changes in critical memory zones.
  • Added new global trigger GT_ALWAYS to perform continuously a triggergroup, until this global trigger is enabled.
  • Added new global triggers: GT_TRNG_G_TIMER_EQUALS and GT_TRNG_L_TIMER_EQUALS to detect when a trng timer (global or local) reaches the given time.
  • Added new global trigger: GT_KEYPAD_SHOWED and GT_KEYPAD_REMOVED. With these global triggers you can be informed when the keypad with specific item index will be shown or removed from the screen. In this way you can for example show a text during a pop up of KeyPad to inform the player what they could choose with this keypad.
  • Added new script command Switch. The switch permits the performance of a single TriggerGroup from a list of triggergroup IDs, according to the value of some variable. Pratically it permits a conditional multiple performance.
  • Added new flipeffect trigger "Organizer. Resume <&>Organizer in (E)way" With this flipeffect you can resume an organizer you had previously stopped, resuming from last performed command.
  • Added new flipeffect trigger "Enemy. Freeze. Freeze <#>Enemy for (E)Seconds". With this flipeffect you can transform an (already) enabled enemy into a sort of statue for a desired time or forever and then you'll use another flipeffect to unfreeze him applying some effect like "vibration or explosion".
  • Fixed bug about Wild Boar object. This was an old bug of original tomb4: when there was a wild-boar enabled
    and you saved the game and reloaded the wild boar disappeared.
  • Added customize constant CUST_SAVE_LOCUST to fix the old bug about missing of saving/restore operation of locust swarm in savegame. Remark: if you enable the saving of locusts (FISH slot) the only disadvantage is that the savegame will be bigger by about 2000 bytes.
  • Added new env condtions ENV_PLAYER_IS_SLEEPING and ENV_PLAYER_WOKE_UP. You can use these condtions in Animation command to start some nice custom animation when Lara is in stand-by mode, i.e. when the player is not playing for some (given) time.
  • Added new Condition trigger to test the distance from Lara of some moveable: "Lara. Distance. Lara is distant by <#>Moveable less or even than ..."
  • Added new flipeffect "Inventory-Item. Pop up inventory to select the <&>Item in (E)way" With this trigger you can show the inventory with the desired item selected. Remark: this trigger works with many items (used as keys, puzzle, quest, examine, crowbar ect) but not with: weapons, flares, binocular or medipacks.
  • Added new flipeffects to generate random numbers to copy in some variable:
    "Variables. Numeric. Generate in <&>Numeric Variable the (E)random number"
    "Variables. Numeric. Generate in <&>Numeric Variable a random CurrentValue"

Titak 08-09-09 16:15

Mk2 Full Installer and TRNG Updater
(Released 2 September 2009)

Mk2 Full Installer
TRNG Updater

  • Fixed bug in NGLE about message "Error: no selected squares" NGLE gave this message when you clicked on [Ok] button of Trigger Type window and no selected square was present. It was not necessary to give an error message in this situation so it was removed.
  • Fixed bug in NGLE about message "Can't overlap special trigger" NGLE gave this message also when there was no selected square.
  • Added new flag SET_ACCEPT_EXTRA_TAILINFOS for Settings= command of [Option] setting. This setting forces trng engine to accept up to 32767 tail infos in the tr4 files. Also when using this setting the limit for ngle remains as the old limit of 1024 tail infos, therefore the only reason to use this setting is when you use meta2tr to replace the room meshes directly in tr4 file. Since meta2tr increases the number of tail infos you can use this setting to support the new extra tail infos. However, when you use the tr4 created by ng_tom2pc without changing it, this setting is futile and perhaps dangerous because it could create problems when textures are placed in mirror rooms.
  • Added synstax for DiagnosticType script command. In previous version it had been forgotten.
  • Enhanced script debugging mode (DGX_LOG_SCRIPT_COMMANDS) Now in DGX_LOG_SCRIPT_COMMANDS mode (the script debugging) will now show information about Elevator script commands.
  • Fixed bug in NGLE. In previous versions there was a bug in the phase of releasing allocated resources after [Exit and Play] exiting. This bug caused a progressive reduction of Windows Virtual Memory resources everytime the builder exited from NGLE with [Exit and Play] button.
  • Added flipeffects to apply invisible collision to rooms. Using this method you can get Lara to walk over static or moveable items. The flipeffects, all starting "Collision....", allow you to replace the original collision of statics and moveables with the new invisible collision of room, with the result that Lara will be able to walk, climb and monkey these items. Note: These are "fake" triggers. You can't export them in script or anim command because they will be used in building-time and not in run-time.
  • Added Action trigger to disable the collision of moveables. "Collision. Disable the collisions of <#>Moveable".
    This trigger is useful when you want to replace the original collision mode of moveable with your invisble room collisions set with above "Collision.." flipefffects. Remark: also for statics it's necessary to remove their original collision to be used with "Collision. " flipeffect, but in the case of statics you just add the value 4 to their OCB field to disable their collision.
  • Added Action triggers for fine movement. There are new Action triggers to move with more precision a moveable in any direction. While other action triggers allow to translate a moveable setting the distance of movement in clicks, these new triggers allow more precise displacements. To locate these triggers search Remark: also these triggers could be used to help the adding of room collisions to moveables. In fact, in many circumstances the problem is that the moveable is not correctly aligned with the sector grid of the room. Using these action triggers you can move the item to align them exaclty with sector grids so as to get the most realistic collisions.
  • Added new flipeffect: "Collision. Set the <&>Side of closed sector as non-hangable from Lara" This trigger works differently to other "collision" flipeffects. In this way, in fact, there is no real change on collisions but you can use this trigger to simulate a rounded edge where Lara will be not able to hang. Remark: this trigger could cause conflicts if you use it on climb walls. In this case Lara could be able to climb the wall but she will be not be able to perform first hanging despite being far from edge. If you need to handle this situation you should use a CONDITION trigger about distance of Lara from the floor (or from the edge).
  • Added new NEF_ flags for Enemy command: NEF_SET_AS_BRIDGE_FLAT, NEF_SET_AS_BRIDGE_TILT1 and NEF_SET_AS_BRIDGE_TILT2. Adding one of above NEF values in NEF field of Enemy command you can transform an animating item in a bridge item where Lara will be able to walk. For example to transform the animating5 into a bridge_flat item just add this line in your [Level] section:
    See the description of above NEF_ flags in Reference panel of NG_Center.
  • Added new flag for GlobalTrigger command: FGT_HIDE_IN_DEBUG This flag doesn't change the behavior of the globaltrigger in runtime, but it removes the debugging messages in debug mode (DGX_LOG_SCRIPT_COMMANDS
    diagnostic) for this globaltrigger. The reason to use this flag is when you are studying another script command but this global trigger continues to fill the log with many messages of no interest.
  • Added new PANEL objects to create invisible collisions. These new objects use a different collision control to support an height up to 2 sectors (the other moveable failed when the height is higher than 6 clicks) with a compute faster than tradition collision procedure. See the tutorial about the collisions for more information.
  • Fixed bug about moving items. When you moved a door type object, some items in same room or in linked rooms could disappear.

Titak 03-10-09 12:54

TRNG Updater
(Released 29 September 2009)

TRNG Updater
  • Enhanced elevator features. Now the elevators (and raising blocks) are able to move vehicles like jeep and sidecar, even when Lara is not on board.
  • Added new ENV_ conditions:
    Above conditions are very particular since they work in an absolute way, ignoring the current direction Lara is facing. For this reason they should be used only with animations hardcoded for a specific room.
  • Fixed bug of version. In previous version a debugging code that could cause a slowing down in game was not removed.
  • Added new NEF_EASY_HEAVY_ENABLING flag for Enemy script command. Adding this flag the slot set in enemy command will be able to activate all heavy triggers. By default only some moveables enable heavy triggers and for others it's necessary place an AI_ object in target sector where there is the heavy trigger to enable. However, with NEF_EASY_HEAVY_ENABLING flag the enemy will enable all heavy triggers it moves over. For example to give this skill to all crocodiles in a level just add in [level] section this row:
  • Added new TGROUP_USE_EXECUTOR_ITEM_INDEX flag for TriggerGroup command. This flag forces the change of the target item of that action trigger with the moveable that has just enabled this triggergroup in game. With this method you can realize this target: an enemy moves onto some sector with a triggergroup, and he enables it (heavy type mode) and this enemy will be killed (or other action) from the action in triggergroup. In this situation it's not important what enemy will enable the trigger since all will be killed in spite of original setting of exported action trigger. Sse the description of TGROUP_USE_EXECUTOR_ITEM_INDEX flag and also of
  • Added new action triggers to attract enemies in some direction. The series of action triggers begins with "Enemy. (Physics) ..." text. They work in similar way than "Lara. pysics ..." flipeffect triggers.
  • Added new FADD_IGNORE_STATUS flag for AddEffect command. By default the addeffect trigger will abort if the target moveable has not yet been enabled in game or if it has already been killed/removed. In some circumstances this check about its status could be wrong and with some special items the result could be to fail to add effect operations. If you work with some of these special items (like some inventory items) you could add the FADD_IGNORE_STATUS flag. When trng finds this flag it ignores the status of moveable and it will apply always the effect also if the item appears invisible or disabled.
  • Added lights for AddEffect command. Now you can add to some moveable three kinds of light: ADD_LIGHT_FLAT, ADD_LIGHT_BLINK and ADD_LIGHT_SPOT. See description of above ADD_ constants to find more information.
  • Added custom bar constants to be used with Customize=CUST_BAR script command. Now, with the script command Customize=CUST_BAR you can use the bar types: BAR_CUSTOM1, BAR_CUSTOM2, BAR_CUSTOM3 and BAR_CUSTOM4. With these values you can create custom bars to show on screen that work like the air-bar, health-bar etc, but in this case you can use them as you wish to show some custom value of your new skills. Each custom bar is linked with a trng variable you choose and it will show the value in that variable like a progress bar. See description of BAR_CUSTOM1 constant for more information.
  • Added new flipeffects: "Custom Bar. Show the <&>Custom bar on screen for (E)Seconds" and "Custom Bar. Hide the <&>Custom bar" to show or hide your custom bars.
  • Added new customize constant: CUST_LIGHT_OBJECT With the command Customize=CUST_LIGHT_OBJECT you can customize the colors, intensity and frequency of light objects: AMBER_LIGHT, WHITE_LIGHT and
  • BLINKING_LIGHT See the description of CUST_LIGHT_OBJECT constant for more informations.
  • Updated the OCB LIST reference. It has been added a description about new discoveries on OCBs for: AMBER_LIGHT, WHITE_LIGHT, BLINKING_LIGHT, FALLING_BLOCK, TROOP, LIGHTNING_CONDUCTOR, FLAME_EMITTER, FLAME_EMITTER2 and FLAME_EMITTER3.
  • Added new flipeffect: "Flipmap. Alternate continuosly the <&>flipmap with the (E)Frame interval" With this flipeffect you can create a fast continuos swapping between main room and flipped room. The main target of this trigger is to create interesting light effects alternating the lights of main room with that of flipped room. Just change a bit the position or the colours of flipped room lights to have nice effects not achievable in other ways.

Titak 06-10-09 14:43

TRNG Updater
(Released 6 October 2009)

TRNG Updater

  • Fixed bug in NGLE about [Exit and Play] button. In previous two versions, the 'autosave.prj' file had been removed in spite of opposite settings.
  • Added new Condition triggers to compare variables with variables. Added condition triggers to compare the Current Value variable with other common numeric variables: "Variables. CurrentValue is ... than <#>Variable"
  • Enhanced Collision Panel. Now the panels will be never drawn in game. The difference with respect to previous versions is that in previous versions the collision panels were drawn but with transparent textures so as not to be visible; now, in current version, the collision panels will be fully ignored by drawing routines, saving cpu time. Now it's not necessary for collision panels to have transparent textures since only their collision box will be used in game.
  • Added Tight-Rope item. It has been imported from Tomb Raider Chronicles the null mesh item: tight-rope. Lara is able to walk on this rope like an acrobat. See the Chronicles demo project for more information.
  • Added new action triggers to enable/disable a tight-rope item:
    "Trigger. (Tight-Rope) Disable <#>Tight-Rope",
    "Trigger. (Tight-Rope) Enable newly <#>Tight-Rope (previously disabled)" The common triggers don't work fine with tight-rope emitter. See the readme.txt file in Chronicles.zip demo project.
  • Added Laser-head item. It has been imported from Tomb Raider Chronicles the Guardian (laser-head) object.
    The guardian shoots laser rays from his eyes that move continuously to check the zone. To kill him it's necessary to shoot out both eyes. The placing of Guardian object is a bit complicated so consult the Chronicles.zip demo project to learn more about him.
  • Added in OCB LIST of Reference panel some new OCB values for Tight-Rope object.
  • Added Hydra object, imported from Tomb Raider Chronicles. The hydra is named "little dragon" in some unofficial references. The hydra shoots flames or energy balls. It can hit Lara with its beak. Using correct OCB you can use two Hydras in conjunction and change the type of ammo used.
  • Fixed bug about custom bars. In previous version the (further) text for bar name was printed in incorrect positions with some screen resolutions (like 640 x 480 windowed).
  • Increased the number of TriggerGroups, from 100 to 255
  • Added new object: ENEMY_SUB_MARINE. This object comes from TR Chronicles. It tries to hit Lara using a torpedo. You should use it in deep waters because it requires a lot of space to move properly.
  • Added in Object List window of NGLE program the button "Rename". With Rename button you can change the name of slot to have more meaningful names. This change will affect only that project while in other projects or in wadmerger (or other programs) the name of the slots will be the standard names. You can use this feature to give mnemonic names to some items, like "PUZZLE_ITEM_1" renamed as "GOLD_STAR", or ARCHITECTURE3 renamed as BIG_COLUMN etc. Remark: it is suggested you perform a backup of your main projects before trying this new feature since each new feature carries some degree of risk. Some tests have been carried out but there has not been time to do intensive beta-testing.
  • Fixed bug in action trigger: "Effect. Remove from <#>Enemy the (E)AddEffect from script.txt" In previous version the removing "add effect" didn't work.
  • Restyled window of NG_Center program. Now you can resize the NG_Center for working at full screen using the common Windows gadget.

Titak 02-11-09 09:38

TRNG Updater
(Released 2 November 2009)

TRNG Updater

  • Fixed bug in Customize=CUST_WEAPON command
    Almost all customizing performed on crossbow or grenadegun weapon had no effect in previous versions
  • Added the diagnostic type: DGX_WEAPON_ANIMATION You can add in DiagnosticType= command the new constant DGX_WEAPON_ANIMATION to have on screen the infos about animation and state-if of hardcoded management of current weapon animation
    Remark: this diagnostic works only on weapons different than pistols and UZI.
  • Added new critical memory zone: the Inventory Memory zone
    The Inventory Memory permits to change some setting about the viewing of items in the inventory
    It has been updated the Variables TRNG tutorial to add the new descriptions about Inventory Memory.
  • Added new underwater weapon: the Harpoon gun from Tomb Raider 3 You can download the "harpoon.zip" demo level to find the new weapon and a little example about its usage.
  • Added new customize constant CUST_HARPOON , to enable and customize the new harpoon in your levels.
  • Fixed bug in Customize= CUST_INNER_SCREENSHOT script command
    The further flag QSF_TRUE_COLOR (to add to other QSF_ size image) was ignored in previous versions.
  • Added new customize constant CUST_SCREENSHOT_CAPTURE This customize allows you to capture a fast sequence of screenshots
    You can set the durate (in seconds) of the sequence, the interval of capture, and the size and quality of images
    Read the description of CUST_SCREENSHOT_CAPTURE constant for more infos.
  • Added in trng engine a check on current level and configuration to give immediatly an help to the beginners about a possible crash in game
    The check procedure verifies the presence of critical files like: load.bmp, uklogo.pak, title.tr4, script.dat and (some) language.dat Other informations could be found in last_crash file created after a crash
    These infos will be showed in a section named "QUICK DIAGNOSTIC LOG".

    Remark: another news of this check procedure is about levels present in script.dat but missing in data folder like .tr4 file
    In this situation the player will see in New Game screen these missing levels marked with the text "MISSING".
  • Fixed bug in Enemy-Sub Marine
    In previous version, the sub-marine instead emitting bubbles it emitted the "D" letter.
  • Imported new object from Tomb Raider 3: the Frog-man
    This is an underwater enemy that tries to kill lara using an harpoon gun
    You can find it in demo level: harpoon.zip file.
  • Fixed bug in tight-rope object
    In previous version, when lara walked on tight-rope in Very Easy Mode (Negative ocb value), if plyer hit right/left arrows lara hanged.
  • Fixed bug in Action triggers "Enemy. (Physics) ..."
    In previous versions with some moveables the position was not updated in saving/restoring savegame operation.
  • Fixed bug in rain procedure: casted rooms
    In previous versions the rain had problems with casted outside rooms, where the rain didn't reach the bottom room in the zone where it had an hight less than one sector
  • Fixed bug in rain procedure: dead zones
    In previous versions the rain can disappear immediatly in according with the direction where lara was looking.
  • Added customize constant CUST_RAIN
    With the command Customize=CUST_RAIN, ... you can customize the rain with values differents by the pre-set data in NGLE program room for room
    In this command you can set also some flags (FR_..) to enable sound effects for rain, to fix the bug in original code about the sprinklers in some rooms or to add drips to lara after she went under the rain.

    Caution: if you type values too much different than default values you could get crashes or bad working
  • Added new flipeffect triggers to perform swap-mesh operations
    "Lara. (Mesh) Swap Mesh of <&>Extra Lara Slots with that of (E)Slot" "Swap Mesh. Swap mesh of <&>Slot with mesh of (E)Slot"
  • Added new OCBs for JEEP and SIDECAR objects
    By default the beam light is present on the sidecar while it's missing on the jeep
    With these new OCBs you can change these default settings
    See the description for JEEP and SIDECAR in OCB Settings of the Reference panel.
  • Fixed bug in Enemy Sub-Marine object
    In previous version (in some cirucstances) the missile exploded immediatly when it was yet in the sub-marine.

Titak 01-12-09 15:58

TRNG Updater
(Released 1 December 2009)

TRNG Updater
  • Updated the harpoon.zip demo file.
    It has been added the original tr3 sound effects used by Frog-Man.
    Now in the harpoon.zip there are two wad version: the old standard version, with remapped sounds in tomb4 slots, and the v130 wad version with original tr3 sounds. See the readme.txt file in harpoon.zip.
  • Fixed bug about Hydra.
    In previous version the Hydra was able to aim (and hit) lara from any (unlimited) distance.
    Now it has been added a max distance for aiming, other that Hydra will be not able to "see" Lara.
  • Fixed bug about rename Slot in NGLE.
    In previous version the [Rename] feature in Object list of NGLE program caused errors like "EVIL: Unknown object type detected" after reloading of changed project.
  • Warning: discovered an hardcoded limit about number of moveable items.
    In spite of the max number has been increased from 255 to 1024 items, there are some inner procedures of default tomb4 where a moveable with index greather than 255 could be not handled correctly.
    This problem is not solvable and it could happen for moveables having some hardcoded add effect like fire, smoke or blood.
    My suggestion is to try to assign to enemies (moveables with AI and killable) the first 255 indices while you can use the remaining indices (higher than 255) for animatings, doors and null mesh objects.
  • Fixed bug about Hydra.
    In previous version the little fire preceding the shooting was in the addome, while now it has been moved in the mouth of the hydra.
  • Fixed bug about Hydra.
    In previous version the HYDRA_MISSILE mesh (flames) was not visible when hydra shot.
    Differently now the the missile is visible but you have to use the new updated chronics.wad file you find in Chronicles Objects demo sample.
  • Added new OCB values for ENEMY_SUB_MARINE object Now you can enable the sub marine missile to go off from the water room.
    You can also disable the bubbles from the back of the sub-marine.
  • Fixed bug in ENEMY_SUB_MARINE In previous version in some cirucstances the sub-marin froze on speaked floor.
  • Added new customize constant: CUST_TR5_UNDERWATER_COLLISIONS With this setting you can replace the current tr4 collision of underwater lara with the collisions used under tr5 (TR Chronicles).
    The tr5 collisions have the advantage to NOT stop Lara when she touches a wall, but the engine will move and rotate her to reach correct position to pass over.
  • Fixed bug in flipeffect: "Lara. (Mesh) Swap Mesh of <&>Extra Lara Slots with that of (E)Slot" This bug has been fixed, anyway when you use this flipeffect remember that, to get a visible change it's necessary in some circustances use also the flipeffect "Lara. (Mesh) Set single <&>Lara mesh with mesh got from (E)slot" This requirement is necessary only if lara had already in her hand that object, while (different case) if lara had no extra item in the hand then you have to avoid the second flipeffect "Lara. (Mesh) Set single <&>Lara mesh ..."
  • Increased by a 30% the inside mesh buffer.
    In previous versions with some "monster" levels there was a crash looking in some direction caused by an overload of inside mesh buffer.
  • Fixed bug in Laser Head (The guardian) After saving game and reloading the Guardian had big problems to aim Lara when she was in higher position than Guardian. (He shaked the head like a mad)
  • Added new customize constant for Dart Emitters: CUST_DARTS With this customize you can change speed, color and time of emitting. More, you can assign the performing of a TriggerGroup when lara will be hit by a dart. You can also fix the bug about fake poisoning of darts using the DRT_FIX_POISON_BUG flag.
    Remark: read carefully the description of CUST_DARTS constant becuase this customize works in different way respect other customize.
  • Added new flags for AddEffect command: FADD_FIRE_STRIP = used with ADD_FLAME to have a fired horizontal strip FADD_NO_SOUND = disable sound of effect (mist or fire) FADD_VORIENT_90/180/270 = fix a problem about vertical orienting with some moveables where the start position of the mesh has a different vertical facing respect than first animation (like the Jeep)
  • Added new extra fields in command AddEffect= for ADD_FLAME effect.
    Now you can set intensity (size) of the fire and wheter it is able to burn Lara or less.
  • Added to action trigger "Enemy. Kill <#>object in (E) way" another disabling method: "Disable emitter" Some special items, like the fire/smoke/dart emitters could be difficultous to disable/remove. The correct way to untrigger these emitters is to use this new "Disable emitter" method.
  • Fixed bug in harpoon gun.
    When you set unlimited ammo for harpoon the number showed in inventory becamed negative (-2, -3, ect).
  • Fixed bug in rain procedure In previous version ( it rained also in non-outside rooms.
  • Fixed bug about usage of title.tr4 with no extra ng header This is an old bug.
    When trng engine found a title.tr4 level with no extra ng header (i.e. a title.tr4 that it had not been created with ngle + ng_tom2pc tools) the animated textures in title didn't work.
  • Fixed bug in rain procedure In previous version with some room architecture there was a crash when the new level had just been loaded
  • WARNING! Added new field to GlobalTrigger script command.
    Now the last (and new) field is "IdOnFalseTriggerGroup" and it could be used to perform a TriggerGroup when the global condition is false.
    If you get error messages in your old script.txt about GlobalTrigger commands, just you add an ", IGNORE" field at bottom of GlobalTrigger line.
  • Added new flags for CUST_AMMO customize.
    It has been added the flags: AMMO_ADD_GUN_SHELL, AMMO_ADD_SHOTGUN_SHELL and AMMO_REMOVE_SHOTGUN_SHELL With above flags you can modiy the default behavior of ammos about the shell-casing.
  • Added new customize constant: CUST_FLARE You can customize the flare adding sparks or fire and changing the color, durate and intensity.
  • Fixed bug about condition triggers "Lara. Distance. Lara is distant by <#>Moveable less or even than .." In previou version the compute was wrong and the condition returned always true.
  • Added new Condition Trigger: "Inventory. The just selected item from inventory is <#>Item" This condition is interesting when you wish create a custom interactive item, where it's necessary using some inventory item to engage it.
    It works like the keys for the doors, the combo items with some hole combos, or the crowbar for some woodness doors.
    The advantage to use this method respect to the global trigger GT_USED_INVENTORY_ITEM, is that, with this (local) condition, you save a lot of cpu time since the global triggers work continuosly while the local condition will work only when lara is over a specific sector.
    Remark: when you manage the correct selected item remember to perform also this trigger: ; Exporting: TRIGGER(-245:0) for FLIPEFFECT(342) ; <#> : Variables. Memory. Set in <&>Code Memory the (E)Negative number ; <&> : Inventory Item just chosen from inventory (example a key to open a door) (Long) ; (E) : Value = -1 ; Values to add in script command: $2000, 342, $FF0B The reason is that otherwise you'll listen the "NO" sound sample after the usage of this inventory item.
    Remark: not all items may be handled in this way, you can use crowbar, puzzle and key items but some items have an harcoded management (like medipack, binocular, waterskin ect) and they will be handled immediatly from the engine and for this reason the condition will be never true for these items.
    Remark: About the usage with the crowbar remember that it should be you to perform a swapmesh to place a crowboar in the hand of lara because this operation is not made byself from the engine.
    It is for this reason that there is no HOLD_ constant about crowbar for the ENV_HOLD_EXTRA_ITEM_IN_HANDS in ENV conditions, because it's not been foreseen that lara can hold (continuosly) in her hands the crowbar.
    If you want that it will be used the crowbar to interactive with your object you should place in your custom animation an exported trigger (like animcommand) to perform the swap mesh of lara's hand with crowbar, and at end of animation another swap mesh to restore a free hand, like the engine performs for doors opened with the crowbar.

Titak 24-01-10 18:28

TRNG Updater
(Released 24 January 2010)

TRNG Updater

  • Added the OCB descriptions about FISH_EMITTER item.
  • Created demo about FISH_EMITTER, horizont swapping and still collision. Download the demo named "fish_pirahnas.zip" in demo section.
  • It has been added the new object FISH_EMITTER
    The fish emitter works like the pirahnas in tomb raider 3, anyway this object is not the same because there have been problems in the importing phase since the code in tr3 used a different particle system. So this is a new object with some new features: you can choose between four different fish types and you can set if you want have predator fish (like piranhas) or unoffensive tropical fish for decorative targets.

    Remark: since in the old tomb4 there was an object named "FISH" but in the reality that slot was a LOCUST emitter, to avoid confusion , the new fish emitter will be placed in new slot named "FISH_EMITTER" while the old "FISH" object now it has been renamed as "LOCUST_EMITTER".

    WARNING: there is the chance that you got an error message when you reload your project wheter you had placed the (old) FISH object.

    The ngle program will ask you:

    "Retain All Triggers
    (Remap To Lara?)"

    Then, indifferently you answer yes or no, the FISH objects will be removed by your project.
    The only difference is that, if you answer [No] the trigger to activate the FISH object will be preserved but now it will point to Lara (instead that to FISH)

    To reduce the troubles with this problem it is better loading your project (only if it has some FISH object (locust) used, of course) with the old version, then you find where you placed the FISH objects using [Advanced Search] button. Sign the room and position of your fish objects and at end, update to new version, load the project and then place the LOCUST_EMITTER where you had the FISH objects.

    I'm sorry for the inconvenience but it was not possible let a FISH slot for locust while the real FISH was in other slot.
  • Fixed bug about vehicles on the elevator.
    In previous version the vehicles were moved correctly on the elevator when lara was driving them, but letting alone the vehicle on elevator, it disappeared moving the elevator to other floors.
  • Fixed internal bug about shatters
    In previous version in the savegame it was saved infos for all extra statics also when they were not shatters.
    This bug caused only a waste of space in the savegame.
  • Added new customize constant: CUST_SET_TEXT_COLOR
    This customize allows to change the default color for many texts in menu, options screen, inventory mode, statistics screen ect
    You can set a new color for wished text type simply typing the text to change, with a TT_ constant value, and typing the wished CL_ .. color constant.
  • Added new script command: CombineItems
    With this new command you can create new combining rules about those inventory items that were able to be combined to get a new item.
    Thanks to this command you can create a weapon (or medipack or examine items) combining two or more different items.
    See description of CombineItems command in "Script new commands" section of "Reference" panel of NG_Center program.
  • Added new flipeffect trigger: "Swap Mesh. Swap mesh of current Horizont object with <&>Slot mesh"
    With this flipeffecf you can change the current horizont in game.
    You have to copy some (new) horizont object in your wad, in some "... _MIP" slot, and then you'll be able to replace it in game.
  • Fixed bug about Lara's invulnerability.
    In the flipeffect: "Lara. (Health) Lara invulnerable for <&>time with (E)effect"
    there was a bug when it has been set a limited time (like some seconds) and the game was saved and reloaded before ending the effect time. In this situation, after reloading, lara remained constantly invulnerable forever.
  • Fixed bug in action trigger: "Move. Move continuously forward-backward <#>animating of (E) clicks"
    In previous versions when you applied above action on some moveable with facing west or east (in ngle view) the trigger failed creating a weird freezing and blinking of moveable.
  • Added customize constant: CUST_SET_STILL_COLLISION
    With this customize you can change the collision method used when Lara touches statics or moveables.
    In default tomb4, when Lara hits an item, she continues to move legs and arms in weird way, while using the still collision (some people called it "hard collision") lara will be stopped with splat when she is in front of the item, or, when there is an acute angle of impact, she will be turned like it happens when lara touches a wall.

    See description of CUST_SET_STILL_COLLISION constant in Reference panel.
  • Added to CUST_SHOW_AMMO_COUNTER customize the new field: ShowCounterFlags (SHOWC_...) field.

    You can type some SHOWC_.. constant in this field to customize furtherly the ammo counter on screen.
    In particular way you can use the new constants: SHOWC_OMIT_AMMO_NAME, SHOWC_USE_GRAPHIC_AMMO and SHOWC_USE_GRAPHIC_WEAPON

    See the SHOWC_.. constants in Reference panel of NG_Center program.

Titak 06-03-10 14:39

TRNG Updater
(Released 28 February 2010)

TRNG Updater

- Added new tool: NG Doctor
In the the "Tool2" panel of NG_Center program, you can find the "NG Doctor" tool.
This tool performs a diagnostic analyse of your installation about TRNG tools and TRLE folder and also about last project you were building.
With NG Doctor you get a doctor response very useful to discover many well-known problems, or simply to have a description of your system to post on some forum to get help from other level builders.
I suggest to expert level builders, that very often help the beginners on forums, to require the doctor response from these users, so to have many techinical informations

- Fixed bug in flipeffect trigger "Lara. (Mesh) Swap meshes of Lara with <&>slot in (E)way"
There were 2 bugs in this trigger.
One bug, the last borned, created a chaos with any attempt to swap lara's meshes, while the other (oldest) bug created problems when new skin of lara had more or less number of vertices of default lara's skin.

- Added new tool: Remap Lara Skin
When you change the Lara_skin object you need to remap some critical vertices for hair hole in the Lara's head.
If you changed the meshes of HAIR slot you have to remap also its vertices and same speech but yet more complicated is when you wish use also a swap mesh of Lara in game, using a second lara_skin with meshes differents than the first (from beginning) lara_skin.
The new tool [Remap Lara Skin] that you find in [Tools2] panel of NG_Center program, is able to perform all above operations for you in automatic way.
In particular way this tool is able to:
1) Remap in automatic way the vertices of hair hole, for adult or young Lara (ponytail or braid)
Remark: in some circustances you should give some informations to the tool, anyway there are some other tools and references to help you, that you find clicking on [Tools for manual remapping] of [Remap Lara Skin] window.
2) Align the lara's meshes of LARA_SKIN object with the joint vertices of LARA_SKIN_JOINTS object.
This feature is fully automatic, just only you choose the tollerance for coupling.
3) Remap the vertices of HAIR object in automatic way. This is useful when you modify the mehses of HAIR object
4) Align and remap vertices of slots used for future swap mesh of lara.
This feature is very important when the new lara_Skin is not simply the first lara skin with different textures, but it is really different in its mehses. In this case in fact, if you don't remap with this tool the new lara_skin, after the swap mesh flipeffect the joints will have always big problems.

- Added in Script editor of NG_Center program the new hotkey F1
Typing F1 while you are editing a command, you can discover what is the first free ID number for that command.
For example while you are typing:

TriggerGroup= _

Where the "_" character shows the current editing position, just you type F1, to have the first free ID for current command, and so, in above example, it will be the first non-used ID for the TriggerGroup command in current [Level] section.
This feature works for all script commands that requires a univocal ID number in first field: GlobalTrigger, AddEffect, TriggerGroup, MultEnvCondition ect.

- Added new tool: Texturize DXF File
This tool is useful for who uses very often change objects with StrPix and MetaSequoia program.
If you instead creating a whole new object, you change only some object already present you have the boring situation to lose all previous texturing of the original object after the exporting from metasequoia.
The "Texturize DXF File" borns to avoid this problem: with this tool you can restore all textured faces of original object, i.e. those faces you had not changed in metasequoia.
In specific way you can:
* Add new mesh to old object, restoring all original texturing of old object in metasequoia dxf output.
* Move an object in 3d space and restoring the original texturing.
* Remove a little side of old object, preserving the texturize of untouched faces
* Export two textured objects from StrPix, paste togheter with MetaSequoia, and then restore the textures for all faces of the final object exported from MetaSequoia.

- Added new TriggerGroup flag: TGROUP_SINGLE_SHOT
When you add this flag to first number of first trigger of the TriggerGroup you create a single-shot TriggerGroup. This triggergroup will be performed only once in current level.
The single-shot trigger groups are very important to fix that limitation about the trigger zone where you place same trigger in two or more closed sectors in the map.
When you wish that all this trigger zone worked like a single-shot trigger you have a problem, because each trigger will work in one-shot way but individually and this means that lara could engages newly the same trigger when she will touches another sector in that trigger zone.
Currently the only way to avoid this problem is to export the trigger in script format and copy it in a TriggerGroup command. Then add to first number the TGROUP_SINGLE_SHOT flag, and at end replace in the level the original trigger with a "perform trigger group" flipeffect.
In this way the triggergroup will be performed only once, and when lara will pass over other trigger sectors of that same zone, noting will happen.

- Added new flipeffect: "TriggerGroup. Enable newly the one-shot <&>TriggerGroup already performed"
Since it's not possible perform newly a triggergroup in single-shot mode that had been already performed, when you wish perform however it newly the only way is to use this flipeffect to remove the "already-performed" status for the wished TriggerGroup.

- Replaced the "Chronicles-Objects" demo on The Next Generation website: http://www.TrLevelManager.net/ng.htm
In previous version there was a wrong object in the wad: the HYDRA_MISSILE object was not correct and it was not visible in game.

- Fixed bug in Hydra object about the pulsing fire
In previous version the Hydra, before shooting, had in the mouth a pulsing fire. Since the mode of pulsing was weird it has been removed. Now the fire remains in linear way with no pulsing.

- Fixed bug about CUST_SET_TEXT_COLOR customize.
In previous version the means of TT_STATISTICS_VALUES and TT_STATISTICS_DESCRIPTIONS was inverted.

Remark: I remember it's necessary using the CUST_SET_TEXT_COLOR customize in [Title] level when you wish change color for main menu, new level screen, or settings panel.

- Fixed bug about activation of normal triggers with RollingBall.
When you placed an ocb = 64 in RollingBall this object will engages common triggers, i.e. those trigger that normally will be enabled only by Lara.
In this situation there was a bug in previous versions: the rollingaball set some status for Climb, Monkey, Death and Mine sectors like it was Lara, and lara inherited that status with weird collateral effects.

- Enhanced FADD_FIRE_STRIP in AddEffect script command.
In previous version the orienting of fire strip, enabled with the FADD_FIRE_STRIP flag, worked fine only when the object had a fixed and perfect facing in the directions: north, south, east or west.
Differently, now, the fire strip works for any facing of the object.

- Fixed bug about FFL_FLAT_LIGHT flag.
In the Customize=CUST_FLARE command, the FFL_FLAT_LIGHT flag didn't work fine and the light had yet a blinking intensity.

- Added new script command StandBy
The StandBy command allows to engage a special camera effect when the player don't touch game commands for a given time.
This feature is interesting to give to the player the chance to see lara in the eyes, finally.
Since there are always better new skins for Lara it is a pity that the face of Lara was always hidden.
You can download the "standby.zip" demo project to see some suggestive standby mode you can use.

- Added new flipeffect trigger to enable alternative StandBy commands.
The new flipeffect: "Camera. Enable the <&>StandBy camera effect for (E)seconds", allows to enable a camera effect based on settings typed in some StandBy command.
The advantage of StandBy settings is that you can move camera around of lara, and up/down and changing the distance, too.

- Added new flipeffect to freeze all enemies.
The new flipeffect: "Enemy. Freeze all enemies for <&>seconds in (E)way", allows to freeze all enemies in same time in easy way.
This feature is already present in StandBy command when you use the FSB_FREEZE_ENEMIES flag.

- Fixed bug in Equipment command.
In previous version it was not possible set unlimited ammo with a command like:

Equipment= CROSSBOW_AMMO1_ITEM, -1

In game the result was to have 255 ammo.

- Fixed bug in Still (hard) collision feature.
In previous version when it had been enabled the still collision, lara continued to move arms/legs when she splat on some item while she was running with dash.

Titak 08-08-10 11:02

TRNG Updater
(Released 8 August 2010)

TRNG Updater

- Added the chance to translate NG_Center program and the description of new triggers of NGLE program in other languages.

If you are interested you should download the [Translation TRNG SDK] zip file that you find on: http://www.TrLevelManager.net/ng.htm

In the TT-SDK packet you find also an html tutorial about how translating trng tools with many important warnings and suggestions.

- It is available an Italian translation for NG_Center program.
I file italiani li trovi nella pagina: http://www.TrLevelManager.net/trans.htm
Decomprimi il file zip direttamente nella cartella di NG_Center e poi avvia il programma NG_Center.

- Enhanced "Set Trigger Type" window.
In NGLE it has been increased the width of Trigger Type window to let more character for trigger descriptions. This change borns to easy the support of languages different than english, since we know that english is a very compact language but it's not the same for others like german or italian.
Now the characters for trigger description are increased by about 70%.

It has been changed also the position of [Find ] button respect to text box for find, because in the past some beginner made the error to confuse the text box for find with the argument for triggers.

It has been added the button: [Find Trigger Number] to locate a specific trigger knowing its number.
This button has been added to support the multi-language features, too. In fact, when there will be trigger descriptions in english, german, french ect, on the international forum there could be the problem to describe and recognize correctly the different triggers. Thanks to this new button it will be possibile speak about a trigger like "flipeffect 143" or "condition 31" and each user will be able to show imemdiatly the trigger in his language typing that short description in input box showed by [Find Trigger Number] button.

For same, above, reason, there is another little news: now in the title of Set Trigger Type window it will be showed always the syntetic description of current trigger (for example the title could be: "Set Trigger Type - ACTION 35") to have always clear the sintetic description for each trigger.

- Fixed bug in [Remap Lara Skin] tool.
In previous version the meshes with more than 128 vertices were not correctly remapped.
Probably this tool will require further fixings.

- Fixed bug about flipeffect: "Lara. (Mesh) Swap meshes of Lara with <&>slot in (E)way"
When you used above trigger swapping also the Joints of Lara, some joints were missing in game.
1) Remember to remap the original lara skin/joint and also the new skin/joint (for future mesh swap) using the [Remap Lara Skin] tool, when you changed the meshes of old Lara.
2) In the lara_skin_joints used for futute meshswap the meshes should be the same of beginning joints, you can change only the textures applied on the meshes of the two lara_skin_joints objects.

- Added new action trigger: "Enemy. (OCB) Change the OCB value of <#>Moveable with (E)Big Number value"
With this trigger it is possible change the OCB value of some moveable in game.
Theorically this operation was possible also using trng variables but with this trigger is more easy for those people that don't understand very well the variables.
Remark: changing an ocb in game, it's not sure that the result was always that you wish, because in some cases the ocb value was read at begin of the level and for this reason the following changes have no effect or a bad effect. You have to try to discover what objects support an ocb changing in run-time.

Above descriptions had been added in version, but then, for a mistake, they were removed from ocb list in last versions.

- Added new Action trigger: "Turn. Turn <#>Animating around the center at North (E)Distance in circular way"
This action, differently than other "turn" effects, move the item in circular way around an ideal center of a circle with a given radius.

Remark: if the OCB value of the object is greater than 127, this value will be used as rotation speed.

- Added new global trigger: GT_NO_ACTION_ON_ITEM
This global trigger allows to discover when an action on given item has been completed.
It could be useful to perform some trigger when a moveable has been moved or turned, discovering the precise moment of the end of the action, for example to play a sound effect at end of the moving.

- Fixed bug about Flame emitter with fire strip.
In the previous version, the flame emitter 1 set to work with a fire stripe, had the fire in the opposite direction of red cone in NGLE.

- Added new flag for DiagnosticType command: EDGX_SLOW_MOTION
Typing in second parameter of DiagnosticType command this new flag, you can enable in game a customizable slow motion pressing the F11 key.
The slow motion could be useful when you are studying some custom animation and you wish see the details for each frame to discover further errors.

- Added flag for DiagnosticType command: EDGX_SWAP_VIEW
Typying in second parameter of DiagnosticType command this new flag, you can enable in game a customizable view camera to look Lara from different angles.
Just press the F12 key to rotate the camera around to Lara.
This feature is useful when you wish see some detail of Lara not visible from common back view.

- Added flag for TestPosition script command: TPOS_FAST_ALIGNMENT
This flag affects the (furhter) alignemnt phase when you used the FAN_ALIGN_TO_ENV_POS constant in the Animation command that called this TestPosition command.
When you use an Animation command and you used also the FAN_ALIGN_TO_ENV_POS, when Lara is in a good position for TestPosition command, she will be moved in perfect ideal position before performing the animation.
Well, in some circustances the old method used to move lara byself in ideal position had a problem of continuos loop when she was too closed to target position to reach.
To solve this problem you could use in TestPosition command the TPOS_FAST_ALIGNMENT flag, and in this case Lara will be moved immediatly in correct position avoiding the risk of looping.
Remark: you should use the fast alignment only when you set a very low tollerance in TestPosition command, i.e. when the condition of testpostion will be true when lara is really very closed to ideal position.

- Added flag for TestPosition script command: TPOS_OPPOSITE_FACING
This flag fix a bug when the alignment with some objects could fail because the main mesh has an opposite facing respect to animation 0 displacement.
You can discover this situation with Animation Editor of Wad Merger: when the position of mesh with "No Animation" is the opposite of mesh in "Animation 0" you are in this situation and the self alignment could fail.
To fix this bug you can use the TPOS_OPPOSITE_FACING flag in the TestPosition command used by your Animation command.

- Fixed bug about extract weapon on the vehicle
In previous versions, when the player set a keyboard command (1-6) to extract a specific weapon while lara was driving some vehicle there was a crash.

- Added new texture menu command in NGLE
Now in "Textures" menu there is the new command "Turn Selected Textures"
This command allows to turn all textures in selected zone.
The most usage of this command is when you want change the facing of many textures placed in difficultous positions like the vertical portals with toggle opacity.
You could use this command to place UV rotate scrolling (or river animated) textures with wished direction of scrolling.
* It's not necessary that [Face Edit] was ON , when you use this command, and in some circustances, like for the vertical portal, it is better use own this command when the [Face Edit] is OFF.
* This command allows also to perform a random turning of textures useful to create most irregular distribution of pattern.

- Added new OCBs for WATERFALLMIST object
With new OCB you can change: intensity, size and color of the mist effect.
See the WATERFALLMIST objet in OCB LIST section of the Reference panel of NG_Center.

- Added new tool "OCB Calculator"
In the Tools2 panel of NG_Center program now there is a new tool, the OCB Calculator, that can help you to compute the OCB of most complicated trng features, like keypad, fish emitter or pushable objects.
There is also a generic tool useful for all objects with a inverse ocb computing useful to get the single flags from a unique OCB value

- Added new customize value: CUST_WATERFALL_SPEED
With CUST_WATERFALL_SPEED customize you can change the speed of all waterfall textures of current level.

- Added new vechicle: the Kayak
The kayak has been imported from tomb raider 3 (the Mudubu level)
Download the kayak.zip demo from http://www.trlevelmanager.net/ng.htm in Demo section

Remark: read the "read_me.txt" file in kayak.zip demo, and also the description of kayak's OCBs from the OCB section in Reference panel of NG Center, to have more infos about this new weichle.
There are some things to know about kayak...

- Added new flipeffect triggers to simulate pool-whirls
The new flipeffect triggers:
"Lara. (Physics) Trigger un/clockwise whirl at <&>center and (E)Diameter"
permit to have a whirl in the water that could affect Lara on boat vehicles or stand-alone Lara. Lara will turn arond the whirl and at end she could be pulled down, dying.
Pratically the whirl works like a sink but with a circular movement like an Hannon attractor.

*Remember that the Y position of LARA_START_POS respect than water surface set the strenght of the whirl. Depther is the START_POS item and higher is the pulling power of the whirl.
The max depth accepted is 5 sectors (20 clicks) the min depth is one click.

* To have a pulling-down effect it's necessary that the strenght was at least:
3 clicks (or higher) for (stand-alone) Lara
5 clicks (or higher) for kayak
8 clicks (or higher) for Rubber-boat
12 clicks (or higher) for Motor-boat

* See the Kayak demo project to see how set a whirl.

- Enhanced script command AssignSlot
In previous version the AssignSlot command was used to inform the engine about the slot where you placed rubber or motor boat and animations.
Now that usage it's no more suggested since you have the specific slots RUBBER_BOAT, RUBBER_BOAT_LARA, MOTOR_BOAT and MOTOR_BOAT_LARA.

In spite of above speech, the old usage of AssignSlot is yet working, but now you can use the AssignSlot also to assign any slot to any other slot. In this new working mode you have to place in old field OBJ_ a common SLOT value to signal the slot from where get the features to assign to other slot.
Thanks to this new feature you can have in same level more crocodiles, baddy1 or mummies with different layouts but with same AI behavior.

Read the updated description for AssignSlot command in NEW SCRIPT COMMANDS section of Reference panel of NG_Center program

- Added customize constant: CUST_ROLLING_BOAT
By default all boats, when Lara is not on board, are fully still, this is not very normal when there are waves on water surface.
With CUST_ROLLING_BOAT customize you can set a swinging and/or pitching movement to get more realistic the boats on the water.

- Fixed bug about CUST_AMMO for Crossbow
In previou versions the changes about damage of crossbow ammo with command:


had no effect and the NewDamage was ignored.

- Fixed some problems of misalignemnt with keypad and detector objects.
In previous versions, using high resolution in game (higher than 1024 x 768) it happened some misplacing of texts or detected targets and the main object (detector or keypad)

- Added new diagnostic flag to enter in adjustment mode.
It has been added the DGX_ADJUSTMENT_MODE constant.
Thanks to it, you can discover the best position for keypad and detector objects with highest resolution.
Read the description of DGX_ADJUSTMENT_MODE constant in Reference panel of NG_Center program to have more infos.

Titak 28-11-10 10:39

TRNG Updater
(Released 28 November 2010)

TRNG Updater

  • Fixed bug about ShowLaraInTitle= script command.
    In previous version Lara was showed in the title but she was always still and no animation was possible
  • Fixed bug in swap level with Extra Static.
    In previous versions, when Lara skips from a level to another and go back to first, wheter in some of two levels it had been used an Extra static object, the saving/restoring data was messed.
  • Fixed bug about Texturize Dxf File tool.
    In previous version, on some national PCs (like germans) the loading of dxf file failed.
  • Added some variable placefolders in Reference panel of NG_Center
    In previous version it was missing some placefolder about Alfa variable.
  • About TRNG Variables, the description of savegame memory variable:
    "System. Index of enemy aimed by Lara" has been changed with:
    "System. Item Memory address of enemy aimed by Lara"
    Since it was not an index but an absolute memory address that points to the item memory of the item aimed by Lara
    Remark: to convert an item memory address to an item index you can use a new flipeffect.
    See following rows.
  • Added flipeffect for trng variables.
    It has been added the flipeffect:
    "351:Variables. Memory. Convert from item address to item index the value in Current Value variable"
    This flipeffect is useful in those particular cases when you have an absolute address of an item structure but you wish got the corresponding item index.
    Source value and result are all read/wrote from/to Current Value variable.
  • Fixed bug about items with shining textures
    This is an old bug but the problem borns only setting shining texture with strpix program when the object has no normals but only lights. It's a technical question, anyway you had that bug when you placed a shining attribute on some texture on some static object created by you.
    Now the trng eninge will ignore the shining attribute when it cannot be handled on that object, avoiding the crash.
  • Added new tool: Fast3d
    With Fast3d you can perform fastly the most common 3d operations, preserving the original textures.
    You can rotate, move, merge, resize or mirroring your mesh just with one click.
    This tool works on .dxf files exported from StrPix program.
  • New italian language files to download from: http://www.TrLevelManager.net/ng.htm in Translation Project link
  • Added new environment condition: ENV_LARA_IN_MICRO_STRIP
    This condition allows to have a best precision respect to the ENV_POS_STRIP_1/2/3 flags.
    With ENV_LARA_IN_MICRO_STRIP condition you can set a range in 32th of sector strips where it should be lara to have a true condition.

    Remark: remember that this is a stand-alone condition and not a flag to add to other condition like the old ENV_POS_ flags. Read the description of ENV_LARA_IN_MICRO_STRIP constant in reference panel of NG_Center to have more infos.
  • Aligned text and targets for detectors and keypad in resolution up to 1440 x 900 game resolution.
  • Added new TGROUP_ flag for TriggerGroup command: the TGROUP_USE_ITEM_USED_BY_LARA_INDEX flag
    This new flag allows to override the index of the object of some action trigger with the index of item that lara is using.
    The items used by Lara could be: vehicles, pushable objects, swtich1/2/3, rollingball (with pushing feature), rope and polerope.
    With this flag and an animcommand calling a triggergroup,you can perform some action on some interactive objects while lara is using them.
    See the description of TGROUP_USE_ITEM_USED_BY_LARA_INDEX flag in Reference section of NG_Center program to have more infos.
  • Enhanced mirror features.
    It has been added new mirror types: MIR_EAST_WALL, MIR_NORTH_WALL and MIR_SOUTH_WALL.
    Remark: the cardinal points are about the 2d view in ngle program.

    Now it's possible have more mirrors for same room. I.e. theorically it should be possible have a mirror for each wall of a room, with floor and ceiling, too.
    But, in the reality, I suggest to use no more than two mirrors for same room to avoid the problem of multiple reflexion (a reflex of a mirror in another mirror) that cann't be managed from the directX libraries.
    See the New Mirrors demo in Demo section of http://www.TrLevelManager.net/ng.htm website to see how realize two mirrors for same room, avoiding the multireflex problem.
  • Added new ocbs for Switch Type 1/2/3 objects
    Now you can force a specific custom animation when lara engages a switch. Just you type its number in the ocb of Switch object.
    You can handle easily the flip/flop switches with multiple triggering/antitriggering.
    See the description of "NEW SWITCH" ocb in "Ocb Description" in the reference panel of NG_Center progam.
    You can see some example of usage of new switch ocbs in New Mirrors demo you find in Demo section of http://www.TrLevelManager.net/ng.htm website
  • Fixed bug about item flare.
    This bug there was already in old tomb4 engine: when Lara threw the flare in some circustance the flare item was not visible on the floor.
  • Enlarged memory buffers for ng_tom2pc program
    In previous version some "monster" level can cause a crash in elaborating of textures pages.
    Now all temporary buffers have been doubled. The program has been tested with wad upto 140 texture pages but it should manage until 200 texture pages now.
  • Added new flag for Image= script command: IF_OVER_FIXED_CAMERA
    By default the images will be hidden when there is a fixed camera. Now if you wish show an image while there is fixed camera you can add the IF_OVER_FIXED_CAMERA flag in Image script command
  • Fixed bug about transparence of the enemies
    In previous version, the enemies with some transparency effect will disappear after saving/reload game
  • Fixed bug about collision on hang-left/right movements vs statics.
    In previous version, when lara was hanged and her move herself at left or right where there was a collision of some static object, lara was able to go across the static.

Titak 01-05-11 21:41

MK3 Full Installer (also updating to TRNG
(Released 1 May 2011)

Mk3 Full Installer (version c - the final version)

In the case of the installer "forgets" installing some files:

Missing files

* The version of dll is not available like update but it is built-in in the MK3 full
setup you find on official trng website: http:///www.TrLevelManager.net/ng.htm

* From this history the description about triggers will be accompained by a note like this:

[Find Trigger Number] F354

And you should read above note like: “If you wish find immediatly this trigger in the Trigger Type Window just you click on [Find Trigger Number] button and type “f354” text and then type ENTER or click on [OK] button.

- Fixed bug in NGLE about collision triggers
In previous version, in the Trigger Type window, working on the "collision. .." triggers, it was missing in "height" argument, the "increase floor collision" setting. All settings were always "Decrease ..."

- Fixed bug in scripter tab of NG_Center program
In previous versions when you build or save the script, the position of the caret come back to first row, losing the previous position.
It was a bit boring behavior, now the current position will be preserved in spite of building or saving.

- It's available new italian texts for NG_Center translation. See http://www.TrLevelManager.net/ng.htm
in Multilanguage project link

- Added markbooks for scripter in NG_Center program
Now you can set markbooks on some rows of the script.txt file.
The markbooks could be useful when your script.txt is very long, and you need to move fastly, go and back, between two or more positions in the script.
You can use the little buttons with the flags, or the keyboard shortcuts: F8 (place/remove a markbook) and CTRL G (Goto next markbook)

- Fixed bug about Mirrors while Lara is swimming
In last version, when in the level there was at least a mirror and lara was in the water, the
game had a crash. This happened indifferently if lara was in a mirrored room or less.

- Added new OCB value for static: scalable static
Now you can use the ocb 4096 to scale (resize) the current static.
This feature could be used to get a more realistic forest using few different trees and some
of these (of same type) trees will be placed with a bit different size to avoid the ugly "cloning" effect.

- Enhanced ItemGroup script command.
Now you can use the ItemGroup command also to store a list of static indices. When you type
static indices you must type them as negative numbers. For example:

ItemGroup=1, -45,-100,-101

- Added new flipeffect to perform triggers on statics in itemgroup
[Find Trigger Number] F354
Now with the new flipeffect: “ItemGroup. Statics. Perform <&>trigger on (E)ItemGroup of statics”
You can perform one of flipeffect triggers about statics, on a list of static item indices stored
in an ItemGroup command.

- Enhanced FAN_ALIGN_TO_ENV_POS flag.
condition, to force, when the condition is positive, lara to change her facing to get it was
the same of hortogonal requirement.
Pratically in this way you can be sure that at end of an animation/condition like this:

Animation= {AnimIndex}, {Key1}, {Key2}, FAN_ALIGN_TO_ENV_POS, ENV_LARA_IN_MICRO_STRIP +

Lara was in 1st or 2nd microstrip and she will be turned to have her facing exactly hortogonal
with the in front wall.
The FAN_ALIGN_TO_ENV_POS flag was present and working in previous versions , too, but it worked
only when it had been used with other ENV_POS_ flags like: ENV_POS_STRIP_1, ENV_POS_STRIP_2,
ENV_POS_STRIP_3 ect but it cann’t work with the condition ENV_LARA_IN_MICRO_STRIP. Now it can
work at least to align the facing to the required hortogonal value.

- Added new flipeffect trigger to change dynamically (or less) the size of static items.
[Find Trigger Number] F352
With new flipeffect trigger: "Statics. Scale a static item using the data in <&>Parameters
command”, linked with data typed in Customize=PARAM_SCALE_ITEM script command, you can scale
with dynamic effect one or more statics.
You can use this trigger to create an inflating/deflating effect, for example with a ball,
or to create magician effects where little items become giants in few seconds or viceversa.
You can use this trigger also with no dynamic effect, but only to change immediatly the size
of given static item.

- Fixed bug about old flipeffect “change fog color”
When you exported in a triggergroup the old flipeffect: “OldFlip. Set the RGB color for the
fog bulbs to the <&>value”, the “value” argument was ignored.
Remark: probably this bug about exporting of old flipeffect was present in all flipeffects
that required an argument (the old “timer” value).
This means that current bug was present in the exporting of following flipeffects:

OldFlip. Will play the <&>sound effect number
OldFlip. (?) Force Von Croy to reach <&>AI_FOLLOW OCB when ???
OldFlip. Start screen timer and force Von Croy to reach <&>AI_FOLLOW OCB number

- Fixed bug about start-up of kayak
In previous versions the kayak sometimes was not in correct position, where you placed in the
level map. It can be in the sky or apparently it was missing.

- Fixed bug about bad inclinations of the Kayak
In previous versions, when the kayak had not yet been used for first time, it had a bad
inclination and a side was more down than opposite side.

- Added new flipeffect to have a coloured flash on the screen
[Find Trigger Number] F355
Added new flipeffect: “Screen. Flash screen with the <&>Light color for (E)Durate”
You can choose between some colors and durate for the flash effect.
The flash are used commonly in the game togheter with explosions and other light effects.

- Added new Action trigger to perform preset effects on some moveable
[Find Trigger Number] A82
The new action trigger: “Effect. Apply on the <#>Moveable the (E)preset effect” permits to
apply some special effect present in The Last Revelation adventures, like baboon teleport,
to your moveable.

- Added new Action trigger to add effects to static items
[Find Trigger Number] A83
With the new trigger: “Statics. Apply on <#>static the (E)Add Effect from script file” you
can add the effect stored in an AddEffect script command, to some Static item.
In the past it was not possible add effects to static items.

Note: read the new description of AddEffect script command, in particular the notes about
usage with static items. You find it in the Reference panel of NG_Center in the section

- Enahnced translation of NG_Center program
In previous version it was missing the chance to translate some texts in [Settings] panel
of NG_Center.

- Added new flipeffect trigger to show 2d sprites
[Find Trigger Number] F357
The new flipeffect trigger “Sprite. Show sprite with data in <&>Parameters for (E)Durate”
allows to show one or more sprites on screen.
You can customize in many way the sprites with effects like: transparence, zoom, entering
from some screen side, animation of sprite sequence and the grid sprites, where different
sprite can compose a bigger images.
These sprites work only in 2d mode, i.e. you can use like substitutes of show image triggers
in many circustances.
The advantge using sprites it’s that you have no limit about the number of sprites to show in
same moment on the screen, the disadvantage is that the limitation for source size of sprite
should be of 256x256 pixels but pratically it’s only of 128x128 pixel for that well-known
limitation of Wadmerger program to manage sprites of 256x256 pixels.

- It has been added the new slot object: CUSTOM_SPRITES
The CUSTOM_SPRITES slot works like other sprite objects: DEFAULT_SPRITES and MISC_SPRITES.
It has been added simply to have a sprite object to use fully for your (custom) targets, with
no other usage from tomb4 engine.
You can find the CUSTOM_SPRITES in the misc2.wad that you find on
http://www.TrLevelManager.net/ng.htm web site in the Demos section: Miscellanous 2 demo
zip file.
Currently in the CUSTOM_SPRITES slot there are 24 sprites: 8 sprites of 128x128 pixels and
16 sprites of 64x64 pixels, but you can change, add or remove as you wish the internal
sprite textures.

- Increased the number of fog bulbs enabled in same moment
The max number of fog bulbs enabled in same moment changes from 5 to 32, while the absolute
number of fog bulbs for the level changes from 20 to 80

Remark: this patch had been created a lot of time ago but there was a bug that has been fixed
only now.

- Fixed bug about action trigger to kill moveable.
[Find Trigger Number] A14
In previous versions this action trigger didn't work with animating and other moveables that
don't require an explicit activation (triggering)

- Fixed bug about flipeffect trigger to recharge Lara vitality (health)
[Find Trigger Number] F90
In previous versions this flipeffect gave like max value 999 instead of 1000. In this way it
was not possible get a full life bar with this trigger.

- Fixed bug in damage or cold rooms
In previous versions the SecondsForDeath field with DMG_INDIRECT_BAR flag, will work fine only
upto max value of 33 seconds.
Now the max value is 333 seconds

Remark: if you pass over the 333 seconds limit, the bar will remain always full

- Added new customize variable: CUST_SFX
With CUST_SFX you can customize some hardcoded sound effects used in trng engine, like for diary,
elevator, detector, savegame panel ect.
Read the TS_ variable list to discover the customizable sounds.

- Added new flipeffect trigger to print (unlimited) extra ng string.
[Find Trigger Number] F360

The difference of this new flipeffect, "Text. Print unlimited <&>Extra NG String with current
settings for infinite time" respect to other flipeffects to print extra ng strings, is that
in this case you can choose the extra ng string in an unlimited list of the strings, while
for other flipeffects you can use only first 256 extra ng strings of your script file.

- Fixed bug in creation of ng extra string list in the NGLE program
In previous versions the extra ng string list were always completed, but this it was an
error because in the reality only the strings with an index value less than 256 were really
selectable in the most of flipeffect triggers.

- Fixed bug about condition trigger to check the current animation of some enemy.
[Find Trigger Number] C21 C23 C24
In previous version the condition triggers "Creature. Current animation of <#>creature is
(E)animation ..." didn't work.

- Fixed bug in condition trigger "Creature. <#>Creature is currently (E)"
[Find Trigger Number] C14
In previous versions this condition changed the status of the tested creature. More it didn't
work correctly for "(E) Enemy has not been yet activated" status, since it gave as "not yet
activated" a creature already activated and killed

- WARNING: changed the formula for GT_DISTANCE_FROM_ITEM and GT_DISTANCE_FROM_STATIC global
There was a bug in the formula of global triggers to detect the distance between Lara and
an item or a static.
The old formula:

ItemIndex + 1024 * SectorDistance

it gave problems everytime the ItemIndex was bigger than 1023, and this situation was very
common for moveable indices.
To avoid this problem it has been necessary change the formula, anyway the good news is that
now you can have more precision about the distance.
While with old formula you can use only sectors now you use real units, where one sector = 1024
real units.
Read the description of GT_DISTANCE_FROM_ITEM mnemonic constant to discover the new formula.

- Added new BRIDGE objects
It has been added a new set of BRIDGE objects to build hanging footbridges:
Thanks to above objects now you can create footbridges with any slopes
These new bridge objects (and the olds) support some OCB values. Read in Ocb list of Reference
panel the description for bridges

- Enhanced management of bridge objects in trng engine.
Now you can apply a conditional fragmented trigger to the bridge, in this way you can create
walkable collisions with irregular shape, where for "irregular" we mean shapes different than
usual game square.
To support this interesting chance it has been added a new set of conditional fragmented triggers
(see belove in this document) and it has been created a tutorial to explain how using the new
bridge collisions in advanced way. You find this tutorial in the Miscellanous 2 demo level
that you find in demo section of http:\\www.TrLevelManager.net/ng.htm website.

- Added new condition (fragmented) trigger: circle
[Find Trigger Number] C60
The new fragmented trigger "Fragmented trigger. Check in (E) way if lara is in the <#>circle"
allows to check a circular zone with center in the middle of current sector.

- Added new condition (fragmented) triggers: circular sectors
[Find Trigger Number] C61 upto C68
With the conditional triggers: "Fragmented trigger. Check in (E) way if lara is in the sector
with center in <cardinal> position <corner or side> and <#>Radius" you can choose a circular
sector of the square as triggerable zone.

- Added new condition (fragmented) trigger: Rhombus
[Find Trigger Number] C77
The new fragmented trigger: "Fragmented trigger. Check in (E) way if lara is in the Rhombus
with <#>Size" allows to create a triggerable zone with a rhombus shape of wished size.

- Added new condition (fragmented) triggers: Triangles
[Find Trigger Number] C69 C75 C78
Now there are many conditional triggers to define a triggerable zone with a triangular shape.

- Added new condition (fragmented) triggers: Quadrilaters
[Find Trigger Number] C79
With the condition trigger: "Fragmented trigger. Check in (E) way if lara is in the
quadrilateral defined in the <#>Parameter command" you can set any four-side shape,
like rectangles, squares, rhombus or trapezium, as triggerable zone of a game square.

- Added new condition (fragmented) triggers: custom circle
[Find Trigger Number] C80
When you wish set some circular sector different than those placed with the center in the
middle, on side, or at corner of current game sector, you can use this condition to set
any custom circle: "Fragmented trigger: Check in (E) way if lara is in the custom Circle
defined in the <#>Parameter command"


With this flag lara will be become fully invisible while player is looking around with the
LOOK key.
In this way you can have a precise soggettive view of lara (from her eyes) using a command like this:

0, -96, IGNORE

Note: the futile fields for this example have been let to the IGNORE values but you can use
them for other targets, of course.

- Added new flag for DiagnosticType command: EDGX_LARA_CORD_IN_LOG
The EDGX_LARA_CORD_IN_LOG enables the output of Lara's coordinates in the log created with
tomb4_log.exe program.
By default in the log the Lara's coordinate were omitted to reduce its size.

Note: This extra flags works only when you enabled the DGX_LARA diagnostic type.

- Added customize to play a fmv at begin of Title level
It has been added the customize: CUST_TITLE_FMV
You have to place this customize in the [Title] section to play a fmv before starting the
Title level.
See the description of CUST_TITLE_FMV constant in MNEMONIC CONSTANTS list of the Reference
panel of NG_Center program

- Added new OCB value for FLAME EMITTER 3
There was this legend about the ocb 888 in FE3 to enable the blue lightning versus Lara.
In the reality there was no code to support the value 888 for flame emitter 3, anyway for
a bug linked with a coincidence (when there was no animating3 in the level and lara had the
item index =0), it happened that a blue lightning shot Lara.
Now it has been added the ocb 888 to get really and always this effect.

Remark: there are some variants of this ocb (888, 889 and 890) to set the injury grade of
the lightning. See the OCB section in the Reference panel of NG_Center for more infos.

- Added new customize constant to keep the HP of lara in level swapping
The new customize CUST_KEEP_LARA_HP allows to force that lara kept same (old) HP value when
she jumps to another level.
You can choose the target level where lara will arrive with the old HP and let for other
levels the common recharging of vitality.
See the description of CUST_KEEP_LARA_HP constant in Reference panel of NG_Center for more

- Added new OCB for SCORPION object
Now you can type the value 33 as ocb in the scorpion to force him to attack immediatly Lara,
while by default the scorpion tries always to attack other enabled baddies before attacking lara.

Titak 17-08-11 16:21

MK4 Full Installer (also updating to TRNG
(Released 16 August 2011)

Mk4 Full Installer

Remark: the version has been skipped. It has been "used" only as beta testing version and never officially developed.

Many thanks to all beta testers helped me to create a freebug version of trng full setup.

- Fixed bug about command ShowLaraInTitle
In previous version Lara was always present in title even when the ShowLaraInTitle command was missing in the script

- Added new condition trigger to test the room type where Lara is.
[Find Trigger Number] C81
With the new condition trigger: "Lara. Room. Lara is in the <#>room type" you can test if lara is in some specific room type, like water, outside, cold, damage, rain, snow, quicksand.
You should use this condition in a GlobalTrigger or an animation command, of course.

- Fixed bug about no catching edge of Lara
In previous versions Lara was no more able to catch edges after she touch a static in some state ids. When lara died in that moment, the lost of this ability continued also after loading a savegame or a new level. Only closing tomb4 and launching it newly removed that problem.

- Fixed bug about changing of internal reference of Memory Savegame in the TRNG Variables management
In previous versions ( and the trng variables triggers working on memory savegames had all a different reference respect to all other previous versions. Now it has been restored the correct indices reference to the memory fields.

- Fixed bug in QSF constants for screenshot size
In previous versione the constant QSF_SIZE_640x480 had no effect and the result it was the resolution of QSF_SIZE_260x200

- Changed the "Markbook" term with "BookMark" in ng_center

- Fixed bug in condition trigger to test current game command.
[Find Trigger Number] C13
In previous versions the game commands: "Walk Left" and "Walk Right" were not detected.
About the game commands: "Pause" and "Require Inventory" they will be never detected because tomb4 enters in pause or inventory mode before performing this condition trigger. The triggers are performed only in game mode but in the future I could add global trigger to work also in Inventory mode.

- Corrected the description of Enemy command.
In previous versions in the description of TombFlags field it was missing the information about the TCF_... flags you can use in that field.

- Fixed bug in Help menu of NGLE program
The help command "NGLE Help" pointed to a broken link for download.

- Fixed bug in flipeffect to remove from the screen a specific extra ng string
[Find Trigger Number] F204
In previous versions the flipeffect "Text. Print. Remove (&)Extra NG String from screen" didn't work

- Fixed bug in flipeffect to stop endless scaling static
[Find Trigger Number] F353
In previous version, when you enabled an endless scaling of an static item, and then you stop it (with flipeffect F353) the new size was lost after saving and reloading savegame.

- Fixed bug in static scaling management.
In previous version when the new size percentage was an odd number the collisions were missing for that static.

- Removed the LDF_CONTINUE_DIARY flag from flags of Diary command.
The management of LDF_CONTINUE_DIARY flag was not good because by default all diaries and all strings of any diary were saved/restored in any jumping between levels.
So, now if you wish preserve the old diary for future levels you no need of any flag. While if you wish clear a specific diary at begin of some level you have to use the flipeffect 220 "Diary. Clear all strings in <&>Diary" in start position of lara in that level, setting the trigger as Single shot, of course.

- Changed management of Diary between levels.
The previous management of the diaries was wrong, because they were thought like local resources, with 10 diaries for level, but since each diary can be moved to further following levels, the diaries should be considered as global resources.
This means you have to use different IDs also for diary set in different [Level] sections, since same ID will overlap the diary with same id in other [Level] section.
To compensate this change, the number of diaries pass from 10 local diaries for [level] to 100 global diaries for the whole adventure (the sum of all levels)
I'm sorry for the change, but the previous management of multiple diaries cann't work correctly.

- Fixed bug about formatting tag #BG_AUDIO# in diary pages.
In previous versions the #BG_AUDIO# tag had no effect.
Now you can set a different audio track for each page of the diary using the #BG_AUDIO# tag in the <FORMAT> section of the text of the diary pages.
Remark: the bg_audio track (differently than the audio track set with LDF_PLAY_TRACK flag) will be played only once (no loop).
You could use the #BG_AUDIO# tag to have a spoken version of the text in any page.

- Fixed bug about empyt Diary
In previous version when a diary had no string there was a crash when the diary was showed.

- Fixed bug about Equipment command.
In previous version when you used the equipment command to set the presence of some weapon using different kinds of weapons (all weapons except pistol and UZI) you can got a crash extracting that weapon in game using the keyboard shortcuts (keys "1" "2" "3" "4" or "5")

- Added to the Equipment command some flags for weapons
When you are using an Equipment command to set the presence of a weapon in inventory, now you can add to the Amount field one or more LOAD_ flags.
These flags set the current ammo type loaded in the weapon and the further lasersight (mounted on it).
Remark: if you omit the ammo type the default ammo will be always ammo type 1 (the normal ammo)
Read the description of LOAD_.. flags in the MNEMONIC CONSTANTS section of the Reference panel for more infos.

- Fixed bug in Customize=CUST_AMMO command
In previous versions the setting for CROSSBOW_AMMO2_ITEM and CROSSBOW_AMMO3_ITEM were inverted.

- Fixed bug about poisoned ammo for crossbow
In previous version the poison arrows had no effect on the hit enemies

- Fixed bug in Animation Watcher tool
In the Animation watcher there was a crash trying to export the list with the [Output List] button.

- Fixed bug about invisible state of enemy's meshes
In previous version, on some moveable (like wildboar, big scorpion ect), the change of visibility for single mesh performed with the action trigger "Enemy. Mesh. Set for <#>enemy the (E)mesh as invisible", was lost after saving and restoring the savegame.

Note: in the reality to fix this problem you have to set for the slot of that enemy an Enemy script command with the NEF_SAVE_MESH_VISIBILITY flag.
In fact, the reason because with some enemies the invisibility was lost with save/load game, happened because only for some slots were foreseen the savage of mesh invisibility state. Anyway now, with the NEF_SAVE_MESH_VISIBILITY flag, you can force this saving/restoring for any slot you wish.

- Added new flag for Enemy script command.
To fix the problem of the lost of the invisibility state of single mesh of an enemy (see above), it has been added the NEF_SAVE_MESH_VISIBILITY flag.
Adding this flag for a specific slot, all items with that slot will save and restore the visibility mesh state that you could have changed with the action trigger "Enemy. Mesh. Set for <#>enemy the (E)mesh as invisible"

- Fixed bug in WindowsFont command.
In the previous versions the flag for font style "WFF_ITALIC" had no effect.

- Fixed bug in flipeffect to remove extra ng string from the screen
[Find Trigger Number] F204
In the previous versions, when you used the flipeffect 204 to remove a ng string from the screen, the engine will remove only the first instance of the string. This means that, if that ng string had been printed two or more times, the other instances remained on the screen.
Now the F204 flipeffect remove all instances of the given string from the screen.

- Forgot the description in last history of some new features
In the history for version I missed these two descriptions of new features:


* Added the ADD_LIGHT_GLOVE constant for AddEffect command.
Now you can add a glove light as effect to your moveables or statics.
See description of ADD_LIGHT_GLOVE constant in the MNEMONIC CONSTANTS list of the Reference panel of NG_Center

* Added new global trigger constant: GT_COMPLETED_SCALING_ON_ITEM
This new global trigger will be enabled when a dynamic (no endless) scaling effect has been completed.
You could use it to perform some action exactly when the resizing of your item has been completed.
- Fixed bug about NEF_EASY_HEAVY_ENABLING flag of Enemy command.
In previous version when an enemy command had the NEF_EASY_HEAVY_ENABLING flag this easy heavy activaction worked for all enemies in the game, indifferently if that slot was in the enemy script command.

- Fixed bug about the Blink attribute for text settings.
In previous versions the change of speed for the blink text didn't work, indiffirently by the method used to change it: flipeffect 75 or the TextFormat script command (BlinkTime field)

- Fixed bug about flipeffects to stop sound effects
[Find Trigger Number] F72 F73
In previous versions the flipeffects "Sound. Stop &Sound sample of first/second group" didn't work.

- Fixed bug about ADD_LIGHT_BLINK flag in AddEffect command
In previous versions, when you customized the Flare with Customize=CUST_FLARE , adding sparks, glow light or smoke, then these customization were added also to all the ADD_LIGHT_BLINK effects you added in the level.

- Fixed bug about flipeffect to perform some flip on a ItemGroup
[Find Trigger Number] F354
In the flipeffect "ItemGroup. Statics. Perform <&>trigger on (E)ItemGroup of statics" in the list of <&>trigger there were also two triggers not really availble to be performed from ItemGroup, the triggers: "Statics. Rotation. Stop all rotations of statics in <&>Room" and the "Statics. Move. Stop the movements of all statics in <&>Room".

- Added new Action trigger to remove effects from statics
[Find Trigger Number] A84
The new action trigger "Statics. Remove from <#>static the (E)Add Effect of script file" allows to untrigger the adding effects to the statics performed with the action 83 "Static. Apply on <#>static the (E)Add Effect from script file"

- Fixed bugs about action triggers to enable Camera or Flyby
[Find Trigger Number] A41 A45
In last versions the action triggers to enable Camera,Fixed camera (A41) or a flyby sequence (A45) didn't work correctly.
Remark: the A 41 trigger to enable a camera/fixed camera, should be performed always form a triggergroup or an exported anim command. All action triggers that duplicate default triggers to enable objects, cam, flyby, sink ect have been thought only for exporting.

- Fixed bugs about flipeffects to stop sound effects
[Find Trigger Number] F72 F73
In previous versions the flipeffects "Sound. Stop <&>Sound sample of first/second group..." didn't work

- Removed beta version of flipeffect for lightning
[Find Trigger Number] F359 (but now it's missing)
In version there was a refuse of some my test about a new flipeffec to enable a lightning versus lara or enemies. Anyway it was not yet working so it has been removed but it will be added newly when it will be completed.

- Corrected description about overlapped bridges in the Bridge Collision tutorial
In the miscellanous 2 demo project there was a mistake in the Bridge Collision tutorial. The position of triggers cann't change the choice about what is the only conditional bridge over the same tail. The bridge with condition will be always the lower in the 3d space.
The correction has been already done in the tutorial.

- Fixed bug in NG Font Editor tool
In previous versions when in the wad (.swd) file there were two or more sprite items (like CUSTOM_SPRITES other the FONT_GRAPHICS) there was a Bad Subscription error with aborting of NG Font Editor window.

- Fixed bug in floor/ceiling mirror
In previous versions the (further) Animatings in the hidden room were apparently disappeared.
Note: I remember that to have a correct specular image of Animating in floor/ceiling mirror it's necessary that the pivot (the point where there are the coordinate {0,0,0}) of the item was in the middle of the object respect to the planar view.

- Enhanced the buffer for "spark" particles
The number of single spark particles in the same moment has been doubled because there was an overloading when it was raining for other spark sources like the waterfall mist.

- Fixed old bug about missing of collision between motorbike and not-enemies items, moveables or static items.
Now the bike will be stopped when it collides with moveables or static items.

- Added new collide feature for motorbike.
In old tomb4, when lara was driving the bike and she went below a low ceiling, so much low to touch her head, nothing happened, and lara was able to across the rock with her head with no injury.
Now you can kill lara in above situation but only using some moveble or static pending from the ceiling with the correct distance from the bike.

- Fixed bug about action trigger to activate moveable
[Find Trigger Number] A43
In the previous versions the action trigger "Trigger. (Moveable) Activate <#>Moveable with (E)Timer value" didn't respond to One Shot button, with the result that also an one-shot trigger came performed many times.

- Fixed old bug about puzzle with brazier, petrol and torch.
This was an old tomb4 bug.
When lara fills the brazier with petrol (using the jerrycan) and then she saves the game, at reload of savegame the petrol was missing and the puzzle failed.

- Fixed bug in Fast3d and Texturize dxf file tools
On some eastern computer there were trouble importing dxf files and/or exporting dxf files, where these last were not accepted from StrPix program.
Above problems happened when the nationalization of Windows set the comma "," as decimal point for floating point numbers.

- Added in Reference panel of NG_Center new state-ids references
It has been addes the group of new state-ids of Lara when she uses Parallel Bar and TightRope

STATE_TR_POSE:$77 ;Tight Rope
STATE_TR_WALK:$79 ;Tight Rope
STATE_TR_FALL_122:$7A ;Tight Rope
STATE_TR_FALL_123:$7B ;Tight Rope
STATE_PB_HANGING:$80 ;parallel bar
STATE_PB_LEAP_OFF:$81 ;parallel bar

- Added CUST_BIKE_VS_ENEMIES customize constant
With the new CUST_BIKE_VS_ENEMIES customize you can set what it will happen when the bike collide with a given enemy.
You can set to kill, to push away, to hurt or to explode the given enemy.
Remark: the push away setting works fine with some moveable and bad with others. You should test it and use it only when it works fine.
See the CUST_BIKE_VS_ENEMIES constant in the Reference panel for more infos

- Added new flags for MirrorEffect command
These new flags (FMIR_...) should be added to the animating index when you wish fix some problem in the reflex of that item.
If the mirrored item has a wrong facing you can try to fix the problem adding to the index of main item the flag FMIR_ALTERNATE_REFLEX
This flag doesn't grant to have a better mirroring but only a new type of mirroring. Therefore you should add the FMIR_ALTERNATE_REFLEX flag only when you have had a bad result in a previous attempt.
Another fixing is possible with the flags: FMIR_ADJUST_X or FMIR_ADJUST_Z, to add when the mirrored item has a bad position. This happen very often with doors in floor/ceiling mirrors, because the doors have very often a pivot on a side or corner of the mesh, instead by the (good for mirror) central position.
See the FMIR_ constants in the Reference Panel of the NG_Center for more infos.

- Fixed bug in flipeffefct to set a camera as follow camera
[Find Trigger Number] F119
In previous versions the flipeffect "Camera. Set current CAMERA as follow camera on(&)Axis until (E)condition" didn't work with the condition: "Until Lara is in current room"

- Fixed bug about changing intensity of rain or snow
[Find Trigger Number] F 117
When the flipeffect trigger "Weather. Set Rain/Snow intensity for <&>room with the new (E)intensity value" changed the intensity of room where is Lara, saving the game and reloading it, the change performed with the trigger was not restored correctly.

- Fixed bug about CUST_RAIN customize
In previous versions the sound effect to play, stored in Extra field and enabled with the FR_PLAY_SFX flag, was not really played in game.

- Added new pause mode to stop circular turning
[Find Trigger Number] A81
Now you can put in pause the circular turning of an animating using the action trigger "Turn. Stop circular turning for <#>Animating item in (E)way" using the "Pause. Stop temporary its movement" way.
Then you'll be able to resume this movement with a new action trigger (A85). See following note:

- Added new action trigger to resume a circular turning previously put in pause
[Find Trigger Number] A85
After you put in pause a circular turning of an animating with the A81 trigger in Pause mode, you can resume its movement with the action trigger "Turn. Resume circular turning of <#>Animating previously put in Pause"
The usage of this trigger is useful own when you wish stop and go a circular turning, since using a "stop immediatly" + a new "circular trigger" you'll lose the original circle position since it was computed respect to current position of the Animating.

- Info about joystick usage with savegame panel
Someone had problems with the savegame panel using the joystick but for others it works. It's an hardware problem. I copy here the conclusions of a betatester of trng (Bedazzled):
My PC allows me to choose between using a graphics processor which is integrated into the cpu or a discrete graphics card. I've found that using the discrete card there is no problem, but using the integrated graphics causes the game to lock up when save is selected from the inventory.So some people reports of the game freezing will be correct as it's hardware dependent.

- Added new flipeffect to set the rain settings before entering in a rain room
[Find Trigger Number] F 361
This flipeffect has been thought to solve a limitation in rain management.
Until lara doesn't enter in a rain room the rain setting will remain that of old rain room visited by Lara. This means that, when lara is not in a rain room but it's able to see a closed rain room the setting of that rain could be wrong until lara doesn't enter in it.
To avoid this problem you can use the flipeffect "Weather. Set in advance the rain setting using the intensity of <&>Room" while lara is yet outside of that rain room that she is looking.

Titak 25-07-13 21:04

TRNG Updater
(Released 6 January 2014)

TRNG Updater

Part 1

- Added new window in NGLE program
Now it's possible to have an extra window with buttons to invoke all NGLE commands.
With button windows you can create your custom buttons linked to menu and keyboard commands other that other default buttons, renaming them as you wish.
See the document "help_ButtonsWindow.txt" in NG_Center folder and the samples in trle folder named "NetBook_ButtonsWindow.txt" and "WideScreen_ButtonsWindow.txt" for more infos.

- Added new keyboard command in NGLE
Now with CTRL 9 you can open the current tga file with the default program for tga type, set in Windows

- Added new keyboard command in NGLE
Now with ALT T you can reload current tga (texture) file avoiding to be prompted for the tga name to be loaded.

- Added in NG_Scripter the #include directive
The usage of include directive is useful to put in order the script dividing it in logical blocks.
For example when you create some script commands to realize a custom animation or other special effect, you can copy all commands for that target in a separated text file with a meaningfull name.
In this way your script could become like this:

#INCLUDE "LaraHome.txt"

#INCLUDE "AnimClimbFromWater.txt"

#INCLUDE "DistanceSensory.txt"

There are undoubt advantages in this job planning.
When you are not interested to some (already completed) features, you have not all those script commands in the main script to create confusion.
While, when you wish work own on that feature you can load (F5 key) the include file in Ng_center and you'll have only the meaningful commands in the editor to study and edit.

- Added in NG_Center program the #FIRST_ID directive
This directive it has been studied to be used in the include files of the script to set the start of IDs range for each script command in that include file.
The target is to reduce the risk of ID conflicts between command in the include file and those of the main script file.
The #first_Id directive works in according with the F1 command to get the first free id for the current command. With a first_id directive the F1 command will return always the first free id with value greather or even that typed in #first_id directive.
See in the [New Script Commands] section of the Reference panel the item "#FIRST_ID" for more infos.

- Enhanced the F1 keyboard command in NG_Center
Now the feature to locate the first free id for current command, other to support the #first_id directive (see above) is able to say to you in advance if there are two commands like the current with same Id value.

- Added in NG_Center the new #DEFINE directive
With #define you can create a temporary mnemonic variable with the wished value that you'll be able to use in all numeric arguments of the commands in that include file, also mixed with aritmetic formulas with [+] or [-] to link mnemonic constants or numeric values.

The main usage of this feature is to create a method to change all IDs of different commands in the include file, changing only a single value, that of #define directive.
See the description of #define directive in the [New script commands] section of the [Reference] panel to see some examples.

- Fixed a problem of backward compatibility with GlobalTrigger command

In the version it was been added to the GlobalTrigger command a new argument, the IdPerformTriggerGroupOnFalse field. This change generated the error message "ERROR: missing arguments for GlobalTrigger" in all previous scripts.
Now ng_center is able to recognize this particular situation and it omits the error message, adding byself a new null (ignore) field to cover the new IdPerformTriggerGroupOnFalse field.

- Improved the exporting of anim (trng) commands in NGLE program

When you export the current trigger from the Trigger Type window, using the Export Anim Command button, now you can choose as Frame Number the value -1. When you choose -1 the exported trigger will be performed in all frames of animation where it has been placed.
This chance is usefull for conditional triggergroups where you wish test for each frame if a condition is true. It could be useful also for some add effects.

- Added new condition trigger for collision

[Find Trigger Number] C82
The new conditional trigger "Collision. <#>Moveable is touching Lara with its (E)mesh" allows to verify if there is collision with a specif mesh of a given moveable and Lara.
This collision method is useful for fighting or traps.
For example you can detect if the right hand of an enemy is touching lara. If you place this condition in a trigger group called by an animcommand in the animation of enemy where he is trying to hit lara, you can add a damage to lara only when the collision right-hand of enemy and lara is true.
Note: this feature use the sphere mesh to detect the collision so it works better with meshes having about a sphere shape.

- Added new condition trigger for collision
[Find Trigger Number] C83
The new condition "Collision. Lara is touching <#>Moveable with her (E)mesh" it is alike the previous C82 condition, but in this case the detection happens for what lara's mesh is touching the moveable.
You can use this to detect if it is lara to hit the enemy with a fist.

Note: other that the same note typed for above C82 condition, I remember that some unofficial tool, to manage objects, could not take care to modify the sphere mesh of a an item, when it changes that mesh shape.
This is only a doubt, anyway if this situation was true, it could create bad detection for modified moveable having yet the old (original) sphere meshes (in spite their shape has been changed).

- Signalation about unused flag for TextFormat script command
The FT_SIZE_NO_BORDER flag has no more effect. It is a refuse of old print text management for special characters but the new trng code bypassed fully the manage of that flag.

- Added new script command: AnimationSlot
The AnimationSlot command is very much alike than Animation command but in this case the animation regards not lara but a generic moveable of the wished Slot.
With AnimationSlot command you can replace, remove or add new animations for existing enemies.

- Added new ENV_ conditions.
There are new ENV_ condition created for the AnimationSlot command.


The "BOX" are the gray box sectors placed in ngle to inhibit some zone to the enemies.

- Added new condition about detection of lara from some enemy

[Find Trigger Number] C84
The new condition "Creature. <#>Moveable with (E)degrees of view is able to see Lara" allows to discover if a moveable is able to see lara.
This condition works better than common detection in tomb4, where an enemy discovers the presence of lara also when she is back of him.
In this condition you can set the angle view of the enemy, and if lara is in hidden zone of his view he will be not able to see her.
The condition is able to manage further moveables or statics that stop the sight of the enemy and where lara could hidden her.
This condition is available also like ENV condition.
It works on all moveables not only enemies. Take care about the facing for eyes position.
In the "lightning" demo you can find a room where to check how it works.

unfortunately, until new AI skills will be not developed, this condition trigger is not able to change the common behavior of enemies
Anyway you can set an enemy with AI_GUARD or AI_PATROL1/2 and trigger when he will be able to see lara, to activate other enemies to attack her (the guard gives the alarm...)
Or you can use as "guard" a cctv like in the lightning demo (but I used a sentry gun instead of a cctv)

- Added new ENV condition for AnimationSlot command.
The new env condition ENV_ENEMY_SEE_LARA, works like the above trigger condition (C84).
You can use the ENV_ENEMY_SEE_LARA in the AnimationSlot command to start the attack of the enemy vs Lara.
See the ENV_ENEMY_SEE_LARA constant in the MNEMONIC CONSTANTS list of reference panel for more infos.

- Fixed problem with condition to check seconds of screen timer
[Find Trigger Number] C20
In previous versions the condition texts "Lower" and "Higher" had the opposite effect.

- Fixed bug in Equipment command.
In the version the Equipment command failed with many pickups when they had an id number different than 1: Key, Puzzle, pickup.
Note: in the reality this fixing has been already done in the previous ( version but the signalation was missing in the history.

- Fixed bug about extension of dynamic lights number

In the previous version the icreasing of dynamic light from 32 to 128 had a bug and the limit worked yet to 32.
Now this bug has been fixed, anyway for technical requirements the max number of contemporary light is now of 127 (and not 128)

- Fixed bug about activation of some triggers in contiguous sectors
This bug regarded all flipeffects or action triggers.
It happened when two or more actions (or flipeffects but not mixed between them) are in contiguous sectors and lara move her in these sectors keeping her body always in some trigger sector.
The problem was that a trigger already enabled it was no more activable after lara went out from that sector and then she came back on it.

- Added new flag for TriggerGroup command
It has been added the TGROUP_SINGLE_SHOT_RESUMED flag.
This flag works like the TGROUP_SINGLE_SHOT flag (see its description) but in this case it's not necessary use the flipeffect 345 to enable it newly.
In fact, a triggergroup with the TGROUP_SINGLE_SHOT_RESUMED in (first) flags word, will be enabled newly not just the current triggergroup stops to be performed. This means that the "single shot" atttribute will work only in contiguos triggered sectors, but just lara goes out from this trigger zone, the trigger will be newly ready for further activations.

since there was no more available bits (value to use) for TGROUP_ flags, I had to use the (futile) TGROUP_AND value as this new TGROUP_SINGLE_SHOT_RESUMED flag.
The TGROUP_AND flag was futile because in the missing of other operators (OR and NOT) the AND was the default.
I let the mnemonic constant TGROUP_AND only to avoid error messages from ng_center with old scripts, but now its value is 0, so it has no effect placing it or less in the TGROUP_ flags field.
The only situation where this remapping could create trouble is if you use the new dll with an old script.dat file compiled with previous ng_center version, but this is always a bad practice: when you use a new dll you should always recompile all buildable files with the new updated tools.
The buildable files are: script.dat, .tom and .tr4 file other that savegame files

- Removed error message "Error Decompressing Data" you got in tomb4 log file everytime the engine decompressed a tr4 file.

- Fixed bug in NG_Center program.
In previous version it was visible a little gray box over main window. It was a little (useless) button.
Now it has been removed

- Added new DGX parameter for DiagnosticType command.
It has been added the DGX_FPS flag. With this flag the current FPS (Frame Per Second) will be displayed in the diagnostic on screen.
The DGX_FPS disgnostic is useful when you are checking for slowdown in your level and you are trying to fix this problem with different settings of Turbo script command.
Note: There are two FPS values: the sync and the async frame rate. Read the description of DGX_FPS constant for more infos.

- Added new constant for DiagnosticType command.
It has been added the DGX_ERRORS constant.
When you enable diagnostic in game, and you add the DGX_ERRORS to the DiagnosticType command, you'll see all error messages that trng discovers parsing your script.dat or performing your triggers in game.
This is a very important help in development phase because in this way you can discover immediatly when you mistake something in script or trigger settings.

with DGX_ERRORS enabled, when you quit tomb4.exe you'll find in trle folder an "error_parsing_log.txt" file with the complete list of all parsed errors in last game session.
When you wish signal a problem with trng on some forum, you should show always also the "error_parsing_log.txt" contents.

- Changed management of TRB_ASYNC_FRAMES mode of Turbo script command
The previous management of TRB_ASYNC_FRAMES mode did not work fine.
Now the TRB_ASYNC_FRAMES mode tries to reach the full frame rate (30 fps) performing in same frame time two or more frame movements.
See TRB_ASYNC_FRAMES description in Reference panel of NG_Center for more infos.

- NG_Tom2pc program: Extended the memory to manage sprite textures.
With previous wideness of sprite memory, someone (used intensivly sprites) got a crash converting its wads files to build the tr4 level file.

- Added new flipeffect trigger to perform a lightning
[Find Trigger Number] F359
The new flipeffect trigger: "Weather. Perform a lightning with data in <&>Parameters for (E)Durate in Tick frames (1/30 second)" allows to simulate lightning from the sky (using a very short time), and the lightning conductor between two objects, (using infinite durate).
You have to customize the lightning with the linked PARAM_LIGHTNING Parameters script command.

There are many parameters to set and if you choose uncompatible values you could get bad results.
You could do experiments, anyway I suggest to you some settings:

To simulate a lightning conductor like in the "planet effect" of the library level, you can use these settings:

In the trigger set "0 tick frame" (it means: "infinite durate")

While in the script type:

ColorRGB=        1, 0, 208, 208
Parameters=    PARAM_LIGHTNING, 1, >
                        [SourcePosition], [targetPosition], 1, 32, 197, 32, 24, 4, 1, 5

Where, in place of [SourcePosition], you type the index of item to set source position for the lightning and, in place of [targetPosition] you type the index of item to set as the target position (read the description of PARAM_LIGHTNING constant for more infos)

To simulate a lightning from the sky, you can use these settings:

Set in the trigger a very low number of tick frames, 3 for example.
Then in the script type commands like these:

ColorRGB=        1, 255, 255, 200
                          LGTN_FLASH_SCREEN + LGTN_HEARTHQUAKE, IGNORE, [targetposition], 1, 32, 183, 32, 24, IGNORE, 1, 5

Where, in place of [targetPosition] you type the index of item to set as the target position (read the description of PARAM_LIGHTNING constant for more infos)

with the lightning you can kill (or burn) lara and kill enemies or explode shatters (and baddies).

- Added new flipeffect to stop an endless lightning.
[Find Trigger Number] F362
The new "Weather. Stop the endless lightning effect with <&>Parameters" flipeffect, stops a previous lightning performed with f359 trigger that used a "0 tick frame" for endless durate.

since that the lightnings are a limited resources it's always better stop them when lara goes away from their visible zone.

- Fixed bug in NG_Center.
In the scripter program, it sometimes happened that a row with a command was ignored because in previous row there was a "linker" character (the ">" character) in the comment.

TriggerGroup=    1, $2000, 359, $101  ;Weather. Perform a lightning with data in <&>Parameters for (E)Durate in Tick frames (1/30 second)
Organizer=      1, FO_LOOP, IGNORE, 2, 1, 4, 1, 1, 1 , 6, 1

In above exmple, the "Organizer" row was skipped, because trng used the ">" character of the text "...in <&>Paramteres.." like it was a linker character to continue to read second half of the row (triggergroup) in the next row.

Now the linker characters ">", placed in the comments, will be ignored.

- Added new research type in NGLE.
Now in the Advanced Search, you can look for an index of (generic) item of the level map.
This feature is useful when you know an index (for example you read it in a script command) and you wish know where (and what) is it.

- Added new flag for Image command.
The new IF_LOOP_AUDIO_TRACK flag, allows to play in loop (infinite) mode the audio track you choose as background music for your image.

- Added new customize constant: CUST_BACKGROUND
With this customize you can use an image as background for some game phases like loading level, pause, inventory ect.

You have to type the id of an Image command to choose the image to use as background.


In above example it will be used the image1.bmp in the trle\pix folder as background and playing the 119.wav audio track as background music.
See the description of CUST_BACKGROUND variable in the reference panel of NG_Center.

- Added new condition trigger
[Find Trigger Number] C85
The new condition trigger: "Sound. The <#>Sfx Sound effect is playing" detects when a sound effect is playing" detects when a sfx sound is currently playing

- Increased max number of TriggerGroup commands from 256 to 1000.
Now you can have upto 1000 triggergroup commands in a level section of your script.
About the IDs used with triggergroup the max value to use is 10000 (the number of triggergroups * 10)
Note: this rule act for all command scripts, where the max number of ID is the max number of occurence of that command multiplied by 10

- Increased max number of GlobalTrigger commands from 100 to 500.
Now you can type until to 500 GlobalTrigger command in same level section. About the max value for IDs it's 5000 (number of global trigger * 10)

- Increased max number of Organizer commands from 100 to 500
Now you can add upto 500 Organizer commands in same level section. About the max value for IDs it's 5000

- Increased max number of MultEnvCondition commands from 20 to 256
Now you can type upto 100 MultEnvCondition commands in same level section. About the max value for IDs it's 1000

- Increased max number of Animation command from 128 to 256

- Improved WindowsFont command
Now you can set in the WindowsFont command the charset of character font.
You type the code of charset linked with font name using the colon ":" character.

WindowsFont= 1, 128:MS Gothic, ...
When you modify the font name with the charset prefix you have to type the same syntax also in extra ng string for that font name.
In above example you should type in NG string:

128:MS Gothic

- Added new WFF_ flags for WindowsFont command
Now there are three new flag WFF_... for WindowsFont command:

WFF_ROTATE_90 : rotate the text of 90 degrees
WFF_ROTATE_INV_90 : rotate the text of -90 degrees
WFF_FROM_RIGHT_TO_LEFT : print text from right to left. This works only with hebrew and arabic charsets on nationalized computers.

- Added new script command: DefaultWindowsFont
If you type this command in the Title section of your script, you force the trng engine to use Windows font characters to show any text in the game.
All menu titles (New game/Load game/Options ect.) will be drawn whereby windows functions and using the windowds font you set in the given WindowsFont= command.

The most advantage to use windows font is to be able to support different charsets (different than default western charset).
Pratically using windows fonts you should be able to show texts in eastern languages.
To set the wished charset you have to type the charset code linked with the face name font you typed in the WindowsFont command used by the DefaultWindowsFont.
For example:

ColorRGB=        1, 255,0,0
ColorRGB=        2, 0,0,0
WindowsFont= 1, 204:Arial, WFF_BOLD+WFF_SHADOW, 40, 1, 2
DefaultWindowsFont= 1, IGNORE, 75, IGNORE, 20, 20, 20, 20, 10, 20, IGNORE, IGNORE, 10, IGNORE

Above commands are those used in the "lightning" sample.
The "204" is russian charset.

See the description of WindowsFont command for the list of charset codes.

I remember that is not necessary typing a charset number for western characters. Just you omit the charset number and it will be used the ANSI charset that is good for the most of western europe languages (english, french, spanish, german, italian)

Anyway, there are also some problems in windows font management.
Since the displaying of windows font is based on API windows functions (and not whereby the directX functions), the drawing will be more slower than default directx management used in tomb raider.
This means there will be a lost of performances when you use windows management for the texts.

Another risk is that the font you chose for windows font, could be missing in some computer and in that case trng engine will try to locate an alike font but since it is different the format in game cuould be less good.

For above reasons I suggest to use the DefaultWindwsFont= chance only when you use an eastern language (not supported in tomb raider default), while for western level builders (and their players) I suggest to continue using the default font management, because it grants better performances and compatibile issues with all computers.

- Added new flipeffect trigger to show windows font strings
[Find Trigger Number] F363
This flipeffect allows you to show an extrang string on the screen using new windows font management.
I remember that this flipeffect is not linked with the usage (or less) of DefaultWindowsFont command.

This flipeffect works together with the new PARAM_WTEXT parameter command to set all required settings for the printing.

- Added new flipeffect to remove a string printed in windows font mode.
[Find Trigger Number] F364
You use this flipeffect when you have (previously) printed a string in windows font mode and endless durate.

- Added new button to NG_Center program
In the Strings panel, there is the new button [Import Binary String]
It's not sure you'll have to use this feature, anyway it has been studied to allow to type in ng_center text in eastern characters, supposing that ng_center was not able to keep correctly these texts.
In the case you wish use windows print features with eastern characters, and you are not able to type these text in common way into ng_center, you can use [Import Binary String] to round this problem.
When you use this button you'll be prompoted to choose a .rtf (rich text file, typed with WRITE.exe program) or .doc (created with Words program) where you typed your eastern text.
Once you selected the right file, ng_center will convert the easter characters in a hexadecimal string, like: "&CB30E530FC30B230FC30E030".
Then you'll be able to use this hex string with flipeffect print string and, in game, trng will convert newly that string in your original text to print it.

* If you use this method to store your texts in ng_center, remember to include the text in two mark block so: "$$$$"
Pratically if your text is "Hello world", you'll type in .rtf or .doc document:

$$$$Hello World$$$$

* There is the chance that you'll be able to store your eastern texts in ng_center, in direct way. It depends by your language and by charset you set in ng_center.
I remember that you can change the charset of ng_center program using a translation file in its main folder.
If you have not a translation file for ng_Center, you can create a fake translation file in this way:
  1. Open block notes, and type this text, replacing "Japanese" with the name of your language, and "128" with the number of the wished charset code.
  2. Now save this text in NG_Center folder, giving the name "my_scripter_constants.txt"
  3. Now, close NG_Center, and launch it newly.
  4. Now in Settings panel you should see your language (you typed in Version= command).
    If it's not selected, select it now
  5. Now ng_center will support the charset you typed (CharSetNumber) and the wished font.
    You have to try if you are able to type text in [Strings] section, in your language, and if this texts, after saving, quit program and launch newly program, they stand yet there.

- Fixed bug about elevator

In previous versions (from the first, with new tnrg elevator) there was a problem with the inner (fake) keypad, when the game was saved/reloaded.
The keypad, after reload, appeared flickering or moved in bad position, a bit outside of elevator, where lara was not able to align with it to select the floor.

-Fixed bug in the management of CUST_KEEP_DEAD_ENEMIES manamgement.
In seldom circusances, when an enemy has been killed whereby explosion and it was enabled the CUST_KEEP_DEAD_ENEMIES customize, the collision of that invisible enemy remained in game.

-Fixed bug about aiming killed (with explosion) enemy
In the past versions, when an enemy has been killed whereby explosion with helicopter explosion effect (Action 82), lara was yet able to aim the enemy in spite he was killed and he was no more visible in game.

-Fixed bug about explosion of dog and mummy

This is a native bug of The Last Revelation
When Lara shots with explosive ammos to the frozen dog (ocb=1) or the sleeping mummy (ocb=2) the game had a crash

- Added new flag for Image command
It has been added the new IF_CRYPTIC flag.
When you set your image with this flag, the image will be crypted and it will be possible watch it only in game, where it will be decrypted at-fly by trng engine.
You can recognize a crypted image by the "@" character in front of its name.


is the crypted version of the image3.bmp
Note: since the crypting is irreversible, you should perform a backup of your images in a folder different than trle\pix folder, before enable the crypting, otherwise you'll be no more able to modify them.
It's advisable crypting only images that contain "secret" you don't want the player can see in advance, while for other generic image the crypting is a futile losing of time.

See the description of IF_CRYPTIC flag in the Reference panel for more infos.

- Fixed bug about leak memory with image management.
In previous versions, when you used images in your level and you set IF_PRELOAD flag for them, the memory required to load them was not freed correctly, wasting the global memory for the program and Windows.

- Fixed bugs in binoculars about game commands
In tomb4 there was a bug about keyboard commands when it was enabled the binoculars.
If player hit the Escape command for inventory, the game entered in the inventory but letting enabled the binoculars.
Same kind of bug when player hit P for pause screen. The pause screen came shown together with the binocular screen.
Now trng quits the binoculars before entering in inventory or pause screen.

- Fixed bug in binocular about view of Lara
In previous versions, when lara was looking downstairs (with binoculars) she was visible on the screen.

- Fixed bug in Diary
In previous version the font used for right page of the diary was always a bit different than that in the left page.

- Fixed bug in showing images, custom savegame panel and diary

In previous version, on some computer, when the game was set in full screen, the images and the custom savegame panel and Lara's diary, didn't work.

- Fixed bug in lasersight mode
In the past, also with standard tomb4, when lara is aiming using the lasersight, if the player used a shortcut to change weapon (1,2,3,4,5,6) key, the lasersight can be used also with this new weapon.

- Added new flag for image command.
Added the new IF_EFFECT_CROSS_FADE flag to enable a cross fade to show current image.
The IF_EFFECT_CROSS_FADE flag works fine only alone. It's not allowed zoom effect or moving from side effects and neither transparent images.
You can use it only with overlapped full screen images.

- Fixed bug about SET_SOFT_FULL_SCREEN setting
In the previous versions, when you used the SET_SOFT_FULL_SCREEN setting, the game was forced to 16 bit textures getting leak quality about textures.
Now it will be forced to work with 32 bit textures.

- Added new global trigger type.
It has been added the GT_SELECTED_INVENTORY_ITEM global trigger.

This global trigger is similar to GT_USED_INVENTORY_ITEM but there are important differences.
While GT_USED_INVENTORY_ITEM works only with inventory items where there is no hardcoded feature and only when lara is still in stand up position, with the GT_SELECTED_INVENTORY_ITEM global trigger, you detect the usage of the item, whose slot had been typed in Parameter field, first that tomb4 engine processes it.
If you use this globaltrigger with some hardcoded item you can replace the default management with yours, adding the new FGT_REPLACE_MANAGEMENT flag.

- Added new address for Code Memory variables
It has been added the reference to read/change the "Index of current vehicle or -1 if lara's not using a vehicle"
You can change it using variables flipeffects

- Changed operative mode of soft full screen
The old SET_SOFT_FULL_SCREEN for Setting= script command has been removed and it has been added the new SET_FORCE_SOFT_FULL_SCREEN setting.
The new SET_FORCE_SOFT_FULL_SCREEN setting works like the old SET_SOFT_FULL_SCREEN setting but it has been necessary change its name because now the player will be able to set or less soft full screen byself, directly in tomb4 setup window.
For this reason it should be a "forcing" setting the soft full screen in the script, since in this way the player will have never the chance to change that option.
It's better do not use the SET_FORCE_SOFT_FULL_SCREEN setting in the script, and let the player the choice to enable or less it in tomb raider setup.

- Added new constant for Settings script command.
It has been added the SET_FORCE_NO_WAITING_REFRESH setting.
The "no waiting refresh" mode allows to remove the (further) flickering of images, and improve the FPS (frame per second) of the game.
It works only when the game has been set in exclusive full screen (the common full screen, i.e. no "windowed" setting).
Please, remember that player will be able to set or less this option using tomb raider setup, for this reason it's advisable you didn't use this setting in the script, letting the player the chance to enable it or less, in according with performances of his computer.

- Changed tomb raider setup window.
Now, from version, the setup window will have new settings, stored in a frame named "Emergency settings"
Above settings, in fact, should be used by the player when he has some problem playing the level.
The player will be able to choose between "soft full screen" and "No waiting for refresh" modes.
Both modes solves problems about flickering images, while only "soft full screen" could fix problems about FMV videos.
By other hand, the "no waiting for refresh" allows to use a real exclusive full screen, that should have better performances about FPS.

- Fixed bug about tomb raider setup window
In tomb raider the setup window didn't keep the previous setting but it showed only default settings.
Now the setup window will show the current settings you set in previous times.

- Added new method to show Setup Window
Now, at first launch, tomb raider will show a litte popup window with the message "Press CTRL key for SETUP"
If the player hit (immediatly) the CTRL key, the setup window will be showed, otherwise will begin the game.
The old method, using a link with "-setup" option in the command line, it yet works, anyway that method was a bit problematic in some cirucstances since a link file keeps an absolute path and placing it in a zip file didn't work on target computers.
With this new method also beginners will be able to enter in setup mode in easy way.

the new setup window is stored in tomb4 executable, this means that, this new setup window, will be visible only using the new trng tomb4.exe file you find in trng update.
To recognize easily this new tomb4 program, it has been changed the icon and now it shows lara with sunglasses and microphone (64x64 icon version) or lara with a red background (32x32 icon version)

- Fixed bug about description of flipeffect trigger F276
[Find Trigger Number] F276
In previous versions the description of flipeffect trigger 276 was:

Variables. Memory. Subtract from <&>Savegame Memory the CurrentValue

While the correct description now is:

Variables. Memory. Subtract from <&>Item Memory the CurrentValue

- Added new customize command for Binoculars
It has been added the CUST_BINOCULARS constant for Customize command.
With CUST_BINOCULARS you can show in binocular view: compass data, sextant data, zoom factor data and sensory of lightness data.
You can also set the super-zoom mode where the zoom factor passes from (old) 4.3x to 40x

- Added new flipeffect trigger to enable in game the super zoom factor.
[Find Trigger Number] F365
The "Camera. Increase the zoom factor (enable Super Zoom mode) for Binocular" flipeffect, allows to enable the zoom factor from a trigger in game rather using a constant flag in the script.dat.

- Added new constant for DiagnosticType command.
It has been added the DGX_ERRORS constant.
When you enable diagnostic in game, and you add the DGX_ERRORS to the DiagnosticType command, you'll see all error messages that trng discovers parsing your script.dat or performing your triggers in game.
This is a very important help in development phase because in this way you can discover immediatly when you mistake something in script or trigger settings.

Note: with DGX_ERRORS enabled, when you quit tomb4.exe you'll find in trle folder an "error_parsing_log.txt" file with the complete list of all parsed errors in last game session.
When you wish signal a problem with trng on some forum, you should show always also the "error_parsing_log.txt" contents.

- Added new setting to NGLE program
Now in the Settings window of NGLE program there is the option "On [Exit and Play] save project with new filename"
If you check this option, when you'll use the [Exit & Play] button to convert the level and launch tomb4 to play it, the current project will be saved using a new (not yet used) name, with same method for progressive backups.

- Changed mouse pointer in NGLE program
Now when it will be used the [Place Object] button or the [Move Object] menu command, the mouse pointer will change its shape to become a double cross until the command will be not completed.
This change has been necessary to have same behavior when ngle is waiting for the choice of user about a final position to set with mouse.
This behavior is the same already present to place "light", "shadow", "sun" ect in the map, where the layout of mouse pointer will change until user doesn't select the final position in the map.

- Added new FAN flag for Animation command.
It has been added to animation command the FAN_DISABLE_PUSH_AWAY flag.
This flag will disable the hardcoded set of Lara's animations (125, 126, 127 and 128 ).
Above animation could be performed when some enemy is touching lara: she will contract her body, then she will remain frozen for some instant, while her body will be moved away.
These hardcoded animations could disturb the fighting skills with fists and kicks, other to disturb many other custom animations.

- Added new customize constant
It has been added to Customize command the CUST_DISABLE_PUSH_AWAY_ANIMATION constant.
The meaning is the same you saw in above point, about FAN_DISABLE_PUSH_AWAY flag, but in this case the disabling will be forever and not only in the progress of your custom animation.

- Added new flag for ImportFile command.
It has been added to ImportFile command the FTYPE_SETTINGS type.
This type is for binary file with multipurpouse target.
Currently it's not yet used by any command, but it will be in the future.

- Fixed bug about escape command with overlapped image
In the previous version the player was able to quit image with Escape command also when the IF_QUIT_ESCAPE flag had not been used.

- Fixed bug about NEF flag for Enemy command
In the previous version the NEF_ONLY_EXPLODE didn't work and that enemy was not killed neither with explosive ammos.

- Added new NEF flag for Enemy command
It has been added to Enemy command the new NEF_SET_AS_SEMIGOD flag.
When you set this flag for some baddie that will become immortal.

- Fixed bug about rubber-boat.
When lara had just entered in the rubber boat, and the cust_rolling for rubber boat was enabled and the boat was closed to some wall, the boat moved byself backward or forward for about half sector, ignoring collision rules.

- Fixed bugs about management of multi-trle-path in settings panel
In past version there were many error messages when the new trle path had no all required features. Now ng_center will adapt it to do it work fine with ng_center.

- Added new option in Trng Installer program.
It has been added the option to set or less xp compatibility for trng tools. It works only under windows vista or higher OS versions

- Fixed bug about [Play] button.
In the previous versione the mode [2d map] was enabled but it remained also after tomb4 quit and the status of [2d map] button was inverted. Now ngle will enter in 2d map mode while tomb4 is playing and after tomb4 quit, ngle will come back to common 3d view preserving textures.

- Enhancement about [Hide Objects] button in NGLE program
Now the [hide objects] will be disabled byself before performing output wad, [play] [exit and play] and backup of project.> I also wonder if it is possible to make "Hide Button" turn off automatically when using outputing wad/saving project/adding new objects or trigger. Though it's not that necessary really.

- Fixed bug about wrong position of dust effects with darts in according with their facing

- Fixed bug: also omitting the PB_SHOW_CHARGE_COUNTER flag, the text count was showed on screen, anyway.

- Fixed bug about customized bar of FBAR_SOUND_BAR_ANIM type.
It was not possible set a color Id in extra parameter

- Fixed bug about direct input in light panel of NGLE.
About [int] field of light panel in ngle, the range has been increased upto -1.00 / +1.00

- Added new customize constant.
It has been added the CUST_SLOT_FLAGS constant, used to add some feature to a given slot item.
You can to each slot one or more FFS_ flag.

- Enhancement about pushable objects over pickups items
About pickups that are able to forbid the access to pushable objects, now the pushable objects will be able to pass over some pickups (or other moveables)
You have to set what items will oversteppable using the FFS_PUSHABLE_CAN_OVERSTEP_IT flag in the
Customize=CUST_SLOT_FLAGS for the given slot.

For example:


With above command list the pushable object will be able to pass over the lasersight item on the floor.

- Changed the description of F361 flipeffect: "Weather. Set in advance the rain/snow setting using the intensity of <&>Room".
To do understand that it works also for snow intensity.

- Fixed bug: the text linked with damage bar did not disappear when the bar had been removed, in the case the string was an extra ng string

- Fixed bug in customized shatter objects.
The range about shatter objects set with Customize=CUST_SHATTER_RANGE command, was wrong. The field LastStaticAsShatter worked with static having a static slot lower by 2 respect the given value

- Fixed bug. In [OCB Calculator] (in tools2 panel of ng_center) in the Fish Ocb setting, the option for "Slow Fish" had no effect on final OCB value

- Improved safeness for [Hide Object] feature.
Now ngle will restore objects byself, everytime user moves from room with hidden obj to another room, or he was placing new objects or triggers

- Now the current room in ngle view after [Play] button, will be showed correctly after user restored ngle window from minimized state.

- Fixed bug about enemy command for Skeleton.
When you used Enemy script command to set as mortal (NEF_SET_AS_MORTAL) the skeleton, the (HP) vitality you set in the enemy command was changed by hardcoded tomb4 engine when you used OCB 3 in the skeleton.

- Added new OCB values for Boats
For rubber boat and motor-boat have been added following new OCB values:

16 = Boat out of order because there is no fuel.
32 = Automoatic fuel management. When the fuel (stored in local long Delta variable) is 0, the boat cann't work for "no fuel".
128 = Show fuel bar on screen. To use only togheter with 32 OCB value.
64 = Boat is out of order because it's anchored.

- Added new flag for custom bars
It has been added the FBAR_USED_FOR_BOAT_FUEL flag, for Customize=CUST_BAR script command.
With this flag you inform trng that custom bar (always the BAR_CUSTOM4) will be used for boat fuel management.



and remember to type the name of the bar in extra ng string with index=304:

304: Fuel

Above bar will work only if some boat of the level has been set with value 160 (128+32) in OCB field.

- Added new flipeffect for recharging of boat fuel
[Find Trigger Number] F366
It has been added the flipeffect "Variables. Boat. Move <&>fuel to boat tank in (E)way" to set or add the fuel level for boat.

- Fixed bug about going off from boats
In previous versions the compute to detect if lara had "free water" to jump out from the boat was wrong in some situation, and she was not able to jump out in spite there was space in that side.

- Fixed bug about collision panels into water.
In previous versions, when lara was floating on the water surface the contact with collisional panel pushed (suddenly) lara up, outside of the water, in weird way.

- Fixed bug about boat.
In previous versions when player hit LEFT or RIGHT command with no ACTION (CTRL) key, the boat turned, the fan turned but there was no engine sound.

- Added more infos to crash report (and last_crash) file generated when there is a crash.

- Fixed bug about elevator.
When in the Elevator script command you omitted the frame items, in some circustance, the game will crash at first movement of the elevator.

- Fixed bug about ItemGroup script command
In previous versions trng took more item indices (+1) of those really typed, when those were less than 2.

- Fixed bugs in NG Font editor tool.
In previous version the import image for font page (3x3 characters) didn't work.
When there was an attempt to import an image and it had not been done any previous importing of some windows font, the program crashed.
Also when the program didn't crash, the image was not really imported in the current .swd file.
The page image, that it had having a 126x126 pixel size, had really 124x124 pixel size, affecting other troubles.

- Fixed bug about TIMER_FIELD trigger type.
In previous version, when you place a trigger of TIMER_FIELD type with a negative value it happened a crash in the output wad phase.

- Fixed bug about change of color of custom bars after reloading of savegame.

- Added new flipeffect for cutscenes.
[Find Trigger Number] F367
It has been added the flipeffect "Camera. Show blank screen for <&>seconds with final curtain effect"
This flip will show a blank screen that, after some second, will be opened in the middle showing gradually the game scene.

- Added new flipeffect to stop infinite curtain effect
[Find Trigger Number] F368
This flip works to stop F367 when it has been chosen "Infinite time"

- Added new flipeffect for cinema effect
[Find Trigger Number] F369
It has been added the flipeffect "Camera. Set Cinema screen with black rows of <&>depth for (E)seconds"
To have a slim game scene with two black rows at top and bottom of the screen.
You can use this to evidence the custscenes respect to the normal game scene.

Note: when there is cinema effect the inventory, pause and load/save game screens will be not available. For this reason you should use this effect only for cutscenes or for short moments when the player will be not able to load/save game or leave the game.

- Added new flags for CUST_BACKGROUND customization
When you set as background for inventory the current game scene, you can modify the game scene used for background in different ways: adding colors, inverting colors or reducing lightning.
The new flags added to this command are:

- Fixed bug about Planet Effect
In previous versions, when a pushable object was put on right sector, this hardcoded effect changed the ocb value, enabling a lot of trng features for that pushable object, with chaotic results.

- Fixed (bad) bug about GlobalTrigger and reloading game.
In previous version, when you typed in the script a globaltrigger with FGT_DISABLED flag (beginning as disabled), then you enabled it with a trigger and you save the game, at reload of that savegame, in some cirucstances (no globaltrigger with disabled flag in the level) that globaltrigger was yet disabled.

WARNING: to fix this bug it has been necessary change some data in savegame file, for this reason now you cann't load savegame built with older versions from this last release.

- Improved the "Find Trigger Number" feature in NGLE program.
Now you can locate a trigger also using the triple serie of numbers of exported trigger in the script.
This feature is useful when you forgot the meaning of triggergroup of the script, or when the script is not yours.
Pratically, when you read in the script a row like this:

TriggerGroup= 4, $2000, 363, $40B

You can copy the three number of the trigger "$2000, 363, $40B" and past them in the Find Trigger Number window to see the original trigger that has originated the exported trigger data.

- Fixed bug in Set Trigger Type window of NGLE program.
When there was a trigger to enable a flyby sequence, the Set Trigger Type window showed a messed description about the flyby to enable.

- Fixed (bad) bug about triggers enabled by Flyby camera
In the previous versions flipeffects and action triggers were not triggered correctly by flyby camera.
Please note that in the title level the flyby camera enables common (not heavy) triggers, while in other level the flyby cam enables only heavy triggers.

- Fixed bug about launching of FMVs
When the triggered fmv was missing the game froze.
Now there will be an error message and the game will continue.

- Improved [Find Trigger Number] feature of NGLE program
Now you can decode also triple numbers of exported animcommand.
You have to type the animcommand in the format:
[-32640] [12] [256]

- Added new EDGX_ flag for DiagnosticType command.
It has been added to DiagnosticType command the EDGX_TRIGGER_TIMING flag.
With this flag you can see on screen the tick frame time about a triggering and the following triggering, about triggers in the level map.
This is useful to have precise values to type in organizer or other script commands to syncronize better cutscenes.
You can use it also to replace old method of rolling-ball (to activate a sequence of triggers) with an organizer, that it will do save many triggers in the maps.
Note: Theorically I should have had to give to this feature a DGX_ flag name but the available flags for that field was finished, so this is an EDGX_ flag to type in second field of DiagnosticType command.

- Changed internal structure in .mem file paired with last_crast#.txt file.
The size of .mem file pass from (old) 1.5 Mb to (new) 0.5 Mb

- Improved infos in last_crash report.
Now in the section named "QUICK DIAGNOSTIC LOG", there will be a description about items elaborated by tomb4 engine at moment of the crash.
It's not sure there was always an info of this kind, anyway when there is, it will inform you about moveable, room, flyby or slot (item type) was in elaboration while the crash occured.

- Added new flag for TestPosition script command.
It has been added the TPOS_ROUND_HORIENT flag for testposition command.
This flag accepts any facing of lara, just she was in direction of the moveable.
To understand this working mode you can think about polerope or when lara has to pick up an item from the floor.
Since the round facing is very particular there are some special rules and limitations:

* The couple (XDistanceMin / XDistanceMax) and (ZDistanceMin / ZDistanceMax) should have the same values, anyway trng engine will read only the pair (ZDistanceMin / ZDistanceMax).

* The range (HOrientDiffMin / HOrientDiffMax) is the only orienting pair to be verified.

* If you use this flag in a TestPosition command with an Animation command having the FAN_ALIGN_TO_ENV_POS flag, the position of Lara will be moved in ideal position but only in immediate way (no sliding or smoothed movement).
For this reason it's better using limited ranges about max / mix distance and DiffMin / DiffMax horizontal orient, to avoid a too jerk movement in game.

- Added new ENV condition for Animation command.
It has been added the ENV_FRAME_RANGE condition to Animation command.
This condition works like ENV_FRAME_NUMBER but in this case the condition will be true if the current frame of current Lara's animation is in the given range.
You have to type the frame range in DistanceForEnv field, using following formula:

MaxRange * 256 + MinRange

Note: MaxRange cann't pass over 254 value

- Added in exporting info of a trigger like animcommand the "to perform in all frame" description for animcommand set with frame = -1 (or 255)

- Some flipeffects, used to enable script commands by their IDs, gave a reduced limit of IDs to choose, in spite now in version the IDs available are bigger than older trng versions.

Note: Some triggers have been changed and new triggers have been added to handle new higher IDs, anyway in some circustance the ID from trigger in the map will be lower than max id value for script commands.
In this case there is the limitation you have to choose lower IDs for those script commands that you wish "call" from a trigger in the level map, while there is no limitation inside of the script since all script commands can refer to other IDs with very big values (until 32565)

- Three new flipeffects have been added as an improvement of F118 trigger, to perform a triggergroup in different ways, supporting higher script IDs
[Find Trigger Number] F371 F372 F373
It has been added an extension of Flipeffect 118 for each performing way of triggergroup:

"TriggerGroup. Perform <&>TriggerGroup from script.dat (single execution)"
"TriggerGroup. Perform <&>TriggerGroup from script.dat (always performed until lara stands on current sector)"
"TriggerGroup. Perform <&>TriggerGroup from script.dat (continue performing to stop with f192 trigger)"

All above flipeffect support ids from 1 to 9999

- Added two new flipeffects to support new (higher) globaltrigger IDs.
[Find Trigger Number] F374 F375
It has been added a double extension of F109 trigger:

"GlobalTriggers. Enable GlobalTrigger with ID<&>"
"GlobalTriggers. Disable GlobalTrigger with ID<&>"

All above triggers support ids between 1 / 4999

- Added three new flipeffects about resume organizers to support higher IDs
[Find Trigger Number] F376 F377 F378

"Organizer. Resume <&>Organizer from first command (reset)"
"Organizer. Resume <&>Organizer from next command (immediatly)"
"Organizer. Resume <&>Organizer from next command in the given time set in next command"

All above flipeffects handle IDs in the range 1/4999

- Increased max ID for some condition triggers in ngle program:
[Find Trigger Number] C15 C16

The condition C15 "Multiple condition of <#>TriggerGroup script command" pass from triggergroup IDs (1-255) to (1-1023)

The condition C16 "Multiple condition of <#>MultEnvCondition script command in (E)way" pass from MultEnvCondition IDs (1-255) to (1-1023)

- Fixed bug about SC_DOUBLE_SIZE flag for TextFormat command
In previous versions the SC_DOUBLE_SIZE flag had no effect or a bad effect.

- Added to the description of all multiple script commands the max number of instances allowed for level section.

- Improved bookmarks management in ng_center program
* Now the bookmarks will be preserved also after quiting ng_center program and restart.
* The looking for next bookmark should be a bit faster
* In previous versions the temporary saving of bookmark when you used [Build] button, was very slow. With very big script it required many seconds with no message about the work in progress. Now the saving is istantaneous

- Fixed bug about GT_DISTANCE_FROM_STATIC global trigger
In previous versions the GT_DISTANCE_FROM_STATIC didn't work since it computed the distance in sectors instead by game units.

- Added to ng_center a control about amount of multiple commands for each level section.
Now if there are more script commands (of same kind) than max allowed number there will be an error message.

- Added to the log of script building a section with statistics about amount of each multiple command with indication about max number of instances allowed for that kind of script command.


------- Statistic about amount of multiple commands in current level section -------
[35/999] TriggerGroup=
[32/Unlimited] Parameters=
[31/Unlimited] Customize=
[30/99] AddEffect=
[21/499] GlobalTrigger=
[15/199] ColorRGB=
[15/256] Animation=
[9/199] Image=
[6/255] MultEnvCondition=
---------------- End Statistics --------------------

- Fixed bug in Reference panel of NG_Center program.
In the "SCRIPT NEW commands" and "SCRIPT OLD commands" sections, the list was not always effectively sorted by command name.

- Improved detection of joystick inputs with savegame panel.
In previous version, with some joystick models, the movements were too fast or irregular.

- Fixed bug about generator of random numbers.
In previous version the random sequence of the program was always the same.
In spite it's not probable to have really same results in game, it was possibile that random triggers generated always same results when that point in game was reached after start of the program without other randomize call in the middle.

Titak 06-01-14 17:20

TRNG Updater
(Released 6 January 2014)

Part 2

- Added new Diagnostic flag to allow demo recording
It has been added to Diagnostic command the EDGX_RECORDING_DEMO flag.
When you enable this flag you'll be able to record a demo file.
A demo file is a binary file that will be saved in trle\data folder with progressive names like: demo1.pak, demo2.pak ect.
A demo file contains all data about lara status and position at begin of the recording and then all keyboard (or joystick) command you set in the recording phase.
Once you created demo#.pak file, you'll be able to type its id (really a common index present in its file. e.g. demo5.pak has 5 as index or id) in the new script command: Demo= (see next paragraph the description)
When a demo will be played, trng engine will place lara in the position she had when it had been recorded and restore her status: weapons in hands, animation, stateid, special actions that she was performing (climbing, monkeying, swimming underwater ect). Also her mesh look will be forced to be them of start recording.
Then the keyboard commands will be sent to trng engine bypassing the user input. In this way you can record a scene where lara run, climb, shots or use items from inventory, and then show this sequence like a little cutscene.
In the reality the demo, born to add demos in title level, could be used also to create inside cutscenes.

I've not had the time to create a tutorial, anyway you can find many infos looking for EDGX_RECORDING_DEMO flag in Reference panel of ng_center.
I did a new project sample with some demos and one cutscene with all sources.

Anyway, here I wish explaing the philosophy of creation of cutscenes using demo features.
You can launch a demo file also with a trigger from the game (F379).
About the creation of cutscenes you should understand the better way to work:
  1. You begin placing lara at start position of your cutscene, you can reach this point also in game, moving simply lara in that position.
  2. Then you start recording (F11 key) now move lara where you wish she will go in the cutscene.
  3. When you wish some custom animation for lara, you can place a trigger casted with condition about demo mode, to set the cutscene animation, or, you can let still lara for some seconds, the time you suppose to be necessary to perform that custom animation. Then at end of recording, you'll be able to add the trigger for that custom animation in the demo organizer command at right frame, and when you'll play the cutscene, lara will perform that animation
  4. Same speech when you wish that enemies interacted with lara. You can transform them in actors, moving them with triggers in demo organizer and setting custom animation also for them.
  5. You can also, in post-production, adding different camera views to look lara or other actors from wished angle (see below, the new cutscene camera).
The general philosophy is therefor to create your cutscene in different steps, using demo organizer or triggers on the map to do happen what you wish.
You can add these triggers to animate the cutscene, AFTER having record the lara movements, working only on the script into the organizer linked with the demo.

More, thanks to editing features of demo recorder, you can also trim your already recorded cutscene, removing last part or the first part and then append to it a new recording beginning from last frame of previous recording.

- Added new script command to support demo.pak files
It has been added the new Demo= script command.
Demo command is of service to play the demo data you recorded using the EDGX_RECORDING_DEMO skill in DiagnosticType command.

This command works to show a demo of the levels of your adventure while player is yet in title level.
In above situation you'll place the Demo= command in [Title] section of the script, of course.

Anyway, if you use Demo command in a [Level] section it will work in custscene-mode, with some operative differences.
See description of Demo= script command in reference panel of ng_center and also the description of EDGX_RECORDING_DEMO flag about recording of demo files.

- Added new mode for condition about Lara status.
[Find Trigger Number] C25
It has been added to the conditon "Lara. (Status) Current <#>Lara status is (E)enabled/disabled" the Lara status: "Demo/Custscene mode"
This new mode is service for adding triggers in demo/cutscene that will be performed ONLY in demo mode and not when lara, in common game mode, will pass over those trigger sectors.
In this way you can increase with special texts, sounds or view effect (changing camera views) the demo/cutscene, preserving in same time the game scene where lara, later, will go.

Note: The demo mode is enabled not only while the demo is playing but also when there is a demo recording in progress.

- Added new flipeffect to launch a demo/cutscene
[Find Trigger Number] F379
It has been added the flipeffect: "Cutscene. Perform the demo.pak with <&>index in (E)way"
With this trigger you can launch a binary demo.pak file (stored in Data folder).

- Added new flipeffect to stop a demo in progress
[Find Trigger Number] F380
It has been added the flipeffect: "Cutscene. Stop the current demo in progress".
Above flipeffect is able to stop a demo from title or a testing demo but it has been thought to stop a demo launched from current level with F379 trigger, when you need to detect some condition to choose when the demo/cutscene should be completed.

- Added new condition triggers to detect frame of current demo
[Find Trigger Number] C86 C87
These condition triggers will be true when there is a demo in playing (or recording) phase and its current frame is the same supplied in the trigger.
The only difference is the way to supply the frame index to check.
The C86 condition "Cutscene. Current demo is playing/recording the <#>frame" gets the frame directly from the trigger.
While the C87 condition "Cutscene. Current demo is playing/recording the <#>frame from Paramaters=PARAM_BIG_NUMBERS script command" read the frame from a PARAM_BIG_NUMBERS script command.
The first condition (C86) covers only 1023 frame for about 30 seconds (34.1), in the case the frame to check is over that value it will be necessary using the C87 condition.
These trigger are used to enable other triggers in a precise moment of a demo.

Note: about the apparently weirdness that above triggers work also in recording mode, the reason is simple: when you record a demo it's necessary (or at list better) that you see what it will happen when the demo will be played and for this reason same triggers enabled in playing mode will be enabled also in recording mode in this way, for instance, if there is a trigger to move an item, in the middle of the demo, while you are recording this demo, you'll find that item in the new position (moved from trigger) and in this way lara will be able to interact with it in current new position, in the following demo recording, like it will happen in playing mode.

- Added new flag for Organizer
It has been added the new FO_DEMO_ORGANIZER flag.
Adding this flag to organizer you have to set in Parameter field the index of demo.pak that it will be the owner of current organizer.
Then you can use this organizer to perform triggergroups when the given demo is playing (or recording) the given frame.
The syntax of time field of demo organizer is different in this case, you'll type the absolute value of current demo frame to perform a trigger in that moment.
Read the description of FO_DEMO_ORGANIZER flag for more infos.

- Added new action trigger to transform enemies in actors for cutscenes
[Find Trigger Number] A86
It has been added the Action trigger: "Cutscene. Change <#>Moveable to (E)Actor status"
Thanks to this action you can remove AI feature from an enemy and transform him in a brainless dummy, i.e. an actor.
This moveable will apply animations or changes of state-id as you wish, using action triggers to force them, but it will have no independent decision, and neither it will be able to detect collision or other physics management.
With same A86 action you can also give again to him the brain (AI Skills) when you wish.

Note: since all enemies with same slot have the same AI skills, when you remove the AI skills from an enemy, also other enemies of same kind will lose their AI skills. For this reason it's important remember to restore always the AI skills at end of the cutscene, otherwise in the next game playing all enemies of that kind will be brainless.

- Improved the PARAM_MOVE_ITEM script command.
It has been added to the Parameters=PARAM_MOVE_ITEM script command a new set of FMOV_ flags and DIR_ directions.
The main target of this enhancment is to give the chance to move item with non costant speed, having a gravity simulation and new relative directions.

There are new preset proportional speeds (with acceleration) and gravity simulations that you can enable adding FMOV_ flags.
See description of new FMOV_ flags for more infos.

About new directions, now you can set a direction in according with current facing of item to move, while in the past it was possible only set an absolute direction (north, east, west, south).

These new skils could be useful for cutscenes, anyway remember that when you do move an actor setting a specific animation for him, he will move really byself and it's not necessary using a trigger linked with PARAM_MOVE_ITEM script command.
For this reason you should use new skills of PARAM_MOVE_ITEM only to move static items or animatings where there is no moving animation for them.

- Added new action trigger to give a role to some enemy within a cutscene.
[Find Trigger Number] A87
This action A87 should be not confused with above A86 action trigger.
While the A86 trigger changes really the behavior of the enemy, the A87 trigger set only as assignment about what moveable is the leading actor or the extra actor but the enemy will have no modification in game.
Above assignment will be used for other triggers or script commands to recognize what enemy will be affected from some command thought for leading or extra actor.
It works like a internal variable for cutscenes.

* It's not forecast that a cutscene can be saved in the middle, for this reason the state of actor role will be not saved in savegame. Therefor it's important preventing that player was able to save the game within a cutscene.

* The A87 trigger is a way to assign to some moveable the role of leading or extra actor. Anyway when you use the A86 trigger to transform a moveable in an actor, the leading or extra actor role will be assigned byself if in that moment no leading or extra actor role had yet been assigned.
For instance:
You have no set any role to moveables.
You use A86 trigger to transform a Crocodile in an actor. Trng will assign to crocodile the leading actor role, because it had not yet been assigned.
You use A86 trigger to transform also von croy in an actor. Trng will assign to von croy the extra actor role.
You restore crocodile like common moveables (or you remove it and remove actor status).
You use A86 trigger to trasnform baddy2 in an actor. Baddy2 now is the new leading actor. Ect

* The moveable with the role of leading actor will be able to engage heavy triggers in easy way, i.e. simply walking over them, in spite of missing of AI items on that sector. This skill is not present for extra actor.

- Added new action trigger to add basic collision to actors
[Find Trigger Number] A88
It has been added the new action trigger "Cutscene. Set for actor <#>Moveable the (E)Basic collision status"
The reason to add basic collision to actors is that when you transform a common enemy in an actor, he will lose any ability to detect byself the collisions.
Theorically you should use an actor only in the controlled environment of cutscene, therefor you'll do him move in right direction, for right distance, avoiding to smash over the walls or to fall in the empty.
Anyway some basic collsion is useful, like that to move up/down the actor when he move over a non-flat floor.
The basic collision will forbid to actor to sink in the floor when he move forward for a upward slope, or to remain to fly in the empty when in front of him there is an hole in the floor.
The basic collision keep the feet of enemy on the floor, with gravity falling when there is an hole, or moving immediatly upper when there is a slope moving up.
The basic collision will stop also current animation (setting first animation with hspeed=0) when the actor is moving in the wall.


* You should remember to remove Basic collision when you go out of cutscene.
* The basic collisions will be removed byself when you remove the status of Actor from an enemy
* The only reason to do NOT adding basic collision, is when you are using a flying enemy, or when you wish move him inside floor, walls or ceiling and for above reasons you don't wish any other interference with your action triggers to move the actor.

- Added new triggers to manage camera for cutscenes
[Find Trigger Number] F381/382/383/384/385/386/387/388/389/390/391/392/395/396

The cutscene camera is a user-friendly camera that you can use to change the actor to look, choosing many angle view and dynamic effects.
It's user-friendly because instead to have to place many fixed camera items in the map, setting triggers for all cameras and all targets, choosing the durate time ecc, you can with a single trigger enable a camera looking some preset target: Lara, leading actor or extra actor.
It's not necessary place any fixed camera for this target and neither triggers to enable cameras or targets (excepting the new triggers we are describing now, of course), anyway it's necessary that (somewhere in your level) there was a fixed camera that trng will use and then it will put back to its original place.

We have five triggers to engage cutscene camera and choose who it will look:

F381: Cutscene. Camera. Look Leading Actor from <&>View angle and (E)Distance
F382: Cutscene. Camera. Look Extra Actor from <&>View angle and (E)Distance
F383: Cutscene. Camera. Look Lara from <&>View angle and (E)Distance
F395: Cutscene. Camera. Actor with <&>role will look Lara (enemy subjective view, enemy not visible)
F396: Cutscene. Camera. Lara will look Actor with <&>role (lara subjective view, lara not visible)

All above cameras have (theoretically) an infinite durate, anyway you can stop them with F384 trigger:

F384: Cutscene. Camera. Reset cutscene camera and come back to lara's chase camera

Another way to stop previous cutscene camera is to call another different camera view. If you perform another F381/382/383/395/396 trigger the previous view will be closed and it will begin the new.

You have some triggers to add dynamic effect to the cutscene camera:

F385: Cutscene. Camera. Move up cutscene camera of <&>Clicks in (E)demo frames
F386: Cutscene. Camera. Move down cutscene camera of <&>Clicks in (E)demo frames
F387: Cutscene. Camera. Zoom-in cutscene camera covering <&>Distance in (E)demo frames
F388: Cutscene. Camera. Zoom-out cutscene camera covering <&>Distance in (E)demo frames
F389: Cutscene. Camera. Rotate at right cutscene camera around target by <&>Degrees in (E)demo frames
F390: Cutscene. Camera. Rotate at left cutscene camera around target by <&>Degrees in (E)demo frames

Note: above dynamic effects are not available with cutscene camera started with F395 or F396 triggers, because the subjective views work with preset source and target points and it's not possible change them.

You can also freeze (stop) all dynamic effects of cutscene camera with flipeffect 391:

F391: Cutscene. Camera. Freeze cutscene camera for <&>demo frames

Above flipeffect is useful also when you don't wish that the camera follows the moving of current actor. In this situation you can engage the cutscene camera looking an actor and then freeze it to avoid that it follows the actor in his walking.

You can also change idea and continue the movement of cutscene (previously frozen) camera with flipeffect 392:

F392: Cutscene. Camera. Remove freeze from cutscene camera


* Differently than other demo/cutscene stuff, the cutscene camera will not work when you are in recording demo mode. This is necessary to allow that it was possible to "drive" lara in correct way. Situation that it could be complicated if the cutscene camera is looking in a different direction while you are trying to control lara's movements.

* It's very important remembering always to reset cutscene camera (F384) when you completed the cutscene or demo, otherwise the game will be messed forever or at least until the player will not load another level.

* If you wish having a top-view of some actor, you have to use two triggers: the first, chosen between F381/382/383/395/396 to engage the cutscene camera, and the second (F385, engaged immediatly after the first) to move up the camera at the height you wish.
The trick is to choose Distance=0 for first trigger (F381/382/383/395/396) and to select Demo frames=0 for second trigger.
In this way the cutscene camera will begin with a top-view of your actor.

* The dynamic effects (F385/386/387/388/389/390/391) will work only if when you perform them the cutscene camera it had been already engaged from F381/382/383 trigger.

* In spite of the fact that the cutscene camera has been created for demo/cutscenes, you can use it in common game phase but in this case the frames for timing will be taken from general game frame counter, instead by demo frame counter.

* If with flipeffect 391 you choose demo frames=0, the camera will be frozen forever, o until you call a F392 trigger.

- Added new condition triggers to check distance from floor and ceiling
[Find Trigger Number] C88/89/90
These condition triggers allow to verify when a moveable has a distance from floor or ceiling within a given range.
These conditions are very alike of ENV_DISTANCE_CEILING and ENV_DISTANCE_FLOOR conditions, but their use is more easy and they have been created to work fine with cutscene, since the moveable to check is always that with the Leading Actor role.
Another difference is that the C90 and C91 condition to check distance from ceiling, work using the top side of moveable to compute the distance while the ENV_DISTANCE_FLOOR conditon used the original Y coordinate of the enemey that it's very often located on his feet.

C88: Cutscene. Leading Actor is far from floor of <#>Units or greater
C89: Cutscene. Leading Actor is far from floor of <#>Units or lower
C90: Cutscene. Leading Actor top side is far from ceiling of <#>Units or greater
C91: Cutscene. Leading Actor top side is far from ceiling of <#>Units or lower

Above conditions are useful in praticular way when you choose to do not use the Basic Collisions for your actor and you try to move it with action triggers in the scenes. In that case you'll need to check height of floor to move up or down the actor when it is on floor with new different height.

- Added new action trigger to force frame number of animation
[Find Trigger Number] A89
It has been added a new action trigger to force a specific frame number for current animation:

A89: Creature. Force for <#>Moveable the (E)Frame of current animation

This could be useful when you (first) set a new animation but then you wish that this animation began from a frame different than first frame.
About cutscenes, you can use A89 trigger to drive better the actors, skipping some frame of animations in acording with requirements of current scene.

- Added new action trigger to force state-id of moveables
[Find Trigger Number] A90
It has been added an action trigger to set the current state-id for a given moveable:

A90: Creature. Force for <#>Moveable the (E)State-id

In spite it is more clean the method to change the next state id, to give to tomb engine the chance to find better frame to swap to another animation, in some circustances you can need to force immediatly the current state id.
Anyway if you use this action trigger in worse moment, you'll get bad results.

- Added new flipeffect to swap animation slots
[Find Trigger Number] F393
It has been added a flipeffect to swap animation slot of some actor in current cutscene.

F393: Cutscene. Animations. Swap animations set in data of <&>Parameter command for (E)Actor

The swapping of animation slot is very interesting to replace only temporarily some animations of a moveable with others of same moveable.
The idea is to give only for some situations different animations to use in a cutscene and then restore default animations.

For instance if you created new animation for lara walking, and you placed this new animation in 600 animation slot of lara.
You can type in the script the command:

Parameters= PARAM_SWAP_ANIMATIONS, 1, 1, 600, 1

When you perform the F393 trigger with data in ID=1 of Parameters=PARAM_SWAP_ANIMATIONS and set as actor, Lara, it will happen that when you give the command to walk forward (SHIFT+UP), lara will use the custom animation you had stored in slot 600 but that, after the f393 trigger, will be in the animation slot 1, the default for forward walking.
In this way in the cutscene lara will walk in a different way.
You can use same method for other targets, like replace the default animation for pickup with a new animation fully different.
At end of cutscene you'll restore the swapped animations (just performing a second time the same previous trigger with same data) and in the game playing, after the cutscene, the default animations of lara will come back at usual behaviour.

You can use the swapping also for enemies, just you set for them a role like Leading actor or Extra actor and then give the data for the swapping.


* You can swap in same moment a whole set of consecutive animations.

* The source and target set of animations have to be stored in same slot, the same of actor you chose in F393 trigger.

* If the animations to swap are a wide quantity the swapping could require a perceptible interval of time, for this reason it's better perform this trigger when there wasn't so much "action" in game scene, to hide the further slow down.

See description of PARAM_SWAP_ANIMATIONS constant for more infos.

- Added new flipeffect to free all cutscene resources
[Find Trigger Number] F394
It has been added the flipeffect trigger 394:

F394: Cutscene. Free cutscene <&>resources (to call at end of cutscene)

This trigger allows to free all resources used in a cutscene in easy way.
All actors will be restored as common enemies with AI skill (if they had it). The basic collisions will be removed, the cutscene camera will be freed and the default camera will be recovered.
About the further animation swapping, you can choose if restore them or less.
Only reason to do NOT restore them is if you had performed some animation swapping that you wish preserve in selective way. The F394 trigger, in fact, restore all animation swapping, not only those performed in last cutscene.

- Added new flipeffect to swap single mesh of Von Croy
[Find Trigger Number] F397
It has been added the flipeffect: “Cutscene. Swap Von Croy <&>mesh with same mesh of (E)slot”
Von croy requires always a double in MESHSWAP1 slot.
Using F397 trigger you’ll be able to swap single mesh from von croy and this slot.
Note: really you can choose also some other slots, other that MESHSWAP1, in this way you can prepare different items in Von Croy’s hands and show them in real von croy with this trigger.

- Added new flipeffect to control better Von Croy
[Find Trigger Number] F398

It has been added the flipeffect: "Cutscene. AI. Set Von Croy<&>Data with (E)Value”
This flipeffect allows to change some critical data of von croy’s AI.
Probably other data will be added to this flipeffect in next release with new AI management.

- Added new Action trigger to enable a speech sequence for given moveable
[Find Trigger Number] A91
It has been added the action trigger: “Cutscene. Speech. Apply (E)Speech Parameters for <#>Moveable”
This trigger works with new PARAM_ACTOR_SPEECH parameter script command.
You can set in Parameters=PARAM_ACTOR_SPEECH command a sequence of speech commands to control the head of wished actor.
See the level “Deliver a speech” for an example of its usage.
See also the description of PARAM_ACTOR_SPEECH mnemonic costants for more infos.

With A91 trigger and PARAM_ACTOR_SPEECH constant, it has been added also a new organization of speech slots.
While in the past, each slot had only a different head, now you can have in a single slot many heads, each with different expression.
You can have upto 64 heads for each slot, anyway currently in speech.wad there are 16 heads for each slot, only a little part of these are really used therefor you can use others to add new expressions to simulate happiness, amazement, rage, ect.

These are new organized slots:

20 LARA_SPEECH_HEAD4 Yves Laurel

You can find these new objects in speech.wad of demo level linked with version of trng.
In spite there is the SPCF_OLD_SPEECH_SLOTS flag to work with old organization of speech slots, I discourage to use it, because there are many limitations in that old method.

- Improved ImportFile script command
In previous versions the only way to play a sound imported in memory, using IMPORT_MEMORY flag, was to use F131 o F132 flipeffect.

Now, from version, the sounds, imported having a ordinal number like an audio track, will be loaded directly from script.dat (already loaded in memory) everytime any play-cd trigger will require that same audio track number.

- Added new action trigger to flip meshes
[Find Trigger Number] A92
It has been added the new action trigger: "Enemy. Mesh. Flip (E)Mesh of <#>Moveable"
The flip mesh has same target of swap mesh but it works in different way.
In tomb4 engine all moveables have two meshes for each side of the body: the main mesh and the secondary mesh.
Only the main mesh is visible.
The secondary mesh it's used to swap between main/secondary slots the meshes and change some part of body.
For instance an hand that can hold or less a weapon it will have in main mesh the empty hand, while in secondary mesh the hand holding the weapon.
To load in secondary slot of mesh a different mesh the engine will use a clone of enemy in some SWAPMESH slot but it will be used only in initilize phase, to copy in secondary or main mesh the different meshes, and then the swap mesh slot will be ignored.
Most moveable have main and secondary mesh with same value and for this reason when you perform a flip of that mesh you'll not see any change.

- Improved saving of triggergroup status in savegame
In previous version any change of triggergroup commands in script affected an outing of date of savegame recorder previously.
In spite it's normal that a change in game files (tr4 and script) required new fresh savegames, the old method to restore status of triggergroups was boring because affected unpredictable bugs and bad behaviors in game.
Now new method should allow to change triggergroups in script.dat and using newly old savegames created with previous script.dat version.

- Improved calculation of text position in presence of cinema effect
In previous release, when there was a position of text about top or bottom screen, this setting ignored the further presence of black bars to reduce the height of screen with the result that the text was not visible.
Now the top and bottom position will be computed in according with current presence and height of black strips.

- Added new flipeffects to handle a two-way conversation with texts on screen
[Find Trigger Number] F399/400/401
These three new triggers allow to set position and color for some actor (leading or extra) or Lara, to have not, in following SPC_TEXT commands, the necessity to set everytime the position of text for that given actor.

- Added new diagnostic flag for AnimationSlot command
It has been added the EDGX_ANIMATION_SLOT flag.
This flag works like the DGX_ANIMATION flag but in this case you'll get infos about the AnimationSlot commands.
Just you type a negative index in AnimIndex field and the animation will be never performed but the result of condition set in AnimationSlot command will be drawn on screen.

- Fixed description of FSS_ANIMATE flag in Reference panel of NG_Center
There was an error in description of formula used to store frame rate and number of sprite in extra parameter.

It was:

FrameDurate * 245 + NumberOfSprites

while correct formula is:

FrameDurate * 256 + NumberOfSprites

- Fixed bug about FSS_ANIMATE flag in PARAM_SHOW_SPRITE script command
In previous versions an animated sprites created disturbances on other animated sprites (activated later) or printing of texts operations.

- Changed priority between pop images and windows font text
In previous versions, the windows font text were drawn belove further pop images, detector and keypad.
In this way it was not possible print texts over above features.
Now the windows font printing has an higher priority and text will be drawn over above items.

- Fixed bug about alignment of examine text with DefaultWindowsFont
In previouse releases the alignment of examine text, set whereby an offset in ExamineText field of DefaultWindowsFont script command, had no effect.

- Changed in NG_Center some editing keys
In previous versions the keys HOME and END moved the caret at start (HOME) or at end (END) of whole script.
This behavior was not very useful, for this reason now HOME and END keys will move the caret at begin or at end of current line.

- Added new customization for sounds of new objects
It has been added the TS_SHOT_HARPOON_UW constant to use with CUST_SFX customize command.
The TS_SHOT_HARPOON_UW sound will be played only when lara is underwater and she shot with harpoon.
In previous versions there was no sound for underwater shooting with harpoon.
If you don't change this sound the default value will be 68 PENDULUM_BLADES

- Added new flipeffects to handle animation in sprites
[Find Trigger Number] F402 F403
The F402 trigger allows to stop an animated sprite at the given frame
The F403 trigger resume the animations of suspended sprites.

- Added new BAR_ values for CUST_BAR customize
In Customize=CUST_BAR now you can use two new values:
CUST_DAMAGE to customize the bar of damage room
CUST_COLD to customize the bar of cold water room.

Notes: you can use FBAR_SOUND_BAR_ANIM flag for above two bars like for all BAR_CUSTOM1/2/3/4

- Added new FBAR_ flag for CUST_BAR customize
It has been added the FBAR_DRAW_ALWAYS flag to force the given bar to be always visible.
This flag works only for some bars, not alls.
See FBAR_DRAW_ALWAYS description in MNEMONIC_CONSTANT section of reference panel of NG_Center for more infos.

- Fixed bug in management of SecondsForDeath in damage or cold rooms
In previous version when the number of seconds for death was too high the bar will never decrease.
Now trng will limit the SecondsForDeath value to its real max limit of 333 seconds.
This means that, if you set an higher value, trng will force the seconds for death at 333 seconds to avoid the freeze of damage bar.

- Fixed bug about flipeffect 297
[Find Trigger Number] F297
In previous versions the flipeffect 297 to convert a ngle room index to tomb room index didn't work always fine.

- Added new condition trigger to detect PAD status
[Find Trigger Number] C92
It has been added the condition trigger 92: "Creature. PAD trigger. the <#>moveable is touching floor"
This condition trigger should work like PAD triggertype but with advantage that you can export it.
You can use it for Lara, exporting pad condition, or with enemies.
About rollingball it doens't work fine because rollingball detect heavy triggers in front of it, before moving on that sector, with result that when the condition will be checked the rollingball is yet over previous sector and if it was touching it the condition will be true in wrong way.
You should use this condition only for exporting in conditional triggergroup, while if you wish have a pad trigger in the level map it's better using common pad trigger type.

- Added new global trigger to detected the creation of new items in game
It has been added the GT_CREATED_NEW_ITEM global trigger.
This global trigger will be enabled everytime in game it has been created an item with same slot you typed in Parameter field.
When the global trigger will be engaged the index of new created item (always a moveable) will be stored as found item index, and you can elaborate it adding to exported triggers the TGROUP_USE_FOUND_ITEM_INDEX flag.

- Changed description of one savegame memory variable
It has been changed the description of savegame variable from:
"Lara. Hands. Weapon in the hand"
"WeaponAnim. Index of fake item with animations for current weapon (only big weapons)"

* The effective absolute address of this memory variable it has not been changed
* The index stored in this variable points to a moveable item structure where there is a fake moveable item used from tomb4 engine to store current animation, frame and state id of animated extra slot of lara with weapons
* In my opinion this fake item will be created only for bigger weapons: shotgun, grenade-gun and crossbow.
With little weapons, the animation, frame and state-id will be stored in single specific memory zones that you can change using some new savegame variables. (See following paragraph)

- Added new savegame memory variable for extra animated slot of Lara
There are these new savegame memory variables:

"WeaponAnim. Current frame of weapon animation"
"WeaponAnim. Current animation of weapon animation."
"WeaponAnim. Current frame of torch-flare animation"
"WeaponAnim. Current animation of torch-flare animation"
"WeaponAnim. Current state id of extra lara slots. (Weapons and torch)"

Note: really I'm not sure about all above descriptions. I've not had the time to study better above variables.
For instance, I've some doubt about "WeaponAnim. Current state id of extra lara slots. (Weapons and torch)" description, since it could work only with torch animation but not with weapon animations.
If you discover some error in above descriptions, signal it to me, please.

- Added new flipeffect trigger to engage a secret in game
[Find Trigger Number] F404
This trigger works like old secret trigger. It has been added only to get available the exporting for secret triggering.

Note: there is a little difference between F404 trigger and the old secret trigger.
The old trigger (for a bug I suppose) refused to perform twice the same secret number ONLY when it had a number in the range 0-7, while f404 trigger refuses to perform same secret (already engaged) in the range 0-15.

- Added new flipeffect trigger to launch a fmv file
[Find Trigger Number] F405
This trigger works like the old fmv trigger. It has been added only to get available this kind of trigger for exporting.

- Fixed bug about popup images
In previous version when there was a pop up image on screen while you quit the level, in next level it was no possible show popup images

- Fixed bug about adding effect on static items
In previous versions the adding effect to static object was buggy.
The room number about position of effect was not set and it had a random value with possible disappearing of the effect or crash of the program.

- Added new setting in NGLE Settings window of NGLE program
It has been added the new setting "Hide objects on Draw Doors view" to improve the speed of drawing rooms when [Draw Doors] button is checked.
The hidding of object should increase the speed in room drawing.

Note: differently by [Hide Objects] button, this feature doesn't remove really objects but only skip their drawing.

- Added new flag for CUST_BACKGROUND customize
It has been added the BKGDF_SKIP_LOADING_TIME flag.
This flag works only togheter with BKGDF_MINIMAL_LOADING_TIME flag.
If you use BKGDF_MINIMAL_LOADING_TIME flag, the background for loading level will be kept on screen until the time you set, in spite the effective loading of level could be already completed.
If you wish that the player was able to skip in advance the background and go to next level, you can add the BKGDF_SKIP_LOADING_TIME flag and player will be able to skip the background with escape, space or action (ctrl, really) key.

- Fixed bug about flipeffect to follow enemy target on some axis
[Find Trigger Number] F119
In previous release the updating of source position of camera was in relation with moving of Lara. No moving of lara no updating of source position.

- Added new tool in (new) Tools3 panel
It has been added [Audio Converter] tool.
You find this utility in Tools3 panel.

The audio converter allows to convert:

* Mp3 files to wav files
* Wav files to Mp3 files
* Wav files to another wav with different internal format

There are preset values to convert wav files to "44100 Hz 4 bit stereo" (format for native audio folder of trle) and to "22050 Hz 16 bit mono" (format for sound\samples folder).
About the format "44100 Hz 16 bit stereo", this is not supported in native way by tomb4, anyway this format is the most standard wav format and you can use it as intermediate step when a direct audio conversion is not possible.
For instance, you cann't convert directly a wav file of AUDIO folder to a wav file for Sound\samples folder.
In this case you'll have to convert the wav file of audio folder, to intermediate standard format "44100 Hz 16 bit stereo" and then using these new wav files to convert them to format for sound\samples folder "22050 Hz 16 bit mono"
Alike speech for mp3 conversion. To convert a wav file to mp3 format it's better using a source wav file in standard wav format "44100 Hz 16 bit stereo" otherwise the direct conversion could fail.

- Added new savegame memory variable
To Savegame Memory list it has been added the new variable:
"TRNG Index. Index of last item to have enabled a trigger"

This variable will host the (tomb) index of last moveable that has enabled a trigger.

Note: this value could change many times in same frame, since all moveables require to be moved or elaborated at least once for each frame and some of them could enable a trigger in same frame.
For this reason a diagnostic on screen of its value it could take leak results.
Anyway you can use this variable to perform a condition to discover the index of moveable that enabled an heavy trigger.
Just you link to heavy trigger the performing of a triggergroup where you add at begin the conditions to read above index and compare it, after a conversion in ngle index format, with some item index you wish.

To perform these conditions you'll have to use:

F244 trigger to copy in CurrentValue the index of last item to have performed a trigger
F300 trigger to convert the tomb index in CurrentValue in NGLE format
C40 or C48 triggers to compare value in CurrentValue with you wished ngle item index

while the following triggers, that you'll add to this triggergroup, will be performed only if above condition it's true, and therefor only if the moveable to have engaged that heavy trigger is that you set in condition.

- Added new action trigger to update room of animating
[Find Trigger Number] A93
It has been added the action trigger: "Move. Update room for <#>Animating with (E)units of Y displacement"

To understand when and how to use this trigger it's important understanding what is this "updating of room"
While static items have owned always from a single room and they cann't move to other rooms, all moveables can move for whole level.
In spite of this their freedom, also moveables have owned by their beginning room, but for moveables there is a "change-room" procedure to change the room owner of any moveable. This change of owner it's that I called "updating of room"

The room updating will be performed byself in most circustances:

* All enemies that are able to move byself, will update their room after every moving.
* The code that handles lara does the room updating, of course.
* Also all moveables you forced as actors (see triggers for cutscenes) will have their room updated but only(!) if you added to them the basic collision feature.
* All moveables you move using action triggers with progressive movements (27 28 29 30 31 32 33 34 35 36 40 56 57) and flipeffect 167 perform room updating on moved animating.

While the immediate moving with action triggers: 63 64 65 66 67 68 and (Physics) attractions: 69 70 71 72 73 74 75 76, have no room updating.

Another situation where you can use the new A93 trigger is when you to do move an animating replacing in its slot a real enemy (like a baddy) and to do move him applying a moving animation. In this case the room updating will be NOT performed since it's not forecast that animating items move byself since they have not AI skill.

For above situations you can use A93 trigger to update the room of animating/moveable.
This updating should be performed everytime you move it, or at least when it moved across boundary between its previous room and the new room.


* In the case you update the room for an already updated moveable nothing of bad happens, but you are wasting cpu time for nothing.
Different situation when you apply a displacement different than 0 on some creature that has already its own room updating procedure. In this situation you could have bad behavior in game since the room of that moveable will be changed by your code but also by the original AI code with a different final value of room.

* When you move a moveable in a different room with NO updating of room, the moveable could blinking, disappearing or provoking a crash

* In spite I spoke about "animatings" the room updating is a procedure that works for all moveables items, but, by other hand, in most circustance it's not necessary for creatures (enemies) because their AI skill already performs room updating byself.

* The "units of Y displacement" value (see description of A93 trigger) it's a boring matter to explain.
You can let it to "no displacement" and it will work fine 99% of times.
About that 1% the problem happens on vertical portals.
Since most moveables have their Y coordinate at their base, where they touch the floor, when a moveable has only the feet in below room while the most of his body is in upper room, it sometimes happen that there were problems about visibility box or (more seldom) with collision box, since this moveable will be seen as he was in lower room (for his feet) but he is almost all in upper room. To correct this problem tomb4 code in some circustance apply a Y displacment of moveable before updating room to put him in a room where he is really with most of his body.
In above situation it will be used a -256 or -128 value to move to upper room the y coordinate.
In other cirucstances, like for rollingballs it could happen the opposite. Since rollingball has its Y pivot in the middle of the sphere when it touches the floor of lower room, it could be yet with its y coordinate in upper room but in this way it could fail to enable heavy pad triggers. So tomb4 code correct it with +512 (hardcoded) to force it in lower room.
Pratically this Y displacemnt is an attempt (by core design programmers) to fix a bug in computation of moveable position when moveables are in boundary of two vertical rooms.
This attempt doesn't work always fine...

- Changed description of many memory variables
This work has been done all by AkyV so all credits for him.

AkyV studied many memory variables (item, savegame, inventory, memory and code) and discovered the real meaning of many "unknown" or bad described fields.
In new descriptions by AkyV you can understand better the real usage of many of these memory zones.

- Added new flag for CUST_BACKGROUND customize
It has been added the BKGDF_SKIP_LOADING_TIME flag.
This flag works only together with BKGDF_MINIMAL_LOADING_TIME flag.
If you use BKGDF_MINIMAL_LOADING_TIME flag, the background for loading level will be kept on screen until the time you set, in spite the effective loading of level could be already completed.
If you wish that the player was able to skip in advance the background and go to next level, you can add the BKGDF_SKIP_LOADING_TIME flag and player will be able to skip the background with escape, space or action (ctrl, really) key.

- Fixed bug about flipeffect to follow enemy target on some axis
[Find Trigger Number] F119
In previous release the updating of source position of camera was in relation with moving of Lara. No moving of lara no updating of source position.

- Added new tool in (new) Tools3 panel
It has been added [Audio Converter] tool.
You find this utility in Tools3 panel.

The audio converter allows to convert:

* Mp3 files to wav files
* Wav files to Mp3 files
* Wav files to another wav with different internal format

There are preset values to convert wav files to "44100 Hz 4 bit stereo" (format for native audio folder of trle) and to "22050 Hz 16 bit mono" (format for sound\samples folder).
About the format "44100 Hz 16 bit stereo", this is not supported in native way by tomb4, anyway this format is the most standard wav format and you can use it as intermediate step when a direct audio conversion is not possible.
For instance, you cann't convert directly a wav file of AUDIO folder to a wav file for Sound\samples folder.
In this case you'll have to convert the wav file of audio folder, to intermediate standard format "44100 Hz 16 bit stereo" and then using these new wav files to convert them to format for sound\samples folder "22050 Hz 16 bit mono"
Alike speech for mp3 conversion. To convert a wav file to mp3 format it's better using a source wav file in standard wav format "44100 Hz 16 bit stereo" otherwise the direct conversion could fail.

- Added new savegame memory variable
To Savegame Memory list it has been added the new variable:
"TRNG Index. Index of last item to have enabled a trigger"

This variable will host the (tomb) index of last moveable that has enabled a trigger.

Note: this value could change many times in same frame, since all moveables require to be moved or elaborated at least once for each frame and some of them could enable a trigger in same frame.
For this reason a diagnostic on screen of its value it could take leak results.
Anyway you can use this variable to perform a condition to discover the index of moveable that enabled an heavy trigger.
Just you link to heavy trigger the performing of a triggergroup where you add at begin the conditions to read above index and compare it, after a conversion in ngle index format, with some item index you wish.

To perform these conditions you'll have to use:

F244 trigger to copy in CurrentValue the index of last item to have performed a trigger
F300 trigger to convert the tomb index in CurrentValue in NGLE format
C40 or C48 triggers to compare value in CurrentValue with you wished ngle item index

while the following triggers, that you'll add to this triggergroup, will be performed only if above condition it's true, and therefor only if the moveable to have engaged that heavy trigger is that you set in condition.

- Added new action trigger to update room of animating
[Find Trigger Number] A93
It has been added the action trigger: "Move. Update room for <#>Animating with (E)units of Y displacement"

To understand when and how to use this trigger it's important understanding what is this "updating of room"
While static items have owned always from a single room and they cann't move to other rooms, all moveables can move for whole level.
In spite of this their freedom, also moveables have owned by their beginning room, but for moveables there is a "change-room" procedure to change the room owner of any moveable. This change of owner it's that I called "updating of room"

The room updating will be performed byself in most circustances:

* All enemies that are able to move byself, will update their room after every moving.
* The code that handles lara does the room updating, of course.
* Also all moveables you forced as actors (see triggers for cutscenes) will have their room updated but only(!) if you added to them the basic collision feature.
* All moveables you move using action triggers with progressive movements (27 28 29 30 31 32 33 34 35 36 40 56 57) and flipeffect 167 perform room updating on moved animating.

While the immediate moving with action triggers: 63 64 65 66 67 68 and (Physics) attractions: 69 70 71 72 73 74 75 76, have no room updating.

Another situation where you can use the new A93 trigger is when you to do move an animating replacing in its slot a real enemy (like a baddy) and to do move him applying a moving animation. In this case the room updating will be NOT performed since it's not forecast that animating items move byself since they have not AI skill.

For above situations you can use A93 trigger to update the room of animating/moveable.
This updating should be performed everytime you move it, or at least when it moved across boundary between its previous room and the new room.


* In the case you update the room for an already updated moveable nothing of bad happens, but you are wasting cpu time for nothing.
Different situation when you apply a displacement different than 0 on some creature that has already its own room updating procedure. In this situation you could have bad behavior in game since the room of that moveable will be changed by your code but also by the original AI code with a different final value of room.

* When you move a moveable in a different room with NO updating of room, the moveable could blinking, disappearing or provoking a crash

* In spite I spoke about "animatings" the room updating is a procedure that works for all moveables items, but, by other hand, in most circustance it's not necessary for creatures (enemies) because their AI skill already performs room updating byself.

* The "units of Y displacement" value (see description of A93 trigger) it's a boring matter to explain.
You can let it to "no displacement" and it will work fine 99% of times.
About that 1% the problem happens on vertical portals.
Since most moveables have their Y coordinate at their base, where they touch the floor, when a moveable has only the feet in below room while the most of his body is in upper room, it sometimes happen that there were problems about visibility box or (more seldom) with collision box, since this moveable will be seen as he was in lower room (for his feet) but he is almost all in upper room. To correct this problem tomb4 code in some circustance apply a Y displacment of moveable before updating room to put him in a room where he is really with most of his body.
In above situation it will be used a -256 or -128 value to move to upper room the y coordinate.
In other cirucstances, like for rollingballs it could happen the opposite. Since rollingball has its Y pivot in the middle of the sphere when it touches the floor of lower room, it could be yet with its y coordinate in upper room but in this way it could fail to enable heavy pad triggers. So tomb4 code correct it with +512 (hardcoded) to force it in lower room.
Pratically this Y displacemnt is an attempt (by core design programmers) to fix a bug in computation of moveable position when moveables are in boundary of two vertical rooms.
This attempt doesn't work always fine...

- Changed description of many memory variables
This work has been done by AkyV so all credits for him.
AkyV studied many memory variables (item, savegame, inventory, memory and code) and discovered the real meaning of many "unknown" or bad described fields.
In new descriptions by AkyV you can understand better the real usage of many of these memory zones.

CODE memory:

OLD: "Earthquake vertical movement (negative values)"
NEW: "Earthquake intensity"

SLOT memory:

OLD: "Unknown1 (Pheraps distance to enable the MIP version)"
NEW: "Distance to enable the MIP version"

OLD: "Unknown2 (Usually it has value 50)"
NEW: "Distance to detect Lara"

OLD: "Explosion Mask. (Each bit a type of weapon able to do explode it"
NEW: "Shatterable meshes"

ITEM Memory:
OLD: "Unknown (Pheraps accelleration on falling)"
NEW: "State ID (at AI objects)"

OLD: "Unknown Countdown (Some counter, not yet discovered)"
NEW: "Object timer"

OLD: "Object buttons. Five buttons + invisible button"
NEW: "Object buttons. Five buttons + Clear Body button (only for read)"

OLD: "Custom Flags (Different flags in according with object type)"
NEW: "Object status. Five buttons + One Shot button"

OLD: "Facing Rotation (Only for Lara)"
NEW: "Facing Rotation"

OLD: "Unknown (Light_A)"
NEW: "Light on object. Red ambience"

OLD: "Unknown (Light_B)"},
NEW: "Light on object. Green ambience"

OLD: "Unknown (Light_C)"},
NEW: "Light on object. Blue ambience"},

OLD: "Unknown (Light_D)"},
NEW: "Light on object. RedGreenBlue ambience"},

OLD: "Unknown (Light_E)"},
NEW: "Light on object. Red ambience difference"},

OLD: "Unknown (Light_F)"},
NEW: "Light on object. Green ambience difference"},

OLD: "Unknown (Light_G)"},
NEW: "Light on object. Blue ambience difference"},

OLD: "Unknown (Light_H)"},
NEW: "Light on object. Ambience changing degrees"},

SAVEGAME memory:
OLD: "System. Disable special keys (15 disable inventory pause f5)"
NEW: "Lara. Time in death"

OLD: "Lara. Test. Throw out item from the Hands (1 = lara is throwing out item)"
NEW: "Lara. Torch status in Lara's hand"

OLD: "Lara. Test. Lara is placing the weapon on the back (1 = yes)"
NEW: "Lara. Test. Lara is aiming at the enemy automatically (1 = yes)"

OLD: "Lara. Rope. Speed sliding on the rope"
NEW: "Lara. Horizontal position on the rope"

OLD: "System. Fog Bulb Color"
NEW: "System. Fog Color"

OLD: "System. Unknown (Item chosen from Inventory?"
NEW: "System. Inventory closed at item"

OLD: "WeaponAnim. Current frame of torch-flare animation"
NEW: "WeaponAnim. Current frame of torch-flare-weapon animation"

OLD: "WeaponAnim. Current animation of torch-flare animation"
NEW: "WeaponAnim. Current animation of torch-flare-weapon animation"

OLD: "View Flags. (2 = turn endless, $4000 = usable?)"
NEW: "View Flags.(2 = turn endless)"

- Fixed bug in code variable about script.dat flags
In previous versions the code variable named:

"Script Dat. Option Flags (Use bit operations to read or write)"

didn't work.

Flags for this variable:
1 FlyCheat
2 LoadSave
4 Title
8 PlayAnyLevel
128 DemoDisk

Note: probably only FlyCheat and Loadsave may be changed in run time with valid results. About others, I discourage to use them because those flags will be used only at start time before you are able to change them.

- Fixed bug about trigger to read inventory memory
[Find Trigger Number] F339
In previous versions the trigger to read from (currently selected) inventory memory a value from some field to copy it to some numeric variable didn't work and very often it occured a crash.

- Added new action trigger to set as active item a moveable
[Find Trigger Number] A94
It has been added the action trigger "Trigger. Set <#>Moveable as ACTIVE item (item that you'll move or animate)"
You should use this trigger only before moving or animating with action triggers that moveable to inform tomb4 engine that it is not a simple "static" animating but a moveable that will be used as a creature.

This trigger fixes a very particular situation.

When you move or animate a moveable different than creatures with AI skills and in the level there is currently no creature enabled, the object you moved with action triggers could be no updated correctly.
For instance it will be no able to enable heavy triggers in spite you set for it the NEF_EASY_HEAVY_ENABLING flag in Enemy script command.

The reason of this complicated speech is that tomb4 engine omits to perform any control procedure of moveable when there is no active item. Since animating items(but in many circustances, also doors, switch, and other traps) will be not seen as active items, the tomb4 engine skip all control procedure of all moveables.

When you set a moveable like "active item" you inform tomb4 engine that, the object could be moved, animated or it could enable heavy triggers.

Added new action trigger to remove status of Active item from a moveable
[Find Trigger Number] A95
This trigger has opposite target of A94 and it removes the object from active-item list.
You should use this action trigger only on objects you had triggered with A94 trigger.
You should use this trigger only when you mean do not move evermore this moveable.
note: if you try to use this trigger on creatures you should have same result to freeze them.

Titak 22-04-15 20:40

trngdll and WadMerger+Trng_Fixer
(Released 18 January 2015)


TRNG update posted by Paolone in another thread:

Originally Posted by Paolone (Post 7262120)
Here you find an unofficial update for release.
I called it "unofficial" because I've not found another word (english is a weird language for me, or at least it seems that when I'm using it ;))

The peculiarities of this update are many:
- The tomb_nextgeneration.dll is yet with version numbers, with only the adding of "+" (plus sign) in its properties
- There is no self-extractor but it is a common zip file.
- It's missing an updating for ng_center program as it happened usually
- And last but not least, it has no real new features but only fixings

The reason of this untraditional updating it's because I knew about some bad bugs of release and since I need yet of some month to release the next release I prefered give to you in advance these fixing.
The library is yet the old and this should promise full compatibility with your levels built for release, while the coming soon is a bit different also for internal binary format of some level file.

I prefered omit the self-installer (.exe format) because some antivirus programs considered it as a malaware. In spite it was a false-positive I prefer do not use ever that kind of selfextractor to avoid doubts.

Here you can downlod the zip file with new dll library:


This is the history of bug fixing:


- Fixed bug about detector
In release there was a crash when lara picked up the detector, before drawing it on the screen.

- Enlarged some internal memory buffers
It has been expanded the mesh buffer from 6 Mb to 12 Mb (some huge level had yet problems in wide spaces with meta2tr objects or rooms) and the sprite buffer to handle sprites of 256x256 pixels.

- Improved in NgTom2pc the sprite management
In previous version NGTom2pc was not able to handle 256x256 sprites

- Fixed bug about Frog-man enemy
In last release the frog-man was drawn like he was a harpoon.

- Fixed misalignment about Detctor and Keypad
In previous release the position of keypad/detector or the text linked with them had often a bad position (letting not fully visible the object) or a bad alignment (between the item and the text).
Above problems occurred in according with different resolution where the shape ration was different than 1.3333 (common ration with resolution like 800x600 1024x768 ect)

- Fixed bug about custom button window in NGLE
In old release, when you enabled the custom window to host your shortcuts, if you minimized the button window and then quit the ngle program, at next execution the button window was always minimized and there was no way to restore it.

- Fixed bug about Equipment for no weapon
In previous release when you set 0 for some weapon, like pistols, at start of that level, lara was yet able to extract (draw) pistols in spite they are missing in inventory and she were visible in the holsters.

- Fixed bug about boat sounds
A weird bug it has been detected about sfx sounds of boats.
When you drove at least once the boat and the go off, when lara turn at left or right, a sfx sound of the boat were played.

And about the WADMerger fixer:


---- Histort ------------------------------------------
- Fixed bug about SetPosition anim command
In and versions, the SetPosition anim commands were not visible in anim command window, in spite they were present in the animation.
It happened for default setposition or trng setposition (exported trng triggers for animcommands)

---- History ------------------------------------------
- Fixed bug about wrong folder used to load/save with ctrl key
In previous release, when you save current wad using click on [Save Wad] holding CTRL key, the program saved the wad using right name but it used always the default wad folder, in spite you loaded that wad from another folder.
Same problem happened with [Load Wad] button.

- Replaced old "browse folder" dialog in Settings window
In old wadmerger, when you wished change some folder from settings window, will show a selfbuilt dialog to browse the folder.
Now that browse folder it has been replace with a more comfortable Windows dialog.

---- History ------------------------------------------

- Fixed bug about misplaced position of buttons
In first release, on some computers, the new trng buttons it will be drawn in wrong position

- Fixed bug about crash about saving/loading wad file
In first release, on some computers, there was a crash when user click on [Load Wad] or [Save Wad]

- Moved rotation and 3d view buttons
In first release, the position of new 3d View and Rotate Meshes buttons, were too closed to timeline and it happened to hit them accidentally.

- Added buttons to move meshes
Since that, using colored pivots to move meshes, it was easy move the meshes also on axis different that wished, I added new trng buttons to move meshes in more precise way.
Note: under the move mesh buttons, there will be real values in tomb raider units of absolute position of current mesh, while in the Move mesh window there is the proportional value, where "1" it means one sector.

- Fixed bug about missed releasing of Windows resources
In previou release some internal resources (handles of device context, HDC) were not correctly released, with the result that, after a long usage of wadmerger, Windows had no more resources to run correctly.

- Fixed misplaced position for "3d Vide and Mesh buttons" frame
The position of the frame in some circustances was covered by 3D window and it doesn't change its position in according with current size of Animation Editor window.

---- History ------------------------------------------

- Fixed bug about 500 moveable slot limit.
In spite michiel had expanded the size of internal arrays to host upto 1000 moveables, I met problems when I added a further new slot with id 500.
Studying the problem I discovered a bug that failed the copying of moveable with slot ID >= 500.

- Improved management of "Speed" field.
Now you can set also for speed decimal (dot numbers) values.

- Added fields for lateral speed
Now you can set the lateral speed "L-Speed:" and lateral acceleration "L-Accel:"
The tomb raider engine always used these two fields but in the past their target was unknown.
Setting a valid value in these hiddend fields you can to do move an object at its right (positive speed) or at its left (negative speed), both with its side acceleration field linked with it.
Since that common Speed allows to move forward (positive values) or backward (negative values), now you can set a speed to move the item in any hortogonal direction.

- Fixed bug about invalid text typed in Speed field.
In original wad merger when you set a "-" (to type a negative number) it occured a crash.
Same speech for any other key different than digits.
Now all invalid values will be simply ignored.

- Changed default position for Animation Wizard window
That was not a real bug, of course, anyway it was a bit boring that the wizard window was placed always in top left side of animation editor, where there are all menu and button commands to use.
Now the wizard window will be drawn at right, where it doesn't cover anything of important.

- Fixed bug about misplaced frame pointer.
This bug occured in this situation:
* The slideshow of animation was off
* The frame bar was pointing on one of last frames of current animation
* You clik on animation list choosing a different animation that has a number of frames lower than previous animation (or you clicked on [New Animation] button)
* Now the frame bar is pointing to an unexisting frame of new animation
* In this situation if you set some command that affected the current frame, wad merger crashed

Above bug has been fixed, forcing always the frame 0, in frame bar, everytime you click (at first time) on a new animation.

- Replaced the name of "Command 3" animcommand.
Now you can see the name for this command that describes its target: "Free Hands"
When this animacommand will be performed the engine will consider that lara had free hands: no weapons, torch, or grabbing wall.
You should use this animcommand when you make an animation that begins while lara is holding some weapon/torch, and you wish that she, at end of the animation, had free hands, not only for the meshes (this is your target to realize with animation) but also for the engine. In this way lara will be able newly to extract weapons or grab walls, climbing ect.

- Added expanded description for trng setposition animcommands.
Now, when an animcommand is from trng, you'll see in the list also the description about trigger, frame and extra parameters of that setposition command.

- Fixed crashes for editing of animation fields
When there is "no animation" selected, any change in (many) animation fields, like "StateId:", "NextAnimation", "Speed" ect, affected a crash.
This crash happened also clicking on [Replay] button.

- Added buttons for moving 3d view.
Now, labelled as "3D View" there are three little graphic buttons to zoom, move and rotate the current 3d view.
They are simply duplicated of already present keyboard+mouse commands to get above targets, anyway I used a meta-sequoia style to move 3d view because it is more user-friendly, IMHO.

- Added buttons for mesh rotation
In spite there were already three different ways to rotate selected mesh, I didn't like any of them so much.
The "Relative" rotation, whereby the "Rotate" window, sometimes messed up the animation.
The "Absolute" rotating, worked, but it's not easy set an absolute value when you wish rotate a bit more/less current mesh.
By other hand, the further method: grabbing the red/green/blue pivots in 3d view, it's not always so easy to realize; in some position it seems impossible grabbing it, and so you had to move 3d view and trying over and over.
These three new rotate buttons, work in relative way, one for each (around) rotation axis: X (red), Y (green), Z (blues).

Note: these buttons will be available only when you popup the old [Rotate] window, while when the [Rotate] window is missing, also the rotate mesh buttons will be invisible.

- Added Frame Collision box panel.
It has been added a panel about frame collision box.
Now you can customize manually current frame collision box.
I added this feature because wad merger supported only the automatic creation of collision boxes with bounding but when you needed to change a bit the collision box it was necessary using FixAnim program, working on tr4 file.
Now you can perform these operations directly from wad merger.
In the collision box panel there are are also three buttons:
[Copy] To copy current collision box to clipboard
[Paste] To set in current frame the collision box saved in clipboard
[Set All] To copy current collision box to all other frames of current animation.

- Fixed some bugs about trmvb file importing
* When the moveable had only one mesh there was a "Subscription out of range" error
* When the object had triangle textures, the program gave very often a "Overflow" error
* When the object was a new NG object, wad merger assigned to it always the slot 0 (LARA), prompting for replacing and moving it to lara slot
* After the importing the object was misplaced on Z axis (missing of conversion for Z translation point)
* After the importing the collision box of moveable was messed up (for obscure reasons)

- Improved [Load Wad] button command.
Now you can reload last wad file you had elaborated in previous job session, cliking the [Load Wad] button, keeping down the CTRL key.

- Improved [Save Wad] button command
In standard wadmerger it was always necessary browse and choose the .was file to save, also when you wished only save current wad file on disk with same name.
Now if you keep down the CTRL key while you click on [Save Wad] button, it will be saved on disk the current wad, with no prompting or browsing operations.

- Added new button: [<< Static] in main window of WadMerger
I added a new button to copy static items from source wad to target wad.
It has been necessary to fix a bug in static copying with common [<< Copy] button: the extra static items were ignored by old button.

Note: theoratically you should use the new [<< Static] button only when you selected a static in source wad, anyway, if you select a moveable the new button will work like old [<< Copy] button but with smartcopy (temporarily) disabled.

- Fixed bug about renaming of static object
This bug occured when you copied a static with [<< Copy] button holding down the SHIFT key to rename the static.
In standard wadmerger the renaming had no effect and the static kept the original objectid/name of source wad.

- Fixed bug about key_hole copying
In original wadmerger program, when you try to copy a key_holeN item from source wad to target wad and the smartcopy is enabled, the program gave a error message: "Unable to use SmartCopy! Please hold SHIFT while pressing the copy buttoUnable to use SmartCopy!"

- Fixed bug in Animation Wizard procedure
In original Wadmerger program, when you created a new animated sequence with Animation Wizard, it happens, very often, that last frame of new animation had mesh positions of first frame instead by last frame you had set in animation wizard phase.

- Added settings about cloned meshes
It has been added a new setting option, you find in Settings window of Wad merger program, labelled as "Do not remove cloned meshes"
Original wadmerger had a check to avoid to save twice the two (or more) meshes that had same data (vertices, faces ect).
In this way the final wad file was shorter and this is good, anyway in some circustance this removal of duplicated (or cloned) meshes affected some trouble. It happens when you are working to create a swap mesh or new outfits and you cann't really getting a copy of another lara (or enemy) since wadmerger used same mesh for both moveables.
Now you can disable this removal, checking the fixer setting "Do not remove cloned meshes" and when you save the wad, each moveable will have its own meshes in distinct way for further elaborations.

Note: since the disabling of cloned mesh removal affects a big increase of wad size, I suggest to use only temporarily this new fixer option, while you are working on new objects, then, when you completed your job, you should disable it to remove newly the duplicated meshes.

- Supported uv mapped objects from .trmvb files
In the past, when you remap object from tr4 file using meta2tr program, the final object was not importable in wad files because the uvmapped textures had an uncompatible format (not orthogonal bounding) with wad format.
Anyway now it's possible importing in wad files, object uvmapped following this procedure:
1) Remap object from tr4 using metasequoia and meta2tr programs.
2) Export from tr4 file the object as .trmvb file, using TrViewer program
3) Import the .trmvb file in wad merger using [Import] button.
4) Now trng fixer will detected the presence of uvmapped texture in the object and will prompt you to remap the object.
5) You answer: [Yes] and the object will be imported in the wad like a common moveable

Note: after the remapping a new file file will be created with same name of source .trmvb but with added the prefix "UVM_" (UVMapped). If in the future you wish import newly this object you can use this UVM_ file, since now the object in this file it has been alredy remapped with compatible textures, avoiding to repeat the remapping procedure.

- Improved trmvb file importing
* When trmvb file contains objects from tr1/2 or 3 adventure, the file will be updated, to follow tr4 standards, to be imported correctly in WadMerger.
This procedure will create also a new .trmvb file with same source name but with prefix "tr4_" to remember that it has been already converted to tr4 standard.
* Now wadmarger will ask about the slot where insert the imported object

- Fixed bug about sprites
In original wad merger program it was not possible delete sprites object from the wad.

- Fixed some bug about .trc level loading
* When wadmerger loaded a level from Tomb Raider Chronicles there were many errors about building sfx sounds from animations.
* Some .trc levels stopped the loading with error message: "ReadTr -> Error reading level Opening file"

- Fixed bug in .swd creation.
Original wad merger, when it created the .swd file (the file containing sprite data) the sprite map had many empty zones for a bad alignment, affecting a big (futile) growth of this map.

- Fixed bug in large sprite management
Original Wadmerger was not able to manage sprites with size larger than 128x128 pixels.
Now max size is 256x256 pixels.

Note: in spite now WadMerger is able to support sprites upto 256x256 pixel, the NG tom2pc program failed to remap sprites with this size. So, until I'll not fix that bug in tom2pc program, you can use only sprites with max size of 255x255 pixels.

AkyV 02-12-16 10:49

MK5 Full Installer (also updating to TRNG
Plugin SDK pack
(Released 2 December 2016)

See the download links in

Description is available here:

Download Visual Express 2010

If you don't have auto-enumeration when using this C++ Express version, then do this:

1. Install this service pack.
2. Then install this hotfix.
3. Perhaps you also need to reset the settings (see Tools menu/Settings/Import and Export Settings).

AkyV 14-12-16 15:59

TRNG Updater
(Released: 14 December 2016)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-2):

- Changed internal format of TriggerGroup= script command
This mod is not visible, normally, anyway the difference is that now you can have same amount of exported triggers, in a given TriggerGroup, as you had in old versions but only if your triggergroup doesn't include ANY exported trigger from plugins.

It's necessary giving an explanation of above matter.

With release, the script can containing also exported triggers from plugins...
When you export a trigger (from ngle) and this trigger is owned by some plugin, in the exported three values there will be also the Id of plugin, to recognize it from other trng triggers.
To store this extra value I had to increase the size (wide) of numbers in triggergroup command, passing from (old) word (16 bits) to (new) dword (32 bits).
The collateral effect of this change was that, since the max space for triggergroup command is 255 words, the number of values (and therefore, of exported triggers) decreased by half, from 63 exported triggers to 32.
Since that, level builders used triggergroup with more than 33 triggers, with new release, the scripter gave the error: "Too much (many) arguments for TriggerGroup= command", I tried to avoid this problem with this solution: when the scripter discovers that in the triggergroup there is NO trigger from plugin, it will build the triggergroup using newly (as in the past) words. In this way the amount remain the same.
Anyway, when in the triggergroup there is at least one plugin exported trigger, the limitation will come back and the max number of triggers will be about of 33 triggers.

- Changed (a bit) the procedure to unistall a plugin from plugin panel
In release, once you chose to uninstall a plugin, the ng_center restarted, quiting and then launching itself newly.
Now it will be possible choosing if restarting or less NG_Center after the unistalling.
Note: once you uninstalled a plugin, and before launching ng_center newly, the trng system is not safe, for this reason the only one reason to postpone the restarting is if you mean uninstalling another plugin or installing a new plugin. All other operations (omitting the restarting) could have bad results.

- Changed the procedure to install a plugin from NG_Center's plugin panel.
This change is alike the above, about uninstalling.
Now the restarting of NG_Center, after installing of new plugin, can be postponed.
About this choice there is same above speech: the only one reason to postpone the restarting is if you mean uninstalling another plugin or installing a new plugin. All other operations (omitting the restarting) could have bad results.

- Fixed bug about overlapped images
In version, it occurred a crash showing in game a not IF_POP_IMAGE image.

- Fixed bug about FMV videos in SOFT_FULL_SCREEN mode
In past versions, when a fmv, with the game working in full screen mode and Soft full screen setting enabled in tomb4 preferences, was shown, the ration proportion was often wrong, with the video stretched to fit all screen size, ignoring the original video ratio.
Now the original size ratio will be preserved, indifferently by current size of tomb raider (and PC) screen.

- Fixed bug about FMV played in exclusive video mode
In version, when a fmv was played in full screen (omitting the SOFT_FULL_SCREEN setting) then the program, radomly,froze or crashed

- Renamed log of Ng_Tom2pc program
In past versions, after a building, the ng_tom2pc.exe wrote a disk file named "statistics.txt" to trle folder, to show last log.
Anyway, since in the past there were also statistics about memory usage, while then, from some versions, there is only the last building log, the name of this log file it has been changed, to get it more coherent with its content.
Now this file will be named: "NG_Tom2Pc_Last_Log.txt"

- Fixed bug in NG_Center
In 1.5.0 NG_Center version, the Import= script command affected an "Overflow" error message.

- Updated infos about Plugin_Cranes plugin
In the case you had currently installed the Cranes plugin, it will be added a description for input command to drive it.
You'll see the new button in NG_Center's plugin panel when you select Cranes plugin.

- Updated some plugin libraries.
If you installed in NG_Center the plugins: Cleaner, Cranes, Star Wars Robot or MechWarrior, it will be updated their plugin_.dll library to fix a bug in savegame management.

TRNG Patcher updater (PU-2):

- Improved update checking in Trng Patcher program
Now Trng Patcher will be able to detect new info update file on website.

- Some corrections about documentation in "\PLUGIN_SDK_STORE\Help_SDK_Tutorial" folder"

- Fixed bug in "trng.cpp" source.
In AddNGToken() function (to save record data in savegame), when there was an odd amount of bytes, the AddNGToken() function omitted to fix the problem adding another extra byte, giving an "ERROR" message.
Now it will give a "WARNING" message and it will add one extra byte to force even amount of bytes for current savegame record.
Note: it has been updated also the file version for all plugin sources, from 1,0,0,0 to 1,0,0,1

- Updated Plugin Setup Files of Crane.
It has been added a button to show input commands to drive the crane in plugin panel (if crane was installed) and in folder:
"\PLUGIN_SDK_STORE\Plugin\plugin_Cranes_VC2010_sou rces\Plugin Setup Files"

AkyV 06-01-17 15:56

TRNG Updater
(Released: 6 January 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-3):

- Fixed bug in NG Center
In previous version, NG Center didn't pass the correct (own) ng_center folder to trng_installer.exe program, to manage the updating.

- Improved update checking in NG_Center program
It has been added a further control about corrupted downloaded file, giving some tips to procede with manual installation.

Note: about this issue, it happened only when your antivirus/firewall stops any download performed by ng_center. So, if you get this problem (an empty update folder after the download operation) I suggest to change the setting of your firewall/antivirus to allow at ng_center to perform these downloads.

About this matter, I remind you that now ng_center (and trngPatcher) don't ever dowload an .exe selfextractor but only common zip files and then it will be you (if you wish), to launch the updater program (trng_installer.exe)
So a compromise it could be to allow to download at least "harmless" .zip / .rar file, keeping the limitation for executable files.

- Added managment of notification messages in update checking.
From this ng_center release (1.5.2 ), when you check for updates you could receive a notice that doesn't matter with new (or less) update but it is a comunication about some important issue, new or old, that trng's author (me) want give to all level builders, to fix, or avoid, some problem.
Ng_Center, other to show the new notices, will preserve also old notices and you can read them when you wish, using the new button named [Show Old Notices], that you find in NG_Center's plugin panel.

- Added new flag for TriggerGroup script command.
It has been added the TGROUP_COMMAND flag to use in first word of three values for trigger.
The TGROUP_COMMAND has to be used alone in first value, you cann't add to it other TGROUP_ flags, with only exception for TGROUP_ELSE.

When you use TGROUP_COMMAND flag as first value, you are creating a fake trigger used to manage other (real exported) triggers of current TriggerGroup command.
The general syntax of TGROUP_COMMAND flag is:

TGROUP_COMMAND, TCMD_.. (command to perform), Value (parameter for current TCMD_ command)

Currently there are following TCMD_ commands:

TCMD_EXIT (used to quit in that point the triggergroup, returning a value TRUE or FALSE)

TCMD_GOTO (used to change sequential execution and jumping to the given index of trigger, in current triggergroup)

TCMD_PAUSE (used only for debugging. You can freeze the game for some microseconds or until you type a given key)

TCMD_LOG (used only for script debugging. You can enable/disable the script log to have only a selective log for some triggergroup and not others)

The TCMD_SET_... are different commands to change some fields of following (real) trigger.
They work like the TGROUP_USE_FOUND_ITEM_INDEX, TGROUP_USE_ITEM_USED_BY_LARA_INDEX, TGROUP_USE_EXECUTOR_ITEM_INDEX ... ect but there are some important differences.

The TCMD_SET.. commands use, as source value, the content of given trng variable that you set in next value of current command trigger.

The TCMD_SET.. commands have not the limit to work only with Object (index) field, they can change any field of next trigger. In this way you can change also parameters of flipeffects, actions and condition triggers to set some value that, in next trigger parameter, could be: a static index, a number of click, a speed or a number of seconds, ect.

See descriptions of specific TCMD_ commands in NG_Center's reference panel, for more infos.
In particular way, in TCMD_SET_EXTRA_TIMER description, there is a pair of examples of its usage.

- Improved script log.
The script log is that log that you see using "tomb4_log.exe" program and you enable with script commands:

Diagnostic= ENABLED

Now in the log, all trigger's description inside triggergroup, will be preceded by index number of current trigger, in the form: "Index)".
Above indices are useful, since now you can use TCMD_GOTO command, to jump to different triggers.

Example of new log:
29438: Perform TriggerGroup=4
29438: 0) Perform Trigger: [$8002, 64, $32B]
29438: CONDITION trigger: "Variables. The <#>Numeric Variable is = than (E)Value" <<#> = 64 (E) = 3>
29438: {Local Byte Alfa1} = 0
29438: TrigggerResult=false
29438: 3) Perform Trigger: [$8042, 65, $12B]
29438: CONDITION trigger: "Variables. The <#>Numeric Variable is = than (E)Value" <<#> = 65 (E) = 1>
29438: {Local Byte Alfa2} = 0
29438: TrigggerResult=false
29438: 6) Perform Trigger: [$2040, 239, $370B]
29438: FLIPEFFECT trigger: "Variables. Text. Copy the <&>NG String to (E)Text Variable." <<&> = 11 (E) = 55>
29438: TriggerResult=true
29438: 7) Perform Trigger: [$2000, 409, $2]
29438: FLIPEFFECT trigger: "Images. Perform <&>InputBox parameters and wait for player input" <<&> = 2 (E) = 0>

- Fixed bug about ng featured pushable objects
In previous version, when a pusable object with standable ng feature was invisible (not yet triggered) its floor collision was already present.
Now not visible pushable (at start of the game) will have no collision.

- Fixed bug in [NG Doctor] tool
In previous release it happened (sometimes) that ng doctor was not able to locate the .tga file of current project file, generating an (handled) crash that stopped further analyses.

- Expanded by three times the space to host level's geometry.
The development of this new feature it has been nicely troubled.
It has been added in release, then it has been removed in and now it comes back newly to be present.
The reason of these changes it's that I had the doubt this expansion had gotten some collateral effects but, finally, I discovered it was not true.
So now it will be let.
This larger size for level's geometry it could be useful for users of MetaTR program, since the amount of vertices for level, now grows about of three times.

- Improved [Find Trigger Number] button in NGLE program
Now this command will accept also an exported trigger function, in a format like:
PerformConditionTrigger("Plugin_trng", 1, 223 | NGLE_INDEX, 0);
PerformActionTrigger(NULL, 89, 188 | NGLE_INDEX, 5);
It could be used when, once you (plugin builder) set many exported functions to call directly trng/plugin triggers, you forgot the target of above functions.
In this situation just you copy & paste the whole C++ row and paste it in input box of [Find Trigger Number] button, to see the original trigger called by this function.
Note: to host better the description of new features, the input box window it has been enlarged a bit.

TRNG Patcher updater (PU-3):

- From current trng_installer version (for plugin only), all source files that will be replaced or modified, will be, previously, also saved (a backup copy) to a subfolder named: "backup_PU-N" (where 'N' is number of update and PU means Plugin Update), located in same folder of updated (modified) file.

- Improved update management in TrngPacher
From 1.0.2 version (that of this update), Trng Patcher will be able to handle multiple updates.
Pratically it means that, if you missed to download the update PU4 (for instance) and currently last update is PU5, you'll be anyway able to download previous (and, for you, missing) PU 4 update.
More it has been added the chance to receive on-line notices, in spite it could be missing a new update but there is some comunication about some trng/plugin issue.

- Added some topic to html plugin tutorials
It has been added the "Functions" topic in "Basics of C++ Language" tutorial
It has been completed the description of preset list directives, in "How to add new Triggers" tutorial.
It has been added some new function's descriptions to "Function Collection" tutorial

- Fixed an error about type of IndexOfAimedEnemy variable (and structure's field)
In previous sources the info about current enemy that lara is aiming, was stored in the field of StrLaraInfo{} structure with the declaration:

int IndexOfAimedEnemy;

Really it was an error. That value was a pointer to StrItemTr4 structure of given enemy.
For this reason above field has been declared newly in this way:

StrItemTr4 *pStrAimedEnemy;

Since it is a pointer of structure, you can use it in this way:

StrItemTr4 *pEnemy;
int Y;

pEnemy = GET.LaraInfo.pStrAimedEnemy;
// and now you can access to all fields of this structure using the "->"
// for instance:
Y = pEnemy->CordY

Note: a change like above it has been necessary also in trng core, and so in structures.h source.
In "StrGlobAddress" structure the field:

int *pCurrentEnemyTarget;

it has been changed in this way:

StrItemTr4 **p2CurrentEnemyTarget;

This complication is necessary because above field points to a tomb4 address where it is placed another pointer to StrItemTr4 structure of aimed enemy.
If no enemy is currently aimed, there will be NULL (0) in tomb4 pointer.

Note: You no need to access directly to above field, anyway if you wish, you should use a code like this:

StrItemTr4 *pEnemy;

pEnemy = *Trng.pGlobTomb4->pAdr->p2CurrentEnemyTarget;

if (pEnemy == NULL) {
// there is no aimed enemy
}else {
// there is an aimed enemy and now you can access to the fields of his structure with "->" operator
// for instance
if (pEnemy->StateIdCurrent == 3) {
// current state id of aimed enemy is 3

- Added new function in trng.cpp source.
It has been added the function:

int ConvertFromStrItemToItemIndex(StrItemTr4 * pItem);

Above function could be used to discover the item index that correspond to a given pointer of StrItemTr4 structure.
For instance, if you have only the pointer to item structure and you wish know its index, you can using above function in this way:

int ItemIndex;
StrItemTr4 *pItem;

ItemIndex = ConvertFromStrItemToItemIndex(pItem);

- Improved in TrngPatcher the tools to fix problems with VC 2010 and VC6 projects
The old tools: [Tools->Fix Visual C++ 2010..] and [Tools->Fix Vc6 ....] have
been improved to fix also problems about missing of auto-enumeration feature in VC 2010's editor and it has been improved the method also for VC6 projects.

This problem happens when you don't see the list of members (fields of structure) after you typed the "." or "->" operators after the structure (or pointer of structure) name.

- Increased the returned data for GET_INVENTORY query of Get() locator function
While, in previous version, the Get(GET_INVENTORY,...) set a value only in GET.pInventory, now it will be set also data in GET.InventoryData structure, where you can find, other that previous pInventory (but now called "pPresence", to do better understanding its meaning), also two new inventory variables.
One, to discover what slot item has been selected in inventory (* GET.InventoryData.pChosenItemSlot)
The other to discover (or set) what slot has been required in game. It happens when lara tries to engage a door (requiring a key), the jeep (another requird key) a door requiring a crowbar. ect.

Note: the old returned value, the GET.pInventory, it has been let unchanged for backward compatibility, anyway it's suggested that now you used the new GET.InventoryData to access to inventory data.

- Fixed bug about PARAM_ script commands
In previous releases, the cbParametersMine() function missed to store also the PARAM_ constant value (main value to identify the PARAM_ script command) in plugin data structure.
This error got impossible locate the plugin's PARAM_ script commands, using the "Get(enumGET.MY_PARAMETER_COMMAND, PARAM_...,... )" function.

- Changed "structures.h" source file
It has been changed a bit the "StrBassHandles" structure to host the new "pProcExtra" pointer to another new structure to extend the bass available procedures.
1) This change doesn't yet allow to use new bass procedure. It will be necessary waiting next update
2) This change doesn't compromise any following field or structure of StrGlobTomb4 structure.

- Changed "Tomb_NextGeneration.h"
It has been increased the space for level's geometry by three times.

AkyV 15-01-17 22:26

TRNG Updater
(Released: 15 January 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-4):

- Fixed bug about the saving of coordinates and facing of Moveables in savegame.

Main trigger to enable this feature was the A60 trigger.
That trigger should be used to set a moveable that we wish that, its position and facing, was saved in savegame, in spite it should be not a creature or other moveable (like vehicles) where this saving operation is already enabled by default.

About this skill, there was a big error: the amount of moveables to save was never cleared at start of new level and, as result, if player played for long time, passing from a level and other, the amount of moveables grew upto generate overflow and other unpredicatable bugs.
Now this bug it has been fixed, anyway savegames saved with bugged engine could have yet problems. Anyway when new engine (of current update) will load a bugged savegame it will reset all "save items" data. Removing the overflow bug but also loosing all moveable indices signed as "to save".

- Improved NG Doctor tool in NG_Center program
* Now NG Doctor is able to recognize a tomb4 patched with FLEP and it will report this info in final diagnostic log.
* The final diagnostico log will show also a list of the Mounted Plugins, with many infos to recognize specific dll (version, size and if it is with debug infos) and other infos to detect probelms.
* Diagnostic log will show also unupdated plugin .dll in trle folder (when the library in plugin folder of ng_center is earlier)

- Fixed bug in NG_Center
In previous (1.5.2) release, there was a crash when user clicked on [Show Old Notices] button of Update panel.

- Fixed bug about CUST_KEEP_DEAD_ENEMIES failure on reassigned creature slots
In previous versions, when a non-creature slot was used like a creature (baddies, animals, ect.) whereby an AssignSlot command and the CUST_KEEP_DEAD_ENEMIES feature was enabled, the reassigned creature, once killed, disappeared once saved and reloaded the savegame.

- Improved update checking
Now NG_Center, from Plugin panel, will be able to handle multiple updates. This means that you'll be able to see all available updates to download and choose also older updates that you chould having missed in the past.

TRNG Patcher updater (PU-4):

- Added new enumGET for Get() locator function
It has been added the enumGET.VARIABLES
With this new constant you can get access to trng variables and selected index for memory zones.
When you call the function with this new constant:
Get(enumGET.VARIABLES, 0,0);
You'll get result in "GET.Vars" structure.
Using this structure you'll be able to read/test/change all trng variabiles, divided by global and local, with different types (long, word, byte) signed or less.
More you'll be able to read or set the current selected "item" for different memory variabiles.
Note: the "Get(enumGET.VARIABLES, 0,0);" function could be called only once in cbInitLevel() function and it will set valid values in GET.Vars structure for all current level.

- Added new functions for access to trng and memory variables
It has been added a set of new functions to access to trng variables and memory variables whereby trigger/script parameters

int ReadNumVariable(int Code);
void WriteNumVariable(int Code, int Value):
char * ReadTextVariable(int Code);
void WriteTextVariable(int Code, char *pText);
int ReadMemVariable(int Code);
void WriteMemVariable(int Code, int Value);

Main target of these functions is that you'll be able to access to trng and memory variables, using a parameter in same trigger/script format.
In this way you can let to users (level builders) the chance to choose the variable to use, and your code will be able to access to the given variable, passing to these new functions the parameter read from trigger parameter or script command.

Read "Function Collections" tutorial, about ReadNumVariables() (and others), for an in-depth description of usage and syntax of these new functions.

- Added multiple function to convert different kinds of tomb raider "stuff"
It has been added the function:

int Convert(int CONV_Type, int Index, int SecondaryIndex, void * pPointer);

The Convert() function requires, as first input parameter, an "enumCONV." value (or a CONV_.. value).
In according with this first value this function will be able to convert different tomb raider types:

From Ngle Index to Tomb Index (about moveable item indices) and viceversa
From Ngle Static Index to Tomb Static Indices and viceversa
From StrItemTr4 structure of moveable to its index
From Relative animation index to absolute anim index and viceversa
From Relative frame index to absolute index and viceversa
From Ngle Room Index to Tomb Room index and viceversa
From rect box of microunits to real pixel values, in according with current screen resolution

Read "Functions Collection" tutorial, about "Convert() function", for more infos.

- Fixed bug in TrngPatcher program
In previous release when there was the check for some update, it was detected always how to update, in spite that update had been already performed.

- Added new infos about sources version
From this update (PU-4), the plugin sources will be marked with a version info, set like a comment row.
All sources, whose there have been an updating, could have this version info.
It appears in a comment row like this :


It will be placed at top of any source.

* Since this info will be used for future checks about updating, it's important that you didn't remove or change manually this version info tag.

* It is normal that main source (usually plugin_trng.cpp but it could have another name) had more than one version update row. It happens because the main source it will be never replaced from an update but only fixed with selective Find & Replace method. Therefore, to keep track of all single find & replace updates, performed or less, it will be necessary having multiple version info rows, one for each performed update.

- Fixed unjustified error message about customize parsing
In previous versions, when the code checked for the presence of some own CUST_ customize command, with a code like this:

// found a Customize=CUST_MY_BUSINESS script command for current level section

If that kind of customize was missing in that level section, there was the error message: "ERROR: not found my CUSTOMIZE with CUST_ value=...."
This message was not reasonable, like error, since it is normal that a given customize can existing or less in the script.
For this reason it has been removed above error message.

- Fixed bug in Trng Patcher
In previous versione, after having downloaded the update the program warned that the update folder will be openend but really it didn't.

AkyV 27-01-17 23:09

TRNG Updater
(Released: 27 January 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-5):

- Fixed unjustified warning message from some plugins
It has been removed the warning about "not even size in AddNGToken() function".
Above message will be showed in log, or on screen when DGX_ERRORS was enabled, everytime it was saved a savegame and some plugin was mounted.
That warning was not really worrying, so it has been removed.
Note: you can recognize updated plugins because their version will be ""

- Fixed old bug in NGLE program
This was a bug of old winroomedit program.
Using some commands to look for texture, untextured faces, illegal slope, objects or triggers, when this item was in a new room, the name and flip map value, of this new room, it was not updated.

- Fixed old bug in NGLE program
This was a bug of old winroomedit program.
After having set menu command: [Texture->Load palette], used to replace the standard palette with the palette of given .pcx image, the colors in the editor were messed up.

- Fixed bug in NG_Center
In previous version, NG_Doctor failed to parse plugin installation if there was a plugin that was: present in ng_center but missing (with its plugin_.dll) in trle folder. There was an execption and the looking for errors was stopped.

- Fixed bug in Flipeffect 309
In previous version, the trigger F309, used to show in log the value and name of a given numeric variable, wrote wrong names when the variable was: "Last Input Number", Last Input Text", "Current Value" or "Big Text"

- Attemp to fix a bug about underwater playing of sfx anim command sounds
I say "attempt" because I have had problems to reproduce this bug on my pc. In my tests there was no bug.
Anyway I rewrote from scratch the code to hanlde this situation (playing underwater sfx via animcommand) and I hope the bug was solved.
I remind you some notes about sfx sound management:
1) When you use an exported trigger as animcommand to ply sfx sound, it will have the "always" flag. This means that it will be played indifferently wehter the room of that moveable was in water or less
2) If you use the BUGF_LAND_WATER_SFX_ENEMIES in the script, you shoul take care that the [Water/Land] flags (in wad merger's AnimCommands window) have been set correctly.
3) It's better avoiding to play same sfx sound twice or more times in short time (few tick frame of difference) because the replay of a sound, that already was playing, could forbid that sound to be played in correct way. Only "looped" sounds do exception to above rule.

- Attempt to fix bug about delay in drawing load level image
Using the script command:
To set an image in loading level phase, there was a delay in drawing image.
Like for above bug, I've not been able to detect any delay, anyway I performed an attempt (at blind way) to fix this problem.

- Fixed bug about updating process
In previous version of NG_Center, the folder with update files was not opened as said.

TRNG Patcher updater (PU-5):

- Added input parameters for cbInitLevel() callback
While in previous versions the prototype of cbInitLevel was void (no input arguments):

void cbInitLevel(void)

Now some input arguments have been added:

void cbInitLevel(int LevelNow, int LevelOld, DWORD FIL_Flags)

New arguments give informations that could be useful to perform selective initialise of your variables.

LevelNow = Current number of level is going to begin
LevelOld = Previous level (0=title, -1 = from savegame, OtherValues= number of level from where there has been the level jump to current level)
FIL flags = you can testing this value with "&" operator (like for all flags) and enumFIL. enumerator. It gives you specific informations about how this level it has been started.

For instance to understand when you should set the default value for your variables, you should perform this condition:
if (FIL_Flags & enumFIL.FROM_NEW_LEVEL) {
// current level begins for first time: reset from scratch all my variables and features


Note: in spite this change seems violate the rule to keep backward compatibility, also already compiled plugins will be able to work with new tomb_nextgeneration.dll without problems, because the adding of input arguments don't affect any problem for old plugins that don't use these extra input parameters.

- Removed warning about "not even size in AddNGToken() function"
Above message was generated, in save game process, when the MyData.Local or .Global structure was yet empty. Anyway it was a false positive.
Now it will be omitted but it could coming back only then plugin author add variables in some local or global structure of MyData and these variable had a not even amount of bytes.

- Renamed a folder's description in Trng Patcher's Settings window
In TrngPatcher's Settings window, it has been renamed the description of plugin sources folder, to get more understandable its usage.
Now the description is "Folder of YOUR Plugin Sources: (*.cpp and .h files)"
It's important to set this path because it will be in this folder that trng patcher will update source files downloaded in last update.

- Added new callback
It has been added the CB_DIAGNOSTIC callback
You can use it to add your text to show on screen when level builder enabled diagnostic in the script.
You require it (inside of RequireMyCallBacks() function) in this way:

GET_CALLBACK(enumCB.DIAGNOSTIC, 0,0, cbDiagnosticMine);

Then you create the corresponding function to manage it, in this way:

char *cbDiagnosticMine(WORD DGX_Type, WORD EDGX_Flags, char *pCurrentLogText)
static char MyBuffer[4096];

sprintf(MyBuffer, "MyProgActions=%d\nAmount Bubbles=%d", MyData.TotProgrActions, MyData.Save.Local.Bubbles );

return MyBuffer;

* You should type above function over RequireMyCallBacks() function, as usual.
* Remember to define as "static" the local buffer (MyBuffer[] in above example) where you'll type your log to return.
* Use "\n" characters to signal a new line.
* In spite you could easily making yourself a simil-diagnostic on-screen, it should be better that your diagnostic was linked with that of trng, to permit at level builders to enable/disable all diagnostics via script and to avoid that other texts overalpping yours or viceversa

See declaration of CALL_DIAGNOSTIC prototype in DefTomb4Funct.h source for more infos.

- Improved FromNgleIndexToTomb4Index() and Convert() functions
It has been added the chance to convert ngle indices about cameras in tomb4 format.
Previously this ngle / tomb conversion worked only for moveable item indices.

- Fixed bugs in Get() function
In Get() function, for some enumGET values requiring an index, it was ignored the check for further NGLE_INDEX flag, used to require a conversion from ngle index to tomb index.
This problem was present in following GET_ parameters:

- Fixed bug in [Export Function] button of ngle program
In previous versions, when you tried to export a trigger (like A41) that had in object parameter a camera or fixed camera index, in resulting exported funcion the "| NGLE_INDEX" constant, to force conversion from ngle index to tomb index, was missing.

- Fixed bug in NGLE program
In previous versions, when you click on [Export Function] in "Set Trigger Type" window and some field of trigger was missing, it may be that program crashed

- Fixed bug in Get() function
In previous version, the call to get data for (trng and memory) variables:
produced a crash.

- Improved Get() function
About the enumGET.COLOR_RGB request, now there will be a new parameter to set in SecondaryIndex of Get() function.
The syntax now is:

Get(enumGET.COLOR_RGB request, IdOfRgbColor, enumCOLF_ (COLor Format));

The new constants COLF have only two values:

COLF_WINDOWS_COLOR (to get the color in the format required by Windows Api functions
COLF_TOMB_COLOR (to get the color in the format required by Tomb4 functions.

- Corrected wrong description about #REPEAT# tag syntax.
In previous documentation the description of #repeat# tag was wrong about last (optional) parameter.
It was described like an "increment" but in the reality it was the FirstIndex parameter, to set a value for index of each row, different than the number of counter showed in the description of that parameter.
The FirstIndex argument will be used in very specific situations.
See the (updated) description of #REPEAT# tag in "How to add new Triggers" tutorial, for more infos.

- Fixed some internal links in Function Collections tutorial
In previous release the links for GetMemory() and LoadFile() functions were wrong.

AkyV 16-02-17 23:11

TRNG Updater
(Released: 16 February 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-6):

- Removed previous fixing about color palette in NGLE program
In previous version there has been an attempt to fix colors after loading color palette in ngle.
Now that fixing has been removed. I believe it was not a bug but rather it was necessary loading only color palette that had colors compatibles with those of ngle program.
I don't know better, but it's not realistic that eidos programmers had not seen that problem, perhaps for them was not a problem since they used right imported color palette.

- Added ocb code for static objects
It has been added the ocb value 8192 (shatter specific)
This code works only with shatterable statics.
When a shatter has 8192 code, it will be destroyed only by moveables set in Customize=CUST_SHATTER_SPECIFIC script command.
See following chapter

- Added new customize constant
It has been added the CUST_SHATTER_SPECIFIC constant.
With this customize you can decide what kind of moveables or ammo, will be able to destroy the shatter with 8192 ocb code.
This add on has been thought to solve the problem about missing "special" SHATTER9 of classic trle. In the past, the SHATTER9 can be destroyed only by KNIGHTS_TEMPLAR and SKELETON (with sword). Anyway in trng releases, from that to change the shatter range in static items, that specific feature of SHATTER9 was vanished.
Now you can restore that special feature with a customize like this in your script:
and adding 8192 ocb to some shatter (the shatter9 for instance).

See CUST_SHATTER_SPECIFIC description in NG_Center's mnemonic constants panel, for more infos

- Fixed bug in Sphinx
In previous versions, the sphinx destroied all statics from SHATTER0, ignoring the setting in CUST_SHATTER_RANGE customize and also the default SHATTER9 limit with the risk to destroy also new static slots (EXTRA) like they were shatters

- Fixed bug in customizing CrossBow ammo
It's not easy forecasting the effect of this bug, anyway there was an error that mixed the trng code to handle crossbow customizing (like for harpoon) and old original code of crossbow ammo management.

- Fixed bug about jittering of Frog Man
When Lara and frogaman were about at same height, underwater, the frogman had a weird jittering.

- Added new ocb values for FrogMan
It has been added a serie of flags for frogman.
Most are about shooting, to disable it or to set max distance to enable shooting.
See in [OCB list] of NG_Center's reference panel the "_NEW FrogMan" item, for more infos.

- About false detection of hitting for FrogMan
In many circustancesm it happened that harpoon (shot by Lara) hits FrogMan, in spite it seems to hit the empty (a bit lower of FrogMan)
This bug is not fixable whereby code but changing the collision box of frogman in many underwater animations.
It is a problem born when I used automatic collision for animation with WadMerger.
The program, taking as bound the extreme positions of any mesh (enclosed the light cone) created many collision boxes where the box (used to detect a collision with harpoon) is very bigger than real frogman body.
In spite this fixing (with wadmerger) is not so complicated, I already performed it for you.
You can download the frogman with fixed collisions here: http://www.TrLevelManager.eu/download/frogman_new.zip

- Fixed bug in C84 condition trigger
In previous release, when the enemy (whose check lara's detection) had a west facing (in ngle view), the condition gave many false positive also when lara was back of him.

Note: this bug could have produced bugs also in other situations: the chance to get in kayak and the conditions working with testposition command.

- Improved menu command "Plugins->Info about mounted plugis" of NGLE program
In previous version the command showed only the plugin with .trg file.
In spite that behavior was correct, since only plugins with triggers will be mounted in ngle program, now those infos have been integrated with plugin currently installed in trle folder, specifing two lists: the list of mounted plugins (with triggers) and other list with not mounted plugins but installed in trle folder.

- Restyled input box window in NGLE program
In previous version the window used in ngle to get an input by user (texts or values) was too high.
Now it has been reduced the space for descripton to get the window inside of ngle window when there are input about light values.

- Suggestion about fixing for an old bug in key/puzzle activation.
There was a bug in old trle (and also in trng) occurred in this situation: when lara was using a key/puzzle to activate a trigger, if player saved the game before the trigger activation was completed, at reloading of that savegame, the animation were completed but no trigger activation happened.

Studying the problem I believe that the bug was not in the tomb4 code (and for this reason I didn't any bug fixing in this case) but rather in animations used to use/complete key/puzzle.
Pratically eidos programmers created the flipeffect 6 (named "Activation trigger" in wad merger) own to avoid that problem about saving/reloading in the middle of critical animtions, but then (weirdly) they forgot to set that anim command flipeffect in right frame of critical animations. Indeed the linked procedure seems was not ever called.
For this reason the way to fix this bug it's simply to add, to all animations that using key or completing puzzle, the anim command flipeffect 6 (activation trigger) in next frame that of "Set free hand", or, in the case it was missing (wery weird) in last frame of that animation.

Note: above work around should work, anyway there is the risk of a double activation that, in spite it should not affecting big issues for common object activations, it could have some effect for some trng triggers called twice. You should taking care about this eventuality in projecting phase.

- Fixed bug about bikebeam
In old tomb4 when the bike exploded, the bike beam continued to do light, in spite the bike was vanished.

- Fixed bug in Set Trigger Type window of NGLE program
In past releases there was a bug that could confuse the level builder.

It happened in this situation: the trigger showed a previous condition trigger having an extra parameter...
Since in condition triggers the extra parameters are stored using the five activation buttons ([1][2][3][4][5]), when this condition trigger had some extra parameter the values (checked/unchecked) of activation buttons changed in according with extra parameter and the user should not change manually them.

Above it's usual and normal behavior.
Anyway, the problem occurred when user changed current condition trigger with another condition (or with condition of another engine/plugin) that had NO extra parameter. In this new situation, the activation buttons will be not changed by trigger setting but (and this is the bug), ngle didn't reset the activation buttons of previous condition. As result, if level builder didn't see this situation, he will have a (new) condition trigger with messed activation buttons and in this way the trigger activation (when the condition will be true) will be not immediate, since the activation buttons are used own to have some trigger activation only when all five activation buttons are pushed.

Now I tried to fix above bug in this way: everytime the user changes current condition or current plugin/engine, the activation buttons will be restored to all/pushed status, i.e. "immediate activation"
Anyway there is yet the chance to have this bug in some combination, from/to type/activation mode trigger to another, so take care to verify if activation buttons have the wished status when you change the trigger to one that had: NO argument list for extra argument and it was a condition.

- Fixed bug about execution of old flipeffects
For "old" flipeffect I mean those "historical" flipeffects with number less or even than 46
I discovered a shocking bug!
Probably because of strong restyling of internal management of triggers, born to support plugin features, the management of old timer value (used by old flipeffects) it had been skipped.

Pratically, in all trng releases from upto current (excluded), old flipeffects were executed ignoring the value typed in Timer parameter.
For this reason, in spite this fixing was aimed to solve a bug in Flipeffect 28 (about fog bulb color) probably, it occurred in many other old flipeffect triggers.
I apologize for this embarassing failure.

- Attempt to fix problem in update phase
In previous versions, some users had problems in on-line update operation.
The file downloaded by NG_Center, to perform last update, appeared "empty", or, at least, empty was the folder with extracted files.
Now it has been changed the unzip operation, hoping this mod solved the problem.

TRNG Patcher updater (PU-6):

- Changed target of Home key in Trng Patcher editor
In previous release the Home key moved the caret at top of whole text, while not it will be placed at begin of current line

- Added new commands to "Tools" menu of TrngPatcher program
Now in Tools menu command there are two commands used only for .script file.
When you loaded in text editor a ".script" plugin file, you can use these two new commands to expand all mnemonic constant descriptions or to compatc them, newly.

You can use the menu command: "Tools->Reformat whole .script file->Expand linees (remove > chars)" to have newline characters in the description of any constant description.
In this format it's easier reading the description and editing it.
Then you can (and you have to) compact newly the text, using the menu command: "Tools->Reformat whole .script file->Compact Linees (add > chars)" to have newly the .script file in a compatible format with ng_center program requirements.


* When you expand the .script text, the divisor linees, between a description and the next, will be replaced with "||" pair of characters. You should not remove these linees because they will be used to remember where a description ends and where another starts.

* If you wish adding new constants while you are in expanded format, you should remember to divide one description from previous, using a line with only "||" characters.

* Before saving the .script file remember to compact it newly. Anyway if you forgot this operation, TrngPatcher will remind you about this issue.

* Since the pair of characters "||" (divisor line) and the character ">" (break-line inside constant description) are special formatters, you cann't using them for other targets in your .script file.

- Fixed some description about Preset list
In the "Preset List for Arguments" table of "How to add new Triggers" tutorial, some descriptions in "Range" field have been corrected.
In previous version it was described the Object field like an argument that was able to host values upto 4095.
Really the matter is complex: when you are working on level map (and .prj file) that argument is able to host also values bigger than 4095 but this chance exists only for ngle "object" indices and it will be changed in Output wad operation, where all ngle indices will be converted in tomb4 format, reducing the max value for Object field to 0/1023.
This means that you can host any index about ngle objects in Object field but you cann't host your constant values with numbers bigger than 1023.

- Attempt to fix problem in update phase
In previous versions, some users had problems in on-line update operation.
The file downloaded by trngpatcher, to perform last update, appeared "empty", or, at least, empty was the folder with extracted files.
Now it has been changed the unzip operation, hoping this mod solved the problem.

AkyV 28-03-17 23:16

TRNG Updater
(Released: 28 March 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-7):

- Fixed bug about disabling new sound engine (BASS)
In previous versions (from to when in [Options] section of script there was the command:
to disable bass engine and restore old tomb4 sound management, the game crashed when current audio track restarted for second loop.

- Fixed description of some trng triggers
It has been changed the description of F115, F116 and C81 triggers, replacing the text:
"Cold water room"
with new text:
"Cold room"
This fixing was necessary because, in spite of previous descritpion, that flag worked either with water rooms and dry rooms

- Improved "Set Trigger Type" window in NGLE
Trying to bridge an historical gap about trigger description, it has been added a new informative row to host a remark line about current trigger usage.
More, it may be that for some triggers there was a [Trigger's Help] button, to show an extensive description about current trigger usage.
Note: currently there are only few trng triggers with these extra infos (like A41 and A42) but in the future I'll try to add more infos for complex triggers.

- Added support for MetaTr Cabinets
For MetaTr's users, there is now the chance to export the restyled geometry and textures of your level in a file, the meta cabinet (with extension ".mtcab"), to have a faster and easy importing of meta features, using the common tom->tr4 building with ng_tom2pc.
The advantage is own to can adding/modifing triggers and items in your level, preserving in automatic way the previous meta geometry.
You find the [Create Meta-Tr Cabinet] tool, to build a meta cabinet file, in [Tools3] panel of NG Center program.
Once you launched the tool, you can reading also more detailed instructions about its usage.
Note: in spite this is not main usage, I remind that the cabinet method could word fine also for level builders that don't use metatr program. In this case the advantage will be only to reduce drammatically the building time, since most of geometry and reprocessing texture operations will be skipped.

- About bug on Action Trigger 41 (to activate camera)
The Action41 works but it's necessary understanding its usage.
Read the help file linked with this trigger in Set Trigger Type window when A41 has been selected.

- About bug on TIMER_FIELD trigger
In my tests TIMER_FIELD worked, anyway its usage requires some learning.
It required that the TIMER_FIELD trigger was the first in trigger sequence on that sector.
You discover the position in trigger sequence performing a click (with left mouse button) on 2d floor map in NGLE on the wished square. Going on to click, you'll have all trigger info on that square but there will be a moment that you don't receive any info. This "empty" info is when you completed the sequence and, at next click, you'll see the info about FIRST trigger on that sector. The TIMER_FIELD has to be the first.
Another matter is about the [ONE-SHOT] button...
If the main trigger on that sector (that will be never the TIMER_FIELD trigger but other trigger whose you want change the timer value) has not the [ONE-SHOT] button, no action will be peformed in game until lara stands on that square. Only when she will leave the sector the countdown (or opening) will begin.
If you don't want this behavior and you wish that immediately the trigger was performed, you have to set as [ONE-SHOT] the main trigger (to open a door, for instance)
Note: unfortuntately this kind of trigger is not one of them where I can add a description directly in Set Trigger Type window. So try to keep in mind above speech.

- Improved WindowTitle script command
In previous versions, the WindowTitle command worked only for game's main window but it had no effect on setup window, that went on to show in caption bar "Tomb Raider - The Last Revelation" title.
Now you can change also the name of setup window using the WindowTitle command but you have to follow these two rules:
1) The WindowTitle (to work with setup window) has to be placed in [Title] section
2) The string you use for the new title (for technical reasons) it has to be an extra ng string type. Indeed, if you use a standard string there will be no change in setup window

- Fixed dead links on tr level manager website
From migration to .eu domain, some zip file in demo pages were missing.
Now I have restored the downloads for:
lightning.zip - "Lightnings and Binoculars (Sources) (16 MB)"
speech_demo_trle.zip - "Cutscenes and Demos - Binary, playable demo (53 MB)"

TRNG Patcher updater (PU-7):

- Improved Trng Patcher program
Now it's possible resize the window of TrngPatcher using common Windows features

- Changed editor Trng Patcher key command
Now the [END] key will move the caret at end of current line, while in previous release the caret was moved at bottom of whole document.

- Fixed bug in Trng Patcher program
In previous version, the "Tools->Reformat whole .script file" commands, generated an error at bottom of file, closed to final "<END>" line.
Since the compact/expand operations, required to have (at least) an empty row first of final <END> line, multiple conversions got to attach final <END> line inside of last constant description.
Now, to fix this problem, an empty line will be added by trngpatcher when it was missing in the original (compact) .script file, first of final <END> row.

- Added D3D constants and their enumD3D auto enumerators
In previous version had been forgotten the list of D3D_ values, used to find a given light type with Find() function for enumFIND.Light type.

- Added to Get() locator the GET_FLIPMAPS type
Now it's possible getting all infos about flipmaps with the code:
Getting results in:


For more infos, read the comments of the StrFlipMap structure prototype that you find in structures.h source

- Added reference for static index conversion to trng.h source
In previous releases was missing the declaration of FromNgleStaticIndexToTomb4Indices() function in trng.h.
For this reason, in spite the corresponding function was present in trng.cpp source, it was not possible calling that function

- Extended syntax for trigger definition
Now it's possible adding a remark or an help file for some trigger (flipeffects, conditions or actions)
The new extended syntax works in .trg plugin file and it has been described in "Remarks and Documentation for triggers" chapter of "How to add new Triggers" tutorial.

- Updated the "How to add new Triggers" tutorial
It has been added the description about new #REMARK#, #STAR_DOC# and #END_DOC# tags in trigger declaration on .trg plugin file.

AkyV 07-04-17 10:56

TRNG Updater
(Released: 07 April 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-8):

- Fixed some dead links in trng websites
There were some dead links in secondary trng website: http://www.webalice/paolone2011/ng.htm
The links about "Lightnings and Binoculars (Sources) " and "Cutscenes and Demos - Binary, playable demo" were dead.
In demo collection has been added the link to download the new Frog Man moveable with fixed collision boxes.

- Fixed bug in NGLE program about [P] button of Set Trigger Type window
In previous release, clicking on [P] button of "Trigger's Remark" row, there was a crash if currently the selected trigger was not a trng trigger (flipeffect/action/condition)

- Fixed output for Trigger's Help button
In previous version, in the trigger's help, showed clicking on [Trigger's Help] button, there was some internal markers like: "#START_DOC# and "#END_DOC#"

- Fixed the description of TCMD_SET_EXTRA_TIMER constant in NG_Center's reference panel
In previous versions, the first example about usage of TCMD_SET_EXTRA_TIMER script command was wrong. It was not working since the trigger used in the example was not correct to realize the wished target.

- Added new triggergroup TCMD_ command
It has been added the TCMD_TIMER_FIELD command.
This command is different than other commands like "TCMD_SET_FULL_TIMER" or "TCMD_SET_EXTRA_TIMER".
Indeed, while these two commands change the value of an ARGUMENT of next trigger in triggergroup sequence, the TCMD_TIMER_FIELD presets the number of seconds for all (following) triggers in triggergroup sequence.
Anyway, most important difference, is that, with TCMD_TIMER_FIELD command, you can set a number of seconds in the range -1029 / + 1029 seconds (more than 18 minutes), while with TCMD_SET_EXTRA_TIMER command, the range is only of -64 / + 63 seconds.
Read the TCMD_SET_EXTRA_TIMER description in NG_Center's reference panel for more infos.

- Fixed bug about Trigger's Help
In previous version, when the text in "#START_DOC#", "#END_DOC#" pair, had a length greater than 512 characters, there was a crash in tomb4 when it was enabled DGX_LOG_SCRIPT_COMMANDS diagnostic type, because tomb4 was not able to manage the size of DOC documentation linked with trigger's description.

TRNG Patcher updater (PU-8):

- Fixed bug in trng_installer program
In previous update (the PU-7 update), the trng_installer program required the Comctl32.ocx activeX object.
On some operative system (like WindowsXp) the program was not able to run until a manual installation of Comctl32.ocx activeX occurred.

- Fixed bug about remind for updating
In previous versions, when Trng Patcher detected a long time (about 30 days) without checking for on-line updates, it reminds to check using a message box.
The bug was that, in spite user checked for updates, the remind was yet present, only because no update was yet available.

- Added FITEM_ flag for moveable flags in StrItemTr4 structure.
In previous versions, the flag with value 0x10 (16 decimal) had a not sure meaning.
Now (thanks to AkvY) it has been discovered its real meaning: it will be set when enemy has just been hit with weapons (but not grenade)
To preserve backward compatibility, the old FITEM_FLAG_10 flag it has been let, but it has been added the new flag (with same 0x10 value): FITEM_ITEM_HAS_BEEN_HIT (or enumFITEM.ITEM_HAS_BEEN_HIT auto enumerator).

All times are GMT. The time now is 20:30.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.