/proc/bitfield_to_list(bitfield = 0, list/wordlist) var/list/return_list = list() if(islist(wordlist)) var/max = min(wordlist.len, 24) var/bit = 1 for(var/i in 1 to max) if(bitfield & bit) return_list += wordlist[i] bit = bit << 1 else for(var/bit_number = 0 to 23) var/bit = 1 << bit_number if(bitfield & bit) return_list += bit return return_list