Neverwinter Nights: EE - Patch 8193.34

Redglyph

SasqWatch
Joined
August 29, 2020
Messages
10,165
Location
Good old Europe
Beamdog has released another patch for Neverwinter Nights: EE.

Patch 8193.34: Pathfinding, Renderer & Other QoL Improvements

Greetings, Neverwinter Nights players and modders!

A new PC patch for Neverwinter Nights: Enhanced Edition arrives today. This update brings new quality of life improvements and fixes a few regressions introduced by the previous stable update.

PATCH NOTES

[...]
More information.
 
Joined
Aug 29, 2020
Messages
10,165
Location
Good old Europe
Details below:

Fixes
  • Apple M1: Fixed audio crackle when decoding mp3 files, including voiceovers.
  • Pathfinding: Fixed a case where pathing was bailed on too early, resulting in incorrect behaviour that was regressed in the previous patch.
  • Facelift tilesets tts02 tcm02: Addressed various texture and model issues.
  • ResMan: Fixed two memleaks where it wouldn't release loaded data instances.
  • Renderer: Minor fixes to animation start consistency.
  • Renderer: Fixed animated skinmesh parts going out of sync/being one frame behind.
  • Renderer: Fixed rough surfaces having a milky sheen at some viewing aspects, especially when using height maps.


QoL Improvements
  • Game: Disable ctrl-drag selection box on clients when server.player-party-control is off (the default). Note that clients will have to reconnect if you toggle this setting while a game is up.
  • NWSync: Repositories are now collapsible in the main UI view; this state is remembered in settings.tml.
  • NWSync: Module versions can now hold a `localalias` field that is used to backreference for StartNewModule("originalfilename").
  • NWSync: Better support for repository-side statistics.
  • NWSync: Hide modules, campaigns and adverts with empty name labels.
  • NWSync: Don't reject repository.json if advert buttons have empty labels and URLs.
  • Launch Game UI/Repo Manager: Fixed "Show Advert" checkbox label being cut off.
  • Launch Game UI: Fixed "Advert" panel type displaying a STRREF instead of text when no label is defined in repository.json.

Scriptable UI
  • Nui: Fixed crash when calling SetGroupLayout() with invalid data.
  • Nui: Fixed scrollbar size for textedit.
  • Nui: Text can now override border and scrollbars properties.
  • Nui: Fixed draw_list scissoring breaking succeeding widget rendering.
  • Nui: Fixed draw_list scissoring leaving a stale scissor on the GL stack for nested widgets.
  • Nui: Fixed entries in a list view not scissoring draw_list correctly when scrolling out of view.
  • Nui: list(): Fixed textedit() widget not working in lists.
  • Nui: list(): Scrollbars now configurable.
  • Nui: list(): Fix spacers not advancing row layout correctly.
  • Nui: Never allow binds to update during construction. This fixes list() array binds degrading to scalar values, among other.
  • Nui: textedit(): Fixed placeholder sometimes rendering on the succeeding widget instead.
  • Nui: textedit(): Fixed range event triggering too often or with wrong values.
  • Nui: Added demo code for spreadsheet UI.
  • Nui: Fixed "list" widget not showing a vertical scrollbar in AUTO mode.


Premium Modules
Tyrants of the Moonsea: Fixed ship's cabin navigation map occasionally disabling erroneously.

New Script Commands
// Returns the number of script instructions remaining for the currently-running script.
// Once this value hits zero, the script will abort with TOO MANY INSTRUCTIONS.
// The instruction limit is configurable by the user, so if you have a really long-running
// process, this value can guide you with splitting it up into smaller, discretely schedulable parts.
// Note: Running this command and checking/handling the value also takes up some instructions.
int GetScriptInstructionsRemaining();

// Returns a modified copy of jArray with the value order changed according to nTransform:
// * JSON_ARRAY_SORT_ASCENDING, JSON_ARRAY_SORT_DESCENDING
// Sorting is dependent on the type and follows json standards (.e.g. 99 < "100").
// * JSON_ARRAY_SHUFFLE
// Randomises the order of elements.
// * JSON_ARRAY_REVERSE
// Reverses the array.
// * JSON_ARRAY_UNIQUE
// Returns a modified copy of jArray with duplicate values removed.
// Coercable but different types are not considered equal (e.g. 99 != "99"); int/float equivalence however applies: 4.0 == 4.
// Order is preserved.
// * JSON_ARRAY_COALESCE
// Returns the first non-null entry. Empty-ish values (e.g. "", 0) are not considered null, only the json scalar type.
json JsonArrayTransform(json jArray, int nTransform);

// Returns the nth-matching index or key of jNeedle in jHaystack.
// Supported haystacks: object, array
// Ordering behaviour for objects is unspecified.
// Return null when not found or on any error.
json JsonFind(json jHaystack, json jNeedle, int nNth = 0, int nConditional = JSON_FIND_EQUAL);

// Returns a copy of the range (nBeginIndex, nEndIndex) inclusive of jArray.
// Negative nEndIndex values count from the other end.
// Out-of-bound values are clamped to the array range.
// Examples:
// json a = JsonParse("[0, 1, 2, 3, 4]");
// JsonArrayGetRange(a, 0, 1) // => [0, 1]
// JsonArrayGetRange(a, 1, -1) // => [1, 2, 3, 4]
// JsonArrayGetRange(a, 0, 4) // => [0, 1, 2, 3, 4]
// JsonArrayGetRange(a, 0, 999) // => [0, 1, 2, 3, 4]
// JsonArrayGetRange(a, 1, 0) // => []
// JsonArrayGetRange(a, 1, 1) // => [1]
// Returns a null type on error, including type mismatches.
json JsonArrayGetRange(json jArray, int nBeginIndex, int nEndIndex);

// Returns the result of a set operation on two arrays.
// Operations:
// * JSON_SET_SUBSET (v <= o):
// Returns true if every element in jValue is also in jOther.
// * JSON_SET_UNION (v | o):
// Returns a new array containing values from both sides.
// * JSON_SET_INTERSECT (v & o):
// Returns a new array containing only values common to both sides.
// * JSON_SET_DIFFERENCE (v - o):
// Returns a new array containing only values not in jOther.
// * JSON_SET_SYMMETRIC_DIFFERENCE (v ^ o):
// Returns a new array containing all elements present in either array, but not both.
json JsonSetOp(json jValue, int nOp, json jOther);

// Returns the column name of s2DA at nColumn index (starting at 0).
// Returns "" if column nColumn doesn't exist (at end).
string Get2DAColumn(string s2DA, int nColumnIdx);

// Returns the number of defined rows in the 2da s2DA.
int Get2DARowCount(string s2DA);
 
Joined
Aug 29, 2020
Messages
10,165
Location
Good old Europe
Just an FYI this is a developer patch - basically what they call their betas.

But as you can see there's some neat stuff coming down the pipe.
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
I'm surprised as the last update hinted tech support was coming to an end. They did say a few small patches might get released and that was it for the game though.
 
Joined
Oct 1, 2010
Messages
36,194
Location
Spudlandia
Just an FYI this is a developer patch - basically what they call their betas.

But as you can see there's some neat stuff coming down the pipe.

I know, when I saw the new dev features I thought you might be interested. Though you probably knew it before me. ;) And maybe @Couchpotato;, but I think you're not developing modules anymore?
 
Joined
Aug 29, 2020
Messages
10,165
Location
Good old Europe
I know, when I saw the new dev features I thought you might be interested. Though you probably knew it before me. ;) And maybe @Couchpotato, but I think you're not developing modules anymore?
Nope I fiddle around with the mod tool sometimes but the spark to create is gone. Same with NWN 2. Still one of their updates had news that updates were slowing down.

Maybe I'm just losing my mind lately with all the news.:biggrin:
 
Joined
Oct 1, 2010
Messages
36,194
Location
Spudlandia
From what I remember from previous Beamdog releases, when the end of patches draws close you can expect quite a few to land. I suspect this will happen here as well, to the benefit of us all.
 
Joined
Oct 18, 2011
Messages
18,808
Location
Holly Hill, FL.
My bad, this was an official release. I knew they did a Dev build with the same number. It seems to have updated my Steam version without me even noticing.

There is one thing that is interesting to builders that is coming down the pipe. Its not the earth shattering kaboom out of nowhere that the HD texture pack is or the NUI though - just really good for builders.
I've signed up for a beta version. I'd tell you more but I don't know if they wouldn't like it until its official and I don't know if they'd want me too.

Niv, Soren, guys like that I can say will keep building on this as they have for years even without a paycheque.
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
My bad, this was an official release. I knew they did a Dev build with the same number. It seems to have updated my Steam version without me even noticing.

There is one thing that is interesting to builders that is coming down the pipe. Its not the earth shattering kaboom out of nowhere that the HD texture pack is or the NUI though - just really good for builders.
I've signed up for a beta version. I'd tell you more but I don't know if they wouldn't like it until its official and I don't know if they'd want me too.

Niv, Soren, guys like that I can say will keep building on this as they have for years even without a paycheque.
No problem if they asked you to agree to an NDA, I don't think there are still many who develop modules here except you anyway :)
 
Last edited:
Joined
Aug 29, 2020
Messages
10,165
Location
Good old Europe
When I tested for Beamdog several years ago, they were pretty strict about people keeping to the NDA's. I'm not even sure exactly how they policed the business, yet they did seem to catch most of the culprits.
 
Joined
Oct 18, 2011
Messages
18,808
Location
Holly Hill, FL.
It's pretty simple to me, if you sign/agree to the NDA, you keep your yap shut. If you don't wish to do that, then abstain from testing. There's no grey here at all.
 
Joined
Oct 18, 2011
Messages
18,808
Location
Holly Hill, FL.
Back
Top Bottom