Dependencies: alter_effect, ds, lib_2da, lib_2daq, lib_anon, lib_array, lib_class, lib_cre, lib_data, lib_eff, lib_fn, lib_ids, lib_ietool, lib_ini, lib_kit, lib_script, lib_sfo, lib_spl, lib_splconv, lib_ssl, lib_struct, lib_sugar, lib_tools, lib_ui, lib_vtable, resolve_spell, ui_add_subraces, ui_bonus_spells, ui_deolvynize, ui_detect_class_kit, ui_dual_class_kits, ui_externalize_hlas, ui_externalize_proficiencies, ui_extra_spells, ui_on_open, ui_shared_code, ui_spell_system, ui_spell_system_spheres, ui_system_call, ui_virtual_class
Functions in this library are used to save and load third-party data, to be used by SFO mods to tweak their own installation.
3p_kit()=() action
Goes through the array 'sfo_3p_kit', and for each cre=>kit assigns the kit 'kit' (from kit.ids), if it exists, to the cre file 'cre'.cre
The kit is not enforced but can be picked up by other mods (e.g. SCS) and will apply normally to joinables.
3p_kit_bonus_spells()=() action
Goes through the array 'sfo_3p_kit_spheres', and for each kit=>spheres assigns those spheres to the kit. Input can be either, (i) a comma-separated list of spheres (ii) a comma-separated list of spheres prepended by + or -.
In case (ii), the list is applied as modifiers to the class default.
3p_kit_sphere()=() action
Goes through the array 'sfo_3p_kit', and for each (kit,'spheres')=>spheres assigns those spheres to the kit. Input can be either, (i) a comma-separated list of spheres (ii) a comma-separated list of spheres prepended by + or -.
In case (ii), the list is applied as modifiers to the class default.
3p_load_data action_macro
Loads all the inis in the folders 'MOD_FOLDER/%sfo_3p_folder_internal%' (by default 'MOD_FOLDER/3p') and 'weidu_external/data/dw_shared/%sfo_3p_folder%' (by default weidu_external/data/dw_shared/MOD_FOLDER3p), with the latter overriding the former. Returns them as a series of arrays, labelled by ini sections - so all the entries in [sphere], across all the inis, get returned in $sfo_3p_sphere. If the key has the form firstbit:secondbit, instead we return a 2D array using secondbit as a key: so entries in [kit:dw_cleric_mask] would get returned as values of $sfo_3p_kit("dw_cleric_mask" [whatever])
These should not be called from outside the library itself.
3p_load_data_helper(folder:s, folder_internal:s, path:s)=(sfo_3p_data:a) action