Tomb Raider Forums  

Go Back   Tomb Raider Forums > Tomb Raider Level Editor and Modding > Tomb Raider Level Editor > Tomb Raider Next Generation

Closed Thread
 
Thread Tools
Old 02-12-16, 11:49   #31
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

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


See the download links in
http://www.trlevelmanager.eu/ng.htm

Description is available here:
http://www.tombraiderforums.com/showthread.php?t=216848

-------------------------------------------------------------
Visual Studio Express:

Download Visual Express 2010

Run autorun.exe of VCExpress folder to install.

You need a registration to make it free. See what Paolone says here about it - except: I think online registration does not work any more, I was able to type the key directly you can see in one of the images here (I think the Visual Express download links on this page of Paolone's site are useless now):
Registration

Note:
If you don't have auto-enumeration when using this C++ Express version, then install
Performance Tools for Visual Studio 2010 with Service Pack 1.
You may need a Microsoft account to get in.

Further, old steps to auto-enumeration, I don't think you need them any more - besides, the hotfix link seems dead:

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

Last edited by AkyV; 06-06-22 at 09:37.
AkyV is online now  
Old 14-12-16, 16:59   #32
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.1 Updater
(Released: 14 December 2016)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-2):

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

It's necessary giving an explanation of above matter.

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

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

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

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

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

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

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

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

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

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

TRNG Patcher updater (PU-2):

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

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

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

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

Last edited by AkyV; 28-01-17 at 00:04.
AkyV is online now  
Old 06-01-17, 16:56   #33
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.2 Updater
(Released: 6 January 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-3):

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

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

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

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

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

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

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

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

Currently there are following TCMD_ commands:

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

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

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

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

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

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

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

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

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

Diagnostic= ENABLED
DiagnosticType= DGX_LOG_SCRIPT_COMMANDS, EDGX_CONCISE_SCRIPT_LOG

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

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

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

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

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

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

TRNG Patcher updater (PU-3):

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

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

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

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

int IndexOfAimedEnemy;

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

StrItemTr4 *pStrAimedEnemy;

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

StrItemTr4 *pEnemy;
int Y;

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

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

int *pCurrentEnemyTarget;

it has been changed in this way:

StrItemTr4 **p2CurrentEnemyTarget;

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

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

StrItemTr4 *pEnemy;

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

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

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

int ConvertFromStrItemToItemIndex(StrItemTr4 * pItem);

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

int ItemIndex;
StrItemTr4 *pItem;

ItemIndex = ConvertFromStrItemToItemIndex(pItem);

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

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

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

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

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

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

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

Last edited by AkyV; 28-01-17 at 00:05.
AkyV is online now  
Old 15-01-17, 23:26   #34
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.3 Updater
(Released: 15 January 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-4):

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

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

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

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

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

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

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

TRNG Patcher updater (PU-4):

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

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

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

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

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

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

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

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

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

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

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

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

// #VERSION_UPDATE_INFO#=PU-4

It will be placed at top of any source.

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

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

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

if (Get(enumGET.MY_CUSTOMIZE_COMMAND, CUST_MY_BUSINESS, -1)== true) {
// found a Customize=CUST_MY_BUSINESS script command for current level section

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

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

Last edited by AkyV; 28-01-17 at 00:05.
AkyV is online now  
Old 28-01-17, 00:09   #35
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.4 Updater
(Released: 27 January 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-5):

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

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

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

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

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

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

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

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

TRNG Patcher updater (PU-5):

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

void cbInitLevel(void)

Now some input arguments have been added:

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

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

LevelNow = Current number of level is going to begin
LevelOld = Previous level (0=title, -1 = from savegame, OtherValues= number of level from where there has been the level jump to current level)
FIL flags = you can testing this value with "&" operator (like for all flags) and enumFIL. enumerator. It gives you specific informations about how this level it has been started.

For instance to understand when you should set the default value for your variables, you should perform this condition:
if (FIL_Flags & enumFIL.FROM_NEW_LEVEL) {
// current level begins for first time: reset from scratch all my variables and features

}

Note: in spite this change seems violate the rule to keep backward compatibility, also already compiled plugins will be able to work with new 1.3.0.4 tomb_nextgeneration.dll without problems, because the adding of input arguments don't affect any problem for old plugins that don't use these extra input parameters.

- Removed warning about "not even size in AddNGToken() function"
Above message was generated, in save game process, when the MyData.Local or .Global structure was yet empty. Anyway it was a false positive.
Now it will be omitted but it could coming back only then plugin author add variables in some local or global structure of MyData and these variable had a not even amount of bytes.

- Renamed a folder's description in Trng Patcher's Settings window
In TrngPatcher's Settings window, it has been renamed the description of plugin sources folder, to get more understandable its usage.
Now the description is "Folder of YOUR Plugin Sources: (*.cpp and .h files)"
It's important to set this path because it will be in this folder that trng patcher will update source files downloaded in last update.

- Added new callback
It has been added the CB_DIAGNOSTIC callback
You can use it to add your text to show on screen when level builder enabled diagnostic in the script.
You require it (inside of RequireMyCallBacks() function) in this way:

GET_CALLBACK(enumCB.DIAGNOSTIC, 0,0, cbDiagnosticMine);

Then you create the corresponding function to manage it, in this way:

char *cbDiagnosticMine(WORD DGX_Type, WORD EDGX_Flags, char *pCurrentLogText)
{
static char MyBuffer[4096];

sprintf(MyBuffer, "MyProgActions=%d\nAmount Bubbles=%d", MyData.TotProgrActions, MyData.Save.Local.Bubbles );

return MyBuffer;
}

Notes:
* You should type above function over RequireMyCallBacks() function, as usual.
* Remember to define as "static" the local buffer (MyBuffer[] in above example) where you'll type your log to return.
* Use "\n" characters to signal a new line.
* In spite you could easily making yourself a simil-diagnostic on-screen, it should be better that your diagnostic was linked with that of trng, to permit at level builders to enable/disable all diagnostics via script and to avoid that other texts overalpping yours or viceversa

See declaration of CALL_DIAGNOSTIC prototype in DefTomb4Funct.h source for more infos.

- Improved FromNgleIndexToTomb4Index() and Convert() functions
It has been added the chance to convert ngle indices about cameras in tomb4 format.
Previously this ngle / tomb conversion worked only for moveable item indices.

- Fixed bugs in Get() function
In Get() function, for some enumGET values requiring an index, it was ignored the check for further NGLE_INDEX flag, used to require a conversion from ngle index to tomb index.
This problem was present in following GET_ parameters:
GET_INFO_ITEM
GET_CAMERA
GET_CAMERA_FLY

- Fixed bug in [Export Function] button of ngle program
In previous versions, when you tried to export a trigger (like A41) that had in object parameter a camera or fixed camera index, in resulting exported funcion the "| NGLE_INDEX" constant, to force conversion from ngle index to tomb index, was missing.

- Fixed bug in NGLE program
In previous versions, when you click on [Export Function] in "Set Trigger Type" window and some field of trigger was missing, it may be that program crashed

- Fixed bug in Get() function
In previous version, the call to get data for (trng and memory) variables:
Get(enumGET.VARIABLES,0,0);
produced a crash.

- Improved Get() function
About the enumGET.COLOR_RGB request, now there will be a new parameter to set in SecondaryIndex of Get() function.
The syntax now is:

Get(enumGET.COLOR_RGB request, IdOfRgbColor, enumCOLF_ (COLor Format));

The new constants COLF have only two values:

COLF_WINDOWS_COLOR (to get the color in the format required by Windows Api functions
COLF_TOMB_COLOR (to get the color in the format required by Tomb4 functions.

- Corrected wrong description about #REPEAT# tag syntax.
In previous documentation the description of #repeat# tag was wrong about last (optional) parameter.
It was described like an "increment" but in the reality it was the FirstIndex parameter, to set a value for index of each row, different than the number of counter showed in the description of that parameter.
The FirstIndex argument will be used in very specific situations.
See the (updated) description of #REPEAT# tag in "How to add new Triggers" tutorial, for more infos.

- Fixed some internal links in Function Collections tutorial
In previous release the links for GetMemory() and LoadFile() functions were wrong.
AkyV is online now  
Old 17-02-17, 00:11   #36
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.5 Updater
(Released: 16 February 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-6):

- Removed previous fixing about color palette in NGLE program
In previous 1.3.0.4 version there has been an attempt to fix colors after loading color palette in ngle.
Now that fixing has been removed. I believe it was not a bug but rather it was necessary loading only color palette that had colors compatibles with those of ngle program.
I don't know better, but it's not realistic that eidos programmers had not seen that problem, perhaps for them was not a problem since they used right imported color palette.

- Added ocb code for static objects
It has been added the ocb value 8192 (shatter specific)
This code works only with shatterable statics.
When a shatter has 8192 code, it will be destroyed only by moveables set in Customize=CUST_SHATTER_SPECIFIC script command.
See following chapter


- Added new customize constant
It has been added the CUST_SHATTER_SPECIFIC constant.
With this customize you can decide what kind of moveables or ammo, will be able to destroy the shatter with 8192 ocb code.
This add on has been thought to solve the problem about missing "special" SHATTER9 of classic trle. In the past, the SHATTER9 can be destroyed only by KNIGHTS_TEMPLAR and SKELETON (with sword). Anyway in trng releases, from that to change the shatter range in static items, that specific feature of SHATTER9 was vanished.
Now you can restore that special feature with a customize like this in your script:
Customize=CUST_SHATTER_SPECIFIC, KNIGHTS_TEMPLAR, SKELETON
and adding 8192 ocb to some shatter (the shatter9 for instance).

See CUST_SHATTER_SPECIFIC description in NG_Center's mnemonic constants panel, for more infos

- Fixed bug in Sphinx
In previous versions, the sphinx destroied all statics from SHATTER0, ignoring the setting in CUST_SHATTER_RANGE customize and also the default SHATTER9 limit with the risk to destroy also new static slots (EXTRA) like they were shatters

- Fixed bug in customizing CrossBow ammo
It's not easy forecasting the effect of this bug, anyway there was an error that mixed the trng code to handle crossbow customizing (like for harpoon) and old original code of crossbow ammo management.

- Fixed bug about jittering of Frog Man
When Lara and frogaman were about at same height, underwater, the frogman had a weird jittering.

- Added new ocb values for FrogMan
It has been added a serie of flags for frogman.
Most are about shooting, to disable it or to set max distance to enable shooting.
See in [OCB list] of NG_Center's reference panel the "_NEW FrogMan" item, for more infos.

- About false detection of hitting for FrogMan
In many circustancesm it happened that harpoon (shot by Lara) hits FrogMan, in spite it seems to hit the empty (a bit lower of FrogMan)
This bug is not fixable whereby code but changing the collision box of frogman in many underwater animations.
It is a problem born when I used automatic collision for animation with WadMerger.
The program, taking as bound the extreme positions of any mesh (enclosed the light cone) created many collision boxes where the box (used to detect a collision with harpoon) is very bigger than real frogman body.
In spite this fixing (with wadmerger) is not so complicated, I already performed it for you.
You can download the frogman with fixed collisions here: http://www.TrLevelManager.eu/download/frogman_new.zip

- Fixed bug in C84 condition trigger
In previous release, when the enemy (whose check lara's detection) had a west facing (in ngle view), the condition gave many false positive also when lara was back of him.

Note: this bug could have produced bugs also in other situations: the chance to get in kayak and the conditions working with testposition command.

- Improved menu command "Plugins->Info about mounted plugis" of NGLE program
In previous version the command showed only the plugin with .trg file.
In spite that behavior was correct, since only plugins with triggers will be mounted in ngle program, now those infos have been integrated with plugin currently installed in trle folder, specifing two lists: the list of mounted plugins (with triggers) and other list with not mounted plugins but installed in trle folder.

- Restyled input box window in NGLE program
In previous version the window used in ngle to get an input by user (texts or values) was too high.
Now it has been reduced the space for descripton to get the window inside of ngle window when there are input about light values.

- Suggestion about fixing for an old bug in key/puzzle activation.
There was a bug in old trle (and also in trng) occurred in this situation: when lara was using a key/puzzle to activate a trigger, if player saved the game before the trigger activation was completed, at reloading of that savegame, the animation were completed but no trigger activation happened.

Studying the problem I believe that the bug was not in the tomb4 code (and for this reason I didn't any bug fixing in this case) but rather in animations used to use/complete key/puzzle.
Pratically eidos programmers created the flipeffect 6 (named "Activation trigger" in wad merger) own to avoid that problem about saving/reloading in the middle of critical animtions, but then (weirdly) they forgot to set that anim command flipeffect in right frame of critical animations. Indeed the linked procedure seems was not ever called.
For this reason the way to fix this bug it's simply to add, to all animations that using key or completing puzzle, the anim command flipeffect 6 (activation trigger) in next frame that of "Set free hand", or, in the case it was missing (wery weird) in last frame of that animation.

Note: above work around should work, anyway there is the risk of a double activation that, in spite it should not affecting big issues for common object activations, it could have some effect for some trng triggers called twice. You should taking care about this eventuality in projecting phase.

- Fixed bug about bikebeam
In old tomb4 when the bike exploded, the bike beam continued to do light, in spite the bike was vanished.

- Fixed bug in Set Trigger Type window of NGLE program
In past releases there was a bug that could confuse the level builder.

It happened in this situation: the trigger showed a previous condition trigger having an extra parameter...
Since in condition triggers the extra parameters are stored using the five activation buttons ([1][2][3][4][5]), when this condition trigger had some extra parameter the values (checked/unchecked) of activation buttons changed in according with extra parameter and the user should not change manually them.

Above it's usual and normal behavior.
Anyway, the problem occurred when user changed current condition trigger with another condition (or with condition of another engine/plugin) that had NO extra parameter. In this new situation, the activation buttons will be not changed by trigger setting but (and this is the bug), ngle didn't reset the activation buttons of previous condition. As result, if level builder didn't see this situation, he will have a (new) condition trigger with messed activation buttons and in this way the trigger activation (when the condition will be true) will be not immediate, since the activation buttons are used own to have some trigger activation only when all five activation buttons are pushed.

Now I tried to fix above bug in this way: everytime the user changes current condition or current plugin/engine, the activation buttons will be restored to all/pushed status, i.e. "immediate activation"
Anyway there is yet the chance to have this bug in some combination, from/to type/activation mode trigger to another, so take care to verify if activation buttons have the wished status when you change the trigger to one that had: NO argument list for extra argument and it was a condition.

- Fixed bug about execution of old flipeffects
For "old" flipeffect I mean those "historical" flipeffects with number less or even than 46
I discovered a shocking bug!
Probably because of strong restyling of internal management of triggers, born to support plugin features, the management of old timer value (used by old flipeffects) it had been skipped.

Pratically, in all trng releases from 1.3.0.0 upto current (excluded), old flipeffects were executed ignoring the value typed in Timer parameter.
For this reason, in spite this fixing was aimed to solve a bug in Flipeffect 28 (about fog bulb color) probably, it occurred in many other old flipeffect triggers.
I apologize for this embarassing failure.

- Attempt to fix problem in update phase
In previous versions, some users had problems in on-line update operation.
The file downloaded by NG_Center, to perform last update, appeared "empty", or, at least, empty was the folder with extracted files.
Now it has been changed the unzip operation, hoping this mod solved the problem.

TRNG Patcher updater (PU-6):

- Changed target of Home key in Trng Patcher editor
In previous release the Home key moved the caret at top of whole text, while not it will be placed at begin of current line

- Added new commands to "Tools" menu of TrngPatcher program
Now in Tools menu command there are two commands used only for .script file.
When you loaded in text editor a ".script" plugin file, you can use these two new commands to expand all mnemonic constant descriptions or to compatc them, newly.

You can use the menu command: "Tools->Reformat whole .script file->Expand linees (remove > chars)" to have newline characters in the description of any constant description.
In this format it's easier reading the description and editing it.
Then you can (and you have to) compact newly the text, using the menu command: "Tools->Reformat whole .script file->Compact Linees (add > chars)" to have newly the .script file in a compatible format with ng_center program requirements.

Notes:

* When you expand the .script text, the divisor linees, between a description and the next, will be replaced with "||" pair of characters. You should not remove these linees because they will be used to remember where a description ends and where another starts.

* If you wish adding new constants while you are in expanded format, you should remember to divide one description from previous, using a line with only "||" characters.

* Before saving the .script file remember to compact it newly. Anyway if you forgot this operation, TrngPatcher will remind you about this issue.

* Since the pair of characters "||" (divisor line) and the character ">" (break-line inside constant description) are special formatters, you cann't using them for other targets in your .script file.

- Fixed some description about Preset list
In the "Preset List for Arguments" table of "How to add new Triggers" tutorial, some descriptions in "Range" field have been corrected.
In previous version it was described the Object field like an argument that was able to host values upto 4095.
Really the matter is complex: when you are working on level map (and .prj file) that argument is able to host also values bigger than 4095 but this chance exists only for ngle "object" indices and it will be changed in Output wad operation, where all ngle indices will be converted in tomb4 format, reducing the max value for Object field to 0/1023.
This means that you can host any index about ngle objects in Object field but you cann't host your constant values with numbers bigger than 1023.

- Attempt to fix problem in update phase
In previous versions, some users had problems in on-line update operation.
The file downloaded by trngpatcher, to perform last update, appeared "empty", or, at least, empty was the folder with extracted files.
Now it has been changed the unzip operation, hoping this mod solved the problem.
AkyV is online now  
Old 28-03-17, 23:16   #37
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.6 Updater
(Released: 28 March 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-7):

- Fixed bug about disabling new sound engine (BASS)
In previous versions (from 1.3.0.0 to 1.3.0.5) when in [Options] section of script there was the command:
NewSoundEngine=DISABLED
to disable bass engine and restore old tomb4 sound management, the game crashed when current audio track restarted for second loop.

- Fixed description of some trng triggers
It has been changed the description of F115, F116 and C81 triggers, replacing the text:
"Cold water room"
with new text:
"Cold room"
This fixing was necessary because, in spite of previous descritpion, that flag worked either with water rooms and dry rooms

- Improved "Set Trigger Type" window in NGLE
Trying to bridge an historical gap about trigger description, it has been added a new informative row to host a remark line about current trigger usage.
More, it may be that for some triggers there was a [Trigger's Help] button, to show an extensive description about current trigger usage.
Note: currently there are only few trng triggers with these extra infos (like A41 and A42) but in the future I'll try to add more infos for complex triggers.

- Added support for MetaTr Cabinets
For MetaTr's users, there is now the chance to export the restyled geometry and textures of your level in a file, the meta cabinet (with extension ".mtcab"), to have a faster and easy importing of meta features, using the common tom->tr4 building with ng_tom2pc.
The advantage is own to can adding/modifing triggers and items in your level, preserving in automatic way the previous meta geometry.
You find the [Create Meta-Tr Cabinet] tool, to build a meta cabinet file, in [Tools3] panel of NG Center program.
Once you launched the tool, you can reading also more detailed instructions about its usage.
Note: in spite this is not main usage, I remind that the cabinet method could word fine also for level builders that don't use metatr program. In this case the advantage will be only to reduce drammatically the building time, since most of geometry and reprocessing texture operations will be skipped.

- About bug on Action Trigger 41 (to activate camera)
The Action41 works but it's necessary understanding its usage.
Read the help file linked with this trigger in Set Trigger Type window when A41 has been selected.

- About bug on TIMER_FIELD trigger
In my tests TIMER_FIELD worked, anyway its usage requires some learning.
It required that the TIMER_FIELD trigger was the first in trigger sequence on that sector.
You discover the position in trigger sequence performing a click (with left mouse button) on 2d floor map in NGLE on the wished square. Going on to click, you'll have all trigger info on that square but there will be a moment that you don't receive any info. This "empty" info is when you completed the sequence and, at next click, you'll see the info about FIRST trigger on that sector. The TIMER_FIELD has to be the first.
Another matter is about the [ONE-SHOT] button...
If the main trigger on that sector (that will be never the TIMER_FIELD trigger but other trigger whose you want change the timer value) has not the [ONE-SHOT] button, no action will be peformed in game until lara stands on that square. Only when she will leave the sector the countdown (or opening) will begin.
If you don't want this behavior and you wish that immediately the trigger was performed, you have to set as [ONE-SHOT] the main trigger (to open a door, for instance)
Note: unfortuntately this kind of trigger is not one of them where I can add a description directly in Set Trigger Type window. So try to keep in mind above speech.

- Improved WindowTitle script command
In previous versions, the WindowTitle command worked only for game's main window but it had no effect on setup window, that went on to show in caption bar "Tomb Raider - The Last Revelation" title.
Now you can change also the name of setup window using the WindowTitle command but you have to follow these two rules:
1) The WindowTitle (to work with setup window) has to be placed in [Title] section
2) The string you use for the new title (for technical reasons) it has to be an extra ng string type. Indeed, if you use a standard string there will be no change in setup window

- Fixed dead links on tr level manager website
From migration to .eu domain, some zip file in demo pages were missing.
Now I have restored the downloads for:
lightning.zip - "Lightnings and Binoculars (Sources) (16 MB)"
speech_demo_trle.zip - "Cutscenes and Demos - Binary, playable demo (53 MB)"

TRNG Patcher updater (PU-7):

- Improved Trng Patcher program
Now it's possible resize the window of TrngPatcher using common Windows features

- Changed editor Trng Patcher key command
Now the [END] key will move the caret at end of current line, while in previous release the caret was moved at bottom of whole document.

- Fixed bug in Trng Patcher program
In previous version, the "Tools->Reformat whole .script file" commands, generated an error at bottom of file, closed to final "<END>" line.
Since the compact/expand operations, required to have (at least) an empty row first of final <END> line, multiple conversions got to attach final <END> line inside of last constant description.
Now, to fix this problem, an empty line will be added by trngpatcher when it was missing in the original (compact) .script file, first of final <END> row.

- Added D3D constants and their enumD3D auto enumerators
In previous version had been forgotten the list of D3D_ values, used to find a given light type with Find() function for enumFIND.Light type.

- Added to Get() locator the GET_FLIPMAPS type
Now it's possible getting all infos about flipmaps with the code:
Get(enumGET.FLIPMAPS,0,0);
Getting results in:

GET.pFlipMaps->

For more infos, read the comments of the StrFlipMap structure prototype that you find in structures.h source

- Added reference for static index conversion to trng.h source
In previous releases was missing the declaration of FromNgleStaticIndexToTomb4Indices() function in trng.h.
For this reason, in spite the corresponding function was present in trng.cpp source, it was not possible calling that function

- Extended syntax for trigger definition
Now it's possible adding a remark or an help file for some trigger (flipeffects, conditions or actions)
The new extended syntax works in .trg plugin file and it has been described in "Remarks and Documentation for triggers" chapter of "How to add new Triggers" tutorial.

- Updated the "How to add new Triggers" tutorial
It has been added the description about new #REMARK#, #STAR_DOC# and #END_DOC# tags in trigger declaration on .trg plugin file.
AkyV is online now  
Old 07-04-17, 10:56   #38
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

TRNG 1.3.0.7 Updater
(Released: 07 April 2017)

See the update functions in NG Center and TRNG Patcher.

NG Center updater (CU-8):

- Fixed some dead links in trng websites
There were some dead links in secondary trng website: http://www.webalice/paolone2011/ng.htm
The links about "Lightnings and Binoculars (Sources) " and "Cutscenes and Demos - Binary, playable demo" were dead.
In demo collection has been added the link to download the new Frog Man moveable with fixed collision boxes.

- Fixed bug in NGLE program about [P] button of Set Trigger Type window
In previous release, clicking on [P] button of "Trigger's Remark" row, there was a crash if currently the selected trigger was not a trng trigger (flipeffect/action/condition)

- Fixed output for Trigger's Help button
In previous version, in the trigger's help, showed clicking on [Trigger's Help] button, there was some internal markers like: "#START_DOC# and "#END_DOC#"

- Fixed the description of TCMD_SET_EXTRA_TIMER constant in NG_Center's reference panel
In previous versions, the first example about usage of TCMD_SET_EXTRA_TIMER script command was wrong. It was not working since the trigger used in the example was not correct to realize the wished target.

- Added new triggergroup TCMD_ command
It has been added the TCMD_TIMER_FIELD command.
This command is different than other commands like "TCMD_SET_FULL_TIMER" or "TCMD_SET_EXTRA_TIMER".
Indeed, while these two commands change the value of an ARGUMENT of next trigger in triggergroup sequence, the TCMD_TIMER_FIELD presets the number of seconds for all (following) triggers in triggergroup sequence.
Anyway, most important difference, is that, with TCMD_TIMER_FIELD command, you can set a number of seconds in the range -1029 / + 1029 seconds (more than 18 minutes), while with TCMD_SET_EXTRA_TIMER command, the range is only of -64 / + 63 seconds.
Read the TCMD_SET_EXTRA_TIMER description in NG_Center's reference panel for more infos.

- Fixed bug about Trigger's Help
In previous version, when the text in "#START_DOC#", "#END_DOC#" pair, had a length greater than 512 characters, there was a crash in tomb4 when it was enabled DGX_LOG_SCRIPT_COMMANDS diagnostic type, because tomb4 was not able to manage the size of DOC documentation linked with trigger's description.


TRNG Patcher updater (PU-8):

- Fixed bug in trng_installer program
In previous update (the PU-7 update), the trng_installer program required the Comctl32.ocx activeX object.
On some operative system (like WindowsXp) the program was not able to run until a manual installation of Comctl32.ocx activeX occurred.

- Fixed bug about remind for updating
In previous versions, when Trng Patcher detected a long time (about 30 days) without checking for on-line updates, it reminds to check using a message box.
The bug was that, in spite user checked for updates, the remind was yet present, only because no update was yet available.

- Added FITEM_ flag for moveable flags in StrItemTr4 structure.
In previous versions, the flag with value 0x10 (16 decimal) had a not sure meaning.
Now (thanks to AkvY) it has been discovered its real meaning: it will be set when enemy has just been hit with weapons (but not grenade)
To preserve backward compatibility, the old FITEM_FLAG_10 flag it has been let, but it has been added the new flag (with same 0x10 value): FITEM_ITEM_HAS_BEEN_HIT (or enumFITEM.ITEM_HAS_BEEN_HIT auto enumerator).
AkyV is online now  
Old 15-03-24, 00:04   #39
AkyV
Moderator
 
Joined: Dec 2011
Posts: 4,881
Default

MK6 - TRNG 1.3.1.0 Full Setup
(Released: 14 March 2024)

History (by Paolone)

About this history (shame on me), I'm neither sure it was complete.
The problem is I worked on new features in 2020/2021 years , while I was forced at home for covid lockdowns, then I almost forgot the performed job and now we are in 2024.
Anyway I suggest you to visit the official TRNG website http://www.trlevelmanager.eu/ng.htm to understand better the last news.


- Fixed bug in "Set Trigger Type" window
In previous release, when you tried to locate an unexisting trigger with [Find Trigger Number] button (for instance "F13") the trigger window showed in Trigger's Remark line a random remark by another (existing) trigger.

- Improved the "Set Trigger Type" window in NGLE program
Now the trigger window has a new self-opening frame to show further Trigger's Help text.
When the currently select trigger has a testual help, from bottom side of trigger window, it will be showed a frame with text of the help for current trigger.

Notes:
* The [Trigger's Help] button is yet working and it works like in last release. Only difference is that now it's not always necessary clicking on it, since the content of current help should be already visible in self-opening frame.
* When a trigger has a non-testual help but rather an help in extern file format (like an .html or .doc file) the self-opening frame will not appear and only one way to watch that help file, it will be to click on [Trigger's Help] button

- Integrated in-line descriptions of triggers in NGLE program
Thanks to the work of AkyV now almost all triggers have some in-line description that you can see directly in "Set Trigger Type" window.
My best credits to AkyV for his great job.

- Added new OCB values for FrogMan
Since frogman could working also in dry rooms but with some weirdnesses and limitations, it has been added the ocb value 32 to add when you place frogman in a dry room. The 32 ocb will try to fix the behavior of frogman, to do work him like a (weird, if you don't change his look) flying enemy.
There is also the new 64 ocb to use only for dryrooms, to enable the chance to touch lara (moving down from upward) for frogman. When ocb 64 is missing, the frogman will fly above lara omitting to touch her.
Read FrogMan ocbs in NG_Center's reference panel for more infos.

- Changed location for temporary and log files
In past versions, trng tools created many temporary text files in trle folder. As result there were a lot of these temp files to mess trle root folder.
Now most of temporary files will be saved in subfolder named "Temp_Files" while others, more useful files, will be saved in "TEMP_LOGs" subfolder.
Notes:
* This change will affect only new created temp/log files but old temp files you have in trle folder will be not removed by trng. For this reason I suggest you to perform manually a clean-up of trle folder yourself, and then trle folder will remain cleaned forever.
* While the files in "Temp_Files" subfolder are useless after their creation and so you can delete them as you wish, the files in "TEMP_LOGs" subfolder could be interesting for you, since you'll find logs of ng_tom2pc, further crash reports other that db_patches.bin file (for plugin builders).
* In any case you'll be always free to delete temporary and log files, anyway don't delete whole subfolders ("TEMP_LOGs" and "Temp_Files") while some trng tool is yet running, to avoid errors.

- New release for TOMB4_log.exe utility
New 1.3 release has the chance to resize the window to pass over the 5 rows or increasing the length of any character row.
Note: since particular working mode (the row will be caught at fly from tomb4_log not yet they have been "sent" by tomb4 program) there will be some limitation about number of row.
Max amount of visible rows will be 40.
Other this limit, I remind you that it's not enough expand the window to see (immediately) more rows. When you expand the window, only new rows (sent by tomb4) will host this new space.

- Fixed bug about One-shot triggers
In previous releases, when it has been enganged a one-shot action trigger, the "one-shot" property was ignored and the trigger could be newly engaged.

- Fixed bug about Action triggers to turn animating
[Find Trigger Number] A1/A2/A3/A4
In previous versions, when same turning action trigger was engaged, before previous turning on same object was completed, the code worked in chaotic way: stopping previous turning (not yet completed) and starting from that (degree) position to begin new turning. In this way it was not possible using a movement in given (required) degree angle. Now trng works in another way: until previous turning it has not been completed, further turning on same object will be ignored.

Note: whether you need to stop (in the middle of turning) a moveable, giving another turning, I suggest you to use an A47 trigger to stop turning and then set new action trigger to force new turning.

- Fixed bug about floor type objects and NEF_EASY_HEAVY_ENABLING flag of Enemy= script command
It's not easy explain how this bug occurred, anyway it was a combination between an object with (fake) floor feature (like bridges) and the usage of NEF_EASY_HEAVY_ENABLING flag for an object that had to pass over that bridge object.
It happened a crash in above situation.

- Fixed bug about animated textures
In previous release, there was no check about number of textures in frame animated ranges, in spite there was the limit of max 16 textures for (frame) ranges.
As result of this leak of control, it was possible set a range with more than 16 tex and then, in game, this overflow affected a bug with unpredictable effects: some memory zones were written and, in according with type of zones, there were different errors or a crahs
Now in Animated Textures windows of NGLE program, it will be refused an animated range (of Frames or P-Frame type) with more than 16 textures, while in tomb4 code, when it will be detected an excess of textures for frame range, the textures, over first 16, will be ignored, avoiding worse effects.

- Improved resuming of single playing audio tracks
This improvment works in situations like this: Alfa (single playing) audio track is playing on channel 1 and, first it quits, another Beta (single playing) track will be started always on channel 1.
In the past, when the beta track has been completed no sound were present on channel 1, while now it will be restarded the Alfa track from the point where it had been stopped.
Note: I remind that you can change the behaviour of this feature using a script command:
Customize= CUST_CD_SINGLE_PLAYBACK
Where you'll get different working mode in according with the CDM_ setting used:
CDM_NO_SAVE: this feature will be disabled and Alfa track will be not resumed
CDM_RESTORE_FROM_BEGIN: the Alfa track will be resume but from begin of the track, indiffirently by the point where it had been stopped
CDM_RESTORE_FROM_MIDDLE: (default) the Alfa track will be resumed by last played point before stopping it.

- Added new flipeffect trigger for infinite items
[Find Trigger Number] F412
It has been added the new 412 flipeffect trigger: "Inventory-Item. Set infinite (-1) amount of <&>inventory-item"
This flipeffect allows to set an infinite (-1) amount for some inventory item. It was necessary since, in previous versions, there was no immediate flipeffect to set a short (16 bit) -1 value in inventory items (excluding variable usage).

Note: many inventory items can not having infinite amount. All combo pieces and most of weapon can not. You can set infinite amount for ammos and some other pickup.

- Added new infos in last crash report
When it occurs a crash in tomb4 engine the generated crash report will have also a new "LARA SHORT DATA" section where it will be showed some data of lara object: Room, Animation, Current and Next StateId, Vertical and Horizontal Speed and main flags.

- Fixed bugs about swapping of animations, meshes and slots
Recently I discovered that, a swap method used in different trng features, worked in wrong way. As result, the swapping of animations/meshes/slots and their saving/reloading (in savegames) and their restoring, worked bad.

Current fixing should affect all swapping handled in trng.
To give an idea about the number of involved operations, this is the list of triggers affected by this fixing:
Flipeffect: 99, 105, 106, 340, 341, 344, 393
Action Triggers: 37, 92

Note: unfortunately, this fixing cann't restore right values in already (badly) saved savegames but when, starting from scratch an adventure, the swapping and saving/reloading management now it should work fine.

- Fixed bugs about slot swap mesh feature
This bug is different than above fixing.
While above bug (previous paragraph) mixed the right object/slot pair, after a saving/reloading operation, this new bug generated a crash after reloading a savegame where it had been saved some swap operations. The crash occurred (or less) in unpredictable way.


- Added new customize constant: CUST_INIT_FLIP_MESH
This new customize constant allows to perform an initialization on some (hidden) meshes of a given moveable, to prepare it to be modified in game using the A92 trigger: "Enemy. Mesh. Flip (E)Mesh of <#>Moveable".
The mesh flipping is a flexible way to swap selectivly single meshes of a given moveable to have a character that holded some (different) items in his hands or on his back, or head, using custom animations mixed with animcommands to call the A92 trigger.
Since this topic is pretty complicated, I remind you to read the "Overview about flip mesh method" chapter that you find in description of CUST_INIT_FLIP_MESH command.

- Changed error parsing in NG_Center
From current version it will be ignored further "duplicated" commands about Customize= commands.
It has been necessary to avoid that two customizes with same CUST_ value but from two different plugins (or, a plugin and trng) gave a duplicated error in spite they had different plugin ids.

- Added flipeffect triggers to COPY mesh operations
It has been added a new set of copy mesh flipeffects.

[Find Trigger Number] F413 F414 F415 F416

These new flipeffects are a modified version, as simple "copy", of already existing swap mesh flipeffects.
The new version table is:

SWAP COPY
-----------
F340 F413
F341 F414
F99 F415
F344 F416

In specific way the new flipeffects are:

413: Lara. (Mesh) COPY TO <&>Extra Lara Slots the meshes taken FROM (E)Slot
414: Copy Mesh. COPY TO <&>Slot the meshes taken FROM (E)Slot
415: Lara. (Mesh) COPY meshes of Lara from <&>slot to (E)slots
416: Copy Mesh. Copy mesh from <&>Slot to HORIZONT slot

The reason to add the chance to have a simply copy (rather a swap) operation it's given by the problem, in the swap usage, that borns when you mean to change, in a given slot, 3 or more different outfits (object layouts).
Indeed, in the case of 3 (or more) different outfits, the swapping operation, changing also source slot, will move in chaotic way the original source objects, getting very hard managing a precise setting of wished object for target slot.
Differently, using a simple copy operation, you'll have always the grant that, the source slot you use to change target slot, will be always the same, since copy operations don't change the source slot.

Notes:
1) when you use only two different outfits for a given slot, the swap operation is yet the most advisable.
2) It's not advisable to mix swap and copy operations on same slots.

- Added new flipeffect for fmv resume
[Find Trigger Number] F417
Weirdly, in previous releases, it was not possible to watch same (already played) fmv twice or more.
To solve this problem it has been added the new flipeffect: "417:FMV. Set <&>FMV as newly playable"
Once, some trigger played a given fmv, you'll be able to get that fmv newly triggerable, using the F417 trigger.

- Modified the fmv description in trigger's window
[Find Trigger Number] F405 F417
This change is only about testual description of different FMV to choose as timer argument.
In previous release, the fmv numbers had following syntax:
FMV001
FMV002
FMV003
Old syntax was a bit misleading since the form of fmv file was not own that.
Now the fmv list will have following syntax:

FMV= 1 , ... ("FMVS\fmv1.ext")
FMV= 2 , ... ("FMVS\fmv2.ext")
FMV= 3 , ... ("FMVS\fmv3.ext")

To remind about fmv script commands ("FMV=1,...") and about where to place the video and in what kind of format "FMVS\fmv1.ext"

- Added new action trigger to teleport animatings
[Find Trigger Number] A96
It has been added a new action trigger: "Animating. Move immediatly <#>Animating in lara_start_pos with (E)OCB setting".
This trigger is very alike than A40 trigger but, while A40 works only with Enemies (creatures, objects with AI skills), the A96 should work also with Animating objects and other moveable items with no AI skills.
Note: if you apply A40 or A96 on some creature (object with AI skills) the two triggers will work in same way.

- Added new EXTRA_ constant for Enemy= script command.
It has been added the EXTRA_DONT_CHANGE_AI_ON_SHOT consta for Extra field of Enemy= script command.
This flag borns like an (optional) fixing for a bug about GUIDE and VON_CROY slots.
Normally lara is not able to shot Guide or Von Croy, but, when she uses revolver+laser sight, she will be able to hit them. The problem is that, when they will be hit, their AI behaviour will change and they will try to attack lara. This attack is only moving very closed to her with no real injury, of course, anyway the previous AI settings (AI_FOLLOW) will be lost forever.
To avoid above bug, you can set an Enemy= command for GUIDE or VON_CROY slots and the add EXTRA_DONT_CHANGE_AI_ON_SHOT flag in Extra field of Enemy command.

- Fixed bug about D letter of jeep on the screen
In previous release, just it was a jeep in the room and, in spite Lara was not on board, a D sprite letter was always present on screen.


- Fixed bug in NGLE program about [P] button of Set Trigger Type window
In previous release, clicking on [P] button of "Trigger's Remark" row, there was a crash if currently the selected trigger was not a trng trigger (flipeffect/action/condition)

- Fixed output for Trigger's Help button
In previous version, in the trigger's help, showed clicking on [Trigger's Help] button, there was some internal markers like: "#START_DOC# and "#END_DOC#"

- Fixed the description of TCMD_SET_EXTRA_TIMER constant in NG_Center's reference panel
In previous versions, the first example about usage of TCMD_SET_EXTRA_TIMER script command was wrong. It was not working since the trigger used in the example was not correct to realize the wished target.

- Added new triggergroup TCMD_ command
It has been added the TCMD_TIMER_FIELD command.
This command is different than other commands like "TCMD_SET_FULL_TIMER" or "TCMD_SET_EXTRA_TIMER".
Indeed, while these two commands change the value of an ARGUMENT of next trigger in triggergroup sequence, the TCMD_TIMER_FIELD presets the number of seconds for all (following) triggers in triggergroup sequence.
Anyway, most important difference, is that, with TCMD_TIMER_FIELD command, you can set a number of seconds in the range -1029 / + 1029 seconds (more than 18 minutes), while with TCMD_SET_EXTRA_TIMER command, the range is only of -64 / + 63 seconds.
Read the TCMD_SET_EXTRA_TIMER description in NG_Center's reference panel for more infos.

- Fixed bug about Trigger's Help
In previous version, when the text in "#START_DOC#", "#END_DOC#" pair, had a length greater than 512 characters, there was a crash in tomb4 when it was enabled DGX_LOG_SCRIPT_COMMANDS diagnostic type, because tomb4 was not able to manage the size of DOC documentation linked with trigger's description.

--------
Paolone's additional sentences:

With transformer script command you can convert a moveable to another , setting specific animation and frame, to get smooth the change.

Now it's possible to change size of enemies (scorpions, skeletons ect) in dynamic way,in game, or with new WadMerger NG directly on meshes off movebale.

With new WadMerger NG it's possible to texturize objects directly by animation editor.

Then with the new NG Tree Builder you can create new enemies with any amount of joints and meshes.

In the reality Lara, own because she is so hardcoded for skin ect, reamin not easily changeable.
The new NG builder works overall on other moveble. For instance in the turtorial it explained like make up a fully moveable: an anaconda with joint and animations very different than other moveables.
You can choose the amount of limbs and their position. To get easier this job you can label with a name for each limb.

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

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 11:21.


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