www.tombraiderforums.com

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

Closed Thread
 
Thread Tools
Old 01-12-09, 15:58   #21
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.1.9
(Last updating: 1st December 2009)

  • 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 (1.2.1.8) 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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Old 24-01-10, 18:28   #22
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.0
(Update date 24 January 2010)

  • 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 1.2.1.9, 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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Old 06-03-10, 14:39   #23
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.1
(Update date 1 March 2010)


- 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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Old 08-08-10, 11:02   #24
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.2
(Update date 09 August 2010)


- 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.
Remarks:
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.

- Restored OCB descriptions about some old objects: AMBER_LIGHT, WHITE_LIGHT, BLINKING_LIGHT, FALLING_BLOCK, TROOP, LIGHTNING_CONDUCTOR, FLAME_EMITTER, FLAME_EMITTER2 and FLAME_EMITTER3
Above descriptions had been added in 1.2.1.6 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.
Remarks:
* 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.
Remarks:

*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:

Customize= CUST_AMMO, CROSSBOW_AMMO1_ITEM, IGNORE, NewDamage, ...

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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Old 28-11-10, 10:39   #25
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.3
(Update date 28 November 2010)


  • 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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.

Last edited by Titak; 29-11-10 at 21:59.
Titak is offline  
Old 01-05-11, 21:41   #26
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.4
(Update date 1 May 2011)



REMARKS:
* The version 1.2.2.4 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.
Now you can use the FAN_ALIGN_TO_ENV_POS flag with the ENV_LARA_IN_MICRO_STRIP + ENV_POS_HORTOGONAL
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 +
ENV_POS_HORTOGONAL, $100, 0

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
NEW SCRIPT COMMANDS.

- 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
triggers
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:
BRIDGE_TILT3, BRIDGE_TILT4 and BRIDGE_CUSTOM
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"

- Added new flag for CUST_CAMERA: FCAM_INVISIBLE_LARA_ON_LOOK_CAM

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:

Customize=CUST_CAMERA, FCAM_INVISIBLE_LARA_ON_LOOK_CAM, IGNORE, IGNORE, IGNORE, IGNORE, IGNORE,
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
infos.

- 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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Old 17-08-11, 16:21   #27
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.6 - MK4
(Update date 14 August 2011)



Remark: the 1.2.2.5 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 (1.2.2.3 and 1.2.2.4) 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 1.2.2.4 version I missed these two descriptions of new features:

Quote:
* 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 1.2.2.4 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_SWITCH_ON_126:$7E
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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Old 25-07-13, 21:04   #28
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update TRNG 1.2.2.7
(Final release date of completed 1.2.2.7: January 6th 2014)

- 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 1.2.1.9 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.

ENV_NO_BOX_IN_FRONT
ENV_NO_BOX_AT_LEFT
ENV_NO_BOX_AT_RIGHT
ENV_NO_BOX_BACK

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.

Note:
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 1.2.2.4 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 (1.2.2.6) 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.

Note:
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.

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.

- 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:
Code:
ColorRGB=		1, 0, 208, 208
Parameters=	PARAM_LIGHTNING, 1, >
                		LGTN_ADD_GLOVE_LIGHT + LGTN_RANDOM_COLOR+ LGTN_PLAY_SOUND,  > 
                		[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:
Code:
ColorRGB=		1, 255, 255, 200
Parameters=	PARAM_LIGHTNING, 1, LGTN_ADD_GLOVE_LIGHT + LGTN_PLAY_SOUND + LGTN_INCLINED_RANDOM + >
                           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)

Note:
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.

Note:
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.
Example:
Code:
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.
Example:
Code:
Image= 		1, 1, IF_PRELOAD+IF_TRANSPARENCE+IF_LOOP_AUDIO_TRACK+IF_PLAY_AUDIO_TRACK,IGNORE, 119, IGNORE, IGNORE, IGNORE, IGNORE
Customize=		CUST_BACKGROUND, BKGDT_INVENTORY, IGNORE, IGNORE, 1
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.
Example:
Code:
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.

Remark:
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:
Code:
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.

Remarks:
* 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.
    Version=Japanese
    Charset=128
    PropFont=Arial
    FixedFont=Courier
  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.
Example:

@image3.bmp

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 1.2.2.7 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.

IMPORTANT WARNING:
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 1.2.2.7 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:

Customize=CUST_SLOT_FLAGS, LASERSIGHT_ITEM, FFS_PUSHABLE_CAN_OVERSTEP_IT

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.

Example:

Customize= CUST_BAR,BAR_CUSTOM4, FBAR_SHOW_BAR_NAME+FBAR_USED_FOR_BOAT_FUEL,481,8,1 50,12, 1,2, 2700

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:
BKGDF_ADD_COLOR_AND
BKGDF_ADD_COLOR_OR
BKGDF_ADD_COLOR_XOR
BKGDF_ADD_DARKNESS
BKGDF_ADD_NEGATIVE_EFFECT

- 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 1.2.2.7 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.

Example:

------- 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.

Last edited by Titak; 06-01-14 at 17:18.
Titak is offline  
Old 06-01-14, 17:20   #29
Titak
Moderator
 
Titak's Avatar
 
Join Date: Jul 2003
Location: Drenthe, The Netherlands
Posts: 25,257
Default

Update 1.2.2.7
Release date of completed 1.2.2.7: January 6th 2014


- 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.

Notes:
* 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.

Notes:

* 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

Notes:

* 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.

Notes:

* 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.

Note:
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:

17 LARA_SPEECH_HEAD1 Adult Lara
18 LARA_SPEECH_HEAD2 Young Lara
19 LARA_SPEECH_HEAD3 Von Croy
20 LARA_SPEECH_HEAD4 Yves Laurel
21 ACTOR1_SPEECH_HEAD1 Troop
22 ACTOR1_SPEECH_HEAD2 Egyptian

You can find these new objects in speech.wad of demo level linked with 1.2.2.7 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 1.2.2.7 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"
to:
"WeaponAnim. Index of fake item with animations for current weapon (only big weapons)"

Notes:
* 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.

Notes:

* 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.

Notes:

* 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"

INVENTORY memory:
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.
__________________
If it walks like a duck and if it quacks like a duck, it is a duck.
Titak is offline  
Closed Thread

Bookmarks

Thread Tools

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

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



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


Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2014, vBulletin Solutions, Inc.