# lib_ssl function library

Dependencies: lib_2da, lib_anon, lib_array, lib_fn, lib_ini, lib_script, lib_sfo, lib_sugar, lib_tools, lib_ui

## Description

Functions for compiling ssl scripts.

## Public functions

ssl_core(inline:b, silent:b, script:s, variables:s, booleans:s, location:s, locbase:s, path:s)=(value:s) action

Take 'script'.ssl, located at locbase|location|path (or located at .../stratagems-inline if inline=1), and compile it to a baf file of the same name, living in workspace/ssl_out. If it's missing, whine unless silent=1. Return 1 if file exists to compile, 0 otherwise. SSL input: variables are the concatenation of the external string 'sslvariables' and the function argument 'variables'; booleans are given by the eponymous function argument; libraries are the concatenation of the external string 'ssllibrary' and 'weidu_external/data/MOD_FOLDER\autolib'. SSL itself should be located at the path given by the external string 'ssl_loc'.

ssl_to_baf(inline:b, silent:b, evaluate_variables:b=1, script:s, arguments:s, scripts:s, variables:s, booleans:s, location:s, locbase:s, path:s)=() action

Take a list of ssl files 'script' (synonyms: 'arguments', 'scripts'), each located at locbase|location|path (or located at .../stratagems-inline if inline=1), and compile them to baf (leaving them at [workspace]/ssl_out), processing SSL line_if commands and carrying out EE-to-oBG2 swaps and custom-hotkey swaps as appropriate. If any are missing, whine unless silent=1. Evaluate variables unless evaluate_variables=0.

If input is instead in the form "k=>v list", compile each k.ssl to v.baf.

SSL input: variables are the concatenation of the external string 'sslvariables' and the function argument 'variables'; booleans are given by the eponymous function argument; libraries are the concatenation of the external string 'ssllibrary' and 'weidu_external/data/MOD_FOLDER\autolib'. SSL itself should be located at the path given by the external string 'ssl_loc'.

ssl_to_bcs(inline:b, silent:b, script:s, arguments:s, scripts:s, variables:s, booleans:s, location:s, locbase:s, path:s)=() action

Take a list of ssl files 'script' (synonyms: 'arguments', 'scripts'), each located at locbase|location|path (or located at .../stratagems-inline if inline=1), and compile them all the way to bcs, processing SSL line_if commands and carrying out EE-to-oBG2 swaps and custom-hotkey swaps as appropriate. If any are missing, whine unless silent=1.

If input is instead in the form "k=>v list", compile each k.ssl to v.bcs.

SSL input: variables are the concatenation of the external string 'sslvariables' and the function argument 'variables'; booleans are given by the eponymous function argument; libraries are the concatenation of the external string 'ssllibrary' and 'weidu_external/data/MOD_FOLDER\autolib'. SSL itself should be located at the path given by the external string 'ssl_loc'.

## Internal functions

These should not be called from outside the library itself.

ssl_implement_line_if()=() patch