MightyScript: Pick From List
I have been trying to get the action "Pick From List" to work, and after multiple tests with different types of lists, I can't figure it out. When looking at the debug vars, the output lists are either filled with negative numbers or never populated with the input data.
For example, 3 world object lists: List1 has 3 tiles preselected ("tile1","tile2","tile3"), List2 has 3 different tiles preselected ("tile4","tile5","tile6"), List3 has nothing in it. Run a looping script that increases the index and "picks" from List1 (input list) and "adds" to List2 (output list). Also another pick action that uses List1 (input list) and "adds" to List3 (output list). Neither List2 or List3 will change.
However, if you use a string list as the output, then it sort've works... the string list gets values added to it, but the values don't seem to represent anything. ie. Same List data as above, but now you also have List4 which is a string list with values ("String1","String2"). When you run the script picking from List1 and add/output to List4, you get something like this (in the debug var console): (String1,String2,-2147481376,-2147481434,-2147481539).
See attached test map / log. Click the door next to the dungeon heart (with brimstone blocks near it; "door5" in the scripts). Look at the vars for string 36 (string list with -numbers) or test string (string list with -numbers) and compare to pick test (world object list which didn't get "added" too like the string list).
Also, what started this entire thing was my interest with string lists (since each string within a stringlist is labeled as "List 1", "List 2", etc) as I wanted to see if I could create a multidimensional list/array by putting the list IDs in a string list and using pick from list to select the world object lists by their list id and adding them into a temp array/list.
ie. String List = "10, 11, 12"; World Object Lists have the IDs 10, 11, 12 and each list contains some tiles in them. Thus I could 'pick from list' on the string list with index=0 which returns "10" and gets "list where id=10", store/set that in a temp (empty) list and loop through the temp list and perform actions on each cell.