I did a bit of work last night on an ordered list function that would organize my list in a correct, human-readable order for dialogs (given LSL’s method of stacking dialog list buttons backward), split it up into multiple pages, and put nav (”<<" and ">>” buttons in the list). It’s not perfect yet (I need to put in some adjustments to remove unnecessary nav buttons, etcetera), but I thought I’d post it here for anybody who’s had the same issue:
list Ordered(list items)
{
list temp_list;
integer n;
for(n=0;n< llGetListLength(items);n+=10)
{
list temp_strided = llListInsertList(llList2List(items,n,n+9),["<<"], llGetListLength(llList2List(items,n,n+9))-1)+[">>"];
integer i;
for (i=0;i< llGetListLength(temp_strided);i+=3)
temp_strided = llListInsertList(llDeleteSubList(temp_strided,-3,-1), llList2List(temp_strided,-3,-1),i);
temp_list += temp_strided;
}
return temp_list;
}
If you’re still unclear on what I mean by “human-readable,” I mean that if you were to use this on a list of letters in alphabetical order (["A","B","C"...]), it would produce the buttons in correct alphabetical order, with pagination to the next set.
