Difference between revisions of "ListCast"
Jump to navigation
Jump to search
m |
|||
Line 3: | Line 3: | ||
|func_desc=Iterates through the contents of a list, producing a resulting list whose contents are cast to a single type. Please refer to [[LlGetListEntryType|llGetListEntryType()]] for valid types. This function is useful for converting a list to a type which is more memory efficient, or to a type that you know you are going to access a lot (in order to remove extra casting later-on). | |func_desc=Iterates through the contents of a list, producing a resulting list whose contents are cast to a single type. Please refer to [[LlGetListEntryType|llGetListEntryType()]] for valid types. This function is useful for converting a list to a type which is more memory efficient, or to a type that you know you are going to access a lot (in order to remove extra casting later-on). | ||
|return_type=list | |return_type=list | ||
|return_text= | |return_text=whose contents are all one type. | ||
|p1_type=list|p1_name=mixedList|p1_desc=The list to cast, its contents may be anything. | |p1_type=list|p1_name=mixedList|p1_desc=The list to cast, its contents may be anything. | ||
|p2_type=integer|p2_name=type|p2_desc=The type of variable to cast all entries to. | |p2_type=integer|p2_name=type|p2_desc=The type of variable to cast all entries to. |
Revision as of 07:38, 20 January 2009
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: list listCast( list mixedList, integer type );
Iterates through the contents of a list, producing a resulting list whose contents are cast to a single type. Please refer to llGetListEntryType() for valid types. This function is useful for converting a list to a type which is more memory efficient, or to a type that you know you are going to access a lot (in order to remove extra casting later-on).
Returns a list whose contents are all one type.
• list | mixedList | – | The list to cast, its contents may be anything. | |
• integer | type | – | The type of variable to cast all entries to. |
Examples
Implementation
<lsl>list listCast(list mixedList, integer type) {
list result = []; integer x = mixedList != [];
if (type == TYPE_INTEGER) while ((--x) >= 0) result = [llList2Integer(mixedList, x)] + result; else if (type == TYPE_FLOAT) while ((--x) >= 0) result = [llList2Float(mixedList, x)] + result; else if (type == TYPE_VECTOR) while ((--x) >= 0) result = [(vector)llList2String(mixedList, x)] + result; else if (type == TYPE_ROTATION) while ((--x) >= 0) result = [(rotation)llList2String(mixedList, x)] + result; else if (type == TYPE_STRING) while ((--x) >= 0) result = [llList2String(mixedList, x)] + result; else if (type == TYPE_KEY) while ((--x) >= 0) result = [llList2Key(mixedList, x)] + result; else result = mixedList;
return result;
}</lsl>