Jump to content

MCGUFIN

  • entries
    9
  • comments
    0
  • views
    462

Array Utilites


Monoman1

64 views

Massive library of native array functions and I'm still fleshing out types and adding new function types.

There's so many now that I recently had to split _MGF_Array to _MGF_ArrayCreate, _MGF_ArrayEdit, _MGF_ArrayQuery due to function declaration overload...

 

Super boring but also extremely useful. 

 

_MGF_ArrayCreate:

Spoiler
Scriptname _MGF_ArrayCreate Hidden

;/	
	Advise 'import'ing all three array scripts for easy access. 
	That way you don't need to remember which function is in which script. 
	
	Import _MGF_ArrayCreate
	Import _MGF_ArrayEdit
	Import _MGF_ArrayQuery
/;

; Array Create ==========================================================================
; Returns a new array of the specified size and fill. 
; Works with size = 0. Handy if you need to call a function with an empty array. 
; SomeFunctionThatNeedsEmptyArray(_MGF_ArrayCreate.ArrayFactionCreate(0))
; Or just create a single length array with a certain value:
; SomeFunctionThatNeedsAOneElementArray(_MGF_ArrayCreate.ArrayKeywordCreate(1, VendorItemArmor))
Bool[] Function ArrayBoolCreate(Int size, Bool Fill = false, bool Randomize = false) Global Native
Int[] Function ArrayIntCreate(Int Size, Int Fill = 0, Bool Randomize = false, Int RandomMin = 0, Int RandomMax = 100) Global Native
Float[] Function ArrayFloatCreate(Int Size, Float Fill = 0.0, Bool Randomize = false, Float RandomMin = 0.0, Float RandomMax = 1.0) Global Native
String[] Function ArrayStringCreate(Int Size, String Fill = "", Bool Randomize = false) Global Native
Form[] Function ArrayFormCreate(Int Size, Form Fill = None) Global Native
ObjectReference[] Function ArrayRefCreate(Int Size = 0, ObjectReference Fill = None) Global Native
Actor[] Function ArrayActorCreate(Int Size = 0, Actor Fill = None) Global Native
ActorBase[] Function ArrayActorBaseCreate(Int Size = 0, ActorBase Fill = None) Global Native
Faction[] Function ArrayFactionCreate(Int Size = 0, Faction Fill = None) Global Native
Weapon[] Function ArrayWeaponCreate(Int Size = 0, Weapon Fill = None) Global Native
Armor[] Function ArrayArmorCreate(Int Size = 0, Armor Fill = None) Global Native
ArmorAddon[] Function ArrayArmorAddonCreate(Int Size = 0, ArmorAddon Fill = None) Global Native
Spell[] Function ArraySpellCreate(Int Size = 0, Spell Fill = None) Global Native
MagicEffect[] Function ArrayMagicEffectCreate(Int Size = 0, MagicEffect Fill = None) Global Native
Enchantment[] Function ArrayEnchantmentCreate(Int Size = 0, Enchantment Fill = None) Global Native
Potion[] Function ArrayPotionCreate(Int Size = 0, Potion Fill = None) Global Native
Ingredient[] Function ArrayIngredientCreate(Int Size = 0, Ingredient Fill = None) Global Native
Keyword[] Function ArrayKeywordCreate(Int Size = 0, Keyword Fill = None) Global Native
Location[] Function ArrayLocationCreate(Int Size = 0, Location Fill = None) Global Native
GlobalVariable[] Function ArrayGlobalCreate(Int Size = 0, GlobalVariable Fill = None) Global Native
Book[] Function ArrayBookCreate(Int Size = 0, Book Fill = None) Global Native
MiscObject[] Function ArrayMiscObjectCreate(Int Size = 0, MiscObject Fill = None) Global Native
Ammo[] Function ArrayAmmoCreate(Int Size = 0, Ammo Fill = None) Global Native
Race[] Function ArrayRaceCreate(Int Size = 0, Race Fill = None) Global Native
Quest[] Function ArrayQuestCreate(Int Size = 0, Quest Fill = None) Global Native
Perk[] Function ArrayPerkCreate(Int Size = 0, Perk Fill = None) Global Native
Cell[] Function ArrayCellCreate(Int Size = 0, Cell Fill = None) Global Native
ConstructibleObject[] Function ArrayCobjCreate(Int Size = 0, ConstructibleObject Fill = None) Global Native
FormList[] Function ArrayFormListCreate(Int size = 0, FormList fillValue = None) Global Native


; Array Conversion ======================================================================
; Convert an array from Form to x. Or x to Form. Handy for storing or pulling information from StorageUtil which only works on type Form[]
; Also useful if you need to run any array operations on a non-form type array.
; Eg: Convert 2 actor arrays to form arrays. Merge them. Deduplicate them. And then convert back to an actor array. 
; (I've since added full type coverage for Merge and Unique but you get the idea)
; Automatically removes any 'Nones' (either Nones passed in or that don't survive casting to the desired type. 
; filterDisabled - Remove disabled ObjRefs / Actors from the returned array
; filterDead - Remove dead actors from the returned array

ObjectReference[] Function FormsToRefs(Form[] akForms, Bool FilterDisabled = true, Bool FilterDead = true) Global Native
Actor[] Function FormsToActors(Form[] akForms, Bool FilterDisabled = true, Bool FilterDead = true) Global Native
ActorBase[] Function FormsToActorBases(Form[] akForms) Global Native
Faction[] Function FormsToFactions(Form[] akForms) Global Native
Weapon[] Function FormsToWeapons(Form[] akForms) Global Native
Armor[] Function FormsToArmor(Form[] akForms) Global Native
ArmorAddon[] Function FormsToArmorAddons(Form[] akForms) Global Native
Spell[] Function FormsToSpells(Form[] akForms) Global Native
MagicEffect[] Function FormsToMagicEffects(Form[] akForms) Global Native
Enchantment[] Function FormsToEnchantments(Form[] akForms) Global Native
Potion[] Function FormsToPotions(Form[] akForms) Global Native
Ingredient[] Function FormsToIngredients(Form[] akForms) Global Native
Keyword[] Function FormsToKeywords(Form[] akForms) Global Native
Location[] Function FormsToLocations(Form[] akForms) Global Native
GlobalVariable[] Function FormsToGlobals(Form[] akForms) Global Native
Book[] Function FormsToBooks(Form[] akForms) Global Native
MiscObject[] Function FormsToMiscObjects(Form[] akForms) Global Native
Ammo[] Function FormsToAmmo(Form[] akForms) Global Native
Race[] Function FormsToRaces(Form[] akForms) Global Native
Quest[] Function FormsToQuests(Form[] akForms) Global Native
Perk[] Function FormsToPerks(Form[] akForms) Global Native
Cell[] Function FormsToCells(Form[] akForms) Global Native
ConstructibleObject[] Function FormsToCobjs(Form[] akForms) Global Native
FormList[] Function FormsToFormLists(Form[] akForms) Global Native

Form[] Function RefsToForms(ObjectReference[] ObjRefs, Bool FilterDisabled = true, Bool FilterDead = true) Global Native
Form[] Function ActorsToForms(Actor[] akActors, Bool FilterDisabled = true, Bool FilterDead = true) Global Native
Form[] Function ActorBasesToForms(ActorBase[] akBases) Global Native
Form[] Function FactionsToForms(Faction[] akFactions) Global Native
Form[] Function WeaponsToForms(Weapon[] akWeapons) Global Native
Form[] Function ArmorToForms(Armor[] akArmors) Global Native
Form[] Function ArmorAddonsToForms(ArmorAddon[] akArmorAddons) Global Native
Form[] Function SpellsToForms(Spell[] akSpells) Global Native
Form[] Function MagicEffectsToForms(MagicEffect[] akEffects) Global Native
Form[] Function EnchantmentsToForms(Enchantment[] akEnchantments) Global Native
Form[] Function PotionsToForms(Potion[] akPotions) Global Native
Form[] Function IngredientsToForms(Ingredient[] akIngredients) Global Native
Form[] Function KeywordsToForms(Keyword[] akKeywords) Global Native
Form[] Function LocationsToForms(Location[] akLocations) Global Native
Form[] Function GlobalsToForms(GlobalVariable[] akGlobals) Global Native
Form[] Function BooksToForms(Book[] akBooks) Global Native
Form[] Function MiscObjectsToForms(MiscObject[] akMiscObjects) Global Native
Form[] Function AmmoToForms(Ammo[] akAmmo) Global Native
Form[] Function RacesToForms(Race[] akRaces) Global Native
Form[] Function QuestsToForms(Quest[] akQuests) Global Native
Form[] Function PerksToForms(Perk[] akPerks) Global Native
Form[] Function CellsToForms(Cell[] akCells) Global Native
Form[] Function CobjsToForms(ConstructibleObject[] akRecipes) Global Native
Form[] Function FormListsToForms(FormList[] akFormLists) Global Native

; Two special case conversions
ObjectReference[] Function ActorsToRefs(Actor[] akActors) Global Native
Actor[] Function RefsToActors(ObjectReference[] ObjRefs, Bool FilteredDisabled = true, Bool FilterDead = true) Global Native

 

 

_MGF_ArrayEdit: 

Spoiler
Scriptname _MGF_ArrayEdit Hidden

;/	
	Advise 'import'ing all three array scripts for easy access. 
	That way you don't need to remember which function is in which script. 
	
	Import _MGF_ArrayCreate
	Import _MGF_ArrayEdit
	Import _MGF_ArrayQuery
/;

; Array Sanitize =========================================================================
; Removes None entries from an array. 
; Additional parameters for Refs & Actors. 
Form[] Function ArrayFormSanitize(Form[] Input) Global Native
ObjectReference[] Function ArrayRefSanitize(ObjectReference[] Input, Bool FilterDisabled = true) Global Native
Actor[] Function ArrayActorSanitize(Actor[] Input, Bool FilterDisabled = true, Bool FilterDead = true) Global Native
ActorBase[] Function ArrayActorBaseSanitize(ActorBase[] Input) Global Native
Faction[] Function ArrayFactionSanitize(Faction[] Input) Global Native
Weapon[] Function ArrayWeaponSanitize(Weapon[] Input) Global Native
Armor[] Function ArrayArmorSanitize(Armor[] Input) Global Native
ArmorAddon[] Function ArrayArmorAddonSanitize(ArmorAddon[] Input) Global Native
Spell[] Function ArraySpellSanitize(Spell[] Input) Global Native
MagicEffect[] Function ArrayMagicEffectSanitize(MagicEffect[] Input) Global Native
Enchantment[] Function ArrayEnchantmentSanitize(Enchantment[] Input) Global Native
Potion[] Function ArrayPotionSanitize(Potion[] Input) Global Native
Ingredient[] Function ArrayIngredientSanitize(Ingredient[] Input) Global Native
Keyword[] Function ArrayKeywordSanitize(Keyword[] Input) Global Native
Location[] Function ArrayLocationSanitize(Location[] Input) Global Native
GlobalVariable[] Function ArrayGlobalSanitize(GlobalVariable[] Input) Global Native
Book[] Function ArrayBookSanitize(Book[] Input) Global Native
MiscObject[] Function ArrayMiscObjectSanitize(MiscObject[] Input) Global Native
Ammo[] Function ArrayAmmoSanitize(Ammo[] Input) Global Native
Race[] Function ArrayRaceSanitize(Race[] Input) Global Native
Quest[] Function ArrayQuestSanitize(Quest[] Input) Global Native
Perk[] Function ArrayPerkSanitize(Perk[] Input) Global Native
Cell[] Function ArrayCellSanitize(Cell[] Input) Global Native
ConstructibleObject[] Function ArrayCobjSanitize(ConstructibleObject[] Input) Global Native
FormList[] Function ArrayFormListSanitize(FormList[] Input) Global Native


; Array Append ==========================================================================
; Append a new value to the end of the Input array.
Bool[] Function ArrayBoolAppend(Bool[] Input, Bool Value) Global Native
Int[] Function ArrayIntAppend(Int[] Input, Int Value) Global Native
Float[] Function ArrayFloatAppend(Float[] Input, Float Value) Global Native
String[] Function ArrayStringAppend(String[] Input, String Value) Global Native
Form[] Function ArrayFormAppend(Form[] Input, Form Value) Global Native
ObjectReference[] Function ArrayRefAppend(ObjectReference[] Input, ObjectReference Value) Global Native
Actor[] Function ArrayActorAppend(Actor[] Input, Actor Value) Global Native
ActorBase[] Function ArrayActorBaseAppend(ActorBase[] Input, ActorBase Value) Global Native
Faction[] Function ArrayFactionAppend(Faction[] Input, Faction Value) Global Native
Weapon[] Function ArrayWeaponAppend(Weapon[] Input, Weapon Value) Global Native
Armor[] Function ArrayArmorAppend(Armor[] Input, Armor Value) Global Native
ArmorAddon[] Function ArrayArmorAddonAppend(ArmorAddon[] Input, ArmorAddon Value) Global Native
Spell[] Function ArraySpellAppend(Spell[] Input, Spell Value) Global Native
MagicEffect[] Function ArrayMagicEffectAppend(MagicEffect[] Input, MagicEffect Value) Global Native
Enchantment[] Function ArrayEnchantmentAppend(Enchantment[] Input, Enchantment Value) Global Native
Potion[] Function ArrayPotionAppend(Potion[] Input, Potion Value) Global Native
Ingredient[] Function ArrayIngredientAppend(Ingredient[] Input, Ingredient Value) Global Native
Keyword[] Function ArrayKeywordAppend(Keyword[] Input, Keyword Value) Global Native
Location[] Function ArrayLocationAppend(Location[] Input, Location Value) Global Native
GlobalVariable[] Function ArrayGlobalAppend(GlobalVariable[] Input, GlobalVariable Value) Global Native
Book[] Function ArrayBookAppend(Book[] Input, Book Value) Global Native
MiscObject[] Function ArrayMiscObjectAppend(MiscObject[] Input, MiscObject Value) Global Native
Ammo[] Function ArrayAmmoAppend(Ammo[] Input, Ammo Value) Global Native
Race[] Function ArrayRaceAppend(Race[] Input, Race Value) Global Native
Quest[] Function ArrayQuestAppend(Quest[] Input, Quest Value) Global Native
Perk[] Function ArrayPerkAppend(Perk[] Input, Perk Value) Global Native
Cell[] Function ArrayCellAppend(Cell[] Input, Cell Value) Global Native
ConstructibleObject[] Function ArrayCobjAppend(ConstructibleObject[] Input, ConstructibleObject Value) Global Native
FormList[] Function ArrayFormListAppend(FormList[] array, FormList element) Global Native


; Array Insert ==========================================================================
; These functions take an input array and insert 'Value' at 'Index' of array 'Input'
; Replace: True: Simply replaces value at index. Array size remains the same. 
; Replace: False: Doesn't replace the value at 'index'. Pushes all values from Index
; forward by 1 and inserts 'value' at 'index'. Array size += 1
; Returns the modified array. 
; Attempting to add an element at > array.length will just append it to the end. 
Bool[] Function ArrayBoolInsert(Bool[] Input, Int Index, Bool Value, Bool Replace = true) Global Native
Int[] Function ArrayIntInsert(Int[] Input, Int Index, Int Value, Bool Replace) Global Native
Float[] Function ArrayFloatInsert(Float[] Input, Int Index, Float Value, Bool Replace) Global Native
String[] Function ArrayStringInsert(String[] Input, Int Index, String Value, Bool Replace) Global Native
Form[] Function ArrayFormInsert(Form[] Input, Int Index, Form Value, Bool Replace) Global Native


; Array Pluck ===========================================================================
; Removes the element at 'Index' and returns the shortened array. 
Bool[] Function ArrayBoolPluck(Bool[] Input, Int Index) Global Native
Int[] Function ArrayIntPluck(Int[] Input, Int Index) Global Native
Float[] Function ArrayFloatPluck(Float[] Input, Int Index) Global Native
String[] Function ArrayStringPluck(String[] Input, Int Index) Global Native
Form[] Function ArrayFormPluck(Form[] Input, Int Index) Global Native


; Array Remove ==========================================================================
; Remove occurences of 'Value' from the Input array.
; RemoveAll: True = Remove all occurences. False = Remove first hit. 
; Can also be used to remove all 'None's from an array.
Int[] Function ArrayIntRemove(Int[] Input, Int Value, Bool RemoveAll = True) Global Native
String[] Function ArrayStringRemove(String[] Input, String Value, Bool RemoveAll = True) Global Native
Form[] Function ArrayFormRemove(Form[] Input, Form Value, Bool RemoveAll = True) Global Native
ObjectReference[] Function ArrayRefRemove(ObjectReference[] Input, ObjectReference Value, Bool RemoveAll = True) Global Native
Actor[] Function ArrayActorRemove(Actor[] Input, Actor Value, Bool RemoveAll = True) Global Native
ActorBase[] Function ArrayActorBaseRemove(ActorBase[] Input, ActorBase Value, Bool RemoveAll = True) Global Native
Faction[] Function ArrayFactionRemove(Faction[] Input, Faction Value, Bool RemoveAll = True) Global Native
Weapon[] Function ArrayWeaponRemove(Weapon[] Input, Weapon Value, Bool RemoveAll = True) Global Native
Armor[] Function ArrayArmorRemove(Armor[] Input, Armor Value, Bool RemoveAll = True) Global Native
ArmorAddon[] Function ArrayArmorAddonRemove(ArmorAddon[] Input, ArmorAddon Value, Bool RemoveAll = True) Global Native
Spell[] Function ArraySpellRemove(Spell[] Input, Spell Value, Bool RemoveAll = True) Global Native
MagicEffect[] Function ArrayMagicEffectRemove(MagicEffect[] Input, MagicEffect Value, Bool RemoveAll = True) Global Native
Enchantment[] Function ArrayEnchantmentRemove(Enchantment[] Input, Enchantment Value, Bool RemoveAll = True) Global Native
Potion[] Function ArrayPotionRemove(Potion[] Input, Potion Value, Bool RemoveAll = True) Global Native
Ingredient[] Function ArrayIngredientRemove(Ingredient[] Input, Ingredient Value, Bool RemoveAll = True) Global Native
Keyword[] Function ArrayKeywordRemove(Keyword[] Input, Keyword Value, Bool RemoveAll = True) Global Native
Location[] Function ArrayLocationRemove(Location[] Input, Location Value, Bool RemoveAll = True) Global Native
GlobalVariable[] Function ArrayGlobalRemove(GlobalVariable[] Input, GlobalVariable Value, Bool RemoveAll = True) Global Native
Book[] Function ArrayBookRemove(Book[] Input, Book Value, Bool RemoveAll = True) Global Native
MiscObject[] Function ArrayMiscObjectRemove(MiscObject[] Input, MiscObject Value, Bool RemoveAll = True) Global Native
Ammo[] Function ArrayAmmoRemove(Ammo[] Input, Ammo Value, Bool RemoveAll = True) Global Native
Race[] Function ArrayRaceRemove(Race[] Input, Race Value, Bool RemoveAll = True) Global Native
Quest[] Function ArrayQuestRemove(Quest[] Input, Quest Value, Bool RemoveAll = True) Global Native
Perk[] Function ArrayPerkRemove(Perk[] Input, Perk Value, Bool RemoveAll = True) Global Native
Cell[] Function ArrayCellRemove(Cell[] Input, Cell Value, Bool RemoveAll = True) Global Native
ConstructibleObject[] Function ArrayCobjRemove(ConstructibleObject[] Input, ConstructibleObject Value, Bool RemoveAll = True) Global Native
FormList[] Function ArrayFormListRemove(FormList[] input, FormList value, Bool removeAll) Global Native


; Array Reverse =========================================================================
; Reverse the order of an array.
Bool[] Function ArrayBoolReverse(Bool[] Input) Global Native
Int[] Function ArrayIntReverse(Int[] Input) Global Native
Float[] Function ArrayFloatReverse(Float[] Input) Global Native
String[] Function ArrayStringReverse(String[] Input) Global Native
Form[] Function ArrayFormReverse(Form[] Input) Global Native


; Array Slice ===========================================================================
; Return a section of Input array starting at StartIndex and up to 'Len' length
Bool[] Function ArrayBoolSlice(Bool[] Input, Int StartIndex, Int Len) Global Native
Int[] Function ArrayIntSlice(Int[] Input, Int StartIndex, Int Len) Global Native
Float[] Function ArrayFloatSlice(Float[] Input, Int StartIndex, Int Len) Global Native
String[] Function ArrayStringSlice(String[] Input, Int StartIndex, Int Len) Global Native
Form[] Function ArrayFormSlice(Form[] Input, Int StartIndex, Int Len) Global Native


; Array Sort ============================================================================
; Sorts arrays numerically or alphabetically. In the case of forms, 'none's are dropped. 
Int[] Function ArrayIntSort(Int[] Input,  Bool Ascending = True) Global Native
Float[] Function ArrayFloatSort(Float[] Input,  Bool Ascending = True) Global Native
String[] Function ArrayStringSort(String[] Input,  Bool Ascending = True) Global Native
Form[] Function ArrayFormSort(Form[] akForms, Bool Ascending = True) Global Native


; Array Shuffle =========================================================================
; These functions just shuffle the elements around in your array randomly. 
; Handles empty arrays and single-element arrays gracefully. 
Bool[] Function ArrayBoolShuffle(Bool[] Input) Global Native
Int[] Function ArrayIntShuffle(Int[] Input) Global Native
Float[] Function ArrayFloatShuffle(Float[] Input) Global Native
String[] Function ArrayStringShuffle(String[] Input) Global Native
Form[] Function ArrayFormShuffle(Form[] Input) Global Native


; Array Merge ===========================================================================
; Append arr2 to the end of arr1 -> arr1 + arr2. 
Bool[] Function ArrayBoolMerge(Bool[] arr1, Bool[] arr2) Global Native
Int[] Function ArrayIntMerge(Int[] arr1, Int[] arr2) Global Native
Float[] Function ArrayFloatMerge(Float[] arr1, Float[] arr2) Global Native
String[] Function ArrayStringMerge(String[] arr1, String[] arr2) Global Native
Form[] Function ArrayFormMerge(Form[] arr1, Form[] arr2) Global Native
ObjectReference[] Function ArrayRefMerge(ObjectReference[] arr1, ObjectReference[] arr2) Global Native
Actor[] Function ArrayActorMerge(Actor[] arr1, Actor[] arr2) Global Native
ActorBase[] Function ArrayActorBaseMerge(ActorBase[] arr1, ActorBase[] arr2) Global Native
Faction[] Function ArrayFactionMerge(Faction[] arr1, Faction[] arr2) Global Native
Weapon[] Function ArrayWeaponMerge(Weapon[] arr1, Weapon[] arr2) Global Native
Armor[] Function ArrayArmorMerge(Armor[] arr1, Armor[] arr2) Global Native
ArmorAddon[] Function ArrayArmorAddonMerge(ArmorAddon[] arr1, ArmorAddon[] arr2) Global Native
Spell[] Function ArraySpellMerge(Spell[] arr1, Spell[] arr2) Global Native
MagicEffect[] Function ArrayMagicEffectMerge(MagicEffect[] arr1, MagicEffect[] arr2) Global Native
Enchantment[] Function ArrayEnchantmentMerge(Enchantment[] arr1, Enchantment[] arr2) Global Native
Potion[] Function ArrayPotionMerge(Potion[] arr1, Potion[] arr2) Global Native
Ingredient[] Function ArrayIngredientMerge(Ingredient[] arr1, Ingredient[] arr2) Global Native
Keyword[] Function ArrayKeywordMerge(Keyword[] arr1, Keyword[] arr2) Global Native
Location[] Function ArrayLocationMerge(Location[] arr1, Location[] arr2) Global Native
GlobalVariable[] Function ArrayGlobalMerge(GlobalVariable[] arr1, GlobalVariable[] arr2) Global Native
Book[] Function ArrayBookMerge(Book[] arr1, Book[] arr2) Global Native
MiscObject[] Function ArrayMiscObjectMerge(MiscObject[] arr1, MiscObject[] arr2) Global Native
Ammo[] Function ArrayAmmoMerge(Ammo[] arr1, Ammo[] arr2) Global Native
Race[] Function ArrayRaceMerge(Race[] arr1, Race[] arr2) Global Native
Quest[] Function ArrayQuestMerge(Quest[] arr1, Quest[] arr2) Global Native
Perk[] Function ArrayPerkMerge(Perk[] arr1, Perk[] arr2) Global Native
Cell[] Function ArrayCellMerge(Cell[] arr1, Cell[] arr2) Global Native
ConstructibleObject[] Function ArrayCobjMerge(ConstructibleObject[] arr1, ConstructibleObject[] arr2) Global Native
FormList[] Function ArrayFormListMerge(FormList[] array1, FormList[] array2) Global Native


; Index-wise coalesce - result[i] = arr1[i] if it's not "unset", else arr2[i].
; Unset = 'None' for 'form' types (Ref, Actor, Quest etc). String = "". For Int and float there is a configurable parameter. 
; Array length mismatch pads to the longest. 
; arr1 longer - fills arr1 values. 
; arr2 longer - fills arr2 values. 
Int[] Function ArrayIntBlend(Int[] arr1, Int[] arr2, Int UnsetValue) Global Native
Float[] Function ArrayFloatBlend(Float[] arr1, Float[] arr2, Float UnsetValue, Float afTolerance = 0.0) Global Native
String[] Function ArrayStringBlend(String[] arr1, String[] arr2) Global Native
Form[] Function ArrayFormBlend(Form[] arr1, Form[] arr2) Global Native

ObjectReference[] Function ArrayRefBlend(ObjectReference[] arr1, ObjectReference[] arr2) Global Native
Actor[] Function ArrayActorBlend(Actor[] arr1, Actor[] arr2) Global Native
ActorBase[] Function ArrayActorBaseBlend(ActorBase[] arr1, ActorBase[] arr2) Global Native
Faction[] Function ArrayFactionBlend(Faction[] arr1, Faction[] arr2) Global Native
Weapon[] Function ArrayWeaponBlend(Weapon[] arr1, Weapon[] arr2) Global Native
Armor[] Function ArrayArmorBlend(Armor[] arr1, Armor[] arr2) Global Native
ArmorAddon[] Function ArrayArmorAddonBlend(ArmorAddon[] arr1, ArmorAddon[] arr2) Global Native
Spell[] Function ArraySpellBlend(Spell[] arr1, Spell[] arr2) Global Native
MagicEffect[] Function ArrayMagicEffectBlend(MagicEffect[] arr1, MagicEffect[] arr2) Global Native
Enchantment[] Function ArrayEnchantmentBlend(Enchantment[] arr1, Enchantment[] arr2) Global Native
Potion[] Function ArrayPotionBlend(Potion[] arr1, Potion[] arr2) Global Native
Ingredient[] Function ArrayIngredientBlend(Ingredient[] arr1, Ingredient[] arr2) Global Native
Keyword[] Function ArrayKeywordBlend(Keyword[] arr1, Keyword[] arr2) Global Native
Location[] Function ArrayLocationBlend(Location[] arr1, Location[] arr2) Global Native
GlobalVariable[] Function ArrayGlobalBlend(GlobalVariable[] arr1, GlobalVariable[] arr2) Global Native
Book[] Function ArrayBookBlend(Book[] arr1, Book[] arr2) Global Native
MiscObject[] Function ArrayMiscObjectBlend(MiscObject[] arr1, MiscObject[] arr2) Global Native
Ammo[] Function ArrayAmmoBlend(Ammo[] arr1, Ammo[] arr2) Global Native
Race[] Function ArrayRaceBlend(Race[] arr1, Race[] arr2) Global Native
Quest[] Function ArrayQuestBlend(Quest[] arr1, Quest[] arr2) Global Native
Perk[] Function ArrayPerkBlend(Perk[] arr1, Perk[] arr2) Global Native
Cell[] Function ArrayCellBlend(Cell[] arr1, Cell[] arr2) Global Native
ConstructibleObject[] Function ArrayCobjBlend(ConstructibleObject[] akarr1, ConstructibleObject[] akarr2) Global Native
Formlist[] Function ArrayFormlistBlend(Formlist[] arr1, Formlist[] arr2) Global Native


; Array Difference ======================================================================
; Removes any occurence of any element of Exclude from input. Returns the remainder. 
Int[] Function ArrayIntDifference(Int[] Input, Int[] Exclude) Global Native
String[] Function ArrayStringDifference(String[] Input, String[] Exclude) Global Native
Form[] Function ArrayFormDifference(Form[] Input, Form[] Exclude) Global Native
ObjectReference[] Function ArrayRefDifference(ObjectReference[] Input, ObjectReference[] Exclude) Global Native
Actor[] Function ArrayActorDifference(Actor[] Input, Actor[] Exclude) Global Native
ActorBase[] Function ArrayActorBaseDifference(ActorBase[] Input, ActorBase[] Exclude) Global Native
Faction[] Function ArrayFactionDifference(Faction[] Input, Faction[] Exclude) Global Native
Weapon[] Function ArrayWeaponDifference(Weapon[] Input, Weapon[] Exclude) Global Native
Armor[] Function ArrayArmorDifference(Armor[] Input, Armor[] Exclude) Global Native
ArmorAddon[] Function ArrayArmorAddonDifference(ArmorAddon[] Input, ArmorAddon[] Exclude) Global Native
Spell[] Function ArraySpellDifference(Spell[] Input, Spell[] Exclude) Global Native
MagicEffect[] Function ArrayMagicEffectDifference(MagicEffect[] Input, MagicEffect[] Exclude) Global Native
Enchantment[] Function ArrayEnchantmentDifference(Enchantment[] Input, Enchantment[] Exclude) Global Native
Potion[] Function ArrayPotionDifference(Potion[] Input, Potion[] Exclude) Global Native
Ingredient[] Function ArrayIngredientDifference(Ingredient[] Input, Ingredient[] Exclude) Global Native
Keyword[] Function ArrayKeywordDifference(Keyword[] Input, Keyword[] Exclude) Global Native
Location[] Function ArrayLocationDifference(Location[] Input, Location[] Exclude) Global Native
GlobalVariable[] Function ArrayGlobalDifference(GlobalVariable[] Input, GlobalVariable[] Exclude) Global Native
Book[] Function ArrayBookDifference(Book[] Input, Book[] Exclude) Global Native
MiscObject[] Function ArrayMiscObjectDifference(MiscObject[] Input, MiscObject[] Exclude) Global Native
Ammo[] Function ArrayAmmoDifference(Ammo[] Input, Ammo[] Exclude) Global Native
Race[] Function ArrayRaceDifference(Race[] Input, Race[] Exclude) Global Native
Quest[] Function ArrayQuestDifference(Quest[] Input, Quest[] Exclude) Global Native
Perk[] Function ArrayPerkDifference(Perk[] Input, Perk[] Exclude) Global Native
Cell[] Function ArrayCellDifference(Cell[] Input, Cell[] Exclude) Global Native
ConstructibleObject[] Function ArrayCobjDifference(ConstructibleObject[] Input, ConstructibleObject[] Exclude) Global Native
FormList[] Function ArrayFormListDifference(FormList[] input, FormList[] remove) Global Native


; Array Unique ==========================================================================
; Removes all duplicates from the Input array. Order of occurence is unchanged.
Int[] Function ArrayIntUnique(Int[] Input) Global Native
String[] Function ArrayStringUnique(String[] Input) Global Native
Form[] Function ArrayFormUnique(Form[] Input) Global Native
ObjectReference[] Function ArrayRefUnique(ObjectReference[] Input) Global Native
Actor[] Function ArrayActorUnique(Actor[] Input) Global Native
ActorBase[] Function ArrayActorBaseUnique(ActorBase[] Input) Global Native
Faction[] Function ArrayFactionUnique(Faction[] Input) Global Native
Weapon[] Function ArrayWeaponUnique(Weapon[] Input) Global Native
Armor[] Function ArrayArmorUnique(Armor[] Input) Global Native
ArmorAddon[] Function ArrayArmorAddonUnique(ArmorAddon[] Input) Global Native
Spell[] Function ArraySpellUnique(Spell[] Input) Global Native
MagicEffect[] Function ArrayMagicEffectUnique(MagicEffect[] Input) Global Native
Enchantment[] Function ArrayEnchantmentUnique(Enchantment[] Input) Global Native
Potion[] Function ArrayPotionUnique(Potion[] Input) Global Native
Ingredient[] Function ArrayIngredientUnique(Ingredient[] Input) Global Native
Keyword[] Function ArrayKeywordUnique(Keyword[] Input) Global Native
Location[] Function ArrayLocationUnique(Location[] Input) Global Native
GlobalVariable[] Function ArrayGlobalUnique(GlobalVariable[] Input) Global Native
Book[] Function ArrayBookUnique(Book[] Input) Global Native
MiscObject[] Function ArrayMiscObjectUnique(MiscObject[] Input) Global Native
Ammo[] Function ArrayAmmoUnique(Ammo[] Input) Global Native
Race[] Function ArrayRaceUnique(Race[] Input) Global Native
Quest[] Function ArrayQuestUnique(Quest[] Input) Global Native
Perk[] Function ArrayPerkUnique(Perk[] Input) Global Native
Cell[] Function ArrayCellUnique(Cell[] Input) Global Native
ConstructibleObject[] Function ArrayCobjUnique(ConstructibleObject[] Input) Global Native
FormList[] Function ArrayFormListUnique(FormList[] array) Global Native


; Push / Pull Array ======================================================================
; Push - Push all elements in the array +1 element and add NewValue at element 0
; Pull - Pull all elements in the array -1 element and add NewValue at the end of the array
; DropOff: 	True - Value at start/end drops off. Array remains the same size.
;			False - Values aren't removed. Array size +=1.

Bool[] Function PushForwardBool(Bool[] InputArray, Bool NewValue, Bool DropOff = true) Global Native
Int[] Function PushForwardInt(Int[] InputArray, Int NewValue, Bool DropOff = true) Global Native
Float[] Function PushForwardFloat(Float[] InputArray, Float NewValue, Bool DropOff = true) Global Native
String[] Function PushForwardString(String[] InputArray, String NewValue, Bool DropOff = true) Global Native
Form[] Function PushForwardForm(Form[] InputArray, Form NewValue, Bool DropOff = true) Global Native
ObjectReference[] Function PushForwardRef(ObjectReference[] InputArray, ObjectReference NewValue, Bool DropOff = true) Global Native
Actor[] Function PushForwardActor(Actor[] InputArray, Actor NewValue, Bool DropOff = true) Global Native
ActorBase[] Function PushForwardActorBase(ActorBase[] InputArray, ActorBase NewValue, Bool DropOff = true) Global Native
Faction[] Function PushForwardFaction(Faction[] InputArray, Faction NewValue, Bool DropOff = true) Global Native
Weapon[] Function PushForwardWeapon(Weapon[] InputArray, Weapon NewValue, Bool DropOff = true) Global Native
Armor[] Function PushForwardArmor(Armor[] InputArray, Armor NewValue, Bool DropOff = true) Global Native
ArmorAddon[] Function PushForwardArmorAddon(ArmorAddon[] InputArray, ArmorAddon NewValue, Bool DropOff = true) Global Native
Spell[] Function PushForwardSpell(Spell[] InputArray, Spell NewValue, Bool DropOff = true) Global Native
MagicEffect[] Function PushForwardMagicEffect(MagicEffect[] InputArray, MagicEffect NewValue, Bool DropOff = true) Global Native
Enchantment[] Function PushForwardEnchantment(Enchantment[] InputArray, Enchantment NewValue, Bool DropOff = true) Global Native
Potion[] Function PushForwardPotion(Potion[] InputArray, Potion NewValue, Bool DropOff = true) Global Native
Ingredient[] Function PushForwardIngredient(Ingredient[] InputArray, Ingredient NewValue, Bool DropOff = true) Global Native
Keyword[] Function PushForwardKeyword(Keyword[] InputArray, Keyword NewValue, Bool DropOff = true) Global Native
Location[] Function PushForwardLocation(Location[] InputArray, Location NewValue, Bool DropOff = true) Global Native
GlobalVariable[] Function PushForwardGlobal(GlobalVariable[] InputArray, GlobalVariable NewValue, Bool DropOff = true) Global Native
Book[] Function PushForwardBook(Book[] InputArray, Book NewValue, Bool DropOff = true) Global Native
MiscObject[] Function PushForwardMiscObject(MiscObject[] InputArray, MiscObject NewValue, Bool DropOff = true) Global Native
Ammo[] Function PushForwardAmmo(Ammo[] InputArray, Ammo NewValue, Bool DropOff = true) Global Native
Race[] Function PushForwardRace(Race[] InputArray, Race NewValue, Bool DropOff = true) Global Native
Quest[] Function PushForwardQuest(Quest[] InputArray, Quest NewValue, Bool DropOff = true) Global Native
Perk[] Function PushForwardPerk(Perk[] InputArray, Perk NewValue, Bool DropOff = true) Global Native
Cell[] Function PushForwardCell(Cell[] InputArray, Cell NewValue, Bool DropOff = true) Global Native
ConstructibleObject[] Function PushForwardCobj(ConstructibleObject[] InputArray, ConstructibleObject NewValue, Bool DropOff = true) Global Native
FormList[] Function PushForwardFormList(FormList[] InputArray, FormList NewValue, Bool DropOff = true) Global Native


Bool[] Function PullBackBool(Bool[] InputArray, Bool NewValue, Bool DropOff = true) Global Native
Int[] Function PullBackInt(Int[] InputArray, Int NewValue, Bool DropOff = true) Global Native
Float[] Function PullBackFloat(Float[] InputArray, Float NewValue, Bool DropOff = true) Global Native
String[] Function PullBackString(String[] InputArray, String NewValue, Bool DropOff = true) Global Native
Form[] Function PullBackForm(Form[] InputArray, Form NewValue, Bool DropOff = true) Global Native
ObjectReference[] Function PullBackRef(ObjectReference[] InputArray, ObjectReference NewValue, Bool DropOff = true) Global Native
Actor[] Function PullBackActor(Actor[] InputArray, Actor NewValue, Bool DropOff = true) Global Native
ActorBase[] Function PullBackActorBase(ActorBase[] InputArray, ActorBase NewValue, Bool DropOff = true) Global Native
Faction[] Function PullBackFaction(Faction[] InputArray, Faction NewValue, Bool DropOff = true) Global Native
Weapon[] Function PullBackWeapon(Weapon[] InputArray, Weapon NewValue, Bool DropOff = true) Global Native
Armor[] Function PullBackArmor(Armor[] InputArray, Armor NewValue, Bool DropOff = true) Global Native
ArmorAddon[] Function PullBackArmorAddon(ArmorAddon[] InputArray, ArmorAddon NewValue, Bool DropOff = true) Global Native
Spell[] Function PullBackSpell(Spell[] InputArray, Spell NewValue, Bool DropOff = true) Global Native
MagicEffect[] Function PullBackMagicEffect(MagicEffect[] InputArray, MagicEffect NewValue, Bool DropOff = true) Global Native
Enchantment[] Function PullBackEnchantment(Enchantment[] InputArray, Enchantment NewValue, Bool DropOff = true) Global Native
Potion[] Function PullBackPotion(Potion[] InputArray, Potion NewValue, Bool DropOff = true) Global Native
Ingredient[] Function PullBackIngredient(Ingredient[] InputArray, Ingredient NewValue, Bool DropOff = true) Global Native
Keyword[] Function PullBackKeyword(Keyword[] InputArray, Keyword NewValue, Bool DropOff = true) Global Native
Location[] Function PullBackLocation(Location[] InputArray, Location NewValue, Bool DropOff = true) Global Native
GlobalVariable[] Function PullBackGlobal(GlobalVariable[] InputArray, GlobalVariable NewValue, Bool DropOff = true) Global Native
Book[] Function PullBackBook(Book[] InputArray, Book NewValue, Bool DropOff = true) Global Native
MiscObject[] Function PullBackMiscObject(MiscObject[] InputArray, MiscObject NewValue, Bool DropOff = true) Global Native
Ammo[] Function PullBackAmmo(Ammo[] InputArray, Ammo NewValue, Bool DropOff = true) Global Native
Race[] Function PullBackRace(Race[] InputArray, Race NewValue, Bool DropOff = true) Global Native
Quest[] Function PullBackQuest(Quest[] InputArray, Quest NewValue, Bool DropOff = true) Global Native
Perk[] Function PullBackPerk(Perk[] InputArray, Perk NewValue, Bool DropOff = true) Global Native
Cell[] Function PullBackCell(Cell[] InputArray, Cell NewValue, Bool DropOff = true) Global Native
ConstructibleObject[] Function PullBackCobj(ConstructibleObject[] InputArray, ConstructibleObject NewValue, Bool DropOff = true) Global Native
FormList[] Function PullBackFormList(FormList[] InputArray, FormList NewValue, Bool DropOff = true) Global Native

 

 

_MGF_ArrayQuery: 

Spoiler
Scriptname _MGF_ArrayQuery Hidden

;/	
	Advise 'import'ing all three array scripts for easy access. 
	That way you don't need to remember which function is in which script. 
	
	Import _MGF_ArrayCreate
	Import _MGF_ArrayEdit
	Import _MGF_ArrayQuery
/;

; Regular Find for types without support in vanilla papyrus
Int Function ArrayRefFind(ObjectReference[] Input, ObjectReference Value, Int StartIndex = 0) Global Native
Int Function ArrayActorFind(Actor[] Input, Actor Value, Int StartIndex = 0) Global Native
Int Function ArrayActorBaseFind(ActorBase[] Input, ActorBase Value, Int StartIndex = 0) Global Native
Int Function ArrayFactionFind(Faction[] Input, Faction Value, Int StartIndex = 0) Global Native
Int Function ArrayWeaponFind(Weapon[] Input, Weapon Value, Int StartIndex = 0) Global Native
Int Function ArrayArmorFind(Armor[] Input, Armor Value, Int StartIndex = 0) Global Native
Int Function ArrayArmorAddonFind(ArmorAddon[] Input, ArmorAddon Value, Int StartIndex = 0) Global Native
Int Function ArraySpellFind(Spell[] Input, Spell Value, Int StartIndex = 0) Global Native
Int Function ArrayMagicEffectFind(MagicEffect[] Input, MagicEffect Value, Int StartIndex = 0) Global Native
Int Function ArrayEnchantmentFind(Enchantment[] Input, Enchantment Value, Int StartIndex = 0) Global Native
Int Function ArrayPotionFind(Potion[] Input, Potion Value, Int StartIndex = 0) Global Native
Int Function ArrayIngredientFind(Ingredient[] Input, Ingredient Value, Int StartIndex = 0) Global Native
Int Function ArrayKeywordFind(Keyword[] Input, Keyword Value, Int StartIndex = 0) Global Native
Int Function ArrayLocationFind(Location[] Input, Location Value, Int StartIndex = 0) Global Native
Int Function ArrayGlobalFind(GlobalVariable[] Input, GlobalVariable Value, Int StartIndex = 0) Global Native
Int Function ArrayBookFind(Book[] Input, Book Value, Int StartIndex = 0) Global Native
Int Function ArrayMiscObjectFind(MiscObject[] Input, MiscObject Value, Int StartIndex = 0) Global Native
Int Function ArrayAmmoFind(Ammo[] Input, Ammo Value, Int StartIndex = 0) Global Native
Int Function ArrayRaceFind(Race[] Input, Race Value, Int StartIndex = 0) Global Native
Int Function ArrayQuestFind(Quest[] Input, Quest Value, Int StartIndex = 0) Global Native
Int Function ArrayPerkFind(Perk[] Input, Perk Value, Int StartIndex = 0) Global Native
Int Function ArrayCellFind(Cell[] Input, Cell Value, Int StartIndex = 0) Global Native
Int Function ArrayCobjFind(ConstructibleObject[] Input, ConstructibleObject Value, Int StartIndex = 0) Global Native
Int Function ArrayFormListFind(FormList[] Input, FormList Value, Int StartIndex = 0) Global Native


; Array FindAll =========================================================================
; Return the indices of all elements that match Value
; Note on caseSensitive: Papyrus is case insensitive and depending on the string table 
; you may not be able to pass a string with the case format you desire. So the recommended default is false. 
; Tolerance: How close a float can be to match - floating point error tolerance. 
Int[] Function ArrayBoolFindAll(Bool[] Input, Bool Value) Global Native
Int[] Function ArrayIntFindAll(Int[] Input, Int Value) Global Native
Int[] Function ArrayFloatFindAll(Float[] Input, Float Value, Float Tolerance = 0.0001) Global Native
Int[] Function ArrayStringFindAll(String[] Input, String Value, Bool caseSensitive = false) Global Native
Int[] Function ArrayFormFindAll(Form[] Input, Form Value) Global Native

Int[] Function ArrayRefFindAll(ObjectReference[] Input, ObjectReference Value) Global Native
Int[] Function ArrayActorFindAll(Actor[] Input, Actor Value) Global Native
Int[] Function ArrayActorBaseFindAll(ActorBase[] Input, ActorBase Value) Global Native
Int[] Function ArrayFactionFindAll(Faction[] Input, Faction Value) Global Native
Int[] Function ArrayWeaponFindAll(Weapon[] Input, Weapon Value) Global Native
Int[] Function ArrayArmorFindAll(Armor[] Input, Armor Value) Global Native
Int[] Function ArrayArmorAddonFindAll(ArmorAddon[] Input, ArmorAddon Value) Global Native
Int[] Function ArraySpellFindAll(Spell[] Input, Spell Value) Global Native
Int[] Function ArrayMagicEffectFindAll(MagicEffect[] Input, MagicEffect Value) Global Native
Int[] Function ArrayEnchantmentFindAll(Enchantment[] Input, Enchantment Value) Global Native
Int[] Function ArrayPotionFindAll(Potion[] Input, Potion Value) Global Native
Int[] Function ArrayIngredientFindAll(Ingredient[] Input, Ingredient Value) Global Native
Int[] Function ArrayKeywordFindAll(Keyword[] Input, Keyword Value) Global Native
Int[] Function ArrayLocationFindAll(Location[] Input, Location Value) Global Native
Int[] Function ArrayGlobalFindAll(GlobalVariable[] Input, GlobalVariable Value) Global Native
Int[] Function ArrayBookFindAll(Book[] Input, Book Value) Global Native
Int[] Function ArrayMiscObjectFindAll(MiscObject[] Input, MiscObject Value) Global Native
Int[] Function ArrayAmmoFindAll(Ammo[] Input, Ammo Value) Global Native
Int[] Function ArrayRaceFindAll(Race[] Input, Race Value) Global Native
Int[] Function ArrayQuestFindAll(Quest[] Input, Quest Value) Global Native
Int[] Function ArrayPerkFindAll(Perk[] Input, Perk Value) Global Native
Int[] Function ArrayCellFindAll(Cell[] Input, Cell Value) Global Native
Int[] Function ArrayCobjFindAll(ConstructibleObject[] Input, ConstructibleObject Value) Global Native
Int[] Function ArrayFormListFindAll(FormList[] Input, FormList Value) Global Native


; Array FindLasr ========================================================================
; Returns the index of the last occurence of Value in the input array. Returns -1 if not found. 
Int Function ArrayIntFindLast(Int[] Input, Int Value) Global Native
Int Function ArrayStringFindLast(String[] Input, String Value) Global Native
Int Function ArrayFormFindLast(Form[] Input, Form Value) Global Native


; Array Count ===========================================================================
; Returns a count of the number of occurences of 'Value' in the Input array
Int Function ArrayIntCount(Int[] Input, Int Value) Global Native
Int Function ArrayStringCount(String[] Input, String Value) Global Native
Int Function ArrayFormCount(Form[] Input, Form Value) Global Native


; Array Intersection ====================================================================
; Returns indices from arr1 that also exist in arr2
Int[] Function ArrayIntIntersection(Int[] arr1, Int[] arr2) Global Native
Int[] Function ArrayFloatIntersection(Float[] arr1, Float[] arr2, Float Tolerance = 0.0001) Global Native
Int[] Function ArrayStringIntersection(String[] arr1, String[] arr2, Bool caseSensitive = false) Global Native
Int[] Function ArrayFormIntersection(Form[] arr1, Form[] arr2) Global Native


; Array IntersectionValues =============================================================
; Returns values from arr1 that also exist in arr2. String version is case insensitive. 
Int[] Function ArrayIntIntersectionValues(Int[] arr1, Int[] arr2) Global Native
Float[] Function ArrayFloatIntersectionValues(Float[] arr1, Float[] arr2, Float tolerance = 0.0001) Global Native
String[] Function ArrayStringIntersectionValues(String[] arr1, String[] arr2) Global Native
Form[] Function ArrayFormIntersectionValues(Form[] arr1, Form[] arr2) Global Native
ObjectReference[] Function ArrayRefIntersectionValues(ObjectReference[] arr1, ObjectReference[] arr2) Global Native
Actor[] Function ArrayActorIntersectionValues(Actor[] arr1, Actor[] arr2) Global Native
ActorBase[] Function ArrayActorBaseIntersectionValues(ActorBase[] arr1, ActorBase[] arr2) Global Native
Faction[] Function ArrayFactionIntersectionValues(Faction[] arr1, Faction[] arr2) Global Native
Weapon[] Function ArrayWeaponIntersectionValues(Weapon[] arr1, Weapon[] arr2) Global Native
Armor[] Function ArrayArmorIntersectionValues(Armor[] arr1, Armor[] arr2) Global Native
ArmorAddon[] Function ArrayArmorAddonIntersectionValues(ArmorAddon[] arr1, ArmorAddon[] arr2) Global Native
Spell[] Function ArraySpellIntersectionValues(Spell[] arr1, Spell[] arr2) Global Native
MagicEffect[] Function ArrayMagicEffectIntersectionValues(MagicEffect[] arr1, MagicEffect[] arr2) Global Native
Enchantment[] Function ArrayEnchantmentIntersectionValues(Enchantment[] arr1, Enchantment[] arr2) Global Native
Potion[] Function ArrayPotionIntersectionValues(Potion[] arr1, Potion[] arr2) Global Native
Ingredient[] Function ArrayIngredientIntersectionValues(Ingredient[] arr1, Ingredient[] arr2) Global Native
Keyword[] Function ArrayKeywordIntersectionValues(Keyword[] arr1, Keyword[] arr2) Global Native
Location[] Function ArrayLocationIntersectionValues(Location[] arr1, Location[] arr2) Global Native
GlobalVariable[] Function ArrayGlobalIntersectionValues(GlobalVariable[] arr1, GlobalVariable[] arr2) Global Native
Book[] Function ArrayBookIntersectionValues(Book[] arr1, Book[] arr2) Global Native
MiscObject[] Function ArrayMiscObjectIntersectionValues(MiscObject[] arr1, MiscObject[] arr2) Global Native
Ammo[] Function ArrayAmmoIntersectionValues(Ammo[] arr1, Ammo[] arr2) Global Native
Race[] Function ArrayRaceIntersectionValues(Race[] arr1, Race[] arr2) Global Native
Quest[] Function ArrayQuestIntersectionValues(Quest[] arr1, Quest[] arr2) Global Native
Perk[] Function ArrayPerkIntersectionValues(Perk[] arr1, Perk[] arr2) Global Native
Cell[] Function ArrayCellIntersectionValues(Cell[] arr1, Cell[] arr2) Global Native
ConstructibleObject[] Function ArrayCobjIntersectionValues(ConstructibleObject[] arr1, ConstructibleObject[] arr2) Global Native
FormList[] Function ArrayFormListIntersectionValues(FormList[] arr1, FormList[] arr2) Global Native


; Array FilterByIndices =================================================================
; reverse = false: Removes the elements of Input at the specified akIndices
; reverse = true: Return only the elements at the specified akIndices
Bool[] Function ArrayBoolFilterByIndices(Bool[] Input, Int[] akIndices, bool reverse = false) Global Native
Int[] Function ArrayIntFilterByIndices(Int[] Input, Int[] akIndices, bool reverse = false) Global Native
Float[] Function ArrayFloatFilterByIndices(Float[] Input, Int[] akIndices, bool reverse = false) Global Native
String[] Function ArrayStringFilterByIndices(String[] Input, Int[] akIndices, bool reverse = false) Global Native
Form[] Function ArrayFormFilterByIndices(Form[] Input, Int[] akIndices, bool reverse = false) Global Native


; Reorders akArray by akIndices: result[i] = akArray[akIndices[i]]. 
; Output length follows akIndices, not akArray. An out-of-range index is skipped. 
Bool[] Function ArrayBoolSortByIndices(Bool[] akArray, Int[] akIndices) Global Native
Int[] Function ArrayIntSortByIndices(Int[] akArray, Int[] akIndices) Global Native
Float[] Function ArrayFloatSortByIndices(Float[] akArray, Int[] akIndices) Global Native
String[] Function ArrayStringSortByIndices(String[] akArray, Int[] akIndices) Global Native
Form[] Function ArrayFormSortByIndices(Form[] akArray, Int[] akIndices) Global Native
ObjectReference[] Function ArrayRefSortByIndices(ObjectReference[] akArray, Int[] akIndices) Global Native
Actor[] Function ArrayActorSortByIndices(Actor[] akArray, Int[] akIndices) Global Native
ActorBase[] Function ArrayActorBaseSortByIndices(ActorBase[] akArray, Int[] akIndices) Global Native
Faction[] Function ArrayFactionSortByIndices(Faction[] akArray, Int[] akIndices) Global Native
Weapon[] Function ArrayWeaponSortByIndices(Weapon[] akArray, Int[] akIndices) Global Native
Armor[] Function ArrayArmorSortByIndices(Armor[] akArray, Int[] akIndices) Global Native
ArmorAddon[] Function ArrayArmorAddonSortByIndices(ArmorAddon[] akArray, Int[] akIndices) Global Native
Spell[] Function ArraySpellSortByIndices(Spell[] akArray, Int[] akIndices) Global Native
MagicEffect[] Function ArrayMagicEffectSortByIndices(MagicEffect[] akArray, Int[] akIndices) Global Native
Enchantment[] Function ArrayEnchantmentSortByIndices(Enchantment[] akArray, Int[] akIndices) Global Native
Potion[] Function ArrayPotionSortByIndices(Potion[] akArray, Int[] akIndices) Global Native
Ingredient[] Function ArrayIngredientSortByIndices(Ingredient[] akArray, Int[] akIndices) Global Native
Keyword[] Function ArrayKeywordSortByIndices(Keyword[] akArray, Int[] akIndices) Global Native
Location[] Function ArrayLocationSortByIndices(Location[] akArray, Int[] akIndices) Global Native
GlobalVariable[] Function ArrayGlobalSortByIndices(GlobalVariable[] akArray, Int[] akIndices) Global Native
Book[] Function ArrayBookSortByIndices(Book[] akArray, Int[] akIndices) Global Native
MiscObject[] Function ArrayMiscObjectSortByIndices(MiscObject[] akArray, Int[] akIndices) Global Native
Ammo[] Function ArrayAmmoSortByIndices(Ammo[] akArray, Int[] akIndices) Global Native
Race[] Function ArrayRaceSortByIndices(Race[] akArray, Int[] akIndices) Global Native
Quest[] Function ArrayQuestSortByIndices(Quest[] akArray, Int[] akIndices) Global Native
Perk[] Function ArrayPerkSortByIndices(Perk[] akArray, Int[] akIndices) Global Native
Cell[] Function ArrayCellSortByIndices(Cell[] akArray, Int[] akIndices) Global Native
ConstructibleObject[] Function ArrayCobjSortByIndices(ConstructibleObject[] akArray, Int[] akIndices) Global Native
FormList[] Function ArrayFormListSortByIndices(FormList[] akArray, Int[] akIndices) Global Native


; Odd Array Ops =========================================================================

; Append or prepend a string to every string in Input array.
String[] Function ArrayStringConcatElements(String[] Input, String Value, Bool Prefix) Global Native

; Convert a string array into a single string separated by ',' (configurable separator).
String Function ArrayStringJoin(String[] Input, String Separator = ",") Global Native

; Convert a comma separated (configurable separator) string into a string array. 
String[] Function ArrayStringSplit(String Input, String Separator = ",") Global Native

; Searches all elements of Input for Match and replaces according to parameters.
; FullMatch: True -> entire element must equal Match. False: Substring match. 
; FullReplace: True -> Entire element is replaced with <Replace>. False -> Only the matched substring(s) within the element are replaced.
; FirstMatchOnly: True -> Only the first occurrence in each element is replaced. False -> Every occurrence within each element are replaced.
; Note: Papyrus is notoriously case insensitive. So this is too. 
String[] Function ArrayStringFindAndReplace(String[] Input, String Match, String Replace, Bool FullMatch = True, Bool FullReplace = True, Bool FirstMatchOnly = False) Global Native

; Reduces keyword array so it contains at most 1 keyword from the filter list. 
; Keywords not in filter list are always kept. 
; If multiple matches exist, randomly keeps only one. 
Keyword[] Function ArrayKeywordReduceToOne(Keyword[] akKwds, Keyword[] akFilterKwds) Global Native

; Returns a sorted copy of the input array by distance from the origin reference.
; Origin: The reference to measure distance from. If this is none then the input array is returned unchanged. 
; MinDistance: Minimum distance from the origin reference. -1.0 = No limit. 
; MaxDistance: Maximum distance from the origin reference. -1.0 = No limit. 
; Ascending: True - Sort nearest to furthest. False - Sort furthest to nearest. 
; AllowNones: True - Don't remove any 'Nones' from the array (same array length). False - Remove all 'Nones'. 
; Any 'Nones' (if allowed) are sorted to the end of the array. 
Actor[] Function ArrayActorSortByDistance(Actor[] akActors, ObjectReference Origin, Float MinDistance = -1.0, Float MaxDistance = -1.0, Bool Ascending = True, Bool AllowNones = False) Global Native
ObjectReference[] Function ArrayObjRefSortByDistance(ObjectReference[] ObjRefs, ObjectReference Origin, Float MinDistance = -1.0, Float MaxDistance = -1.0, Bool Ascending = True, Bool AllowNones = False) Global Native

; Returns the names of a reference array as a String array.
; DisplayName: False = Gets the base object name. True = Get the display name. 
; AllowNones: True = Keep 'Nones' in the array (same array size). False: Discard any 'Nones'. 
; StripEmpty: True = Valid refs that resolve to "" are discarded. False: Keep references with empty names (same array size). 
String[] Function ArrayObjRefGetNames(ObjectReference[] ObjRefs, Bool DisplayName = False, Bool AllowNones = False, Bool StripEmpty = False) Global Native
String[] Function ArrayActorGetNames(Actor[] akActors, Bool DisplayName = False, Bool AllowNones = False, Bool StripEmpty = False) Global Native

; Remove children/adults from an array. 
; ReturnChildren: False = Adults only. True = Children only. 
; Function checks the flag on the race record. 
Actor[] Function ArrayActorFilterChildren(Actor[] akActors, Bool ReturnChildren = false) Global Native


; Int Array Arithmetic ==================================================================

; Return sum of all elements
Int Function ArrayIntSum(Int[] arr) Global Native

; Return average of all elements
Int Function ArrayIntAverage(Int[] arr) Global Native

; Return minimum value in array
Int Function ArrayIntMin(Int[] arr) Global Native

; Return maximum value in array
Int Function ArrayIntMax(Int[] arr) Global Native

; Add value to all elements
Int[] Function ArrayIntAdd(Int[] arr, Int value) Global Native

; Subtract value from all elements
Int[] Function ArrayIntSubtract(Int[] arr, Int value) Global Native

; Multiply all elements by value
Int[] Function ArrayIntMultiply(Int[] arr, Int value) Global Native

; Divide all elements by value (integer division)
Int[] Function ArrayIntDivide(Int[] arr, Int value) Global Native

; Clamp all values between min and max
Int[] Function ArrayIntClamp(Int[] arr, Int minValue, Int maxValue) Global Native

; Get absolute value of all elements
Int[] Function ArrayIntAbs(Int[] arr) Global Native

; Element-wise addition: result[i] = arr1[i] + arr2[i]
Int[] Function ArrayIntElementWiseAdd(Int[] arr1, Int[] arr2) Global Native

; Element-wise multiplication: result[i] = arr1[i] * arr2[i]
Int[] Function ArrayIntElementWiseMultiply(Int[] arr1, Int[] arr2) Global Native


; Float Array Arithmetic ================================================================

; Return sum of all elements
Float Function ArrayFloatSum(Float[] arr) Global Native

; Return average of all elements
Float Function ArrayFloatAverage(Float[] arr) Global Native

; Return minimum value in array
Float Function ArrayFloatMin(Float[] arr) Global Native

; Return maximum value in array
Float Function ArrayFloatMax(Float[] arr) Global Native

; Add value to all elements
Float[] Function ArrayFloatAdd(Float[] arr, Float value) Global Native

; Subtract value from all elements
Float[] Function ArrayFloatSubtract(Float[] arr, Float value) Global Native

; Multiply all elements by value
Float[] Function ArrayFloatMultiply(Float[] arr, Float value) Global Native

; Divide all elements by value
Float[] Function ArrayFloatDivide(Float[] arr, Float value) Global Native

; Clamp all values between min and max
Float[] Function ArrayFloatClamp(Float[] arr, Float minValue, Float maxValue) Global Native

; Get absolute value of all elements
Float[] Function ArrayFloatAbs(Float[] arr) Global Native

; Round all elements to nearest integer
Float[] Function ArrayFloatRound(Float[] arr) Global Native

; Floor all elements (round down)
Float[] Function ArrayFloatFloor(Float[] arr) Global Native

; Ceiling all elements (round up)
Float[] Function ArrayFloatCeiling(Float[] arr) Global Native

; Normalize array to 0-1 range
Float[] Function ArrayFloatNormalize(Float[] arr) Global Native

; Element-wise addition: result[i] = arr1[i] + arr2[i]
Float[] Function ArrayFloatElementWiseAdd(Float[] arr1, Float[] arr2) Global Native

; Element-wise multiplication: result[i] = arr1[i] * arr2[i]
Float[] Function ArrayFloatElementWiseMultiply(Float[] arr1, Float[] arr2) Global Native

 

 

 

 

Edited by Monoman1

0 Comments


Recommended Comments

There are no comments to display.

×
×
  • Create New...