This is a refiling of BUG-232631
Used to get or set multiple specific links with a single PrimParameters call with finer control that would be allowed with the existing LINK_* numbers and with better efficiency than targeting each link with PRIM_LINK_TARGET. Since we cannot have lists within lists, I propose this constant takes a string parameter which itself is a CSV (comma separated value) list of link numbers.
PIRM_LINK_SUBSET, string comma_separated_string_of_link_targets
If a nonexistant link target is specified, it is silently ignored (similar to how PRIM_LINK_TARGET ignores numbers outside the current linkset). If an invalid character (anything other than a number or comma) is used in the string, a runtime error is thrown.
Sample use case: a user wants to change the prim size of links 1, 5, and 8 within the linkset to all be the SAME value.
The current approach requires repeating the same parameters for each link target and results in duplicate list data. This has the potential to become very wasteful if the set of parameters is large or complex...
llSetLinkPrimitiveParamsFast(1, [ PRIM_SIZE, <1,1,1>, PRIM_LINK_TARGET, 5, PRIM_SIZE, <1,1,1>, PRIM_LINK_TARGET, 8, PRIM_SIZE, <1,1,1>] );
Under this feature suggestion, the parameters need not be duplicated for each individual link target. This results in a smaller and more efficient list...
llSetPrimitiveParams( [ PRIM_LINK_SUBSET, "1,5,8", PRIM_SIZE, <1,1,1> ] );
I feel this is important because it enhances how creators can apply the same set of parameters to a subset of links without having to duplicate said parameters for each link target. This would result in much more efficient lists for this use case.
Just to clarify: The intent of this suggestion to to enable applying the SAME set of parameters to multiple links without needing to duplicate said parameters for each target link.
Thank you for any consideration.