Go Back   www.tombraiderforums.com > Tomb Raider Modding > Tomb Raider Level Editor > Next Generation Level Editor

Thread Tools
Old 02-12-16, 07:17   #1
Join Date: Apr 2007
Posts: 720
Default New TRNG Release: v1.3.0.0, the Plugin version

Hi folks!
Trng came back, with a new update.
This is the plugin version and I hope this news can speeding up the improvement of trng after that long dead time.

There are good and bad news.
The bad news is that I've not had way to add the underwater propeller or mine cart how I had promised.
I'm sorry but I was completely focused on new plugin features and it has been a huge work. Just thining that the final SDK (Software Development Kit) is 160 Mb and the large part is source code and documentation.

Anyway there is also a good news...
The good news is that there are four new objects released with this version and with the plus-value that is present the source for them. So it should be easy, with this code and infos, about how to build new enemies and vechicles, adding the underwater propeller.

I hope that, once studied fine the plugin matter, many programmers and some level builders, will begin to supply their plugins with new skills and objects.
Anyway, I can giving the kick start, supplying new plugins in source format also for these new vehicles, other those already developed about cranes, star wars robot, mech warrior ect.

I remind that the old trng website is dead, now the official trng website is: http://www.trlevelmanager.eu/ng.htm
(Pratically it changes the extensione, from ".net" to ".eu")

Before giving you the history, I remind that there are two distinct "products" now:

1) The NG_Center and tomb_nextgeneration.dll, for level builders, as usual
2) The plugin sdk kit and its sources, documentation and tools

I prefered let separated above two products, so you can download the MK5 Full Setup installer, to have ng_center and new library, or, to download and install the Plugin Sdk if you mean also build plugins.
In home trng page: http://www.trlevelmanager.eu/ng.htm you find the two distinct links.

Two products and two demo levels:
1) The Input Box - Static Mip, demo level, to show some news in tomb_nextgeneration library
2) The Plugin Demo level, to show specific plugin stuff

About this, since it is a news to learn anyway, that you built or less plugins, you'll have to manage them in the future, I copy here some descriptions you find in demo collection, about "Plugin Demo":
Since this is first level requiring plugin, I'll use also this page to describe better this new trng skill.

In this demo level you find four new objects: Cleaner Robot (A Picture), Star Wars Robot (B Picture), Crane (as trap, C picture, or Drivable, D picture) and (*) Mech Warrior vehicle (E Picture).

(*) note: Mech Warrior has been built by Psiko, about meshes and animations, while I (paolone) added the code to animate it.

All code required to handle these new objects is not present in tomb_nextgeneration.dll but in their specific plugin.
For instance to see moving the cleaner robot you need to install in NG_Center the Cleaner Plugin, or to have the cranes (both: trap or drivable) you need of Cranes Plugin.
To install in NG_Center a plugin you'll need of its Plugin Setup Files (in some side of sdk documentation, called also: "Plugin run-time files").
These are a set of files having all same name (Pugin_SomeName) and different extensions.
Pratically they can reminding the wad files, having same name but different extensions (karnak.was, karnak.sfx, karnak.wad ect.)
It's true, it's very alike than wad files, but, in the case of plugin files, the extensions will be:

.DLL (always present, it's the core of plugin code, like tomb_nextgeneration.dll file is the core of trng engine)

.BTN (optional but very important to customize own plugin panel in NG_Center program. "BTN" means BuTtoN file)

.SCRIPT (optional but necessary when the plugin requires some its own script commands or constants)

.EXE (its presence is not very probable, anyway the exe plugin file could be able to interact with ng_center program in direct way, to supply specific script/tool features for its targets)

.TRG (the TRiGger plugin file. It is required to add new triggers to ngle program)

.OCB (when the plugin added new ocb values for its objects, or by others, in .ocb plugin file there will documentation about these new ocb values. All these docs will be visible from References' panel of NG_center, mixed to other ocb descriptions)

.TXT (a text file with short description of current plugin. This text will be loaded in its plugin panel in NG_Center program)

Note: I remind that, excluding the .exe and .dll files, all other default setup files are common text files.
For this reason, in spite of their extensions, you should open them using Block Notes or other text editor application if you wish see or change their contents (anyway this operation is suggested only for the plugin's authors, of course)

In above list we saw the default plugin setup files, anyway the author of plugin could add other files in the package for that plugin, of course, and, in that case, it's not necessary following the rule of "Plugin_SomeName" format.
For example it may be (and it is also suggested) adding an extensive description (like a help file) to describe usage of plugin with better and more detailed description of that present in Plugin_SomeName.txt file.
The plugins, that you have to install to do work this pugin demo, for instance, will have all their little help file, to explain to the level builder how to use the new objects (or other skills) supplied with that plugin.
If you look the Mech Warrior plugin's panel, for instance, you'll find a [Input Commands Help] to have docs about the keyboard commands to drive the mech warrior.
While in other plugins there is an [Export Descripion] button to have, in default independent text editor program, the default description of that plugin. (F picture)

Note: the Button's names don't follow any standard or rule: it is the plugin's author to set the wished name and function for that button, setting the preferences in plugin_somename.BTN file.

The approach to plugin "stuff" is different in according with kind of person:

For the final user, the Player of final level, the only one requird file is the plugin_somename.dll library. Just that it was in trle folder and all will work fine.

Differently, for level builders, it will be necessary having the Plugin Setup Files, to install the plugin in NG_Center and to be able to add specific script commands (in ng_center program) or its triggers in NGLE program.

While, for the plugin's author, it will necessary having also source code to start hes job. If you mean trying to build your own plugins, see the Software Development Kit for Plugins page.
In above page you'll find the linke to download the "Plugin_Sdk_Store" package and also all documentation about plugin building.
About this, I remind that I added many facilities to get possible creating plugins also for who is not a real programmer, but simply a level builder that wills learning some new stuff.
Level builders, having experience about advanced scripting, probably will be able to create their own plugins, since in many case is not more complicated than scripting, actually, it's very often easier: surely you'll get more targets with few rows of plugin code than a long list of script commands.
To complete this speech, I remind that you've not to build from scratch a working C++ project, since, in plugin sdk package, you'll find an (already working) plugin project. You'll have only to add few rows in right way to create your triggers, objects or other skills.

Note: in plugin sdk store, you find also the sources of all plugins used in this demo and also an html tutorial to learn, step by step, how to create these new objects and oter skills.
Finally, this is the history for new trng:

History for dll version and 1.5 NG_Center version.

Note: from version we jumped to version, because, the radical changes, inside trng core legitimize a radical upgrade of version number. From version trng is able to work with external plugins, created by other programmers.
Alike speech for NG_Center program, passing to 1.5.0 release and MK5 installer

From this version trng will accept external plugins.
These plugins are dynamic libraries with names like "Plugin_anyname.dll" that you can place in trle folder, closed to common tomb_nextgeneration.dll library.

This new skill affected many changes about internal next generation architecture.

Anyway, in this history it will be described only the changes about the features "seen" from final-user of plugins, while for technical white charts about working mode and creation of plugins you have to download "plugin_trng_sdk.zip" file where, other all tools and sources required, there will be also technical documentation about how to create new plugins and their working know how.


- Changed "Set Trigger Type" window in NGLE program
Now in Set Trigger Type window there is a new combo list named "Plugin/Engine:".
From this list you can choose what plugin you wish use for a given trigger.

Pratically from version, it could happen that there were more triggers with same number but built in a different library.
When you choose an engine different from tomb_nextNegeneration, you are using a new trigger and you should find the description for that trigger in that plugin documentation.

Said in other way: it's possible that (for instance) a flipeffect 120 had a fully different target when it is handled by trng engine respect when it had been handled by SomeName plugin.

- Changed [Find Trigger Number] of "Set Trigger Type" window in NGLE program
Now you can look for a trigger giving also infos about plugin that owns that trigger.
You can add at left of common researh syntax, the name of plugin followed by colons character to divide this name from old search mask.

While in previous version you can find triggers using only one of following syntax:

$2000, 64, $104

now you can, other to use old above syntax, also to use this format:


where we suppose it exists a Plugin_alfa.dll or Plugin_beta.dll in your trle folder.


* You can omit "plugin" text because it is present in all plugin names.
* If you omit colons character and text to find plugin, you'll find only common trng triggers.
* It is futile use the extra search for plugin name in the syntax "$2000, 64, $104" of exported script triggers, because they have already inside the plugin id to locate right owner.
* It's not possible exporting animcommand built in plugins and for this reason has no sense also the looking for animcommands for some given plugin.

- Changed features of [Export Script Trigger] button of "Set Trigger Type" window in NGLE program
Now first number (of three numbers of exported trigger) could be longer than in the past.
When you export a trigger with this button and the trigger was owned by some plugin, the first number will have six characters instead by having only four like in the past.
The extra characters will be used to store the id of pluing that owns that trigger.

- Changed internal format of some commands in script.dat file
Now NG_Center will build a script.dat where some commands (like TriggerGroup= command) will host 32 bit numbers while in the past they worked (almost always) with only 16 bit values.
It has been kept the backward compatibility about sources but not for binaries.

This means that you can use your old script.txt file and it will be built with no errors in NG_Center of release, but you cann't use old script.DAT file with library directly playing it.

- Added new script command to manage plugins.
It has been added to NG_Center the command: Plugin=
The plugin= command allows to link a plugin name with its ID and to supply some basic settings to that plugin.
Read description of Plugin command in New Script Commands section of Reference panel of NG_Center for more infos.

- Added new working mode for #define directive
Now with a #define directive you can give infos to ng_center about the presence of triggers owned by plugins and their IDs inside triggergroups.
The syntax is:

#define @Plugin_Alfa 2
#define @Plugin_Beta 1

TriggerGroup=...... ;exported triggers where some of them is mananged from Plugin_Alfa and others from Plugin_Beta

#define @plugins CLEAR

The final "#define @plugins CLEAR" is to clear the plugin settings and avoid that they will be used in following triggergroups.
See description in Plugin= command (PluginId field) and in description of #define directive.

- Fixed bug about PARAM_MOVE_ITEM
In previous version, the simple movement (no acceleration) computed wrongly the distance, performing a cycle more than necessary.
For instance, givin a distance to 2048 and a speed of 256 the real distance performed was 2048+256.

- Added new script command to NG_Center
It has been added to NG_Center a new script command: LaraStartPos=
This command is able to force a different start position of Lara at first loading of current level.
The parameteres of this command (room and ocb fields) will be used to locate the LARA_START_POS item in the level where place Lara.
The target of this command is particular.
If you wish have different entry points for same tr4 level, you can type LaraStartPos in different [Level] section (but only one for [Level], of course) of the script with all these sections that are using same tr4 level. The player will have the idea that they are different levels but really they used same tr4 level file but with lara beginning from different positions.

- Added new button in Set Trigger Type window of NGLE program
It has been added to the Set Trigger Type window the button: [Export Function]
This button will give a report about direct function to call the current trigger.
This feature is useful only if you are building a plugin project and you wish call some trigger in direct way.

- Fixed bug about flipeffect for animcommand to turn moveable item
[Find Trigger Number] F102
In previous release, the flipeffect trigger:

"AnimCommand. Turn (facing) current object of <&>degrees in (E)way"

worked only on Lara, while now it works on moveable that owns this exported animcommand.

- Fixed bug about saving data in savegame
From original tomb raider engine, the game didn't save the grenade and other ammos (like crossbow bolt) in savegame, with the result that when you reload the savegame the grenades just shot were disappeared.
Now in savegame it will be saved all ammos and dynamically created new items with only the exception of darts.

- Fixed bug in [Texturize Dxf File] tool
In previous release on same PCs (it was affected by nationalized type) the final RE_TEX.dfx file was not recognized by Strpix program when you imported .dxf, because some floating point number had "," for decimal point, or viceversa, it waited for "," while the .dxf file had "." as decimal point.

- Extended usage of slot constants in NG_Center program
In the past you can using, as mnemonic constant, the slot name but only for moveables items.
Now it's possibile using also static slot names in script commands, and their name will be converted in their numeric value as static slot.

- Improved persistence of cutscene camera
Now it will be possible saving and restoring the current cutscene camera to/from savegame.
This chance it's only for cutscene camera and not for other cutscene stuff.

- Added new flipeffect to get infinite durate for fixed camera
[Find Trigger Number] F406

It has been added the new flipeffect:

"406:Camera. Get/Remove<&> infinite durate for current camera (not flyby)"

With this trigger you can convert the time you set (in timer field) for a common camera to endless time.
Then, you can use this same trigger to stop the infinite durate.

Note: to do work fine this flipeffect you should remember to set the triggers in right sorting:

1) You set the Target for the camera
2) Then set the camera to enable
3) And now you perform this flipeffect to get infinite the durate of current camera

If when you perform this trigger no camera has been yet enabled, the trigger will quit with no effect.

- Added new flags for TestPosition script command

It has been added the TPOS_TURN_FACING_90, the TPOS_TURN_FACING_180 and the TPOS_SELF_FIXING flags.
These flags work about like TPOS_OPPOSITE_FACING flag.
The TPOS_TURN_FACING_90 flag fixes a problem with item turned by 90 degrees.
While the TPOS_TURN_FACING_180 flag should be used when the TestPosition gives a positive result (with no fixing flag) but then lara moves turning on 180 degrees in self alignment phase.

The TPOS_SELF_FIXING flag will have some effect only when it detects that, the ideal Horizontal Orienting difference (whom you work in TestPosition with "HOrientDiffMin" and HOrientDiffMax" fields), is about $8000.
If you used the TPOS_SELF_FIXING flag, and trng detects this kind of horizontal difference, trng will fix itself the problem.

Note; Only way to discover if one of these flags is good for you, it is trying to use them and verify if the testposition and further, following, self-alignment will work fine.

- Improved OCB management for moveable items
In previous version the saving of OCB field of item was different in according with kind of item.
Some moveable saved in savegame their ocb field and other didn't.
Now, also to give better reliability to action trigger 79 ("Enemy. (OCB) Change the OCB value of <#>Moveable with (E)Big Number value"), the ocb fields of all moveable items will be saved and restored to/from savegame

- Fixed bug about alignment data of TestPosition script command
In previous releases when the difference about horizontal orienting (facing) between lara and the given item, was about $8000 the testposition failed when you set as tollerance range values like : $7000, $9000
The reason was about signed/unsidend values and the limit of 16 bits numbers.
To build a valid range of tollerance we should type values like $7000 - $9000 to have a step of $1000 around the ideal value of $8000, but this computation will fail because this value is stored in a singned 16 bit value, and the values in "short" variables will change in this way:
$7000 = +28672
$7FFF = +32767
$8000 = -32768
$9000 = -28672
Because the most significant bit, $8000, work like a sign: when it is present the value is negative, while when it is absent the value will be seen as positive.
Anyway above it's only a technical description of this bug in tomb raider engine.
Now this bug it has been fixed and you can use also range like $7000-$9000 and they will work fine.
Only limitation is about the max tollerance step: you cann't use a tollerance greater than +/- $2000 otherwise the bug will come back.
Note: see also the info about TPOS_SELF_FIXING flag for testposition command.

- Added new tool to Tool3 panel
It has been added the [Animation Fixer] tool.
Main target of this toos is to edit some hidden fields of animation's records about speed and acceleration.
In the past the authors of LE tools didn't know that the speed can have decimal values (dot numbers), for instance "2.5" or "-0.005" and neither that there was another speed/acceleration speed field couple about side (lateral) movements.
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.
This tools is a basic animation editor, anyway I named it as "fixer" because sometimes it happens that some residual values in these hidden fields, to do getting "crazy" some animation, in particular way when you imported it from 3d Max program.
Thanks to [Animation Fixer] you can clear these side speed fields that damaged your animation.

Another chance with [Animation Fixer] is to copy in some slot the real meshes of another slot. In spite you could use this function between all slots, it’s very probable that you can reach reasonable results only when you set as source slot the 0 lara slot, and as target the slot where you created some animations for lara to use with some vechicle. In this situation, if you had in this slot only dummies meshes showing all same mesh, you can use the [Reassign meshes got from slot->] button and choosing as source slot the “0: LARA” slot, to get in animation editor the real mesh of Lara also in this your vehicle slot.

Note: this tool now is not so important, since it is available a wadmerger release, fixed by me, to have a better control about these "laterals" acceleration fields.

- Added new flipeffect trigger to change holster contents
[Find Trigger Number] F407
It has been added the new flipeffect:
407:Lara. (Weapons) Force <&>holsters type for Lara
In spite there were other triggers for swap mesh, this trigger works at low-level and it could be used in cutscenes, to get easily a change about current holster meshes.
Note: this trigger doesn't affect anything other that the mesh layout of holsters. I mean that the change of weapon mesh in the holsters will have no effect about current selected weapon or presence or less of that weapon in inventory

- Added new flipeffect trigger to set current selected weapon for Lara
[Find Trigger Number] F408
It has been added the new flipeffect:
408:Lara. (Weapons) Set current selected weapon<&> (no change for mesh)
This flipeffect change the selected weapon, that is the weapon it will be drawn when player send Draw Weapon (SPACE) command.

Note: This flipeffect work at low-level and this means that no other change it will be performed.
This means that you could create messed situations if you use this flipeffect alone, for instance setting as selected weapon a weapon that is missing in inventory or in lara's holsters. For above reason you should use this flipeffect only in according with other triggers to create (for instance) a new advanced management about new weapon or a customization for old weapons.

- Extended number of object tail infos in NGLE program.
This fixing allows to avoid the (harmless) error mexage: "too many object texture"
Max number of obj tail info changes, from 2500, to 10000

Note: in spite of this fixing, when you load a wad file in ngle that has more than 2500 tail infos for objects, it could happen that many objects had unexpected semitransparent textures. It's another bug that I've not yet fixed, anyway it doesn't affect the final .tr4 file.

- Extended memory buffer in NG_Tom2pc.exe for room+obj tail infos.
The memory changes from 300Kb to 1.2 Mb

- Extended global memory for all level data in tomb4.exe.
The level memory buffer changes from 20.000.000 to 60.000.000 bytes

- Added new param constant
It has been added the PARAM_INPUT_BOX constant.
Using this kind of Parameters script command,you can give all infos to engage in game an "input box".
The input box is a feature that allows to the player (the user, or Lara in storyboard) to type on keyboard and to see the typed letters (or digits) drawn on the screen.
Then, the typed text it will be saved in "Last Input Number" variable (when you work in ONLY DIGITS mode) and in "Last Input Text" variable.
Thanks to this new skill, you have another way to ask for a password, while previously it was possible only using KeyPad switch but with the limitation to work only with digits (numbers).
See description of PARAM_INPUT_BOX constant in mnemonic constants of NG_Center's reference panel, for more infos.

- Added new Flipeffect trigger to show Input Box
[Find Trigger Number] F409
The F409 trigger will show the InputBox corresponding with data in given PARAM_INPUT_BOX Id.

- Improved DGX_COMMON_VARIABLES flag working mode
Now, when you set DGX_COMMON_VARIABLES flag in Diagnostic= command, it will be drawn on screen also the value of LastInputText variable.
In the previous version it was not possible using really that testual variable but now you can use it, using PARAM_INPUT_BOX features.

- Added some condition triggers to compare trng text variables
[Find Trigger Number] C93 / C94 / C95 / C96 / C97
In previous releases, there was no way to compare a text trng variable with strings or with other text variables.
The reason of this missing it was that there was no features allowing to have a meaningful text in some text variable.
Anyway, since that now, with Input Box feature, it is possible, some new conditon triggers, to check trng text variables, have been created:

93:Variables. The (E)Text Variable is even than <#>NG String (Case sensitive comparison)
94:Variables. The (E)Text Variable is even than <#>NG String (Not case sensitive comparison)

Condition 93 and 94, compare the text in some trng text variable with a given extra ng string from language.dat file.
Only one difference is that, the conditon 93 compare the strings in case senstive way, while the conditon 94 doesn't it.
For "case sensitive" we mean when we consider different two letters only because one is capital and other is lower case.
For instance, with a "case senstive" comparison, the texts: "House" and "house" are different, since the first had a capital letter "H", while the second text, had not.
While, when you chose a "Not case sensitive" comparison (suggested), the differences for "case" of letters it will be ignored. In this situation all these text will be seen as "even" (equal, the same): "House", "HOUSE", "house" ect.

95:Variables. The (E)Text Variable is even than <#>TextVariable (Case sensitive comparison)
96:Variables. The (E)Text Variable is even than <#>TextVariable (Not case sensitive comparison)
Condition 95 and 96 compare two trng text variables.
Condition 95 is case sensitive, while condition 96 it is not.

97:Variables. The <#>Text Variable is a (E)string
Condition 97 checks if given text variable is empty (no character) or less.

- Added new flipeffect trigger for text variables
[Find Trigger Number] F410
It has been added the flipeffect:
410:Variables. Text. Clear <&>Text variable
With f410 trigger you can clear (i.e. set as empty) the given text variable.

- Added new flipeffect trigger for Lara's invisibility
[Find Trigger Number] F411
Since the action trigger to force a transparency level for moveables (the A53 trigger) cann't work with Lara, it has been added a flipeffect to set lara's transparency:
"Lara. Set <&>Opacity level of Lara for (E)Seconds"

This trigger works in a bit different way than A53 trigger for moveables:

1) With F411 for Lara, you set the opacity value, where 0 means: "Fully invisible" and 255 means "Normal Lara, fully visible"
2) When you use F411 trigger with "Forever time", then you should (to remove the transparency) calling again same trigger but with Opacity = 255, to disable previous trigger
3) If you set Opacity = 0, lara will be neither drawn in game; this means: no shadow below her feet and no cpu time to draw this "object" and its (her) gadgets. For this reason, whether you wish that lara was drawn in game but she was fully invisible, you should use opacity=1.
4) The F411 trigger could (and surely it'll do) create conflicts with flipeffect 91 ("Lara. Lara invulnerable for <&>time with (E)effect") when you chose as "effect" the transparency setting.

- Fixed internal bug about parsing of conditional triggers
It should be very complicated describe this bug, anyway, talking only about final results, this bug affected the execution of condition triggers also when they had not been triggered by lara presence in that sector. It was enough that lara was in proximity of that sector, to see performed that condition.
This bug affected a wasting of cpu time and some risk when the condition trigger was a triggergroup within some (not conditional) triggers.

- Added new short-cut button to NG_Center interface
It has been added a button to launch the tomb4_log.exe program.
The tomb4_log.exe utility should be in trle\tools folder.
This logger catches the run-time log generated by tomb4 engine.

- Added to NG_Center program new button
It has been added the button to launch the tomb4_log.exe program.
You can use tomb4 logger to have run-time log from tomb4 application.

Note: NG_Center assumes to find tomb4_log.exe in "tools" sub-folder within current trle folder.

- Added new script command to NG_Center
It has been added the script command: StaticMIP

With this command you can enable automatic swapmesh for statics when their distance from source cam (usually in Lara position) is in some given ranges.
This command is alike the AnimatingMIP command but, in this case, it works only for statics.
Please, don't understimate the chance to draw reduced detailed statics, in according with their distance from source cam (usually lara but not always).
In my opinion, it's own the number (and detail level) of static objects the most common reason of slow-down in game, with leaking of frame rate.
If your level has very wide scenes and you set a very big value for WorldFarView, the game could be not smooth on some old-slow computers. Differently, setting, for most used or most complex statics, some raw copies to replace when the distance is very far, you can save a lot of cpu (and GPU) time, without having a great leaking of quality scene.

The reason is that, without StaticMIP feature, a static item, so far to be visible on screen only like a little spot of few pixel, will be drawn from tomb4 engine with all details, in spite they will be not visible from that far distance.
Using StaticMIP you can solve this paradox, setting to show a raw copy, or, furterly, skipping fully its drawn, when the distance from source cam is very far.

Note: I suggest, not only to create raw copy of most used/complex statics, but also to think about the chance to set the skipping of drawing for little objects when the distance becomes very very far (using CLimit/CSlot fields).
Another suggestion is to try to create raw copy, not only reducing meshes and faces, but also removing the transparent textures.
In my analyses the transparent textures are very expensive for GPU (graphic processor unit) and you'll get a great saving, omitting them, at least in raw copies. About this, I remember that it will be drawn in less time, a static item with many faces but no semitransarent textures, rather another, with less faces but with some semitransparent textures.
Therefor, in some way, you should try to create your raw copy, of original static having transparent textures, modelling faces to reproduce (about) that shape you had gotten with transparent textures, in main static.
Last but not least suggestion is this: if your level has very wide scenes, enabling the fog (with VolumetricFX=DISABLED and FogRange command) also with low values, you can hide better the difference between best quality and worse (raw) static copies.

You can find other references about this matter:
* In description of StaticMIP command in NG_Center's reference panel
* In description of FLI_DISTANCE_IN_SECTORS flag in NG_Center's reference panel
* In READ_ME.txt file in source files of input_box_static_mip demo level

- Added extra infos for FLI_SHOW_DIFFERENCES flag of LogItem= script command
Now, at end of Dif: data, there will be also the "Distance=" info, showing the distance between Lara and the given item in game units.
Note: the distance works in 3d world, this means that also different height will be computed to get precise distance.

- Added new FLI_ flags for LogItem= script command
It has been added the FLI_DISTANCE_IN_SECTORS flag.
This flag will show the distance (between lara and the item) in sector units instead by game units. Pratically the game units will be divided by 1024 to get number of sectors.

It has been added also the new FLI_STATIC_ITEM flag.
The FLI_STATIC_ITEM flag allows to set as log item a static item, rather a moveable item like it was by default in previous release (older than
If you wish know data about some static item, just you type the item index you read in NGLE editor and then add the FLI_STATIC_ITEM flag to inform trng that it is a static and not a moveable.
All data you can see for moveables will be present also for static items with only one (obvious) exection: that some fields, like Animation, frame, state-id, will have a useless (null) value.

Note: read the description of FLI_DISTANCE_IN_SECTORS flag in NG_Center's reference panel, to see how to use these news to discover better sector distance in usage with StaticMIP script command.

- Added new menu to NGLE program
It has been added the menu list named: "Plugins"
In this menu you can find some commands to handle mounted (loaded and linked) plugins in current project.
These are the commands of Plugins menu:

* Infos about Mounted Plugins
It will show a text file with all plugins mounted in current project.
For each plugin it will be showed: the name, its ngle Id, its Script Id and the number of its triggers placed in the map.

* List of unhandled Triggers
This command looks for triggers, placed in the map, with a plugin id missing in current (above) plugin table and show a list with all unhandled triggers, specifing thir IDs and position (room and sector coordinates)

Note: it should never happen to have unhandled plugin's triggers but, it may be, if you wrong to manage plugin unistallation.
Rememebr that, when you want unmount a plugin, you should, as first step, to remove all triggers of that plugin from your level map, and only after this operation, unistall physically the plugin files from trle/ng_center folders, using Uninstall button of NG_Center's plugin panel.

* Show Triggers owned by Plugin
To see all triggers supplied from a given plugin.

Note: This list is NOT the list of triggers placed in the map, but the triggers that you could use, supported by given plugin

* Change Id of Plugin
This is a very dangerous command. You should use it only if you know what are you doing.
The management of plugin's IDs should be performed automatically by NGLE (and ng_scripter for the script, and tomb4/trng for the plugin loading), anyway it could happen some problematic situation where you need to reassign the plugin ids, to fix some trouble about installation/unistalling of old plugins.
Note: with this command you can choose to change the id plugin in plugin table, the plugin of trigger placed in the map, or both previous chances.

* Remove Triggers of Plugin
You could use this command when you had already removed a plugin file (or you had never had it, but you get current project from other guys).
This command will remove from the map all triggers linked with the given plugin. (or the given "ID" of plugin, when that plugin is missing in plugin table)
Note: this command works fine in according with (above) menu command "Plugins->List of unhandled Triggers".
When you get from outside a project and you detect unhandled triggers, you could wish remove them from the map, using this "Remove Triggers of Plugin" menu command.

- Added new search parameters to [Advanced Search] button of NGLE program
Two new search parameters have been added to Advanced Search window.

* "Trigger of Plugin" to find the trigger, placed in the map, owned by given plugin
* "Trigger not handled" to find triggers in the map, with a plugin id missing, between currently loaded plugins, in current project.

- Improved search skills in NG_Center program
In Reference panel of NG_Center, it has been added the option: "Search also in descriptions".
When you check this option, ng_center will look for the text also in description field of all items of current list.

Note: really this option affects a different searching only for reference types having a full description, i.e. on following lists:
New Script Commands
Old Script Commands
Ocb List
Mnemonic Constants

- Added to NGLE program new help command
It has been added the menu command "help->Buttons Window", to show infos about the creation of Buttons Window for shortcuts.

- Fixed bug in NGLE program
In previous versions, when the user hit the CTRL L command to have the list of Last projects to load, the lighting setting got enabld and also face edit status, immeditely after the loading of project.

- Fixed bug in NG_Center program
In previous release there was a problem trying to install Windows Media Encoder 8 on Windows10.
NG_center asked for installation, over and over.

- Fixed bug in NG_Center program
In the past, when you hit the TAB key, in the script were printed two tab characters and not only one.

- Changed NG_Center internal launching mode
In past releases, it was possible performing standalone the "ng_scripter.exe" program. In that working mode, the program didn't show main ng_center window but it just compiled the script.
To realise that working mode, the "NG_Center.exe" application was only a launcher for main program NG_Scripter.exe.
The target of NG_Center was to call NG_Scripter.exe, passing, as command option, the "-A" setting, to inform NG_Scripter to compile the script and then quiting.
Above mode to work was not very loved by Windows 10 (a program calling another and then, the last that perform other stuff), so from 1.5 release, NG_Center changed.
Now main program is own NG_Center.exe and NG_Scripter.exe will disappear.
In this way I hope to get to do work decently NG_Center also with a (so hard to please) operative system like Windows 10.

- Added settings to NG_Center's settings panel
Now, in Settings panel, there are two new items:
* Path of TrngPatcher (main utility for plugin development)
* Path of Windows Media Encoder 8 (already used in last releases)

- Changed the layout of 'select folder' dialog box of NG Center program
Now, when NG Center asks for a folder selection, it will be showed a browser dialog a bit better than old NG Center's versions.

- Improved [NG Doctor] tool, to manage plugin matter
Now NG Doctor (you find it in tool2 panel) detects also problems about bad installation of plugins, other that a control about last release of WadMerger program.

- Improved management of missing extra ng string error
In previous versions, when a flipeffect trigger tried to show on screen (for some second) a Extra NG string, and this was missing in english.dat, the program had a crash with no meaningfull message.
Now it will be showed in game the message "ERROR missing extra string INDEX. (where "INDEX" is the index of missing string)

- Improved management of DirectX errors in NGLE program
Since NGLE could crash at start when it is running under Dirext 11 or higher, it has been added a control about directx errors in bootstrap of NGLE, to avoid traumatic error signalation.
In the past, the situation was a cyclic endless messages about crashes, since ngle tried to resume crash (when CRS was enabled) but with no result.
Now, when there is a problem with directx, NGLE will show a message box to inform about the problem, it will give some tips about its fixing and then the program will quit, with only one crash report advise.
Paolone is offline   Reply With Quote
Old 02-12-16, 07:51   #2
Tomb Raider
Caesum's Avatar
Join Date: Aug 2008
Location: Poland, Warsaw Gender: Male
Posts: 11,798

I can't believe it's completed! Downloading already!

Oh and don't worry about the minecart, I guess we will do it rather quickly now with this version.
Caesum is offline   Reply With Quote
Old 02-12-16, 07:57   #3
Join Date: Aug 2015
Location: Rosewood
Posts: 1,237

I fainted ♥♥♥♥♥♥♥♥
Tombraiderplay is offline   Reply With Quote
Old 02-12-16, 08:38   #4
Relic Hunter
SrDanielPonces's Avatar
Join Date: Apr 2012
Location: Portugal
Posts: 9,612


i am dead
SrDanielPonces is offline   Reply With Quote
Old 02-12-16, 08:43   #5
Matie's Avatar
Join Date: May 2008
Location: United Kingdom
Posts: 4,151

This is great! Thank you so much for your hard work!
"I'll give you this strawberry if you keep it a secret, okay?"
Matie is offline   Reply With Quote
Old 02-12-16, 08:44   #6
Join Date: Dec 2012
Location: Ancient Sky Arena
Posts: 1,923


Last edited by Xopax; 02-12-16 at 08:53.
Xopax is offline   Reply With Quote
Old 02-12-16, 10:26   #7
Join Date: Dec 2011
Location: Hungary
Posts: 4,298

The next generation of the next generation!
Great work, thank you!
AkyV is offline   Reply With Quote
Old 02-12-16, 10:29   #8
Join Date: Jul 2010
Location: Italy
Posts: 814

Finally )))))))))
Thank you Paolone (and Psiko) for the hard work

How can I play the two demos?
I hope in some good news about TRNG!
LGG_PRODUCTION is online now   Reply With Quote
Old 02-12-16, 10:52   #9
Sabatu's Avatar
Join Date: Aug 2012
Location: Ustí nad Labem / Czech Republic
Posts: 1,033

I Have no time yet so
Its possible to change default water color ? like tr1-3 ??
Sabatu is offline   Reply With Quote
Old 02-12-16, 11:10   #10
Relic Hunter
-Roli-'s Avatar
Join Date: Jul 2007
Posts: 5,489

Love you guys!
-Roli- is offline   Reply With Quote

Thread Tools

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

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

All times are GMT. The time now is 13:33.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.