I feel that the Linden scripting language could benefit strongly from the addition of an "Object" variable type, which basically encompasses all variables (ie an integer is an object, so is a vector, a float etc, all can be handled under this heading if you do not know which data type you will have, or wish to work with several via the same function).
In this way instead of being forced to pass only integers, keys or strings to linked objects through the llMessageLinked command, I could pass a single object; or if it allowed multiple variable syntax several, like llMessageLinked(linknum, Object1, Object2...ObjectX).
It's just that I've created an object I want users to be able to click on and change the colour of easily, but it has lots of primitives. So each primitive would have a function to change it's colour, but this requires a vector or a float. With this implimented I could simply pass one of the two as an object.
Now the obvious consideration is that this would require me to make sure I know what object I am going to receive (either a floar or a vector). But this could be handled by a set of comprehensive Object2Type and isObjectType functions. Object2Vector would take any numeric information and convert it into a vector, or return a null vector in the case of a string with no digits. isObjectString would return true (or integer 1) if the object is a string.
This would REALLY help scripting out quite a bit, as it's a very restrictive limitation.
In this way instead of being forced to pass only integers, keys or strings to linked objects through the llMessageLinked command, I could pass a single object; or if it allowed multiple variable syntax several, like llMessageLinked(linknum, Object1, Object2...ObjectX).
It's just that I've created an object I want users to be able to click on and change the colour of easily, but it has lots of primitives. So each primitive would have a function to change it's colour, but this requires a vector or a float. With this implimented I could simply pass one of the two as an object.
Now the obvious consideration is that this would require me to make sure I know what object I am going to receive (either a floar or a vector). But this could be handled by a set of comprehensive Object2Type and isObjectType functions. Object2Vector would take any numeric information and convert it into a vector, or return a null vector in the case of a string with no digits. isObjectString would return true (or integer 1) if the object is a string.
This would REALLY help scripting out quite a bit, as it's a very restrictive limitation.
It also occurs to me that it would be possible to add this in without damaging any extra functions when you think about it, for example:
llMessageLinked(integer linkNum, integer num, string msg, key id);
Can be converted to:
llMessageLinked(integer linkNum, Objects);
Since 'Objects' could be any combination of items, any existing script which sent the original information (num, string and id) would still be accepted, as these would be three objects.
Since the corresponding link_message() event would be looking for these, they would correspond directly without error, but the functionality is there ready to be used!
If the llMessageLinked had only a single object then it would still work, as the link_message event would simply assume null values for anything it expects, that the llMessageLinked function does not provide (ie if it expects more variables than were provided).
If it receives more objects than it wants, then it would simply ignore the rest.
In this way it wouldn't even break existing scripts!
So if you think the idea has merit, then please vote for it by clicking here so we can get this sucker into the game

You can easily dump the list into a string (with llDumpList2String), send the string by link message, then unpack it in the child prim (with llParseString2List).