I'd be interested to see how you setup set HPOVListManager in regards to this statement:
set HPOVListManager.inputList to HPOVVisionModeBList
Correct me if I'm wrong, but it looks like you set a quest variable to a form list. That would be news to me. Could you post the relavent quest script or the like? I am baffled as to how you did this.
It's one way to create callable functions (the other would be using onactivate, but I prefer stage functions). In case you didn't know it it's explained in the oblivion cs wiki somewhere (stage functions).
Since I'm using a lot of lists (and lists of lists), HPOVListManager contains utility functions for that. The quest script only contains the input/output parameters of the functions:
scn HPOVListManagerScript; - Permanent lists -; Stage 0 - For given list of lists and element, get the index of the first list containing element, or -1; Stage 1 - For given list of lists, element and index, save element in list at index and remove it from all other lists; Stage 2 - For given list of lists, element and index, remove element from list at index; Stage 3 - For given list of lists, element and index, add element to list at index; Stage 4 - For given list of lists, element and index, check if the element is in list at index; Stage 5 - For given list of lists, element, remove element from all lists; - Transient actor lists -; Stage 10 - For given list, delete all elements from input list; Stage 11 - For given lists, move all elements from input list to output list; Stage 12 - For given list and actor, is actor in list; In/Outref elementref inputListref outputListshort indexshort found
One example for a stage script (stage 12):
; Is element in list; Local Varsshort ishort sizeref inputListref elementref currentElement; Read & Clear Inputset inputList to HPOVListManager.inputListset element to HPOVListManager.elementset HPOVListManager.inputList to 0set HPOVListManager.element to 0set HPOVListManager.found to 0set i to 0set size to (listGetCount inputList)label 1if i <= size set currentElement to listGetNthForm inputList i if currentElement == element set HPOVListManager.found to 1 return endif set i to i + 1 goto 1endifset HPOVListManager.found to 0
To see everything in context you can download the latest released version of the mod where this is used: http://fallout3nexus.com/downloads/file.php?id=11474
This doesn't contain the improved shader tracking yet though, but the ListManager is used for other stuff as well.
I hope this was indeed your question, and not just why a formlist can be assigned to a ref variable. For that I'd say that basically anything with a distinct formid can be assigned to a ref variable.