diff --git a/docs/zengin/scripts/extenders/ikarus/floats.md b/docs/zengin/scripts/extenders/ikarus/floats.md
index d9fc9e25fd..ad8a6b9289 100644
--- a/docs/zengin/scripts/extenders/ikarus/floats.md
+++ b/docs/zengin/scripts/extenders/ikarus/floats.md
@@ -18,328 +18,348 @@ MEM_InitAll();
Ikarus floats are saved as int but it doesn't mean that you can use arithmetic operators on them. All operations on floats must be done with functions listed below.
### `mkf`
-(make float) Converts the input integer x to a float value.
-```dae
-func int mkf(var int x)
-```
-**Parameters**
+!!! function "`mkf`"
+ (make float) Converts the input integer x to a float value.
+ ```dae
+ func int mkf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input integer
+ - `#!dae var int x`
+ The input integer
-**Return value**
+ **Return value**
-The function returns the float representation of the input integer x.
+ The function returns the float representation of the input integer x.
### `truncf`
-(truncate float) Truncates the decimal part of the input float x.
-```dae
-func int truncf(var int x)
-```
-**Parameters**
+!!! function "`truncf`"
+ (truncate float) Truncates the decimal part of the input float x.
+ ```dae
+ func int truncf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the integer part of the input float x by discarding the decimal part.
+ The function returns the integer part of the input float x by discarding the decimal part.
### `roundf`
-(round float) Rounds the input float x to the nearest integer value.
-```dae
-func int roundf(var int x)
-```
-**Parameters**
+!!! function "`roundf`"
+ (round float) Rounds the input float x to the nearest integer value.
+ ```dae
+ func int roundf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the nearest integer value to the input float x. If the decimal part is exactly halfway between two integers, the function rounds to the nearest even integer.
+ The function returns the nearest integer value to the input float x. If the decimal part is exactly halfway between two integers, the function rounds to the nearest even integer.
### `addf`
-(add floats) Adds two ikarus floats together.
-```dae
-func int addf(var int x, var int y)
-```
-**Parameters**
+!!! function "`addf`"
+ (add floats) Adds two ikarus floats together.
+ ```dae
+ func int addf(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
-**Return value**
+ **Return value**
-The function returns the sum of the input floats `x` and `y`. (x + y)
+ The function returns the sum of the input floats `x` and `y`. (x + y)
### `subf`
-(subtract floats) Subtracts the second float from the first float.
-```dae
-func int subf(var int x, var int y)
-```
-**Parameters**
+!!! function "`subf`"
+ (subtract floats) Subtracts the second float from the first float.
+ ```dae
+ func int subf(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
-**Return value**
+ **Return value**
-The function returns the difference between the first float `x` and the second float `y`. (x - y)
+ The function returns the difference between the first float `x` and the second float `y`. (x - y)
### `negf`
-(negate float) Negates the input float.
-```dae
-func int negf(var int x)
-```
-**Parameters**
+!!! function "`negf`"
+ (negate float) Negates the input float.
+ ```dae
+ func int negf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the negation of the input float `x`.
+ The function returns the negation of the input float `x`.
### `mulf`
-(multiply floats) Multiplies two ikarus floats.
-```dae
-func int mulf(var int x, var int y)
-```
-**Parameters**
+!!! function "`mulf`"
+ (multiply floats) Multiplies two ikarus floats.
+ ```dae
+ func int mulf(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
-**Return value**
+ **Return value**
-The function returns the product of multiplying the input floats x and y. (x * y)
+ The function returns the product of multiplying the input floats x and y. (x * y)
### `divf`
-(divide floats) Divides two ikarus floats.
-```dae
-func int divf(var int x, var int y)
-```
-**Parameters**
+!!! function "`divf`"
+ (divide floats) Divides two ikarus floats.
+ ```dae
+ func int divf(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The dividend float
-- `#!dae var int y`
- The divisor float
+ - `#!dae var int x`
+ The dividend float
+ - `#!dae var int y`
+ The divisor float
-**Return value**
+ **Return value**
-The function returns the quotient of dividing the input float x by y. (x / y)
+ The function returns the quotient of dividing the input float x by y. (x / y)
### `invf`
-(inverse float) Computes the inverse of the input float.
-```dae
-func int invf(var int x)
-```
-**Parameters**
+!!! function "`invf`"
+ (inverse float) Computes the inverse of the input float.
+ ```dae
+ func int invf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the inverse of the `x`, calculated as `1/x`.
+ The function returns the inverse of the `x`, calculated as `1/x`.
### `gf`
-(greater) Checks if the first float is greater than the second float.
-```dae
-func int gf(var int x, var int y)
-```
-**Parameters**
-
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+!!! function "`gf`"
+ (greater) Checks if the first float is greater than the second float.
+ ```dae
+ func int gf(var int x, var int y)
+ ```
+ **Parameters**
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
+ **Return value**
-**Return value**
-
-The function returns `TRUE` if `x` is greater than `y`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `x` is greater than `y`, `FALSE` is returned otherwise.
### `gef`
-(greater or equal) Checks if the first float is greater than or equal to the second float.
-```dae
-func int gef(var int x, var int y)
-```
-**Parameters**
+!!! function "`gef`"
+ (greater or equal) Checks if the first float is greater than or equal to the second float.
+ ```dae
+ func int gef(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
-**Return value**
+ **Return value**
-The function returns `TRUE` if `x` is greater than or equal to `y`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `x` is greater than or equal to `y`, `FALSE` is returned otherwise.
### `lf`
-(lower) Checks if the first float is less than the second float.
-```dae
-func int lf(var int x, var int y)
-```
-**Parameters**
+!!! function "`lf`"
+ (lower) Checks if the first float is less than the second float.
+ ```dae
+ func int lf(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
-**Return value**
+ **Return value**
-The function returns `TRUE` if `x` is less than `y`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `x` is less than `y`, `FALSE` is returned otherwise.
### `lef`
-(lower or equal) Checks if the first float is less than or equal to the second float.
-```dae
-func int lef(var int x, var int y)
-```
-**Parameters**
+!!! function "`lef`"
+ (lower or equal) Checks if the first float is less than or equal to the second float.
+ ```dae
+ func int lef(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The first float
-- `#!dae var int y`
- The second float
+ - `#!dae var int x`
+ The first float
+ - `#!dae var int y`
+ The second float
-**Return value**
+ **Return value**
-The function returns `TRUE` if `x` is less than or equal to `y`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `x` is less than or equal to `y`, `FALSE` is returned otherwise.
### `sqrf`
-(square float) Calculates the square of the float.
-```dae
-func int sqrf(var int x)
-```
-**Parameters**
+ !!! function "`sqrf`"
+ (square float) Calculates the square of the float.
+ ```dae
+ func int sqrf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the square of the input float `x`, computed as `x * x`.
+ The function returns the square of the input float `x`, computed as `x * x`.
### `sqrtf`
-(square root float) Calculates the square root of the float.
-```dae
-func int sqrtf(var int x)
-```
-**Parameters**
+ !!! function "`sqrtf`"
+ (square root float) Calculates the square root of the float.
+ ```dae
+ func int sqrtf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the square root of the input float `x`.
+ The function returns the square root of the input float `x`.
### `sqrtf_approx`
-Calculates the approximate square root of a float.
-```dae
-func int sqrtf_approx(var int f)
-```
-**Parameters**
+!!! function "`sqrtf_approx`"
+ Calculates the approximate square root of a float.
+ ```dae
+ func int sqrtf_approx(var int f)
+ ```
+ **Parameters**
-- `#!dae var int f`
- The input float
+ - `#!dae var int f`
+ The input float
-**Return value**
+ **Return value**
-The function returns the approximate square root of the input float as an ikarus float.
+ The function returns the approximate square root of the input float as an ikarus float.
### `absf`
-(absolute value) Computes the absolute value of a float.
-```dae
-func int absf(var int x)
-```
-**Parameters**
+!!! function "`absf`"
+ (absolute value) Computes the absolute value of a float.
+ ```dae
+ func int absf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- The input float
+ - `#!dae var int x`
+ The input float
-**Return value**
+ **Return value**
-The function returns the absolute value of the input float `x`, which is the value without the negative sign (if present).
+ The function returns the absolute value of the input float `x`, which is the value without the negative sign (if present).
### `fracf`
-(fraction) Computes the fraction of two integers p and q.
-```dae
-func int fracf(var int p, var int q)
-```
-**Parameters**
+!!! function "`fracf`"
+ (fraction) Computes the fraction of two integers p and q.
+ ```dae
+ func int fracf(var int p, var int q)
+ ```
+ **Parameters**
-- `#!dae var int p`
- Numerator
-- `#!dae var int q`
- Denominator
+ - `#!dae var int p`
+ Numerator
+ - `#!dae var int q`
+ Denominator
-**Return value**
+ **Return value**
-The function returns the fraction of `p` divided by `q` as an ikarus float.
+ The function returns the fraction of `p` divided by `q` as an ikarus float.
### `castFromIntf`
-Converts an ikarus float to a Daedalus float.
-```dae
-func float castFromIntf(var int f)
-```
-**Parameters**
+!!! function "`castFromIntf`"
+ Converts an ikarus float to a Daedalus float.
+ ```dae
+ func float castFromIntf(var int f)
+ ```
+ **Parameters**
-- `#!dae var int f`
- Ikarus float
+ - `#!dae var int f`
+ Ikarus float
-**Return Value**
+ **Return Value**
-The function returns the value `f` as a Daedalus float.
+ The function returns the value `f` as a Daedalus float.
### `castToIntf`
-Converts a Daedalus float to an ikarus float.
-```dae
-func int castToIntf(var float f)
-```
-**Parameters**
+!!! function "`castToIntf`"
+ Converts a Daedalus float to an ikarus float.
+ ```dae
+ func int castToIntf(var float f)
+ ```
+ **Parameters**
-- `#!dae var float f`
- Daedalus float
+ - `#!dae var float f`
+ Daedalus float
-**Return Value**
+ **Return Value**
-The function returns the value `f` as an ikarus float.
+ The function returns the value `f` as an ikarus float.
### `toStringf`
-Converts a float value to its string representation.
-```dae
-func string toStringf(var int x)
-```
-**Parameters**
+!!! function "`toStringf`"
+ Converts a float value to its string representation.
+ ```dae
+ func string toStringf(var int x)
+ ```
+ **Parameters**
-- `#!dae var int x`
- Input float value
+ - `#!dae var int x`
+ Input float value
-**Return value**
+ **Return value**
-The function returns a string representation of the input float value.
+ The function returns a string representation of the input float value.
### `printf`
-(print float) Prints the float on screen using `Print()`.
-```dae
-func void printf(var int x)
-```
-**Parameters**
-
-- `#!dae var int x`
- The printed float
+!!! function "`printf`"
+ (print float) Prints the float on screen using `Print()`.
+ ```dae
+ func void printf(var int x)
+ ```
+ **Parameters**
+
+ - `#!dae var int x`
+ The printed float
## Examples
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/arrays.md b/docs/zengin/scripts/extenders/ikarus/functions/arrays.md
index fc91d9d9f1..b22dffdde6 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/arrays.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/arrays.md
@@ -16,212 +16,229 @@ MEM_InitAll();
## Functions
### `MEM_ArrayCreate`
-Creates an empty `zCArray` (allocates memory) and returns a pointer to it.
-```dae
-func int MEM_ArrayCreate()
-```
-**Return value**
+!!! function "`MEM_ArrayCreate`"
+ Creates an empty `zCArray` (allocates memory) and returns a pointer to it.
+ ```dae
+ func int MEM_ArrayCreate()
+ ```
+ **Return value**
-The function returns a pointer to the created `zCArray`.
+ The function returns a pointer to the created `zCArray`.
### `MEM_ArrayFree`
-Frees the memory allocated for a `zCArray` and its data.
-```dae
-func void MEM_ArrayFree(var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArrayFree`"
+ Frees the memory allocated for a `zCArray` and its data.
+ ```dae
+ func void MEM_ArrayFree(var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray` to be freed
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray` to be freed
### `MEM_ArrayClear`
-Clears the data of a `zCArray`, freeing the memory used by its elements. The array becomes empty.
-```dae
-func void MEM_ArrayClear (var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArrayClear`"
+ Clears the data of a `zCArray`, freeing the memory used by its elements. The array becomes empty.
+ ```dae
+ func void MEM_ArrayClear (var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray` to be cleared
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray` to be cleared
### `MEM_ArraySize`
-Returns the size (number of elements) of an array.
-```dae
-func int MEM_ArraySize(var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArraySize`"
+ Returns the size (number of elements) of an array.
+ ```dae
+ func int MEM_ArraySize(var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
-**Return value**
+ **Return value**
-The function returns a number of a `zCArray` elements.
+ The function returns a number of a `zCArray` elements.
### `MEM_ArrayWrite`
-Writes a value at a specific position in the `zCArray`.
-```dae
-func void MEM_ArrayWrite(var int zCArray_ptr, var int pos, var int value)
-```
-**Parameters**
-
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int pos`
- Position in the array where the value will be written
-- `#!dae var int value`
- Value to be written
+!!! function "`MEM_ArrayWrite`"
+ Writes a value at a specific position in the `zCArray`.
+ ```dae
+ func void MEM_ArrayWrite(var int zCArray_ptr, var int pos, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int pos`
+ Position in the array where the value will be written
+ - `#!dae var int value`
+ Value to be written
### `MEM_ArrayRead`
-Reads the value at a specific position in the `zCArray`.
-```dae
-func int MEM_ArrayRead(var int zCArray_ptr, var int pos)
-```
-**Parameters**
+!!! function "`MEM_ArrayRead`"
+ Reads the value at a specific position in the `zCArray`.
+ ```dae
+ func int MEM_ArrayRead(var int zCArray_ptr, var int pos)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int pos`
- Position in the array from which the value will be read
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int pos`
+ Position in the array from which the value will be read
-**Return value**
+ **Return value**
-The function returns the value at a specific position in the `zCArray`.
+ The function returns the value at a specific position in the `zCArray`.
### `MEM_ArrayInsert`
-Appends a value to the end of the `zCArray`. The array is automatically resized if it is too small.
-```dae
-func void MEM_ArrayInsert (var int zCArray_ptr, var int value)
-```
-**Parameters**
-
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int value`
- Value to be inserted
+!!! function "`MEM_ArrayInsert`"
+ Appends a value to the end of the `zCArray`. The array is automatically resized if it is too small.
+ ```dae
+ func void MEM_ArrayInsert (var int zCArray_ptr, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int value`
+ Value to be inserted
### `MEM_ArrayPush`
-Alias for [`MEM_ArrayInsert`](#mem_arrayinsert), inserts a value at the end of the `zCArray`.
-```dae
-func void MEM_ArrayPush (var int zCArray_ptr, var int value)
-```
-**Parameters**
-
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int value`
- Value to be inserted
+!!! function "`MEM_ArrayPush`"
+ Alias for [`MEM_ArrayInsert`](#mem_arrayinsert), inserts a value at the end of the `zCArray`.
+ ```dae
+ func void MEM_ArrayPush (var int zCArray_ptr, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int value`
+ Value to be inserted
### `MEM_ArrayPop`
-Removes and returns the last element from the `zCArray`.
-```dae
-func int MEM_ArrayPop(var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArrayPop`"
+ Removes and returns the last element from the `zCArray`.
+ ```dae
+ func int MEM_ArrayPop(var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
-**Return value**
+ **Return value**
-The function returns the element removed from the end of an array.
+ The function returns the element removed from the end of an array.
### `MEM_ArrayTop`
-Returns the last element of the `zCArray` without removing it.
-```dae
-func int MEM_ArrayTop(var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArrayTop`"
+ Returns the last element of the `zCArray` without removing it.
+ ```dae
+ func int MEM_ArrayTop(var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
-**Return value**
+ **Return value**
-The function returns the last element of an array.
+ The function returns the last element of an array.
### `MEM_ArrayIndexOf`
-Searches the `zCArray` for the first occurrence of a `value` and returns its index.
-```dae
-func int MEM_ArrayIndexOf(var int zCArray_ptr, var int value)
-```
-**Parameters**
+!!! function "`MEM_ArrayIndexOf`"
+ Searches the `zCArray` for the first occurrence of a `value` and returns its index.
+ ```dae
+ func int MEM_ArrayIndexOf(var int zCArray_ptr, var int value)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int value`
- Value to search for
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int value`
+ Value to search for
-**Return value**
+ **Return value**
-The function returns the index of a first occurrence of a `value`. If not found `-1` is returned.
+ The function returns the index of a first occurrence of a `value`. If not found `-1` is returned.
### `MEM_ArrayRemoveIndex`
-Removes the element at a specific index from the `zCArray`.
-```dae
-func void MEM_ArrayRemoveIndex (var int zCArray_ptr, var int index)
-```
-**Parameters**
-
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int index`
- Index of the element to be removed
+!!! function "`MEM_ArrayRemoveIndex`"
+ Removes the element at a specific index from the `zCArray`.
+ ```dae
+ func void MEM_ArrayRemoveIndex (var int zCArray_ptr, var int index)
+ ```
+ **Parameters**
+
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int index`
+ Index of the element to be removed
### `MEM_ArrayRemoveValue`
-Removes all occurrences of a value from the `zCArray`.
-```dae
-func void MEM_ArrayRemoveValue (var int zCArray_ptr, var int value)
-```
-**Parameters**
-
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int value`
- Value to be removed
+!!! function "`MEM_ArrayRemoveValue`"
+ Removes all occurrences of a value from the `zCArray`.
+ ```dae
+ func void MEM_ArrayRemoveValue (var int zCArray_ptr, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int value`
+ Value to be removed
### `MEM_ArrayRemoveValueOnce`
-Removes the first occurrence of a value from the `zCArray`. If value is not found, a warning is issued.
-```dae
-func void MEM_ArrayRemoveValueOnce (var int zCArray_ptr, var int value)
-```
-**Parameters**
-
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
-- `#!dae var int value`
- Value to be removed
+!!! function "`MEM_ArrayRemoveValueOnce`"
+ Removes the first occurrence of a value from the `zCArray`. If value is not found, a warning is issued.
+ ```dae
+ func void MEM_ArrayRemoveValueOnce (var int zCArray_ptr, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
+ - `#!dae var int value`
+ Value to be removed
### `MEM_ArraySort`
-Sorts the elements of the `zCArray` in ascending order.
-```dae
-func void MEM_ArraySort(var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArraySort`"
+ Sorts the elements of the `zCArray` in ascending order.
+ ```dae
+ func void MEM_ArraySort(var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
### `MEM_ArrayUnique`
-Removes duplicate elements from the `zCArray`.
-```dae
-func void MEM_ArrayUnique(var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArrayUnique`"
+ Removes duplicate elements from the `zCArray`.
+ ```dae
+ func void MEM_ArrayUnique(var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
### `MEM_ArrayToString`
-Converts the `zCArray` to a string representation.
-```dae
-func string MEM_ArrayToString (var int zCArray_ptr)
-```
-**Parameters**
+!!! function "`MEM_ArrayToString`"
+ Converts the `zCArray` to a string representation.
+ ```dae
+ func string MEM_ArrayToString (var int zCArray_ptr)
+ ```
+ **Parameters**
-- `#!dae var int zCArray_ptr`
- Pointer to the `zCArray`
+ - `#!dae var int zCArray_ptr`
+ Pointer to the `zCArray`
-**Return value**
+ **Return value**
-The function returns a string representation of a given array.
\ No newline at end of file
+ The function returns a string representation of a given array.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/asm.md b/docs/zengin/scripts/extenders/ikarus/functions/asm.md
index 137db0caa3..d91988f021 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/asm.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/asm.md
@@ -24,12 +24,10 @@ MEM_InitAll();
## Implementation
[:material-github: Ikarus.d on GitHub](https://github.com/Lehona/Ikarus/blob/master/Ikarus.d#L1064-L1267)
-
## Opcodes
The code defines several constants that represent different machine code instructions. Each constant is assigned a hexadecimal value and corresponds to a specific machine code instruction. [Here](https://github.com/Lehona/Ikarus/blob/master/Ikarus.d#L1070-L1111) is a link to all instructions.
-
## Internal Stack
The code includes an internal stack implementation, allowing the storage of data. The stack is already used at two points:
@@ -40,157 +38,168 @@ The code includes an internal stack implementation, allowing the storage of data
The internal stack is implemented using an array, and the following functions are provided:
### `ASMINT_Push`
-Pushes the specified `data` onto the internal stack.
-```dae
-func void ASMINT_Push(var int data)
-```
-**Parameters**
+!!! function "`ASMINT_Push`"
+ Pushes the specified `data` onto the internal stack.
+ ```dae
+ func void ASMINT_Push(var int data)
+ ```
+ **Parameters**
-- `#!dae var int data`
- Data pushed onto internal stack
+ - `#!dae var int data`
+ Data pushed onto internal stack
### `ASMINT_Pop`
-Pops and returns the topmost data from the internal stack.
-```dae
-func int ASMINT_Pop()
-```
-**Return value**
+!!! function "`ASMINT_Pop`"
+ Pops and returns the topmost data from the internal stack.
+ ```dae
+ func int ASMINT_Pop()
+ ```
+ **Return value**
-The function returns a data popped form the internal stack.
-
+ The function returns a data popped form the internal stack.
+
## Functions (Core)
The ASM core functionality provides a framework for assembling machine code instructions and executing them. The following functions are included:
### `ASMINT_Init`
-Initializes the ASM system by creating an internal stack and finding function addresses.
-```dae
-func void ASMINT_Init()
-```
+!!! function "`ASMINT_Init`"
+ Initializes the ASM system by creating an internal stack and finding function addresses.
+ ```dae
+ func void ASMINT_Init()
+ ```
-!!! Tip
- It's worth noting that `ASMINT_Ini` is also invoked by the `MEM_InitAll` function.
+ !!! Tip
+ It's worth noting that `ASMINT_Ini` is also invoked by the `MEM_InitAll` function.
### `ASM_Open`
-Changes the size of the memory allocated at the start o the dictation
+!!! function "`ASM_Open`"
+ Changes the size of the memory allocated at the start o the dictation
-The memory in which the machine code is stored is allocated at the beginning of the dictation. If this function isn't called a default size (see **Constant** below) is allocated by [`ASM`](#asm) or [`ASM_Here`](#ams_here) function. The 256 bytes is often sufficient for simple applications, but if more memory is required, this function must be called at the beginning of the dictation.
-```dae
-func void ASM_Open(var int space)
-```
-**Parameters**
+ The memory in which the machine code is stored is allocated at the beginning of the dictation. If this function isn't called a default size (see **Constant** below) is allocated by [`ASM`](#asm) or [`ASM_Here`](#ams_here) function. The 256 bytes is often sufficient for simple applications, but if more memory is required, this function must be called at the beginning of the dictation.
+ ```dae
+ func void ASM_Open(var int space)
+ ```
+ **Parameters**
-- `#!dae var int space`
- Space allocated for machine code (in bytes)
+ - `#!dae var int space`
+ Space allocated for machine code (in bytes)
-**Constant**
+ **Constant**
-`ASM_StandardStreamLength` constant defines the default space available for an Assembler sequence (in bytes).
+ `ASM_StandardStreamLength` constant defines the default space available for an Assembler sequence (in bytes).
-```dae
-const int ASM_StandardStreamLength = 256;
-```
+ ```dae
+ const int ASM_StandardStreamLength = 256;
+ ```
### `ASM`
-Writes machine code instructions to the stream.
-
-Using this function it is possible to dictate machine code little by little. The `data` bytes of the `length` (maximum 4!) are appended to the previously dictated part. This creates a program piece by piece that can be executed by the processor.
-```dae
-func void ASM(var int data, var int length)
-```
-**Parameters**
-
-- `#!dae var int data`
- The machine code instruction or its part
-- `#!dae var int length`
- Length of the `data` (max 4 bytes)
+!!! function "`ASM`"
+ Writes machine code instructions to the stream.
-
-=== "ASM_1"
- ### `ASM_1`
- [`ASM`](#asm) with `length` parameter hardcoded to 1. Writes one byte machine code instructions to the stream.
+ Using this function it is possible to dictate machine code little by little. The `data` bytes of the `length` (maximum 4!) are appended to the previously dictated part. This creates a program piece by piece that can be executed by the processor.
```dae
- func void ASM_1(var int data)
+ func void ASM(var int data, var int length)
```
**Parameters**
- `#!dae var int data`
- One byte machine code instruction or its part
+ The machine code instruction or its part
+ - `#!dae var int length`
+ Length of the `data` (max 4 bytes)
+
+=== "ASM_1"
+ ### `ASM_1`
+ !!! function "`ASM_1`"
+ [`ASM`](#asm) with `length` parameter hardcoded to 1. Writes one byte machine code instructions to the stream.
+ ```dae
+ func void ASM_1(var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int data`
+ One byte machine code instruction or its part
=== "ASM_2"
### `ASM_2`
- [`ASM`](#asm) with `length` parameter hardcoded to 2. Writes two bytes machine code instructions to the stream.
- ```dae
- func void ASM_1(var int data)
- ```
- **Parameters**
+ !!! function "`ASM_2`"
+ [`ASM`](#asm) with `length` parameter hardcoded to 2. Writes two bytes machine code instructions to the stream.
+ ```dae
+ func void ASM_1(var int data)
+ ```
+ **Parameters**
- - `#!dae var int data`
- Two bytes machine code instruction or its part
+ - `#!dae var int data`
+ Two bytes machine code instruction or its part
=== "ASM_3"
### `ASM_3`
- [`ASM`](#asm) with `length` parameter hardcoded to 3. Writes three bytes machine code instructions to the stream.
- ```dae
- func void ASM_1(var int data)
- ```
- **Parameters**
+ !!! function "`ASM_3`"
+ [`ASM`](#asm) with `length` parameter hardcoded to 3. Writes three bytes machine code instructions to the stream.
+ ```dae
+ func void ASM_1(var int data)
+ ```
+ **Parameters**
- - `#!dae var int data`
- Three bytes machine code instruction or its part
+ - `#!dae var int data`
+ Three bytes machine code instruction or its part
=== "ASM_4"
### `ASM_4`
- [`ASM`](#asm) with `length` parameter hardcoded to 4. Writes four bytes machine code instructions to the stream.
- ```dae
- func void ASM_1(var int data)
- ```
- **Parameters**
+ !!! function "`ASM_4`"
+ [`ASM`](#asm) with `length` parameter hardcoded to 4. Writes four bytes machine code instructions to the stream.
+ ```dae
+ func void ASM_1(var int data)
+ ```
+ **Parameters**
- - `#!dae var int data`
- Four bytes machine code instruction or its part
+ - `#!dae var int data`
+ Four bytes machine code instruction or its part
### `ASM_Here`
-Provides, the address of the cursor, i.e., the address of the location that will be described next by a call to [`ASM`](#asm). It is guaranteed that the location where the code is written is also the location where it will be executed.
-```dae
-func int ASM_Here()
-```
+!!! function "`ASM_Here`"
+ Provides, the address of the cursor, i.e., the address of the location that will be described next by a call to [`ASM`](#asm). It is guaranteed that the location where the code is written is also the location where it will be executed.
+ ```dae
+ func int ASM_Here()
+ ```
-**Return value**
+ **Return value**
-The function returns an address that is the current position in the machine code stream.
+ The function returns an address that is the current position in the machine code stream.
### `ASM_Close`
-Finalizes the stream by adding a return instruction and returns the starting address of the stream. This pointer can now be passed to at any time and any number of times to execute the machine code.
-
-!!! Warning
- The memory area obtained by `ASM_Close` must be released manually using [`MEM_Free`](mem_utility.md#mem_free) to avoid memory leaks. It is probably sufficient for almost all practical purposes.
-```dae
-func int ASM_Close()
-```
-**Return value**
+!!! function "`ASM_Close`"
+ Finalizes the stream by adding a return instruction and returns the starting address of the stream. This pointer can now be passed to at any time and any number of times to execute the machine code.
-The function returns a starting address of the stream (pointer to the stream).
+ !!! Warning
+ The memory area obtained by `ASM_Close` must be released manually using [`MEM_Free`](mem_utility.md#mem_free) to avoid memory leaks. It is probably sufficient for almost all practical purposes.
+ ```dae
+ func int ASM_Close()
+ ```
+ **Return value**
+ The function returns a starting address of the stream (pointer to the stream).
### `ASM_Run`
-Executes a machine code (stream) from a pointer.
+!!! function "`ASM_Run`"
+ Executes a machine code (stream) from a pointer.
-!!! Note
- `ASM_Run` can also be used to call engine functions with no parameters and no relevant return value. In this case `ptr` would simply have to point to the function to be executed in the code segment.
-```dae
-func void ASM_Run(var int ptr)
-```
-**Parameters**
+ !!! Note
+ `ASM_Run` can also be used to call engine functions with no parameters and no relevant return value. In this case `ptr` would simply have to point to the function to be executed in the code segment.
+ ```dae
+ func void ASM_Run(var int ptr)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- Pointer to the executed code (returned form [`ASM_Close`](#asm_close))
+ - `#!dae var int ptr`
+ Pointer to the executed code (returned form [`ASM_Close`](#asm_close))
### `ASM_RunOnce`
-Executes the code dictated up to that point, similar to how an external function is executed. After that the code is released, and new code can be dictated.
-```dae
-func void ASM_RunOnce()
-```
+!!! function "`ASM_RunOnce`"
+ Executes the code dictated up to that point, similar to how an external function is executed. After that the code is released, and new code can be dictated.
+ ```dae
+ func void ASM_RunOnce()
+ ```
## Example
The following function sets the NPC passed as slf as the player, as if you had pressed **O** in Marvin mode with this NPC in focus. This is so short because there is already a function for this exact purpose, it's just not normally accessible from the scripts. It is therefore sufficient to write assembly code that pushes the parameter of the function (the `this` pointer) into the appropriate register and then calls the function.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/call.md b/docs/zengin/scripts/extenders/ikarus/functions/call.md
index abf742c1af..263e018b29 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/call.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/call.md
@@ -1,4 +1,5 @@
# CALL Package
+
This part of Ikarus makes possible to call engine functions directly from scripts.
In order to be able to invoke an engine function, you must know some of its properties. This includes the number and types of parameters, the type of return value, address of function and calling convention.
@@ -65,46 +66,47 @@ func int Npc_GetPercFunc(var C_Npc npc, var int type) {
## Start and End
### `CALL_Open`
-Initializes a Recyclable call mode.
-```dae
-func void CALL_Open()
-```
+!!! function "`CALL_Open`"
+ Initializes a Recyclable call mode.
+ ```dae
+ func void CALL_Open()
+ ```
### `CALL_Begin`
-A practical wrapper for `CALL_Open`. Makes a call if it had been already created, initializes it otherwise.
-```dae
-func int CALL_Begin(var int ptr)
-```
-**Parameters**
+!!! function "`CALL_Begin`"
+ A practical wrapper for `CALL_Open`. Makes a call if it had been already created, initializes it otherwise.
+ ```dae
+ func int CALL_Begin(var int ptr)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- Zero if you need to create a new recyclable function to be called (usually, before first use). In this case `CALL_Open` is called and `CALL_Begin` returns `1`.
+ - `#!dae var int ptr`
+ Zero if you need to create a new recyclable function to be called (usually, before first use). In this case `CALL_Open` is called and `CALL_Begin` returns `1`.
-**Return Value**
+ **Return Value**
-The function returns `1` if the new call has been created, `0` is returned otherwise.
+ The function returns `1` if the new call has been created, `0` is returned otherwise.
### `CALL_Close`
-Finalizes a function call in recyclable mode, restoring the previous execution context.
-```dae
-func int CALL_Close()
-```
+!!! function "`CALL_Close`"
+ Finalizes a function call in recyclable mode, restoring the previous execution context.
+ ```dae
+ func int CALL_Close()
+ ```
### `CALL_End`
-Finalizes a function call, pushes the pointer onto the stack, and runs the associated assembly code (makes an actual call).
-```dae
-func int CALL_End()
-```
-
-**Return Value**
-
-The function returns a pointer that could be used to repeat the call.
-
+!!! function "`CALL_End`"
+ Finalizes a function call, pushes the pointer onto the stack, and runs the associated assembly code (makes an actual call).
+ ```dae
+ func int CALL_End()
+ ```
-!!! Tip
- `CALL_Close` only finalizes the function call, returning the pointer, while `CALL_End` additionally handles pushing the pointer onto the stack and running associated assembly code.
+ **Return Value**
+ The function returns a pointer that could be used to repeat the call.
+ !!! Tip
+ `CALL_Close` only finalizes the function call, returning the pointer, while `CALL_End` additionally handles pushing the pointer onto the stack and running associated assembly code.
## Passing parameters
@@ -114,75 +116,81 @@ Parameters must be arranged on the machine stack from right to left i.e. from th
These functions do not impose any parameters on the Machine stack. Exactly it should say: You create the machine code that will put parameters on the machine stack when it is executed. And it is only carried out in the second step with the announcement of the calling convention.
### `CALL_IntParam`
-Passes an integer (`int32`) as a parameter to the called function.
-```dae
-func void CALL_IntParam(var int param)
-```
-**Parameters**
+!!! function "`CALL_IntParam`"
+ Passes an integer (`int32`) as a parameter to the called function.
+ ```dae
+ func void CALL_IntParam(var int param)
+ ```
+ **Parameters**
-- `#!dae var int param`
- Address of an integer to be passed
+ - `#!dae var int param`
+ Address of an integer to be passed
### `CALL_FloatParam`
-Passes an IEEE 7554 floating-point number (`single` / `zREAL`) as a parameter to the called function.
-```dae
-func void CALL_FloatParam(var int param)
-```
-**Parameters**
+!!! function "`CALL_FloatParam`"
+ Passes an IEEE 7554 floating-point number (`single` / `zREAL`) as a parameter to the called function.
+ ```dae
+ func void CALL_FloatParam(var int param)
+ ```
+ **Parameters**
-- `#!dae var int param`
- Address of a float to be passed
+ - `#!dae var int param`
+ Address of a float to be passed
### `CALL_PtrParam`
-Passes a pointer (`void*`) as a parameter to the called function.
-```dae
-func void CALL_PtrParam(var int param)
-```
-**Parameters**
+!!! function "`CALL_PtrParam`"
+ Passes a pointer (`void*`) as a parameter to the called function.
+ ```dae
+ func void CALL_PtrParam(var int param)
+ ```
+ **Parameters**
-- `#!dae var int param`
- Pointer to be passed
+ - `#!dae var int param`
+ Pointer to be passed
### `CALL_zStringPtrParam`
-Passes a string (`zString*`) as a parameter to the called function.
-```dae
-func void CALL_zStringPtrParam(var string param)
-```
-**Parameters**
+!!! function "`CALL_zStringPtrParam`"
+ Passes a string (`zString*`) as a parameter to the called function.
+ ```dae
+ func void CALL_zStringPtrParam(var string param)
+ ```
+ **Parameters**
-- `#!dae var string param`
- String to be passed
+ - `#!dae var string param`
+ String to be passed
-!!! Warning
- This function only works when writing a disposable call!
+ !!! Warning
+ This function only works when writing a disposable call!
### `CALL_cStringPtrParam`
-Passes a char array (`char **`) as a parameter to the called function.
-```dae
-func void CALL_cStringPtrParam(var string param)
-```
-**Parameters**
+!!! function "`CALL_cStringPtrParam`"
+ Passes a char array (`char **`) as a parameter to the called function.
+ ```dae
+ func void CALL_cStringPtrParam(var string param)
+ ```
+ **Parameters**
-- `#!dae var string param`
- String to be passed as character array`
+ - `#!dae var string param`
+ String to be passed as character array`
-!!! Warning
- This function only works when writing a disposable call!
+ !!! Warning
+ This function only works when writing a disposable call!
### `CALL_StructParam`
-Passes a structure (struct) as a parameter to the called function.
-```dae
-func void CALL_StructParam(var int ptr, var int words)
-```
-**Parameters**
+!!! function "`CALL_StructParam`"
+ Passes a structure (struct) as a parameter to the called function.
+ ```dae
+ func void CALL_StructParam(var int ptr, var int words)
+ ```
+ **Parameters**
-- `#!dae var int param`
- Pointer to the object
-- `#!dae var int words`
- Size of a structure (1 word = 32 bits)
+ - `#!dae var int param`
+ Pointer to the object
+ - `#!dae var int words`
+ Size of a structure (1 word = 32 bits)
-!!! Note
- `CALL_IntParam`, `CALL_FloatParam`, and `CALL_PtrParam` are functionally identical and are differentiated for code readability.
+ !!! Note
+ `CALL_IntParam`, `CALL_FloatParam`, and `CALL_PtrParam` are functionally identical and are differentiated for code readability.
## The call
The calling convention determines how the function's parameters are passed. IDA or another disassembler can be used to identify the convention used by a specific engine function.
@@ -190,51 +198,54 @@ The calling convention determines how the function's parameters are passed. IDA
The announcement of the calling convention, i.e. the call of one of the four functions below is also the time of calling the function. In particular, all parameters must already be specified at this point.
### `CALL__stdcall`
-Calls a function with [`__stdcall`](https://learn.microsoft.com/en-us/cpp/cpp/stdcall?view=msvc-170) (Standard Call) calling convention.
-```dae
-func void CALL__stdcall(var int adr)
-```
-**Parameters**
+!!! function "`CALL__stdcall`"
+ Calls a function with [`__stdcall`](https://learn.microsoft.com/en-us/cpp/cpp/stdcall?view=msvc-170) (Standard Call) calling convention.
+ ```dae
+ func void CALL__stdcall(var int adr)
+ ```
+ **Parameters**
-- `#!dae var int adr`
- Address of a function
+ - `#!dae var int adr`
+ Address of a function
### `CALL__thiscall`
-Calls a function with [`__thiscall`](https://learn.microsoft.com/en-us/cpp/cpp/thiscall?view=msvc-170) calling convention. Used with a member functions.
-```dae
-func void CALL__thiscall(var int this, var int adr)
-```
-**Parameters**
-
-- `#!dae var int this`
- Pointer to the owner class object passed as a `this` parameter
-- `#!dae var int adr`
- Address of a function
+!!! function "`CALL__thiscall`"
+ Calls a function with [`__thiscall`](https://learn.microsoft.com/en-us/cpp/cpp/thiscall?view=msvc-170) calling convention. Used with a member functions.
+ ```dae
+ func void CALL__thiscall(var int this, var int adr)
+ ```
+ **Parameters**
+
+ - `#!dae var int this`
+ Pointer to the owner class object passed as a `this` parameter
+ - `#!dae var int adr`
+ Address of a function
### `CALL__cdecl`
-Calls a function with [`__cdecl`](https://learn.microsoft.com/en-us/cpp/cpp/cdecl?view=msvc-170) calling convention. Used with non-Windows API and non-class functions.
-```dae
-func void CALL__cdecl (var int adr)
-```
-**Parameters**
-
-- `#!dae var int adr`
- Address of a function
+!!! function "`CALL__cdecl`"
+ Calls a function with [`__cdecl`](https://learn.microsoft.com/en-us/cpp/cpp/cdecl?view=msvc-170) calling convention. Used with non-Windows API and non-class functions.
+ ```dae
+ func void CALL__cdecl (var int adr)
+ ```
+ **Parameters**
+ - `#!dae var int adr`
+ Address of a function
### `CALL__fastcall`
-Calls a function with [`__fastcall`](https://learn.microsoft.com/en-us/cpp/cpp/fastcall?view=msvc-170) calling convention.
-```dae
-func void CALL__fastcall(var int ecx, var int edx, var int adr)
-```
-**Parameters**
-
-- `#!dae var int ecx`
- First parameter of a function
-- `#!dae var int edx`
- Second parameter of a function
-- `#!dae var int adr`
- Address of a function
+!!! function "`CALL__fastcall`"
+ Calls a function with [`__fastcall`](https://learn.microsoft.com/en-us/cpp/cpp/fastcall?view=msvc-170) calling convention.
+ ```dae
+ func void CALL__fastcall(var int ecx, var int edx, var int adr)
+ ```
+ **Parameters**
+
+ - `#!dae var int ecx`
+ First parameter of a function
+ - `#!dae var int edx`
+ Second parameter of a function
+ - `#!dae var int adr`
+ Address of a function
## Return Value
As soon as the function call has taken place, i.e. after step 2, the return value can be queried. The following functions interpret the return value (usually this is the content of EAX immediately after the call) in the manner suggested in the function name. The result is then returned in a manner usable in Daedalus.
@@ -245,109 +256,116 @@ As soon as the function call has taken place, i.e. after step 2, the return valu
Following functions are provided: [`CALL_RetValIsFloat`](#call_retvalisfloat), [`CALL_RetValIszString`](#call_retvaliszstring), [`CALL_RetValIsStruct`](#call_retvalisstruct).
### `CALL_PutRetValTo`
-Simply places the return value to the given address (mostly the address of a daedalus integer). Must be called before [The Call](#the-call) function.
-```dae
-func void CALL_PutRetValTo(var int adr)
-```
-**Parameters**
-
-- `#!dae var int adr`
- Destination address of the return value
+!!! function "`CALL_PutRetValTo`"
+ Simply places the return value to the given address (mostly the address of a daedalus integer). Must be called before [The Call](#the-call) function.
+ ```dae
+ func void CALL_PutRetValTo(var int adr)
+ ```
+ **Parameters**
+ - `#!dae var int adr`
+ Destination address of the return value
### `CALL_RetValAsInt`
-Retrieves an integer returned by the called function.
-```dae
-func int CALL_RetValAsInt()
-```
-**Return value**
+!!! function "`CALL_RetValAsInt`"
+ Retrieves an integer returned by the called function.
+ ```dae
+ func int CALL_RetValAsInt()
+ ```
+ **Return value**
-The function returns an integer returned by the previously called engine function.
+ The function returns an integer returned by the previously called engine function.
### `CALL_RetValIsFloat`
-Specifies that the return value is a float. Must be called before [The Call](#the-call) function to allow getting the return value with [`CALL_RetValAsFloat`](#call_retvalasfloat).
-```dae
-func void CALL_RetValIsFloat()
-```
+!!! function "`CALL_RetValIsFloat`"
+ Specifies that the return value is a float. Must be called before [The Call](#the-call) function to allow getting the return value with [`CALL_RetValAsFloat`](#call_retvalasfloat).
+ ```dae
+ func void CALL_RetValIsFloat()
+ ```
### `CALL_RetValAsFloat`
-Retrieves a float returned by the called function.
-```dae
-func int CALL_RetValAsFloat()
-```
-**Return value**
+!!! function "`CALL_RetValAsFloat`"
+ Retrieves a float returned by the called function.
+ ```dae
+ func int CALL_RetValAsFloat()
+ ```
+ **Return value**
-The function returns a float returned by the previously called engine function.
+ The function returns a float returned by the previously called engine function.
### `CALL_RetValAsPtr`
-Retrieves a pointer (`void*`) returned by the called function.
-```dae
-func int CALL_RetValAsPtr()
-```
-**Return value**
+!!! function "`CALL_RetValAsPtr`"
+ Retrieves a pointer (`void*`) returned by the called function.
+ ```dae
+ func int CALL_RetValAsPtr()
+ ```
+ **Return value**
-The function returns a pointer returned by the previously called engine function.
+ The function returns a pointer returned by the previously called engine function.
### `CALL_RetValIsStruct`
-Specifies that the return value is a Structure. Must be called before [The Call](#the-call) function to allow getting the return value with [`CALL_RetValAsStructPtr`](#call_retvalasstructptr).
-```dae
-func void CALL_RetValIsStruct(var int size)
-```
-**Parameters**
+!!! function "`CALL_RetValIsStruct`"
+ Specifies that the return value is a Structure. Must be called before [The Call](#the-call) function to allow getting the return value with [`CALL_RetValAsStructPtr`](#call_retvalasstructptr).
+ ```dae
+ func void CALL_RetValIsStruct(var int size)
+ ```
+ **Parameters**
-- `#!dae var int size`
- Size of the returned structure in bytes
+ - `#!dae var int size`
+ Size of the returned structure in bytes
-!!! Danger
- If the return value is a structure with a size larger than 32 bit, the space for the return value has to be allocated by the caller (this is us).The address to the allocated memory is expected on the stack as an additional parameter (pushed last).
-
-!!! Warning
- It is in your responsibility to free the structure memory, when the return value is not needed any more.
+ !!! Danger
+ If the return value is a structure with a size larger than 32 bit, the space for the return value has to be allocated by the caller (this is us).The address to the allocated memory is expected on the stack as an additional parameter (pushed last).
+ !!! Warning
+ It is in your responsibility to free the structure memory, when the return value is not needed any more.
### `CALL_RetValAsStructPtr`
-Retrieves a pointer to the structure returned by the called function and converts it to the instance. Can be used to make an assignment to an instance, for example an assignment to a `var zCVob` if the return value is a pointer to a `zCVob`.
-```dae
-func MEMINT_HelperClass CALL_RetValAsStructPtr()
-```
-**Return value**
+!!! function "`CALL_RetValAsStructPtr`"
+ Retrieves a pointer to the structure returned by the called function and converts it to the instance. Can be used to make an assignment to an instance, for example an assignment to a `var zCVob` if the return value is a pointer to a `zCVob`.
+ ```dae
+ func MEMINT_HelperClass CALL_RetValAsStructPtr()
+ ```
+ **Return value**
-The function returns an instance returned by the previously called engine function.
+ The function returns an instance returned by the previously called engine function.
### `CALL_RetValIszString`
-Specifies that the return value is a `zString` (20 bytes structure). Must be called before [The Call](#the-call) function to allow getting the return value with [`CALL_RetValAszStringPtr`](#call_retvalasstructptr) and [`CALL_RetValAszString`](#call_retvalaszstring).
-```dae
-func string CALL_RetValAszString()
-```
+!!! function "`CALL_RetValIszString`"
+ Specifies that the return value is a `zString` (20 bytes structure). Must be called before [The Call](#the-call) function to allow getting the return value with [`CALL_RetValAszStringPtr`](#call_retvalasstructptr) and [`CALL_RetValAszString`](#call_retvalaszstring).
+ ```dae
+ func string CALL_RetValAszString()
+ ```
-!!! Note
- `CALL_RetValAszStringPtr` and `CALL_RetValAszString` are quite different and should not be confused. Using `CALL_RetValAszString` frees up memory that may still be needed. In a reverse with `CALL_RetValAszStringPtr` memory that is no longer needed is not freed and can cause memory leak.
+ !!! Note
+ `CALL_RetValAszStringPtr` and `CALL_RetValAszString` are quite different and should not be confused. Using `CALL_RetValAszString` frees up memory that may still be needed. In a reverse with `CALL_RetValAszStringPtr` memory that is no longer needed is not freed and can cause memory leak.
### `CALL_RetValAszStringPtr`
-Retrieves a `zString` pointer and converts it to the daedalus string. (don't frees the memory)
-```dae
-func string CALL_RetValAszStringPtr()
-```
-**Return value**
-
-The function returns a daedalus string form a `zString` returned by the previously called engine function.
+!!! function "`CALL_RetValAszStringPtr`"
+ Retrieves a `zString` pointer and converts it to the daedalus string. (don't frees the memory)
+ ```dae
+ func string CALL_RetValAszStringPtr()
+ ```
+ **Return value**
+ The function returns a daedalus string form a `zString` returned by the previously called engine function.
### `CALL_RetValAszString`
-Retrieves a `zString` pointer and converts it to the daedalus string. (frees the memory)
-```dae
-func string CALL_RetValAszString()
-```
-**Return value**
-
-The function returns a daedalus string form a `zString` returned by the previously called engine function.
-
-??? Trivia "Function author note"
- > A `zString` is merely a special case of a structure, with the difference,
- that it is used as a primitive datatype. Nobody will be willing
- to use it as a pointer to some memory or an instance in Daedalus.
- This function copies the contents of the `zString` into a
- daedalus string and frees the `zString` afterwards.
+!!! function "`CALL_RetValAszString`"
+ Retrieves a `zString` pointer and converts it to the daedalus string. (frees the memory)
+ ```dae
+ func string CALL_RetValAszString()
+ ```
+ **Return value**
+
+ The function returns a daedalus string form a `zString` returned by the previously called engine function.
+
+ ??? Trivia "Function author note"
+ > A `zString` is merely a special case of a structure, with the difference,
+ that it is used as a primitive datatype. Nobody will be willing
+ to use it as a pointer to some memory or an instance in Daedalus.
+ This function copies the contents of the `zString` into a
+ daedalus string and frees the `zString` afterwards.
## Examples
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/debug.md b/docs/zengin/scripts/extenders/ikarus/functions/debug.md
index c12b920418..daf95f5421 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/debug.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/debug.md
@@ -16,124 +16,134 @@ MEM_InitAll();
## Functions
### `MEM_CheckVersion`
-Checks if the version of Ikarus is the specified version or newer.
-```dae
-func int MEM_CheckVersion(var int base, var int major, var int minor)
-```
-**Parameters**
-
-- `#!dae var int base`
- Base version number
-- `#!dae var int major`
- Major revision number
-- `#!dae var int minor`
- Minor revision number
+!!! function "`MEM_CheckVersion`"
+ Checks if the version of Ikarus is the specified version or newer.
+ ```dae
+ func int MEM_CheckVersion(var int base, var int major, var int minor)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var int base`
+ Base version number
+ - `#!dae var int major`
+ Major revision number
+ - `#!dae var int minor`
+ Minor revision number
-The function returns `TRUE` if the version of Ikarus is the specified version or newer, `FALSE` is returned otherwise.
+ **Return value**
+ The function returns `TRUE` if the version of Ikarus is the specified version or newer, `FALSE` is returned otherwise.
### `MEM_SetShowDebug`
-Sets the variable that is also toggled by the `toggle debug` command. As a result, messages outputted by `PrintDebug` are directed to the [zSpy](../../../../tools/zSpy.md)
-```dae
-func void MEM_SetShowDebug(var int on)
-```
-**Parameters**
+!!! function "`MEM_SetShowDebug`"
+ Sets the variable that is also toggled by the `toggle debug` command. As a result, messages outputted by `PrintDebug` are directed to the [zSpy](../../../../tools/zSpy.md)
+ ```dae
+ func void MEM_SetShowDebug(var int on)
+ ```
+ **Parameters**
-- `#!dae var int on`
- Specifies whether to turn on (`TRUE`) or off (`FALSE`) debug information.
+ - `#!dae var int on`
+ Specifies whether to turn on (`TRUE`) or off (`FALSE`) debug information.
### `MEM_SendToSpy`
-Sends a message to the debugging console.
-```dae
-func void MEM_SendToSpy(var int errorType, var string text)
-```
-**Parameters**
-
-- `#!dae var int errorType`
- Type of error (e.g., `zERR_TYPE_FAULT`, `zERR_TYPE_WARN`, `zERR_TYPE_INFO`)
-- `#!dae var string text`
- The message to be sent.
+!!! function "`MEM_SendToSpy`"
+ Sends a message to the debugging console.
+ ```dae
+ func void MEM_SendToSpy(var int errorType, var string text)
+ ```
+ **Parameters**
+
+ - `#!dae var int errorType`
+ Type of error (e.g., `zERR_TYPE_FAULT`, `zERR_TYPE_WARN`, `zERR_TYPE_INFO`)
+ - `#!dae var string text`
+ The message to be sent.
### `MEM_ErrorBox`
-Displays an error message in a message box.
-```dae
-func void MEM_ErrorBox(var string text)
-```
-**Parameters**
+!!! function "`MEM_ErrorBox`"
+ Displays an error message in a message box.
+ ```dae
+ func void MEM_ErrorBox(var string text)
+ ```
+ **Parameters**
-- `#!dae var string text`
- The error message to be displayed.
+ - `#!dae var string text`
+ The error message to be displayed.
### `MEM_PrintStackTrace`
-Prints the stack trace.
-```dae
-func void MEM_PrintStackTrace()
-```
+!!! function "`MEM_PrintStackTrace`"
+ Prints the stack trace.
+ ```dae
+ func void MEM_PrintStackTrace()
+ ```
### `MEM_Error`
-Handles a fatal error, displaying the error message and printing the stack trace.
-```dae
-func void MEM_Error(var string error)
-```
-**Parameters**
+!!! function "`MEM_Error`"
+ Handles a fatal error, displaying the error message and printing the stack trace.
+ ```dae
+ func void MEM_Error(var string error)
+ ```
+ **Parameters**
-- `#!dae var string error`
- The error message.
+ - `#!dae var string error`
+ The error message.
### `MEM_Warn`
-Handles a warning, displaying the warning message and printing the stack trace.
-```dae
-func void MEM_Warn(var string warn)
-```
-**Parameters**
+!!! function "`MEM_Warn`"
+ Handles a warning, displaying the warning message and printing the stack trace.
+ ```dae
+ func void MEM_Warn(var string warn)
+ ```
+ **Parameters**
-- `#!dae var string warn`
- The warning message.
+ - `#!dae var string warn`
+ The warning message.
### `MEM_Info`
-Handles an information message, printing it if enabled in the settings.
-```dae
-func void MEM_Info(var string info)
-```
-**Parameters**
+!!! function "`MEM_Info`"
+ Handles an information message, printing it if enabled in the settings.
+ ```dae
+ func void MEM_Info(var string info)
+ ```
+ **Parameters**
-- `#!dae var string info`
- The information message.
+ - `#!dae var string info`
+ The information message.
### `MEM_AssertFail`
-Handles an assertion failure, reporting the error message as a fatal error.
-```dae
-func void MEM_AssertFail(var string assertFailText)
-```
-**Parameters**
+!!! function "`MEM_AssertFail`"
+ Handles an assertion failure, reporting the error message as a fatal error.
+ ```dae
+ func void MEM_AssertFail(var string assertFailText)
+ ```
+ **Parameters**
-- `#!dae var string assertFailText`
- The assertion failure message.
+ - `#!dae var string assertFailText`
+ The assertion failure message.
### `MEM_Debug`
-Freely configurable debug channel. See how to setup it in the [Constants](../constants.md#mem_debug) article.
-```dae
-func void MEM_Debug(var string message)
-```
-**Parameters**
+!!! function "`MEM_Debug`"
+ Freely configurable debug channel. See how to setup it in the [Constants](../constants.md#mem_debug) article.
+ ```dae
+ func void MEM_Debug(var string message)
+ ```
+ **Parameters**
-- `#!dae var string message`
- The debug message.
+ - `#!dae var string message`
+ The debug message.
### `MEMINT_SwitchG1G2`
-Switches between values based on the game version. Used mainly to change addresses in multi-platform hooks or function calls.
-```dae
-func int MEMINT_SwitchG1G2(var int g1Val, var int g2Val)
-```
-**Parameters**
+!!! function "`MEMINT_SwitchG1G2`"
+ Switches between values based on the game version. Used mainly to change addresses in multi-platform hooks or function calls.
+ ```dae
+ func int MEMINT_SwitchG1G2(var int g1Val, var int g2Val)
+ ```
+ **Parameters**
-- `#!dae var int g1Val`
- The value to return if the game version is Gothic 1.
-- `#!dae var int g2Val`
- The value to return if the game version is Gothic 2.
+ - `#!dae var int g1Val`
+ The value to return if the game version is Gothic 1.
+ - `#!dae var int g2Val`
+ The value to return if the game version is Gothic 2.
-**Return value**
+ **Return value**
-The function returns an appropriate value based on the game version.
\ No newline at end of file
+ The function returns an appropriate value based on the game version.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/ini_access.md b/docs/zengin/scripts/extenders/ikarus/functions/ini_access.md
index 04e115bdbc..96a2bbc449 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/ini_access.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/ini_access.md
@@ -19,201 +19,214 @@ MEM_InitAll();
## Read functions
### `MEM_GetCommandLine`
-Returns the contents of the command line passed to Gothic.
-```dae
-func string MEM_GetCommandLine()
-```
-**Return value**
+!!! function "`MEM_GetCommandLine`"
+ Returns the contents of the command line passed to Gothic.
+ ```dae
+ func string MEM_GetCommandLine()
+ ```
+ **Return value**
-The function returns contents of the command line passed to Gothic. This could, for example, look like this:
+ The function returns contents of the command line passed to Gothic. This could, for example, look like this:
-`"-TIME:7:35 -GAME:TEST_IKARUS.INI -ZREPARSE -ZWINDOW -ZLOG:5,S -DEVMODE -ZMAXFRAMERATE:30"`
+ `"-TIME:7:35 -GAME:TEST_IKARUS.INI -ZREPARSE -ZWINDOW -ZLOG:5,S -DEVMODE -ZMAXFRAMERATE:30"`
### `MEM_GetGothOpt`
-Searches the `Gothic.ini` for an option.
-```dae
-func string MEM_GetGothOpt(var string sectionname, var string optionname)
-```
-**Parameters**
+!!! function "`MEM_GetGothOpt`"
+ Searches the `Gothic.ini` for an option.
+ ```dae
+ func string MEM_GetGothOpt(var string sectionname, var string optionname)
+ ```
+ **Parameters**
-- `#!dae var string sectionname`
- Settings section like `[GAME]`
-- `#!dae var string optionname`
- One setting entry like `playLogoVideos`
+ - `#!dae var string sectionname`
+ Settings section like `[GAME]`
+ - `#!dae var string optionname`
+ One setting entry like `playLogoVideos`
-**Return value**
+ **Return value**
-The function returns an option value as a string or empty string if option was not found.
+ The function returns an option value as a string or empty string if option was not found.
### `MEM_GetModOpt`
-Searches the loaded mod ini file for option.
-```dae
-func void MEM_GetModOpt(var string sectionname, var string optionname)
-```
-**Parameters**
+!!! function "`MEM_GetModOpt`"
+ Searches the loaded mod ini file for option.
+ ```dae
+ func void MEM_GetModOpt(var string sectionname, var string optionname)
+ ```
+ **Parameters**
-- `#!dae var string sectionname`
- Settings section like `[INFO]`
-- `#!dae var string optionname`
- One setting entry like `Title`
+ - `#!dae var string sectionname`
+ Settings section like `[INFO]`
+ - `#!dae var string optionname`
+ One setting entry like `Title`
-**Return value**
+ **Return value**
-The function returns an option value as a string or empty string if option was not found.
+ The function returns an option value as a string or empty string if option was not found.
### `MEM_GothOptSectionExists`
-Checks whether a section exists in `Gothic.ini`
-```dae
-func int MEM_GothOptSectionExists(var string sectionname)
-```
-**Parameters**
+!!! function "`MEM_GothOptSectionExists`"
+ Checks whether a section exists in `Gothic.ini`
+ ```dae
+ func int MEM_GothOptSectionExists(var string sectionname)
+ ```
+ **Parameters**
-- `#!dae var string sectionname`
- Settings section like `[GAME]`
+ - `#!dae var string sectionname`
+ Settings section like `[GAME]`
-**Return value**
+ **Return value**
-The function returns `TRUE` if section exists `FALSE` is returned otherwise.
+ The function returns `TRUE` if section exists `FALSE` is returned otherwise.
### `MEM_ModOptSectionExists`
-Checks whether a section exists in loaded mod ini file
-```dae
-func int MEM_ModOptSectionExists(var string sectionname)
-```
-**Parameters**
+!!! function "`MEM_ModOptSectionExists`"
+ Checks whether a section exists in loaded mod ini file
+ ```dae
+ func int MEM_ModOptSectionExists(var string sectionname)
+ ```
+ **Parameters**
-- `#!dae var string sectionname`
- Settings section like `[INFO]`
+ - `#!dae var string sectionname`
+ Settings section like `[INFO]`
-**Return value**
+ **Return value**
-The function returns `TRUE` if section exists `FALSE` is returned otherwise.
+ The function returns `TRUE` if section exists `FALSE` is returned otherwise.
### `MEM_GothOptExists`
-Checks whether an option exists in `Gothic.ini`
-```dae
-func int MEM_GothOptExists(var string sectionname, var string optionname)
-```
-**Parameters**
+!!! function "`MEM_GothOptExists`"
+ Checks whether an option exists in `Gothic.ini`
+ ```dae
+ func int MEM_GothOptExists(var string sectionname, var string optionname)
+ ```
+ **Parameters**
-- `#!dae var string sectionname`
- Settings section like `[GAME]`
-- `#!dae var string optionname`
- One setting entry like `playLogoVideos`
+ - `#!dae var string sectionname`
+ Settings section like `[GAME]`
+ - `#!dae var string optionname`
+ One setting entry like `playLogoVideos`
-**Return value**
+ **Return value**
-The function returns `TRUE` if option in a section exist `FALSE` is returned otherwise.
+ The function returns `TRUE` if option in a section exist `FALSE` is returned otherwise.
### `MEM_ModOptExists`
-Checks whether an option exists in loaded mod ini file
-```dae
-func int MEM_ModOptExists(var string sectionname, var string optionname)
-```
-**Parameters**
+!!! function "`MEM_ModOptExists`"
+ Checks whether an option exists in loaded mod ini file
+ ```dae
+ func int MEM_ModOptExists(var string sectionname, var string optionname)
+ ```
+ **Parameters**
-- `#!dae var string sectionname`
- Settings section like `[INFO]`
-- `#!dae var string optionname`
- One setting entry like `Title`
+ - `#!dae var string sectionname`
+ Settings section like `[INFO]`
+ - `#!dae var string optionname`
+ One setting entry like `Title`
-**Return value**
+ **Return value**
-The function returns `TRUE` if option in a section exist `FALSE` is returned otherwise.
+ The function returns `TRUE` if option in a section exist `FALSE` is returned otherwise.
## Write functions
!!! Warning
Mod configuration is never saved to disk, therefore no separate functions exist for writing to it.
### `MEM_SetGothOpt`
-The option `option` in the section `section` is set to the `value`. If the section and/or option does not exist, it will be created.
-```dae
-func void MEM_SetGothOpt(var string section, var string option, var string value)
-```
-**Parameters**
-
-- `#!dae var string section`
- The section where the option should be located
-- `#!dae var string option`
- Option to write/overwrite
-- `#!dae var string value`
- Value to set the option to
+!!! function "`MEM_SetGothOpt`"
+ The option `option` in the section `section` is set to the `value`. If the section and/or option does not exist, it will be created.
+ ```dae
+ func void MEM_SetGothOpt(var string section, var string option, var string value)
+ ```
+ **Parameters**
+
+ - `#!dae var string section`
+ The section where the option should be located
+ - `#!dae var string option`
+ Option to write/overwrite
+ - `#!dae var string value`
+ Value to set the option to
### `MEM_ApplyGothOpt`
-Applies the changes and saves the ini to disk
-```dae
-func void MEM_ApplyGothOpt()
-```
-
-!!! Tip
- If you introduce new options, it is best to follow certain practices. It is a good practice to name your options in a clear manner and place them in a section named the same as your mod. Do not place your mod options into the `[GAME]` or `[PERFORMANCE]` sections.
+!!! function "`MEM_ApplyGothOpt`"
+ Applies the changes and saves the ini to disk
+ ```dae
+ func void MEM_ApplyGothOpt()
+ ```
+ !!! Tip
+ If you introduce new options, it is best to follow certain practices. It is a good practice to name your options in a clear manner and place them in a section named the same as your mod. Do not place your mod options into the `[GAME]` or `[PERFORMANCE]` sections.
## Key functions
The `Gothic.ini` contains the assignment of physical keys (e.g. "W") to logical keys (e.g. "keyUp").
### `MEM_GetKey`
-Returns the primary key assigned to logical key.
-```dae
-func int MEM_GetKey(var string name)
-```
-**Parameters**
+!!! function "`MEM_GetKey`"
+ Returns the primary key assigned to logical key.
+ ```dae
+ func int MEM_GetKey(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the logical key
+ - `#!dae var string name`
+ Name of the logical key
-**Return value**
+ **Return value**
-The function returns key assigned to logical key
+ The function returns key assigned to logical key
### `MEM_GetSecondaryKey`
-Returns a secondary key assigned to logical key.
-```dae
-func int MEM_GetSecondaryKey(var string name)
-```
-**Parameters**
+!!! function "`MEM_GetSecondaryKey`"
+ Returns a secondary key assigned to logical key.
+ ```dae
+ func int MEM_GetSecondaryKey(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the logical key
+ - `#!dae var string name`
+ Name of the logical key
-**Return value**
+ **Return value**
-The function returns key assigned to logical key
+ The function returns key assigned to logical key
### `MEM_SetKeys`
-Sets keyboard keys of the logical key.
-```dae
-func void MEM_SetKeys(var string name, var int primary, var int secondary)
-```
-**Parameters**
-
-- `#!dae var string name`
- Name of the logical key
-- `#!dae var int primary`
- Primary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
-- `#!dae var int secondary`
- Secondary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
+!!! function "`MEM_SetKeys`"
+ Sets keyboard keys of the logical key.
+ ```dae
+ func void MEM_SetKeys(var string name, var int primary, var int secondary)
+ ```
+ **Parameters**
+
+ - `#!dae var string name`
+ Name of the logical key
+ - `#!dae var int primary`
+ Primary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
+ - `#!dae var int secondary`
+ Secondary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
### `MEM_SetKey`
-Sets the primary keyboard key of the logical key.
-```dae
-func void MEM_SetKey(var string name, var int key)
-```
-**Parameters**
-
-- `#!dae var string name`
- Name of the logical key
-- `#!dae var int key`
- Primary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
+!!! function "`MEM_SetKey`"
+ Sets the primary keyboard key of the logical key.
+ ```dae
+ func void MEM_SetKey(var string name, var int key)
+ ```
+ **Parameters**
+
+ - `#!dae var string name`
+ Name of the logical key
+ - `#!dae var int key`
+ Primary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
### `MEM_SetSecondaryKey`
-Sets the secondary keyboard key of the logical key.
-```dae
-func void MEM_SetSecondaryKey(var string name, var int key)
-```
-**Parameters**
-
-- `#!dae var string name`
- Name of the logical key
-- `#!dae var int key`
- Secondary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
+!!! function "`MEM_SetSecondaryKey`"
+ Sets the secondary keyboard key of the logical key.
+ ```dae
+ func void MEM_SetSecondaryKey(var string name, var int key)
+ ```
+ **Parameters**
+
+ - `#!dae var string name`
+ Name of the logical key
+ - `#!dae var int key`
+ Secondary key to be assigned, can be taken from [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d) file.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/ini_access.pl.md b/docs/zengin/scripts/extenders/ikarus/functions/ini_access.pl.md
index 92b42c74cd..7bef7f3890 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/ini_access.pl.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/ini_access.pl.md
@@ -19,201 +19,214 @@ MEM_InitAll();
## Funkcje odczytu
### `MEM_GetCommandLine`
-Zwraca zawartość linii poleceń przekazaną do Gothica.
-```dae
-func string MEM_GetCommandLine()
-```
-**Zwracana wartość**
+!!! function "`MEM_GetCommandLine`"
+ Zwraca zawartość linii poleceń przekazaną do Gothica.
+ ```dae
+ func string MEM_GetCommandLine()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca zawartość linii poleceń przekazaną do Gothica. Może to wyglądać na przykład tak:
+ Funkcja zwraca zawartość linii poleceń przekazaną do Gothica. Może to wyglądać na przykład tak:
-`"-TIME:7:35 -GAME:TEST_IKARUS.INI -ZREPARSE -ZWINDOW -ZLOG:5,S -DEVMODE -ZMAXFRAMERATE:30"`
+ `"-TIME:7:35 -GAME:TEST_IKARUS.INI -ZREPARSE -ZWINDOW -ZLOG:5,S -DEVMODE -ZMAXFRAMERATE:30"`
### `MEM_GetGothOpt`
-Przeszukuje `Gothic.ini` w poszukiwaniu opcji
-```dae
-func string MEM_GetGothOpt(var string sectionname, var string optionname)
-```
-**Parametry**
+!!! function "`MEM_GetGothOpt`"
+ Przeszukuje `Gothic.ini` w poszukiwaniu opcji
+ ```dae
+ func string MEM_GetGothOpt(var string sectionname, var string optionname)
+ ```
+ **Parametry**
-- `#!dae var string sectionname`
- Nazwa sekcji np. `[GAME]`
-- `#!dae var string optionname`
- Szukana opcja np. `playLogoVideos`
+ - `#!dae var string sectionname`
+ Nazwa sekcji np. `[GAME]`
+ - `#!dae var string optionname`
+ Szukana opcja np. `playLogoVideos`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wartość opcji w postaci ciągu znaków, albo pustą zmienną, gdy opcja nie istnieje w danej sekcji.
+ Funkcja zwraca wartość opcji w postaci ciągu znaków, albo pustą zmienną, gdy opcja nie istnieje w danej sekcji.
### `MEM_GetModOpt`
-Przeszukuje ini załadowanej modyfikacji w poszukiwaniu opcji.
-```dae
-func void MEM_GetModOpt(var string sectionname, var string optionname)
-```
-**Parametry**
+!!! function "`MEM_GetModOpt`"
+ Przeszukuje ini załadowanej modyfikacji w poszukiwaniu opcji.
+ ```dae
+ func void MEM_GetModOpt(var string sectionname, var string optionname)
+ ```
+ **Parametry**
-- `#!dae var string sectionname`
- Nazwa sekcji np. `[INFO]`
-- `#!dae var string optionname`
- Szukana opcja np. `Title`
+ - `#!dae var string sectionname`
+ Nazwa sekcji np. `[INFO]`
+ - `#!dae var string optionname`
+ Szukana opcja np. `Title`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wartość opcji w postaci ciągu znaków, albo pustą zmienną, gdy opcja nie istnieje w danej sekcji.
+ Funkcja zwraca wartość opcji w postaci ciągu znaków, albo pustą zmienną, gdy opcja nie istnieje w danej sekcji.
### `MEM_GothOptSectionExists`
-Sprawdza, czy dana sekcja istnieje w `Gothic.ini`
-```dae
-func int MEM_GothOptSectionExists(var string sectionname)
-```
-**Parametry**
+!!! function "`MEM_GothOptSectionExists`"
+ Sprawdza, czy dana sekcja istnieje w `Gothic.ini`
+ ```dae
+ func int MEM_GothOptSectionExists(var string sectionname)
+ ```
+ **Parametry**
-- `#!dae var string sectionname`
- Nazwa sekcji np. `[GAME]`
+ - `#!dae var string sectionname`
+ Nazwa sekcji np. `[GAME]`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wartość `TRUE` jeśli sekcja istnieje, inaczej `FALSE`.
+ Funkcja zwraca wartość `TRUE` jeśli sekcja istnieje, inaczej `FALSE`.
### `MEM_ModOptSectionExists`
-Sprawdza, czy dana sekcja istnieje w ini załadowanej modyfikacji.
-```dae
-func int MEM_ModOptSectionExists(var string sectionname)
-```
-**Parametry**
+!!! function "`MEM_ModOptSectionExists`"
+ Sprawdza, czy dana sekcja istnieje w ini załadowanej modyfikacji.
+ ```dae
+ func int MEM_ModOptSectionExists(var string sectionname)
+ ```
+ **Parametry**
-- `#!dae var string sectionname`
- Nazwa sekcji np. `[INFO]`
+ - `#!dae var string sectionname`
+ Nazwa sekcji np. `[INFO]`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wartość `TRUE` jeśli sekcja istnieje, inaczej `FALSE`.
+ Funkcja zwraca wartość `TRUE` jeśli sekcja istnieje, inaczej `FALSE`.
### `MEM_GothOptExists`
-Sprawdza, czy dana opcja istnieje w `Gothic.ini`
-```dae
-func int MEM_GothOptExists(var string sectionname, var string optionname)
-```
-**Parametry**
+!!! function "`MEM_GothOptExists`"
+ Sprawdza, czy dana opcja istnieje w `Gothic.ini`
+ ```dae
+ func int MEM_GothOptExists(var string sectionname, var string optionname)
+ ```
+ **Parametry**
-- `#!dae var string sectionname`
- Nazwa sekcji np. `[GAME]`
-- `#!dae var string optionname`
- Szukana opcja np. `playLogoVideos`
+ - `#!dae var string sectionname`
+ Nazwa sekcji np. `[GAME]`
+ - `#!dae var string optionname`
+ Szukana opcja np. `playLogoVideos`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wartość `TRUE` jeśli opcja w danej sekcji istnieje, inaczej `FALSE`.
+ Funkcja zwraca wartość `TRUE` jeśli opcja w danej sekcji istnieje, inaczej `FALSE`.
### `MEM_ModOptExists`
-Sprawdza, czy dana opcja istnieje w ini załadowanej modyfikacji.
-```dae
-func int MEM_ModOptExists(var string sectionname, var string optionname)
-```
-**Parametry**
+!!! function "`MEM_ModOptExists`"
+ Sprawdza, czy dana opcja istnieje w ini załadowanej modyfikacji.
+ ```dae
+ func int MEM_ModOptExists(var string sectionname, var string optionname)
+ ```
+ **Parametry**
-- `#!dae var string sectionname`
- Nazwa sekcji np. `[INFO]`
-- `#!dae var string optionname`
- Szukana opcja np. `Title`
+ - `#!dae var string sectionname`
+ Nazwa sekcji np. `[INFO]`
+ - `#!dae var string optionname`
+ Szukana opcja np. `Title`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wartość `TRUE` jeśli opcja w danej sekcji istnieje, inaczej `FALSE`.
+ Funkcja zwraca wartość `TRUE` jeśli opcja w danej sekcji istnieje, inaczej `FALSE`.
-## Funkcje zapisu
-!!! Warning
- Plik konfiguracyjny modyfikacji nigdy nie jest zapisywany na dysku, dlatego nie ma oddzielnej funkcji do jego zapisu.
+ ## Funkcje zapisu
+ !!! Warning
+ Plik konfiguracyjny modyfikacji nigdy nie jest zapisywany na dysku, dlatego nie ma oddzielnej funkcji do jego zapisu.
### `MEM_SetGothOpt`
-Opcja `option` w sekcji `section` jest ustawiana na `value`. Jeśli sekcja i/lub opcja nie istnieje, zostanie utworzona.
-```dae
-func void MEM_SetGothOpt(var string section, var string option, var string value)
-```
-**Parametry**
-
-- `#!dae var string section`
- Sekcja, w której znajduje się opcja
-- `#!dae var string option`
- Opcja do zapisania/nadpisania
-- `#!dae var string value`
- Wartość, na jaką ustawiana jest opcja
+!!! function "`MEM_SetGothOpt`"
+ Opcja `option` w sekcji `section` jest ustawiana na `value`. Jeśli sekcja i/lub opcja nie istnieje, zostanie utworzona.
+ ```dae
+ func void MEM_SetGothOpt(var string section, var string option, var string value)
+ ```
+ **Parametry**
+
+ - `#!dae var string section`
+ Sekcja, w której znajduje się opcja
+ - `#!dae var string option`
+ Opcja do zapisania/nadpisania
+ - `#!dae var string value`
+ Wartość, na jaką ustawiana jest opcja
### `MEM_ApplyGothOpt`
-Stosuje zmiany i zapisuje plik ini na dysku.
-```dae
-func void MEM_ApplyGothOpt()
-```
-
-!!! Tip
- Jeśli wprowadzasz nowe opcje, najlepiej kierować się paroma zasadami. Dobrą praktyką jest nazywanie swoich opcji tak, aby inni mogli je zrozumieć i umieszczanie ich w sekcji o takiej samej nazwie jak twój mod. Nie umieszczaj opcji swojej modyfikacji w sekcji `[GAME]` lub `[PERFORMANCE]`.
+!!! function "`MEM_ApplyGothOpt`"
+ Stosuje zmiany i zapisuje plik ini na dysku.
+ ```dae
+ func void MEM_ApplyGothOpt()
+ ```
+ !!! Tip
+ Jeśli wprowadzasz nowe opcje, najlepiej kierować się paroma zasadami. Dobrą praktyką jest nazywanie swoich opcji tak, aby inni mogli je zrozumieć i umieszczanie ich w sekcji o takiej samej nazwie jak twój mod. Nie umieszczaj opcji swojej modyfikacji w sekcji `[GAME]` lub `[PERFORMANCE]`.
## Funkcje klawiszy
`Gothic.ini` zawiera przypisanie klawiszy fizycznych (np. "W") do klawiszy logicznych (np. "keyUp").
### `MEM_GetKey`
-Zwraca podstawowy klawisz przypisany do klawisza logicznego.
-```dae
-func int MEM_GetKey(var string name)
-```
-**Parametry**
+!!! function "`MEM_GetKey`"
+ Zwraca podstawowy klawisz przypisany do klawisza logicznego.
+ ```dae
+ func int MEM_GetKey(var string name)
+ ```
+ **Parametry**
-- `#!dae var string name`
- Nazwa klawisza logicznego
+ - `#!dae var string name`
+ Nazwa klawisza logicznego
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca klawisz przypisany do klawisza logicznego.
+ Funkcja zwraca klawisz przypisany do klawisza logicznego.
### `MEM_GetSecondaryKey`
-Zwraca zapasowy klawisz przypisany do klawisza logicznego.
-```dae
-func int MEM_GetSecondaryKey(var string name)
-```
-**Parametry**
+!!! function "`MEM_GetSecondaryKey`"
+ Zwraca zapasowy klawisz przypisany do klawisza logicznego.
+ ```dae
+ func int MEM_GetSecondaryKey(var string name)
+ ```
+ **Parametry**
-- `#!dae var string name`
- Nazwa klawisza logicznego
+ - `#!dae var string name`
+ Nazwa klawisza logicznego
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca klawisz przypisany do klawisza logicznego.
+ Funkcja zwraca klawisz przypisany do klawisza logicznego.
### `MEM_SetKeys`
-Ustawia klawisze klawiatury dla podanego klawisza logicznego.
-```dae
-func void MEM_SetKeys(var string name, var int primary, var int secondary)
-```
-**Parametry**
-
-- `#!dae var string name`
- Nazwa klawisza logicznego
-- `#!dae var int primary`
- Podstawowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
-- `#!dae var int secondary`
- Zapasowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
+!!! function "`MEM_SetKeys`"
+ Ustawia klawisze klawiatury dla podanego klawisza logicznego.
+ ```dae
+ func void MEM_SetKeys(var string name, var int primary, var int secondary)
+ ```
+ **Parametry**
+
+ - `#!dae var string name`
+ Nazwa klawisza logicznego
+ - `#!dae var int primary`
+ Podstawowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
+ - `#!dae var int secondary`
+ Zapasowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
### `MEM_SetKey`
-Ustawia podstawowy klawisz klawiatury dla klawisza logicznego.
-```dae
-func void MEM_SetKey(var string name, var int key)
-```
-**Parametry**
-
-- `#!dae var string name`
- Nazwa klawisza logicznego
-- `#!dae var int key`
- Podstawowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
+!!! function "`MEM_SetKey`"
+ Ustawia podstawowy klawisz klawiatury dla klawisza logicznego.
+ ```dae
+ func void MEM_SetKey(var string name, var int key)
+ ```
+ **Parametry**
+
+ - `#!dae var string name`
+ Nazwa klawisza logicznego
+ - `#!dae var int key`
+ Podstawowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
### `MEM_SetSecondaryKey`
-Ustawia zapasowy klawisz klawiatury dla klawisza logicznego.
-```dae
-func void MEM_SetSecondaryKey(var string name, var int key)
-```
-**Parametry**
-
-- `#!dae var string name`
- Nazwa klawisza logicznego
-- `#!dae var int key`
- Zapasowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
+!!! function "`MEM_SetSecondaryKey`"
+ Ustawia zapasowy klawisz klawiatury dla klawisza logicznego.
+ ```dae
+ func void MEM_SetSecondaryKey(var string name, var int key)
+ ```
+ **Parametry**
+
+ - `#!dae var string name`
+ Nazwa klawisza logicznego
+ - `#!dae var int key`
+ Zapasowy klawisz do przypisania, można go pobrać z pliku [Ikarus_Const_G1](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G1.d) / [Ikarus_Const_G2](https://github.com/Lehona/Ikarus/blob/master/Ikarus_Const_G2.d).
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/jumps_loops.md b/docs/zengin/scripts/extenders/ikarus/functions/jumps_loops.md
index abb34e0d59..d55a89b0bd 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/jumps_loops.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/jumps_loops.md
@@ -134,24 +134,26 @@ func void MEM_InitLabels()
Besides the normal [jumps](#jumps) Ikarus implements `MEM_Label` and `MEM_Goto` functions. They work similar to the stack manipulation with `var int label` but the interface is much more user-friendly and defining new variables is not needed.
### `MEM_Label`
-Function that works like a `label = MEM_StackPos.position;`. You could jump to it with [`MEM_Goto`](#mem_goto).
-```dae
-func void MEM_Label(var int lbl)
-```
-**Parameters**
+!!! function "`MEM_Label`"
+ Function that works like a `label = MEM_StackPos.position;`. You could jump to it with [`MEM_Goto`](#mem_goto).
+ ```dae
+ func void MEM_Label(var int lbl)
+ ```
+ **Parameters**
-- `#!dae var int lbl`
- Number of the label, used for nested loop or multiple loops within one function
+ - `#!dae var int lbl`
+ Number of the label, used for nested loop or multiple loops within one function
### `MEM_Goto`
-Function that works like a `MEM_StackPos.position = label;`. Executes a jump to a [`MEM_Label`](#mem_label) with specified number.
-```dae
-func void MEM_Goto(var int lbl)
-```
-**Parameters**
+!!! function "`MEM_Goto`"
+ Function that works like a `MEM_StackPos.position = label;`. Executes a jump to a [`MEM_Label`](#mem_label) with specified number.
+ ```dae
+ func void MEM_Goto(var int lbl)
+ ```
+ **Parameters**
-- `#!dae var int lbl`
- Number of the label, the function will jump to
+ - `#!dae var int lbl`
+ Number of the label, the function will jump to
### Usage
Usage of Label and Goto is probably self-explanatory, since it is same as in the regular Ikarus Jump. But before using it reading the [Notes and warnings](#notes-and-warnings) of the Jumps is recommended.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/keyboard.md b/docs/zengin/scripts/extenders/ikarus/functions/keyboard.md
index 0239eb9318..0a101e7978 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/keyboard.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/keyboard.md
@@ -24,50 +24,53 @@ MEM_InitAll();
Different players use different keys for specific actions! However, it is possible to get key assigned to the action from Gothic.ini. See [Ini access](ini_access.md#key-functions).
### `MEM_KeyPressed`
-Checks if the key is hold right at the moment of function call.
-```dae
-func int MEM_KeyPressed(var int key)
-```
-**Parameters**
+!!! function "`MEM_KeyPressed`"
+ Checks if the key is hold right at the moment of function call.
+ ```dae
+ func int MEM_KeyPressed(var int key)
+ ```
+ **Parameters**
-- `#!dae var int key`
- Checked key
+ - `#!dae var int key`
+ Checked key
-**Return value**
+ **Return value**
-The function returns `TRUE` if the key is hold, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the key is hold, `FALSE` is returned otherwise.
### `MEM_KeyState`
-Returns the state of the `key`.
-```dae
-func int MEM_KeyState(var int key)
-```
-**Parameters**
+!!! function "`MEM_KeyState`"
+ Returns the state of the `key`.
+ ```dae
+ func int MEM_KeyState(var int key)
+ ```
+ **Parameters**
-- `#!dae var int key`
- Checked key
+ - `#!dae var int key`
+ Checked key
-**Return value**
+ **Return value**
-The function returns actual key state.
+ The function returns actual key state.
-**Key states**
+ **Key states**
-- `KEY_UP` - The key is not pressed and was not pressed before. ("not pressed")
-- `KEY_PRESSED` - The key is pressed and was not previously pressed. ("new pressed")
-- `KEY_HOLD` - The key is pressed and was also pressed before. ("still pressed")
-- `KEY_RELEASED` - The key is not pressed and was previously pressed. ("let go")
+ - `KEY_UP` - The key is not pressed and was not pressed before. ("not pressed")
+ - `KEY_PRESSED` - The key is pressed and was not previously pressed. ("new pressed")
+ - `KEY_HOLD` - The key is pressed and was also pressed before. ("still pressed")
+ - `KEY_RELEASED` - The key is not pressed and was previously pressed. ("let go")
-`KEY_PRESSED` or `KEY_RELEASED` will be returned if the state of the key has changed since the last query.
+ `KEY_PRESSED` or `KEY_RELEASED` will be returned if the state of the key has changed since the last query.
-`KEY_UP` or `KEY_HOLD` are returned if the state has not changed.
+ `KEY_UP` or `KEY_HOLD` are returned if the state has not changed.
### `MEM_InsertKeyEvent`
-Makes the game think that the key was pressed.
-```dae
-func void MEM_InsertKeyEvent(var int key)
-```
-**Parameters**
-
-- `#!dae var int key`
- Key to be "pressed"
+!!! function "`MEM_InsertKeyEvent`"
+ Makes the game think that the key was pressed.
+ ```dae
+ func void MEM_InsertKeyEvent(var int key)
+ ```
+ **Parameters**
+
+ - `#!dae var int key`
+ Key to be "pressed"
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/mem_access.md b/docs/zengin/scripts/extenders/ikarus/functions/mem_access.md
index 717703ee01..d44552ebbc 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/mem_access.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/mem_access.md
@@ -23,171 +23,180 @@ MEM_InitAll();
## Read functions
### `MEM_ReadInt`
-Reads int from the `address`.
-```dae
-func int MEM_ReadInt(var int address)
-```
-**Parameters**
+!!! function "`MEM_ReadInt`"
+ Reads int from the `address`.
+ ```dae
+ func int MEM_ReadInt(var int address)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Memory address to read from
+ - `#!dae var int address`
+ Memory address to read from
-**Return value**
+ **Return value**
-The function returns an integer value if the address is correct.
+ The function returns an integer value if the address is correct.
### `MEM_ReadString`
-Reads string from the `address`.
-```dae
-func string MEM_ReadString(var int address)
-```
-**Parameters**
+!!! function "`MEM_ReadString`"
+ Reads string from the `address`.
+ ```dae
+ func string MEM_ReadString(var int address)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Memory address to read from
+ - `#!dae var int address`
+ Memory address to read from
-**Return value**
+ **Return value**
-The function returns string if the address is correct.
+ The function returns string if the address is correct.
### `MEM_ReadByte`
-Reads byte from the `address`.
-```dae
-func int MEM_ReadByte(var int address)
-```
-**Parameters**
+!!! function "`MEM_ReadByte`"
+ Reads byte from the `address`.
+ ```dae
+ func int MEM_ReadByte(var int address)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Memory address to read from
+ - `#!dae var int address`
+ Memory address to read from
-**Return value**
+ **Return value**
-The function returns byte value if the address is correct.
+ The function returns byte value if the address is correct.
### `MEM_ReadIntArray`
-Reads int from the array at the `arrayAddress`.
-```dae
-func int MEM_ReadIntArray(var int arrayAddress, var int offset)
-```
-**Parameters**
+!!! function "`MEM_ReadIntArray`"
+ Reads int from the array at the `arrayAddress`.
+ ```dae
+ func int MEM_ReadIntArray(var int arrayAddress, var int offset)
+ ```
+ **Parameters**
-- `#!dae var int arrayAddress`
- Memory address of array
-- `#!dae var int offset`
- Array offset (array index)
+ - `#!dae var int arrayAddress`
+ Memory address of array
+ - `#!dae var int offset`
+ Array offset (array index)
-**Return value**
+ **Return value**
-The function returns integer value from the array if the address is correct.
+ The function returns integer value from the array if the address is correct.
### `MEM_ReadStringArray`
!!! Info
`MEM_ReadStringArray` has been already moved to the LeGo [PermMem](../../lego/tools/permmem.md#mem_readstringarray) package.
### `MEM_ReadByteArray`
-Reads byte from the array at the `arrayAddress`.
-```dae
-func int MEM_ReadByteArray(var int arrayAddress, var int offset)
-```
-**Parameters**
+!!! function "`MEM_ReadByteArray`"
+ Reads byte from the array at the `arrayAddress`.
+ ```dae
+ func int MEM_ReadByteArray(var int arrayAddress, var int offset)
+ ```
+ **Parameters**
-- `#!dae var int arrayAddress`
- Memory address of array
-- `#!dae var int offset`
- Array offset (array index)
+ - `#!dae var int arrayAddress`
+ Memory address of array
+ - `#!dae var int offset`
+ Array offset (array index)
-**Return value**
+ **Return value**
-The function returns byte from the array if the address is correct.
+ The function returns byte from the array if the address is correct.
## Write functions
### `MEM_WriteInt`
-Writes int value in the `address`.
-```dae
-func void MEM_WriteInt(var int address, var int value)
-```
-**Parameters**
-
-- `#!dae var int address`
- Memory address to write into
-- `#!dae var int value`
- Integer value to write
-
-??? abstract "Example"
- An example of using this function is the following Ikarus function, which turns debugging messages on and off:
+!!! function "`MEM_WriteInt`"
+ Writes int value in the `address`.
```dae
- func void MEM_SetShowDebug(var int on)
- {
- MEM_WriteInt(showDebugAddress, on);
- };
+ func void MEM_WriteInt(var int address, var int value)
```
+ **Parameters**
+
+ - `#!dae var int address`
+ Memory address to write into
+ - `#!dae var int value`
+ Integer value to write
+
+ ??? abstract "Example"
+ An example of using this function is the following Ikarus function, which turns debugging messages on and off:
+ ```dae
+ func void MEM_SetShowDebug(var int on)
+ {
+ MEM_WriteInt(showDebugAddress, on);
+ };
+ ```
### `MEM_WriteString`
-Writes string in the `address`.
-```dae
-func void MEM_WriteString(var int address, var string value)
-```
-**Parameters**
+!!! function "`MEM_WriteString`"
+ Writes string in the `address`.
+ ```dae
+ func void MEM_WriteString(var int address, var string value)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Memory address to write into
-- `#!dae var int value`
- String to write
+ - `#!dae var int address`
+ Memory address to write into
+ - `#!dae var int value`
+ String to write
### `MEM_WriteByte`
-Only the byte at address `address` is changed here, not a whole four-byte word. That is, the three subsequent bytes remain untouched.
-If `0 <= val < 256` does not apply in `MEM_WriteByte`, a warning is issued and val is trimmed accordingly. In particular, shouldn't be negative numbers are passed.
-```dae
-func void MEM_WriteByte(var int address, var int value)
-```
-**Parameters**
+!!! function "`MEM_WriteByte`"
+ Only the byte at address `address` is changed here, not a whole four-byte word. That is, the three subsequent bytes remain untouched.
+ If `0 <= val < 256` does not apply in `MEM_WriteByte`, a warning is issued and val is trimmed accordingly. In particular, shouldn't be negative numbers are passed.
+ ```dae
+ func void MEM_WriteByte(var int address, var int value)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Memory address to write into
-- `#!dae var int value`
- Byte to write
+ - `#!dae var int address`
+ Memory address to write into
+ - `#!dae var int value`
+ Byte to write
### `MEM_WriteIntArray`
-Writes int value in the array at `arrayAddress`.
-```dae
-func void MEM_WriteIntArray(var int arrayAddress, var int offset, var int value)
-```
-**Parameters**
+!!! function "`MEM_WriteIntArray`"
+ Writes int value in the array at `arrayAddress`.
+ ```dae
+ func void MEM_WriteIntArray(var int arrayAddress, var int offset, var int value)
+ ```
+ **Parameters**
-- `#!dae var int arrayAddress`
- Memory address of array
-- `#!dae var int offset`
- Array offset (array index)
-- `#!dae var int value`
- Integer value to write
+ - `#!dae var int arrayAddress`
+ Memory address of array
+ - `#!dae var int offset`
+ Array offset (array index)
+ - `#!dae var int value`
+ Integer value to write
### `MEM_WriteStringArray`
-Writes string value in the array at `arrayAddress`.
-```dae
-func void MEM_WriteStringArray(var int arrayAddress, var int offset, var string value)
-```
-**Parameters**
+!!! function "`MEM_WriteStringArray`"
+ Writes string value in the array at `arrayAddress`.
+ ```dae
+ func void MEM_WriteStringArray(var int arrayAddress, var int offset, var string value)
+ ```
+ **Parameters**
-- `#!dae var int arrayAddress`
- Memory address of array
-- `#!dae var int offset`
- Array offset (array index)
-- `#!dae var string value`
- String to write
+ - `#!dae var int arrayAddress`
+ Memory address of array
+ - `#!dae var int offset`
+ Array offset (array index)
+ - `#!dae var string value`
+ String to write
### `MEM_WriteByteArray`
-Writes byte value in the array at `arrayAddress`.
-```dae
-func void MEM_WriteByteArray(var int arrayAddress, var int offset, var int value)
-```
-**Parameters**
-
-- `#!dae var int arrayAddress`
- Memory address of array
-- `#!dae var int offset`
- Array offset (array index)
-- `#!dae var int value`
- Byte to write
-
-
+!!! function "`MEM_WriteByteArray`"
+ Writes byte value in the array at `arrayAddress`.
+ ```dae
+ func void MEM_WriteByteArray(var int arrayAddress, var int offset, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int arrayAddress`
+ Memory address of array
+ - `#!dae var int offset`
+ Array offset (array index)
+ - `#!dae var int value`
+ Byte to write
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/mem_utility.md b/docs/zengin/scripts/extenders/ikarus/functions/mem_utility.md
index 22bc428e00..26a43fdff9 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/mem_utility.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/mem_utility.md
@@ -16,216 +16,227 @@ MEM_InitAll();
## Functions
### `MEM_Alloc`
-Allocates a specified amount of memory and returns a pointer to the allocated memory area.
+!!! function "`MEM_Alloc`"
+ Allocates a specified amount of memory and returns a pointer to the allocated memory area.
-!!! Danger
- Gothic does not and cannot retain a reference to this memory area or release it, even when destroying the session. Therefore, memory should only be reserved under certain conditions:
+ !!! Danger
+ Gothic does not and cannot retain a reference to this memory area or release it, even when destroying the session. Therefore, memory should only be reserved under certain conditions:
- - It is guaranteed to exist and can be released again with [`MEM_Free`](#mem_free) after loading a save game.
- - Gothic is aware of this memory area and independently releases it.
+ - It is guaranteed to exist and can be released again with [`MEM_Free`](#mem_free) after loading a save game.
+ - Gothic is aware of this memory area and independently releases it.
-It might be possible to create new objects with this function and permanently integrate them into the object structure of Gothic. However, extreme caution is advised, as object structures cannot be used, and manual handling is required.
+ It might be possible to create new objects with this function and permanently integrate them into the object structure of Gothic. However, extreme caution is advised, as object structures cannot be used, and manual handling is required.
-This function is well-suited for building small elements like list items and integrating them into existing lists. The memory allocated by this function is always initialized to zero.
-```dae
-func int MEM_Alloc(var int amount)
-```
-**Parameters**
+ This function is well-suited for building small elements like list items and integrating them into existing lists. The memory allocated by this function is always initialized to zero.
+ ```dae
+ func int MEM_Alloc(var int amount)
+ ```
+ **Parameters**
-- `#!dae var int amount`
- The amount of bytes to allocate
+ - `#!dae var int amount`
+ The amount of bytes to allocate
-**Return value**
+ **Return value**
-The function returns a pointer to the allocated memory area.
+ The function returns a pointer to the allocated memory area.
### `MEM_Realloc`
-Allocates a memory area of ​​size `newsize` and returns a pointer to this memory area. The memory area from location `ptr` is released.
+!!! function "`MEM_Realloc`"
+ Allocates a memory area of size `newsize` and returns a pointer to this memory area. The memory area from location `ptr` is released.
-If `newsize >= oldsize`, the first `oldsize` bytes from the old memory area are transferred to the new one. The additional memory is initialized with zero.
+ If `newsize >= oldsize`, the first `oldsize` bytes from the old memory area are transferred to the new one. The additional memory is initialized with zero.
-If `newsize <= oldsize`, all bytes of the new memory area are initialized with the corresponding values ​​of the old memory area.
+ If `newsize <= oldsize`, all bytes of the new memory area are initialized with the corresponding values of the old memory area.
-This function is intended to create an allocated memory area enlarge or reduce. Existing data remains naturally way received.
-```dae
-func int MEM_Realloc(var int ptr, var int oldsize, var int newsize)
-```
-**Parameters**
+ This function is intended to create an allocated memory area enlarge or reduce. Existing data remains naturally way received.
+ ```dae
+ func int MEM_Realloc(var int ptr, var int oldsize, var int newsize)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- The original pointer to the memory block
-- `#!dae var int oldsize`
- The size of the original memory block
-- `#!dae var int newsize`
- The size of the new memory block
+ - `#!dae var int ptr`
+ The original pointer to the memory block
+ - `#!dae var int oldsize`
+ The size of the original memory block
+ - `#!dae var int newsize`
+ The size of the new memory block
-**Return value**
+ **Return value**
-The function returns a pointer to the modified memory area.
+ The function returns a pointer to the modified memory area.
### `MEM_Free`
-Releases an allocated memory area.
+!!! function "`MEM_Free`"
+ Releases an allocated memory area.
-!!! Danger
- Great caution is advised, especially when attempting to destroy engine objects, as no destructors are called!
+ !!! Danger
+ Great caution is advised, especially when attempting to destroy engine objects, as no destructors are called!
-Releasing small things such as list elements can be done easily.
-```dae
-func void MEM_Free(var int ptr)
-```
-**Parameters**
+ Releasing small things such as list elements can be done easily.
+ ```dae
+ func void MEM_Free(var int ptr)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- Pointer to the released memory block
+ - `#!dae var int ptr`
+ Pointer to the released memory block
### `MEM_Copy`
-Copies a specified number of words from the source address to the destination address.
-```dae
-func void MEM_Copy(var int src, var int dst, var int wordcount)
-```
-**Parameters**
-
-- `#!dae var int src`
- The source address to copy from
-- `#!dae var int dst`
- The destination address to copy to
-- `#!dae var int wordCount`
- The number of words to copy
+!!! function "`MEM_Copy`"
+ Copies a specified number of words from the source address to the destination address.
+ ```dae
+ func void MEM_Copy(var int src, var int dst, var int wordcount)
+ ```
+ **Parameters**
+
+ - `#!dae var int src`
+ The source address to copy from
+ - `#!dae var int dst`
+ The destination address to copy to
+ - `#!dae var int wordCount`
+ The number of words to copy
### `MEM_CopyWords`
-Alias to [`MEM_Copy`](#mem_copy). Copies a specified number of words from the source address to the destination address.
-```dae
-func void MEM_CopyWords(var int src, var int dst, var int wordcount)
-```
-**Parameters**
-
-- `#!dae var int src`
- The source address to copy from
-- `#!dae var int dst`
- The destination address to copy to
-- `#!dae var int wordCount`
- The number of words to copy
+!!! function "`MEM_CopyWords`"
+ Alias to [`MEM_Copy`](#mem_copy). Copies a specified number of words from the source address to the destination address.
+ ```dae
+ func void MEM_CopyWords(var int src, var int dst, var int wordcount)
+ ```
+ **Parameters**
+
+ - `#!dae var int src`
+ The source address to copy from
+ - `#!dae var int dst`
+ The destination address to copy to
+ - `#!dae var int wordCount`
+ The number of words to copy
### `MEM_CopyBytes`
-Copies a specified number of bytes from the source address to the destination address
-```dae
-func void MEM_CopyBytes(var int src, var int dst, var int byteCount)
-```
-**Parameters**
-
-- `#!dae var int src`
- The source address to copy from
-- `#!dae var int dst`
- The destination address to copy to
-- `#!dae var int byteCount`
- The number of bytes to copy
+!!! function "`MEM_CopyBytes`"
+ Copies a specified number of bytes from the source address to the destination address
+ ```dae
+ func void MEM_CopyBytes(var int src, var int dst, var int byteCount)
+ ```
+ **Parameters**
+
+ - `#!dae var int src`
+ The source address to copy from
+ - `#!dae var int dst`
+ The destination address to copy to
+ - `#!dae var int byteCount`
+ The number of bytes to copy
### `MEM_Swap`
-Swaps a specified number of words between the source address and the destination address.
-```dae
-func void MEM_Swap(var int src, var int dst, var int wordCount)
-```
-**Parameters**
-
-- `#!dae var int src`
- The source address to swap from
-- `#!dae var int dst`
- The destination address to swap to
-- `#!dae var int wordCount`
- The number of words to swap
+!!! function "`MEM_Swap`"
+ Swaps a specified number of words between the source address and the destination address.
+ ```dae
+ func void MEM_Swap(var int src, var int dst, var int wordCount)
+ ```
+ **Parameters**
+
+ - `#!dae var int src`
+ The source address to swap from
+ - `#!dae var int dst`
+ The destination address to swap to
+ - `#!dae var int wordCount`
+ The number of words to swap
### `MEM_SwapWords`
-Alias to [`MEM_Swap`](#mem_swap). Swaps a specified number of words between the source address and the destination address.
-```dae
-func void MEM_SwapWords(var int src, var int dst, var int wordCount)
-```
-**Parameters**
-
-- `#!dae var int src`
- The source address to swap from
-- `#!dae var int dst`
- The destination address to swap to
-- `#!dae var int wordCount`
- The number of words to swap
+!!! function "`MEM_SwapWords`"
+ Alias to [`MEM_Swap`](#mem_swap). Swaps a specified number of words between the source address and the destination address.
+ ```dae
+ func void MEM_SwapWords(var int src, var int dst, var int wordCount)
+ ```
+ **Parameters**
+
+ - `#!dae var int src`
+ The source address to swap from
+ - `#!dae var int dst`
+ The destination address to swap to
+ - `#!dae var int wordCount`
+ The number of words to swap
### `MEM_SwapBytes`
-Swaps a specified number of bytes between the source address and the destination address.
-```dae
-func void MEM_SwapBytes(var int src, var int dst, var int byteCount)
-```
-**Parameters**
-
-- `#!dae var int src`
- The source address to swap from
-- `#!dae var int dst`
- The destination address to swap to
-- `#!dae var int byteCount`
- The number of bytes to swap
-
+!!! function "`MEM_SwapBytes`"
+ Swaps a specified number of bytes between the source address and the destination address.
+ ```dae
+ func void MEM_SwapBytes(var int src, var int dst, var int byteCount)
+ ```
+ **Parameters**
+
+ - `#!dae var int src`
+ The source address to swap from
+ - `#!dae var int dst`
+ The destination address to swap to
+ - `#!dae var int byteCount`
+ The number of bytes to swap
### `MEM_Clear`
-Sets a specified number of bytes in memory to zero.
-```dae
-func void MEM_Clear(var int ptr, var int size)
-```
-**Parameters**
-
-- `#!dae var int ptr`
- The memory address to start clearing from
-- `#!dae var int size`
- The number of bytes to clear
+!!! function "`MEM_Clear`"
+ Sets a specified number of bytes in memory to zero.
+ ```dae
+ func void MEM_Clear(var int ptr, var int size)
+ ```
+ **Parameters**
+
+ - `#!dae var int ptr`
+ The memory address to start clearing from
+ - `#!dae var int size`
+ The number of bytes to clear
### `MEM_Compare`
-Compares a specified number of words between two memory blocks.
-```dae
-func int MEM_Compare(var int ptr0, var int ptr1, var int wordCount)
-```
-**Parameters**
-
-- `#!dae var int ptr0`
- The first memory block to compare
-- `#!dae var int ptr1`
- The second memory block to compare
-- `#!dae var int wordCount`
- The number of words to compare
+!!! function "`MEM_Compare`"
+ Compares a specified number of words between two memory blocks.
+ ```dae
+ func int MEM_Compare(var int ptr0, var int ptr1, var int wordCount)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var int ptr0`
+ The first memory block to compare
+ - `#!dae var int ptr1`
+ The second memory block to compare
+ - `#!dae var int wordCount`
+ The number of words to compare
-The function returns `TRUE` if the memory blocks are equal, `FALSE` is returned otherwise.
+ **Return value**
+ The function returns `TRUE` if the memory blocks are equal, `FALSE` is returned otherwise.
### `MEM_CompareWords`
-Alias to [`MEM_Compare`](#mem_compare). Compares a specified number of words between two memory blocks.
-```dae
-func int MEM_CompareWords(var int ptr0, var int ptr1, var int wordCount)
-```
-**Parameters**
+!!! function "`MEM_CompareWords`"
+ Alias to [`MEM_Compare`](#mem_compare). Compares a specified number of words between two memory blocks.
+ ```dae
+ func int MEM_CompareWords(var int ptr0, var int ptr1, var int wordCount)
+ ```
+ **Parameters**
-- `#!dae var int ptr0`
- The first memory block to compare
-- `#!dae var int ptr1`
- The second memory block to compare
-- `#!dae var int wordCount`
- The number of words to compare
+ - `#!dae var int ptr0`
+ The first memory block to compare
+ - `#!dae var int ptr1`
+ The second memory block to compare
+ - `#!dae var int wordCount`
+ The number of words to compare
-**Return value**
+ **Return value**
-The function returns `TRUE` if the memory blocks are equal, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the memory blocks are equal, `FALSE` is returned otherwise.
### `MEM_CompareBytes`
-Compares a specified number of bytes between two memory blocks.
-```dae
-func int MEM_CompareBytes(var int ptr1, var int ptr2, var int byteCount)
-```
-**Parameters**
-
-- `#!dae var int ptr0`
- The first memory block to compare
-- `#!dae var int ptr1`
- The second memory block to compare
-- `#!dae var int wordCount`
- The number of bytes to compare
-
-**Return value**
-
-The function returns `TRUE` if the memory blocks are equal, `FALSE` is returned otherwise.
+!!! function "`MEM_CompareBytes`"
+ Compares a specified number of bytes between two memory blocks.
+ ```dae
+ func int MEM_CompareBytes(var int ptr1, var int ptr2, var int byteCount)
+ ```
+ **Parameters**
+
+ - `#!dae var int ptr0`
+ The first memory block to compare
+ - `#!dae var int ptr1`
+ The second memory block to compare
+ - `#!dae var int wordCount`
+ The number of bytes to compare
+
+ **Return value**
+
+ The function returns `TRUE` if the memory blocks are equal, `FALSE` is returned otherwise.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/menu_access.md b/docs/zengin/scripts/extenders/ikarus/functions/menu_access.md
index d5d73157a1..9c2a315d2a 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/menu_access.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/menu_access.md
@@ -18,31 +18,31 @@ MEM_InitAll();
## Functions
### `MEM_GetMenuByString`
+!!! function "`MEM_GetMenuByString`"
+ ```dae
+ func int MEM_GetMenuByString(var string menuName)
+ ```
-```dae
-func int MEM_GetMenuByString(var string menuName)
-```
-
-**Parameters**
+ **Parameters**
-- `#!dae var string menuName`
- Name of the Gothic menu e.g. `MENU_STATUS`
+ - `#!dae var string menuName`
+ Name of the Gothic menu e.g. `MENU_STATUS`
-**Return value**
+ **Return value**
-The function returns the address of the menu if a menu with this name exists, null otherwise.
+ The function returns the address of the menu if a menu with this name exists, null otherwise.
### `MEM_GetMenuItemByString`
+!!! function "`MEM_GetMenuItemByString`"
+ ```dae
+ func int MEM_GetMenuItemByString(var string menuItemName)
+ ```
-```dae
-func int MEM_GetMenuItemByString(var string menuItemName)
-```
-
-**Parameters**
+ **Parameters**
-- `#!dae var string menuItemName`
- Name of the Gothic menu item e.g. `MENU_ITEM_PLAYERGUILD_TITLE`
+ - `#!dae var string menuItemName`
+ Name of the Gothic menu item e.g. `MENU_ITEM_PLAYERGUILD_TITLE`
-**Return value**
+ **Return value**
-The function returns the address of the menu item if a menu item with this name exists, null otherwise.
\ No newline at end of file
+ The function returns the address of the menu item if a menu item with this name exists, null otherwise.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/objects.md b/docs/zengin/scripts/extenders/ikarus/functions/objects.md
index 0b11fa1422..708b515e83 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/objects.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/objects.md
@@ -39,13 +39,14 @@ The classes used here all have one thing in common: there is a maximum of one ob
[`MEM_InitGlobalInst`](#mem_initglobalinst) function sets the offsets of these instances to the corresponding unique object. While it has been called, all of the above instances can be used.
### `MEM_InitGlobalInst`
-Initializes global instances of commonly used objects in the game (is called by the `MEM_InitAll` function).
-```dae
-func void MEM_InitGlobalInst()
-```
+!!! function "`MEM_InitGlobalInst`"
+ Initializes global instances of commonly used objects in the game (is called by the `MEM_InitAll` function).
+ ```dae
+ func void MEM_InitGlobalInst()
+ ```
-!!! Warning
- `MEM_InitGlobalInst` must be executed once after loading a savegame. The easiest way is do it is to call this function from `INIT_GLOBAL`.
+ !!! Warning
+ `MEM_InitGlobalInst` must be executed once after loading a savegame. The easiest way is do it is to call this function from `INIT_GLOBAL`.
## Functions
@@ -75,227 +76,236 @@ func void MEM_InitGlobalInst()
Full Ikarus definition of this class, with members description can be found in [`Misc.d`](https://github.com/Lehona/Ikarus/blob/master/EngineClasses_G1/Misc.d#L490-L537) file. The class is same for G1 and G2A engines.
### `MEM_GetClassDef`
-Returns a pointer to the `zCClassDef` of the object. For more info see the **About zCClassDef** section above.
+!!! function "`MEM_GetClassDef`"
+ Returns a pointer to the `zCClassDef` of the object. For more info see the **About zCClassDef** section above.
-Passing these functions a pointer that does not point to a zCObject will most likely result in a crash
-lead.
+ Passing these functions a pointer that does not point to a zCObject will most likely result in a crash
+ lead.
-```dae
-func int MEM_GetClassDef(var int objPtr)
-```
-**Parameters**
+ ```dae
+ func int MEM_GetClassDef(var int objPtr)
+ ```
+ **Parameters**
+
+ - `#!dae var int objPtr`
+ A pointer to the object whose class definition is to be retrieved
-- `#!dae var int objPtr`
- A pointer to the object whose class definition is to be retrieved
+ **Return value**
-**Return value**
+ The function returns a pointer to the `zCClassDef` of the object.
-The function returns a pointer to the `zCClassDef` of the object.
+ ??? abstract "Example"
+ This would return a pointer to the `zCClassDef` object that belongs to the `oCNpc` class.
+ ```dae
+ func int example1
+ {
+ var int her; her = MEM_InstToPtr(hero);
+ return MEM_GetClassDef(her);
+ };
+ ```
-??? abstract "Example"
- This would return a pointer to the `zCClassDef` object that belongs to the `oCNpc` class.
+### `MEM_GetClassName`
+!!! function "`MEM_GetClassName`"
+ This function returns the name of the class to which an object belongs.
```dae
- func int example1
- {
- var int her; her = MEM_InstToPtr(hero);
- return MEM_GetClassDef(her);
- };
+ func string MEM_GetClassName(var int objPtr)
```
+ **Parameters**
+ - `#!dae var int objPtr`
+ A pointer to the object whose class name is to be retrieved
-### `MEM_GetClassName`
-This function returns the name of the class to which an object belongs.
-```dae
-func string MEM_GetClassName(var int objPtr)
-```
-**Parameters**
-
-- `#!dae var int objPtr`
- A pointer to the object whose class name is to be retrieved
+ **Return value**
-**Return value**
+ The function returns the objects class name as a string, if the object is invalid an empty string is returned.
-The function returns the objects class name as a string, if the object is invalid an empty string is returned.
+ ??? abstract "Example"
+ This would return a name of the `oCNpc` class as a string.
+ ```dae
+ func string example2
+ {
+ var int her; her = MEM_InstToPtr(hero);
+ return MEM_GetClassName(her);
+ };
+ // return: "oCNpc"
+ ```
-??? abstract "Example"
- This would return a name of the `oCNpc` class as a string.
+### `MEM_CheckInheritance`
+!!! function "`MEM_CheckInheritance`"
+ Checks if an object is derived from a specific class definition.
```dae
- func string example2
- {
- var int her; her = MEM_InstToPtr(hero);
- return MEM_GetClassName(her);
- };
- // return: "oCNpc"
+ func int MEM_CheckInheritance(var int objPtr, var int classDef)
```
+ **Parameters**
-### `MEM_CheckInheritance`
-Checks if an object is derived from a specific class definition.
-```dae
-func int MEM_CheckInheritance(var int objPtr, var int classDef)
-```
-**Parameters**
-
-- `#!dae var int objPtr`
- A pointer to the object to be checked
-- `#!dae var int classDef`
- A pointer to the class definition to check against
+ - `#!dae var int objPtr`
+ A pointer to the object to be checked
+ - `#!dae var int classDef`
+ A pointer to the class definition to check against
-**Return value**
+ **Return value**
-The function returns `TRUE` if the object is derived from the specified class definition, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the object is derived from the specified class definition, `FALSE` is returned otherwise.
#### `Hlp_Is_*`
-In addition [`MEM_CheckInheritance`](#mem_checkinheritance) function has some overloads with hardcoded `classDef` parameter.
+!!! function "`Hlp_Is_*`"
+ In addition [`MEM_CheckInheritance`](#mem_checkinheritance) function has some overloads with hardcoded `classDef` parameter.
-```dae
-func int Hlp_Is_oCMobFire(var int ptr){};
-func int Hlp_Is_zCMover(var int ptr){};
-func int Hlp_Is_oCMob(var int ptr){};
-func int Hlp_Is_oCMobInter(var int ptr){};
-func int Hlp_Is_oCMobLockable(var int ptr){};
-func int Hlp_Is_oCMobContainer(var int ptr){};
-func int Hlp_Is_oCMobDoor(var int ptr){};
-func int Hlp_Is_oCMobBed(var int ptr){};
-func int Hlp_Is_oCMobSwitch(var int ptr){};
-func int Hlp_Is_oCMobWheel(var int ptr){};
-func int Hlp_Is_oCMobLadder(var int ptr){};
-func int Hlp_Is_oCNpc(var int ptr){};
-func int Hlp_Is_oCItem(var int ptr){};
-func int Hlp_Is_zCVobLight(var int ptr){};
-```
-
-The usage of these functions is probably obvious, they checks if the given object belongs to class given in the function name.
+ ```dae
+ func int Hlp_Is_oCMobFire(var int ptr){};
+ func int Hlp_Is_zCMover(var int ptr){};
+ func int Hlp_Is_oCMob(var int ptr){};
+ func int Hlp_Is_oCMobInter(var int ptr){};
+ func int Hlp_Is_oCMobLockable(var int ptr){};
+ func int Hlp_Is_oCMobContainer(var int ptr){};
+ func int Hlp_Is_oCMobDoor(var int ptr){};
+ func int Hlp_Is_oCMobBed(var int ptr){};
+ func int Hlp_Is_oCMobSwitch(var int ptr){};
+ func int Hlp_Is_oCMobWheel(var int ptr){};
+ func int Hlp_Is_oCMobLadder(var int ptr){};
+ func int Hlp_Is_oCNpc(var int ptr){};
+ func int Hlp_Is_oCItem(var int ptr){};
+ func int Hlp_Is_zCVobLight(var int ptr){};
+ ```
+ The usage of these functions is probably obvious, they checks if the given object belongs to class given in the function name.
### `MEM_InsertVob`
-Inserts a Vob with the visual `vis` at the waypoint `wp`. If the visual or waypoint does not exist, this is the behaviour this function undefined.
+!!! function "`MEM_InsertVob`"
+ Inserts a Vob with the visual `vis` at the waypoint `wp`. If the visual or waypoint does not exist, this is the behaviour this function undefined.
-!!! Note
- The inserted Vob is even an `oCMob`, so it can be given a focus name, for example. But you can treat it like a [`zCVob`](../../../../worlds/Classes/zCVob.md)), if you don't need the additional properties.
-```dae
-func int MEM_InsertVob(var string vis, var string wp)
-```
-**Parameters**
+ !!! Note
+ The inserted Vob is even an `oCMob`, so it can be given a focus name, for example. But you can treat it like a [`zCVob`](../../../../worlds/Classes/zCVob.md)), if you don't need the additional properties.
+ ```dae
+ func int MEM_InsertVob(var string vis, var string wp)
+ ```
+ **Parameters**
-- `#!dae var string vis`
- Name of the inserted Vob visual (`"FAKESCROLL.3DS"`, `"FIRE.PFX"`, `"SNA_BODY.ASC"`, `"CHESTSMALL_NW_POOR_LOCKED.MDS"`, `"ADD_PIRATEFLAG.MMS"` etc.)
-- `#!dae var string wp`
- Name of the waypoint to insert Vob on
+ - `#!dae var string vis`
+ Name of the inserted Vob visual (`"FAKESCROLL.3DS"`, `"FIRE.PFX"`, `"SNA_BODY.ASC"`, `"CHESTSMALL_NW_POOR_LOCKED.MDS"`, `"ADD_PIRATEFLAG.MMS"` etc.)
+ - `#!dae var string wp`
+ Name of the waypoint to insert Vob on
-**Return value**
+ **Return value**
-The function returns a pointer to the created object.
+ The function returns a pointer to the created object.
### `MEM_DeleteVob`
-Deletes a specific Vob form world.
-```dae
-func void MEM_DeleteVob(var int vobPtr)
-```
-**Parameters**
+!!! function "`MEM_DeleteVob`"
+ Deletes a specific Vob form world.
+ ```dae
+ func void MEM_DeleteVob(var int vobPtr)
+ ```
+ **Parameters**
-- `#!dae var int vobPtr`
- Pointer to a [`zCVob`](../../../../worlds/Classes/zCVob.md) object to be deleted
+ - `#!dae var int vobPtr`
+ Pointer to a [`zCVob`](../../../../worlds/Classes/zCVob.md) object to be deleted
### `MEM_RenameVob`
-Renames the passed Vob to the `newName` that is also passed.
-
-The object becomes this first removed from the Vob-hashtable, then unnamed and then again inserted into the Vob-hashtable under a new name.
-```dae
-func void MEM_RenameVob(var int vobPtr, var string newName)
-```
-**Parameters**
+!!! function "`MEM_RenameVob`"
+ Renames the passed Vob to the `newName` that is also passed.
-- `#!dae var int vobPtr`
- Pointer to a [`zCVob`](../../../../worlds/Classes/zCVob.md) object to be renamed
-- `#!dae var string newName`
- The new Name of the Vob
-
-=== "MEM_TriggerVob"
-
- ### `MEM_TriggerVob`
- Sends a trigger message to the Vob.
+ The object becomes this first removed from the Vob-hashtable, then unnamed and then again inserted into the Vob-hashtable under a new name.
```dae
- func void MEM_TriggerVob(var int vobPtr)
+ func void MEM_RenameVob(var int vobPtr, var string newName)
```
**Parameters**
- `#!dae var int vobPtr`
- Pointer to a triggered [`zCVob`](../../../../worlds/Classes/zCVob.md)
+ Pointer to a [`zCVob`](../../../../worlds/Classes/zCVob.md) object to be renamed
+ - `#!dae var string newName`
+ The new Name of the Vob
- !!! Danger
- If triggering the Vob has immediate effects (even before MEM_TriggerVob is exited), the name of the Vob is corrupted during this time. It is not advisable to rename, trigger again or destroy the object at this moment, the behavior in such cases is untested.
+=== "MEM_TriggerVob"
+
+ ### `MEM_TriggerVob`
+ !!! function "`MEM_TriggerVob`"
+ Sends a trigger message to the Vob.
+ ```dae
+ func void MEM_TriggerVob(var int vobPtr)
+ ```
+ **Parameters**
+
+ - `#!dae var int vobPtr`
+ Pointer to a triggered [`zCVob`](../../../../worlds/Classes/zCVob.md)
+
+ !!! Danger
+ If triggering the Vob has immediate effects (even before MEM_TriggerVob is exited), the name of the Vob is corrupted during this time. It is not advisable to rename, trigger again or destroy the object at this moment, the behavior in such cases is untested.
=== "MEM_UntriggerVob"
### `MEM_UntriggerVob`
- Sends an untrigger message to the Vob.
- ```dae
- func void MEM_TriggerVob(var int vobPtr)
- ```
- **Parameters**
+ !!! function "`MEM_UntriggerVob`"
+ Sends an untrigger message to the Vob.
+ ```dae
+ func void MEM_TriggerVob(var int vobPtr)
+ ```
+ **Parameters**
- - `#!dae var int vobPtr`
- Pointer to an untriggered [`zCVob`](../../../../worlds/Classes/zCVob.md)
+ - `#!dae var int vobPtr`
+ Pointer to an untriggered [`zCVob`](../../../../worlds/Classes/zCVob.md)
- !!! Danger
- If untriggering the Vob has immediate effects (even before MEM_TriggerVob is exited), the name of the Vob is corrupted during this time. It is not advisable to rename, trigger again or destroy the object at this moment, the behavior in such cases is untested.
+ !!! Danger
+ If untriggering the Vob has immediate effects (even before MEM_TriggerVob is exited), the name of the Vob is corrupted during this time. It is not advisable to rename, trigger again or destroy the object at this moment, the behavior in such cases is untested.
### `MEM_SearchVobByName`
-Returns the address of a [`zCVob`](../../../../worlds/Classes/zCVob.md) named `str` if such a Vob exists.
-```dae
-func int MEM_SearchVobByName(var string str)
-```
-**Parameters**
-
-- `#!dae var string str`
- Name of searched [`zCVob`](../../../../worlds/Classes/zCVob.md)
+!!! function "`MEM_SearchVobByName`"
+ Returns the address of a [`zCVob`](../../../../worlds/Classes/zCVob.md) named `str` if such a Vob exists.
+ ```dae
+ func int MEM_SearchVobByName(var string str)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var string str`
+ Name of searched [`zCVob`](../../../../worlds/Classes/zCVob.md)
-The function returns a pointer to the [`zCVob`](../../../../worlds/Classes/zCVob.md) if the object with the given name exist. `0` is returned otherwise.
+ **Return value**
+ The function returns a pointer to the [`zCVob`](../../../../worlds/Classes/zCVob.md) if the object with the given name exist. `0` is returned otherwise.
### `MEM_SearchAllVobsByName`
-Variation of [`MEM_SearchVobByName`](#mem_searchvobbyname). Creates a `zCArray` in which all pointers are to Vobs with the name `str`. If no Vob with the name exists, an empty `zCArray` is created. A pointer to the created `zCArray` is then returned. This can be evaluated, but should be released again with `MEM_ArrayFree` before the end of the frame (before the player can load) to avoid memory leaks.
-```dae
-func int MEM_SearchAllVobsByName(var string str)
-```
-**Parameters**
+!!! function "`MEM_SearchAllVobsByName`"
+ Variation of [`MEM_SearchVobByName`](#mem_searchvobbyname). Creates a `zCArray` in which all pointers are to Vobs with the name `str`. If no Vob with the name exists, an empty `zCArray` is created. A pointer to the created `zCArray` is then returned. This can be evaluated, but should be released again with `MEM_ArrayFree` before the end of the frame (before the player can load) to avoid memory leaks.
+ ```dae
+ func int MEM_SearchAllVobsByName(var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- Name of searched [`zCVob`](../../../../worlds/Classes/zCVob.md)
+ - `#!dae var string str`
+ Name of searched [`zCVob`](../../../../worlds/Classes/zCVob.md)
-**Return value**
+ **Return value**
-The function returns a pointer to the created `zCArray`, that contains pointers to the all Vobs with the specified name.
+ The function returns a pointer to the created `zCArray`, that contains pointers to the all Vobs with the specified name.
### `MEM_GetBufferCRC32`
-Calculates the CRC32 hash value from a byte array starting at the address specified by `buf` and having a length of `buflen`.
-```dae
-func int MEM_GetBufferCRC32(var int buf, var int buflen)
-```
-**Parameters**
-
-- `#!dae var int buf`
- Address of a byte array, the hash calculation will begin from
+!!! function "`MEM_GetBufferCRC32`"
+ Calculates the CRC32 hash value from a byte array starting at the address specified by `buf` and having a length of `buflen`.
+ ```dae
+ func int MEM_GetBufferCRC32(var int buf, var int buflen)
+ ```
+ **Parameters**
-- `#!dae var int buflen`
- The length of the byte array starting from the address specified by `buf`
+ - `#!dae var int buf`
+ Address of a byte array, the hash calculation will begin from
-**Return value**
+ - `#!dae var int buflen`
+ The length of the byte array starting from the address specified by `buf`
-The function returns the calculated CRC32 hash value.
+ **Return value**
+ The function returns the calculated CRC32 hash value.
### `MEM_GetStringHash`
-Calculates the CRC32 hash value for a string.
-```dae
-func int MEM_GetStringHash(var string str)
-```
-**Parameters**
+!!! function "`MEM_GetStringHash`"
+ Calculates the CRC32 hash value for a string.
+ ```dae
+ func int MEM_GetStringHash(var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- A string for which the hash value is to be calculated
+ - `#!dae var string str`
+ A string for which the hash value is to be calculated
-**Return value**
+ **Return value**
-The function returns an integer representing the calculated hash value for the input string.
\ No newline at end of file
+ The function returns an integer representing the calculated hash value for the input string.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/parser.md b/docs/zengin/scripts/extenders/ikarus/functions/parser.md
index b0140fa9bb..ef35ecfaad 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/parser.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/parser.md
@@ -20,125 +20,132 @@ MEM_InitAll();
```
### `MEM_ReinitParser`
-Parser operations are initialized with this function.
-```dae
-func void MEM_ReinitParser()
-```
-
-!!! Tip
- It's worth noting that `MEM_ReinitParser` is also invoked by the `MEM_InitAll` function.
+!!! function "`MEM_ReinitParser`"
+ Parser operations are initialized with this function.
+ ```dae
+ func void MEM_ReinitParser()
+ ```
+ !!! Tip
+ It's worth noting that `MEM_ReinitParser` is also invoked by the `MEM_InitAll` function.
## Pointers and instances
### `MEM_PtrToInst`
-Returns an instance pointed to by the pointer. If the pointer is null an error is thrown.
-```dae
-func MEMINT_HelperClass MEM_PtrToInst(var int ptr)
-```
-**Parameters**
-
-- `#!dae var int ptr`
- Pointer to return an instance from
+!!! function "`MEM_PtrToInst`"
+ Returns an instance pointed to by the pointer. If the pointer is null an error is thrown.
+ ```dae
+ func MEMINT_HelperClass MEM_PtrToInst(var int ptr)
+ ```
+ **Parameters**
-**Shortcut**
+ - `#!dae var int ptr`
+ Pointer to return an instance from
-In addition there is a function **`_^`** with the same signature and functionality as `MEM_PtrToInst`. It is used as a shortcut, since the converting pointer to instance is commonly used while working with Ikarus.
+ **Shortcut**
-```dae
-func MEMINT_HelperClass _^ (var int ptr)
-```
+ In addition there is a function **`_^`** with the same signature and functionality as `MEM_PtrToInst`. It is used as a shortcut, since the converting pointer to instance is commonly used while working with Ikarus.
-??? abstract "Example"
- Following code
- ```dae
- var oCNpc her; her = MEM_PtrToInst(heroPtr);
- ```
- is equivalent to
```dae
- var oCNpc her; her = _^(heroPtr);
+ func MEMINT_HelperClass _^ (var int ptr)
```
+ ??? abstract "Example"
+ Following code
+ ```dae
+ var oCNpc her; her = MEM_PtrToInst(heroPtr);
+ ```
+ is equivalent to
+ ```dae
+ var oCNpc her; her = _^(heroPtr);
+ ```
### `MEM_NullToInst`
-Returns an instance from a null pointer.
-```dae
-func MEMINT_HelperClass MEM_NullToInst()
-```
-
-### `MEM_AssignInst`
-Takes an instance from a pointer and assigns it to a given instance. If the pointer is null an error is thrown.
-```dae
-func void MEM_AssignInst(var int inst, var int ptr)
-```
-**Parameters**
-
-- `#!dae var int ptr`
- Pointer to assign an instance from
-- `#!dae var int inst`
- Instance to which the pointer will be assigned
-
-??? abstract "Example"
- Following code
+!!! function "`MEM_NullToInst`"
+ Returns an instance from a null pointer.
```dae
- var oCNpc inst;
- MEM_AssignInst (inst, ptr);
+ func MEMINT_HelperClass MEM_NullToInst()
```
- is equivalent to
+
+### `MEM_AssignInst`
+!!! function "`MEM_AssignInst`"
+ Takes an instance from a pointer and assigns it to a given instance. If the pointer is null an error is thrown.
```dae
- var oCNpc inst;
- inst = MEM_PtrToInst(ptr);
+ func void MEM_AssignInst(var int inst, var int ptr)
```
+ **Parameters**
+
+ - `#!dae var int ptr`
+ Pointer to assign an instance from
+ - `#!dae var int inst`
+ Instance to which the pointer will be assigned
+
+ ??? abstract "Example"
+ Following code
+ ```dae
+ var oCNpc inst;
+ MEM_AssignInst (inst, ptr);
+ ```
+ is equivalent to
+ ```dae
+ var oCNpc inst;
+ inst = MEM_PtrToInst(ptr);
+ ```
### `MEM_AssignInstNull`
-Assigns null pointer to a given instance.
-```dae
-func void MEM_AssignInstNull(var int inst)
-```
-**Parameters**
+!!! function "`MEM_AssignInstNull`"
+ Assigns null pointer to a given instance.
+ ```dae
+ func void MEM_AssignInstNull(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- Instance to which the null pointer will be assigned
+ - `#!dae var int inst`
+ Instance to which the null pointer will be assigned
### `MEM_InstToPtr`
-Returns a pointer to given instance.
-```dae
-func int MEM_InstToPtr(var int inst)
-```
-**Parameters**
+!!! function "`MEM_InstToPtr`"
+ Returns a pointer to given instance.
+ ```dae
+ func int MEM_InstToPtr(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- The instance to which the pointer is returned
+ - `#!dae var int inst`
+ The instance to which the pointer is returned
### `MEM_InstGetOffset`
-Alias to `MEM_InstToPtr`. Returns a pointer to given instance.
-```dae
-func int MEM_InstGetOffset(var int inst)
-```
-**Parameters**
+!!! function "`MEM_InstGetOffset`"
+ Alias to `MEM_InstToPtr`. Returns a pointer to given instance.
+ ```dae
+ func int MEM_InstGetOffset(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- The instance to which the pointer is returned
+ - `#!dae var int inst`
+ The instance to which the pointer is returned
### `MEM_CpyInst`
-Returns a copy of a given instance
-```dae
-func MEMINT_HelperClass MEM_CpyInst(var int inst)
-```
-**Parameters**
-
-- `#!dae var int inst`
- Instance to copy
-
-??? abstract "example"
- Following code
- ```dae
- selfCopy = MEM_CpyInst (self);
- ```
- is equivalent to
+!!! function "`MEM_CpyInst`"
+ Returns a copy of a given instance
```dae
- selfCopy = MEM_PtrToInst (MEM_InstToPtr (self));
+ func MEMINT_HelperClass MEM_CpyInst(var int inst)
```
+ **Parameters**
+
+ - `#!dae var int inst`
+ Instance to copy
+
+ ??? abstract "example"
+ Following code
+ ```dae
+ selfCopy = MEM_CpyInst (self);
+ ```
+ is equivalent to
+ ```dae
+ selfCopy = MEM_PtrToInst (MEM_InstToPtr (self));
+ ```
+
## Call function
You don't always know at compile time when you want to call which function. For example, if you want to call the condition function of a mob that the player has in focus, you are at a loss at compile time because you have no idea which mob the player will choose. Ikarus provides a way to call functions based on their name or symbol index. In the example of the mob, the name of the condition function can simply be looked up in the mob.
@@ -149,289 +156,315 @@ You don't always know at compile time when you want to call which function. For
If the function to be called has parameters, these must first be placed on the data stack. The parameters must be pushed in the correct order, from left to right.
#### `MEM_PushIntParam`
-Passes an integer as a parameter to the called function.
-```dae
-func void MEM_PushIntParam (var int param)
-```
-**Parameters**
+!!! function "`MEM_PushIntParam`"
+ Passes an integer as a parameter to the called function.
+ ```dae
+ func void MEM_PushIntParam (var int param)
+ ```
+ **Parameters**
-- `#!dae var int param`
- Integer to pass as a function parameter
+ - `#!dae var int param`
+ Integer to pass as a function parameter
#### `MEM_PushInstParam`
-Passes an instance as a parameter to the called function.
-```dae
-func void MEM_PushInstParam (var int inst)
-```
-**Parameters**
+!!! function "`MEM_PushInstParam`"
+ Passes an instance as a parameter to the called function.
+ ```dae
+ func void MEM_PushInstParam (var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- Instance to pass as a function parameter
+ - `#!dae var int inst`
+ Instance to pass as a function parameter
#### `MEM_PushStringParam`
-Passes a string as a parameter to the called function.
-```dae
-func void MEM_PushStringParam (var string str)
-```
-**Parameters**
+ !!! function "`MEM_PushStringParam`"
+ Passes a string as a parameter to the called function.
+ ```dae
+ func void MEM_PushStringParam (var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- String to pass as a function parameter
+ - `#!dae var string str`
+ String to pass as a function parameter
### The call
#### `MEM_Call`
-Calls a function.
-```dae
-func void MEM_Call(var func fnc)
-```
-**Parameters**
+!!! function "`MEM_Call`"
+ Calls a function.
+ ```dae
+ func void MEM_Call(var func fnc)
+ ```
+ **Parameters**
-- `#!dae var func fnc`
- Function to be called
+ - `#!dae var func fnc`
+ Function to be called
#### `MEM_CallByID`
-Calls a function by its ID.
-```dae
-func void MEM_CallByID (var int symbID)
-```
-**Parameters**
+!!! function "`MEM_CallByID`"
+ Calls a function by its ID.
+ ```dae
+ func void MEM_CallByID (var int symbID)
+ ```
+ **Parameters**
-- `#!dae var int symbID`
- The ID of the function to be called
+ - `#!dae var int symbID`
+ The ID of the function to be called
#### `MEM_CallByPtr`
-Calls a function by its pointer.
-```dae
-func void MEM_CallByPtr(var int ptr)
-```
-**Parameters**
+!!! function "`MEM_CallByPtr`"
+ Calls a function by its pointer.
+ ```dae
+ func void MEM_CallByPtr(var int ptr)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- The pointer of the function to be called
+ - `#!dae var int ptr`
+ The pointer of the function to be called
#### `MEM_CallByOffset`
-Calls a function by its offset.
-```dae
-func void MEM_CallByOffset(var int offset)
-```
-**Parameters**
+!!! function "`MEM_CallByOffset`"
+ Calls a function by its offset.
+ ```dae
+ func void MEM_CallByOffset(var int offset)
+ ```
+ **Parameters**
-- `#!dae var int offset`
- The offset of the function to be called
+ - `#!dae var int offset`
+ The offset of the function to be called
#### `MEM_CallByString`
-Calls a function by its name.
-```dae
-func void MEM_CallByString (var string fnc)
-```
-**Parameters**
+!!! function "`MEM_CallByString`"
+ Calls a function by its name.
+ ```dae
+ func void MEM_CallByString (var string fnc)
+ ```
+ **Parameters**
-- `#!dae var string fnc`
- The name of the function IN CAPITAL LETTERS.
+ - `#!dae var string fnc`
+ The name of the function IN CAPITAL LETTERS.
### Return value
If a function has a return value, it should be fetched from the data stack after it is called, otherwise stack overflows can occur under unfavorable circumstances (aside from that, you may simply want the return value because it contains important information).
#### `MEM_PopIntResult`
-Retrieves an integer returned by the called function.
-```dae
-func int MEM_PopIntResult()
-```
-**Return value**
+!!! function "`MEM_PopIntResult`"
+ Retrieves an integer returned by the called function.
+ ```dae
+ func int MEM_PopIntResult()
+ ```
+ **Return value**
-The function returns an integer returned by the previously called script function.
+ The function returns an integer returned by the previously called script function.
#### `MEM_PopStringResult`
-Retrieves a daedalus string returned by the called function.
-```dae
-func string MEM_PopStringResult()
-```
-**Return value**
+!!! function "`MEM_PopStringResult`"
+ Retrieves a daedalus string returned by the called function.
+ ```dae
+ func string MEM_PopStringResult()
+ ```
+ **Return value**
-The function returns a string returned by the previously called script function.
+ The function returns a string returned by the previously called script function.
#### `MEM_PopInstResult`
-Retrieves an instance returned by the called function.
-```dae
-func MEMINT_HelperClass MEM_PopInstResult()
-```
-**Return value**
+!!! function "`MEM_PopInstResult`"
+ Retrieves an instance returned by the called function.
+ ```dae
+ func MEMINT_HelperClass MEM_PopInstResult()
+ ```
+ **Return value**
-The function returns an instance returned by the previously called script function.
+ The function returns an instance returned by the previously called script function.
## Function stuff
### `MEM_GetFuncID`
-Returns the ID of the given function.
-```dae
-func int MEM_GetFuncID(var func fnc)
-```
-**Parameters**
+!!! function "`MEM_GetFuncID`"
+ Returns the ID of the given function.
+ ```dae
+ func int MEM_GetFuncID(var func fnc)
+ ```
+ **Parameters**
-- `#!dae var func fnc`
- The function whose ID is returned
+ - `#!dae var func fnc`
+ The function whose ID is returned
### `MEM_GetFuncPtr`
-Returns the pointer of the given function.
-```dae
-func int MEM_GetFuncPtr(var func fnc)
-```
-**Parameters**
+!!! function "`MEM_GetFuncPtr`"
+ Returns the pointer of the given function.
+ ```dae
+ func int MEM_GetFuncPtr(var func fnc)
+ ```
+ **Parameters**
-- `#!dae var func fnc`
- The function whose pointer is returned
+ - `#!dae var func fnc`
+ The function whose pointer is returned
### `MEM_GetFuncOffset`
-Returns the offset of the given function.
-```dae
-func int MEM_GetFuncOffset(var func fnc)
-```
-**Parameters**
+!!! function "`MEM_GetFuncOffset`"
+ Returns the offset of the given function.
+ ```dae
+ func int MEM_GetFuncOffset(var func fnc)
+ ```
+ **Parameters**
-- `#!dae var func fnc`
- The function whose offset is returned
+ - `#!dae var func fnc`
+ The function whose offset is returned
### `MEM_GetFuncIDByOffset`
-[`MEM_GetFuncID`](#mem_getfuncid), but with an offset as a parameter.
-```dae
-func int MEM_GetFuncIDByOffset(var int offset)
-```
-**Parameters**
+!!! function "`MEM_GetFuncIDByOffset`"
+ [`MEM_GetFuncID`](#mem_getfuncid), but with an offset as a parameter.
+ ```dae
+ func int MEM_GetFuncIDByOffset(var int offset)
+ ```
+ **Parameters**
-- `#!dae var int offset`
- Offset of a function whose ID is returned
+ - `#!dae var int offset`
+ Offset of a function whose ID is returned
-**Return value**
+ **Return value**
-The function returns an ID of a function with a given offset.
+ The function returns an ID of a function with a given offset.
### `MEM_ReplaceFunc`
-Replaces the `f1` function with `f2` function so if you call the first function, the second function is called.
-```dae
-func void MEM_ReplaceFunc(var func f1, var func f2)
-```
-**Parameters**
+!!! function "`MEM_ReplaceFunc`"
+ Replaces the `f1` function with `f2` function so if you call the first function, the second function is called.
+ ```dae
+ func void MEM_ReplaceFunc(var func f1, var func f2)
+ ```
+ **Parameters**
-- `#!dae var func f1`
- Function to replace
-- `#!dae var func f2`
- Function called instead of `f1`
+ - `#!dae var func f1`
+ Function to replace
+ - `#!dae var func f2`
+ Function called instead of `f1`
## Parser stack
### `MEM_GetFrameBoundary`
-Returns the address/pointer to the boundary of a stack frame (ESP).
-```dae
-func int MEM_GetFrameBoundary()
-```
+!!! function "`MEM_GetFrameBoundary`"
+ Returns the address/pointer to the boundary of a stack frame (ESP).
+ ```dae
+ func int MEM_GetFrameBoundary()
+ ```
+
### `MEM_GetCallerStackPos`
-Retrieves the stack position (pop position) of the caller's caller (look at the example for better understanding).
-```dae
-func int MEM_GetCallerStackPos()
-```
-**Return value**
+!!! function "`MEM_GetCallerStackPos`"
+ Retrieves the stack position (pop position) of the caller's caller (look at the example for better understanding).
+ ```dae
+ func int MEM_GetCallerStackPos()
+ ```
+ **Return value**
-The function returns an integer representing the stack position of the caller's caller.
+ The function returns an integer representing the stack position of the caller's caller.
-??? abstract "Example"
- After calling `B()` from within `A()`, when `MEM_GetCallerStackPos()` is invoked in function `B()`, it retrieves the stack position of the caller's caller, which is function `A()` in this case. Therefore, the variable `adr` will contain the stack position of function `A()`.
- ```dae
- func void A(){
- B();
- };
+ ??? abstract "Example"
+ After calling `B()` from within `A()`, when `MEM_GetCallerStackPos()` is invoked in function `B()`, it retrieves the stack position of the caller's caller, which is function `A()` in this case. Therefore, the variable `adr` will contain the stack position of function `A()`.
+ ```dae
+ func void A(){
+ B();
+ };
- func void B(){
- int adr; adr = MEM_GetCallerStackPos();
- // Now, 'adr' will contain the stack position of A.
- };
- ```
+ func void B(){
+ int adr; adr = MEM_GetCallerStackPos();
+ // Now, 'adr' will contain the stack position of A.
+ };
+ ```
### `MEM_SetCallerStackPos`
-Sets the stack position (pop position) of the caller's caller.
-```dae
-func void MEM_SetCallerStackPos(var int popPos)
-```
-**Parameters**
+!!! function "`MEM_SetCallerStackPos`"
+ Sets the stack position (pop position) of the caller's caller.
+ ```dae
+ func void MEM_SetCallerStackPos(var int popPos)
+ ```
+ **Parameters**
-- `#!dae var int popPos`
- An integer parameter representing the new stack position of the caller's caller
+ - `#!dae var int popPos`
+ An integer parameter representing the new stack position of the caller's caller
## Get address
### `MEM_GetAddress_Init`
-Initializes the `MEM_GetIntAddress`, `MEM_GetFloatAddress` and `MEM_GetStringAddress` functions.
-```dae
-func void MEM_GetAddress_Init()
-```
+!!! function "`MEM_GetAddress_Init`"
+ Initializes the `MEM_GetIntAddress`, `MEM_GetFloatAddress` and `MEM_GetStringAddress` functions.
+ ```dae
+ func void MEM_GetAddress_Init()
+ ```
-!!! Tip
- It's worth noting that `MEM_GetAddress_Init` is also invoked by the `MEM_InitAll` function.
+ !!! Tip
+ It's worth noting that `MEM_GetAddress_Init` is also invoked by the `MEM_InitAll` function.
### `MEM_GetIntAddress`
-Returns an address of a given integer.
-```dae
-func int MEM_GetIntAddress(var int i)
-```
-**Parameters**
+!!! function "`MEM_GetIntAddress`"
+ Returns an address of a given integer.
+ ```dae
+ func int MEM_GetIntAddress(var int i)
+ ```
+ **Parameters**
-- `#!dae var int i`
- Integer whose address is returned
+ - `#!dae var int i`
+ Integer whose address is returned
-**Shortcut**
+ **Shortcut**
-In addition there is a function **`_@`** with the same signature and functionality as `MEM_GetIntAddress`.
+ In addition there is a function **`_@`** with the same signature and functionality as `MEM_GetIntAddress`.
-```dae
-func int _@(var int i)
-```
+ ```dae
+ func int _@(var int i)
+ ```
### `MEM_GetFloatAddress`
-Returns an address of a given daedalus float.
-```dae
-func int MEM_GetFloatAddress(var float f)
-```
-**Parameters**
+!!! function "`MEM_GetFloatAddress`"
+ Returns an address of a given daedalus float.
+ ```dae
+ func int MEM_GetFloatAddress(var float f)
+ ```
+ **Parameters**
-- `#!dae var float f`
- Float whose address is returned
+ - `#!dae var float f`
+ Float whose address is returned
-**Shortcut**
+ **Shortcut**
-In addition there is a function **`_@f`** with the same signature and functionality as `MEM_GetFloatAddress`.
+ In addition there is a function **`_@f`** with the same signature and functionality as `MEM_GetFloatAddress`.
-```dae
-func int _@s(var string s)
-```
+ ```dae
+ func int _@s(var string s)
+ ```
### `MEM_GetStringAddress`
-Returns an address of a given string.
-```dae
-func int MEM_GetStringAddress(var string s)
-```
-**Parameters**
+!!! function "`MEM_GetStringAddress`"
+ Returns an address of a given string.
+ ```dae
+ func int MEM_GetStringAddress(var string s)
+ ```
+ **Parameters**
-- `#!dae var string s`
- String whose address is returned
+ - `#!dae var string s`
+ String whose address is returned
-**Shortcut**
+ **Shortcut**
-In addition there is a function **`_@s`** with the same signature and functionality as `MEM_GetStringAddress`.
+ In addition there is a function **`_@s`** with the same signature and functionality as `MEM_GetStringAddress`.
-```dae
-func int _@s(var string s)
-```
+ ```dae
+ func int _@s(var string s)
+ ```
### `STR_GetAddressInit`
-Alias to [`MEM_GetAddress_Init`](#mem_getaddress_init), kept for downward compatibility.
-```dae
-func void STR_GetAddressInit()
-```
+!!! function "`STR_GetAddressInit`"
+ Alias to [`MEM_GetAddress_Init`](#mem_getaddress_init), kept for downward compatibility.
+ ```dae
+ func void STR_GetAddressInit()
+ ```
### `STR_GetAddress`
-Function similar to `MEM_GetStringAddress`. There is a guarantee, that this function works initialized i.e. invokes [`MEM_GetAddress_Init`](#mem_getaddress_init), but the first time may only return an address of a copy of the string.
-```dae
-func int STR_GetAddress(var string str)
-```
+!!! function "`STR_GetAddress`"
+ Function similar to `MEM_GetStringAddress`. There is a guarantee, that this function works initialized i.e. invokes [`MEM_GetAddress_Init`](#mem_getaddress_init), but the first time may only return an address of a copy of the string.
+ ```dae
+ func int STR_GetAddress(var string str)
+ ```
## Static arrays
Accessing static arrays like this below is very tedious in Daedalus.
@@ -444,154 +477,166 @@ It is not possible to access `myStaticArray[i]` with a variable index i, but onl
Neither function performs any kind of validity check. If the value passed is not an array or offsets are beyond the boundaries of the array passed, the behavior is undefined.
### `MEM_InitStatArrs`
-Initializes static arrays read and write functions.
-```dae
-func void MEM_InitStatArrs()
-```
+!!! function "`MEM_InitStatArrs`"
+ Initializes static arrays read and write functions.
+ ```dae
+ func void MEM_InitStatArrs()
+ ```
### `MEM_WriteStatArr`
-Changes the value at the `offset` of a static integer-array.
-```dae
-func void MEM_WriteStatArr (var int array, var int offset, var int value)
-```
-**Parameters**
+!!! function "`MEM_WriteStatArr`"
+ Changes the value at the `offset` of a static integer-array.
+ ```dae
+ func void MEM_WriteStatArr (var int array, var int offset, var int value)
+ ```
+ **Parameters**
-- `#!dae var int array`
- Array which will be edited
-- `#!dae var int offset`
- Array index at which value will be edited
-- `#!dae var int value`
- The new value
+ - `#!dae var int array`
+ Array which will be edited
+ - `#!dae var int offset`
+ Array index at which value will be edited
+ - `#!dae var int value`
+ The new value
### `MEM_ReadStatArr`
-Reads the value at the specific offset of a static integer-array.
-```dae
-func int MEM_ReadStatArr (var int array, var int offset)
-```
-**Parameters**
+!!! function "`MEM_ReadStatArr`"
+ Reads the value at the specific offset of a static integer-array.
+ ```dae
+ func int MEM_ReadStatArr (var int array, var int offset)
+ ```
+ **Parameters**
-- `#!dae var int array`
- Array to get a value from
-- `#!dae var int offset`
- Array index of the value to return
+ - `#!dae var int array`
+ Array to get a value from
+ - `#!dae var int offset`
+ Array index of the value to return
-**Return value**
+ **Return value**
-The function returns an integer value from the `offset` of a given static array.
+ The function returns an integer value from the `offset` of a given static array.
### `MEM_WriteStatStringArr`
-Changes the value at the `offset` of a static string-array.
-```dae
-func void MEM_WriteStatStringArr(var string array, var int offset, var string value)
-```
-**Parameters**
+!!! function "`MEM_WriteStatStringArr`"
+ Changes the value at the `offset` of a static string-array.
+ ```dae
+ func void MEM_WriteStatStringArr(var string array, var int offset, var string value)
+ ```
+ **Parameters**
-- `#!dae var string array`
- Array which will be edited
-- `#!dae var int offset`
- Array index at which value will be edited
-- `#!dae var string value`
- The new value
+ - `#!dae var string array`
+ Array which will be edited
+ - `#!dae var int offset`
+ Array index at which value will be edited
+ - `#!dae var string value`
+ The new value
### `MEM_ReadStatStringArr`
-Reads the value at the specific offset of a static string-array.
-```dae
-func string MEM_ReadStatStringArr(var string array, var int offset)
-```
-**Parameters**
+!!! function "`MEM_ReadStatStringArr`"
+ Reads the value at the specific offset of a static string-array.
+ ```dae
+ func string MEM_ReadStatStringArr(var string array, var int offset)
+ ```
+ **Parameters**
-- `#!dae var string array`
- Array to get a value from
-- `#!dae var int offset`
- Array index of the value to return
+ - `#!dae var string array`
+ Array to get a value from
+ - `#!dae var int offset`
+ Array index of the value to return
-**Return value**
+ **Return value**
-The function returns a string form the `offset` of a given static array.
+ The function returns a string form the `offset` of a given static array.
## Parser symbol
### `MEM_SetCurrParserSymb`
-Makes [`currParserSymb`](#currparsersymb) point to the symbol of the specified instance.
-```dae
-func void MEM_SetCurrParserSymb (var int inst)
-```
-**Parameters**
+!!! function "`MEM_SetCurrParserSymb`"
+ Makes [`currParserSymb`](#currparsersymb) point to the symbol of the specified instance.
+ ```dae
+ func void MEM_SetCurrParserSymb (var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- Instance to whose symbol `currParserSymb` will be set
+ - `#!dae var int inst`
+ Instance to whose symbol `currParserSymb` will be set
#### `currParserSymb`
-An instance representing current parser symbol.
-```dae
-INSTANCE currParserSymb (zCPar_Symbol);
-```
+!!! function "`currParserSymb`"
+ An instance representing current parser symbol.
+ ```dae
+ INSTANCE currParserSymb (zCPar_Symbol);
+ ```
### `MEM_FindParserSymbol`
-Returns the index of the parser symbol with name `inst` if such a symbol exists.
-```dae
-func int MEM_FindParserSymbol(var string inst)
-```
-**Parameters**
+!!! function "`MEM_FindParserSymbol`"
+ Returns the index of the parser symbol with name `inst` if such a symbol exists.
+ ```dae
+ func int MEM_FindParserSymbol(var string inst)
+ ```
+ **Parameters**
-- `#!dae var string inst`
- Name of the symbol to be found
+ - `#!dae var string inst`
+ Name of the symbol to be found
-**Return value**
+ **Return value**
-The function returns the index of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `-1` is returned.
+ The function returns the index of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `-1` is returned.
### `MEM_GetSymbolIndex`
-Alias to [`MEM_FindParserSymbol`](#mem_findparsersymbol). Returns the index of the parser symbol with name `inst` if such a symbol exists.
-```dae
-func int MEM_GetSymbolIndex(var string inst)
-```
-**Parameters**
+!!! function "`MEM_GetSymbolIndex`"
+ Alias to [`MEM_FindParserSymbol`](#mem_findparsersymbol). Returns the index of the parser symbol with name `inst` if such a symbol exists.
+ ```dae
+ func int MEM_GetSymbolIndex(var string inst)
+ ```
+ **Parameters**
-- `#!dae var string inst`
- Name of the symbol to be found
+ - `#!dae var string inst`
+ Name of the symbol to be found
-**Return value**
+ **Return value**
-The function returns the index of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `-1` is returned.
+ The function returns the index of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `-1` is returned.
### `MEM_GetParserSymbol`
-Looks for the parser symbol with the name `inst` and returns a pointer to the appropriate `zCPar_Symbol` structure.
-```dae
-func int MEM_GetParserSymbol (var string inst)
-```
-**Parameters**
+!!! function "`MEM_GetParserSymbol`"
+ Looks for the parser symbol with the name `inst` and returns a pointer to the appropriate `zCPar_Symbol` structure.
+ ```dae
+ func int MEM_GetParserSymbol (var string inst)
+ ```
+ **Parameters**
-- `#!dae var string inst`
- Name of the symbol to be found
+ - `#!dae var string inst`
+ Name of the symbol to be found
-**Return value**
+ **Return value**
-The function returns the appropriate `zCPar_Symbol` structure of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `0` is returned.
+ The function returns the appropriate `zCPar_Symbol` structure of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `0` is returned.
### `MEM_GetSymbol`
-Alias to [`MEM_GetParserSymbol`](#mem_getparsersymbol). Looks for the parser symbol with the name `inst` and returns a pointer to the appropriate `zCPar_Symbol` structure.
-```dae
-func int MEM_GetSymbol(var string inst)
-```
-**Parameters**
+!!! function "`MEM_GetSymbol`"
+ Alias to [`MEM_GetParserSymbol`](#mem_getparsersymbol). Looks for the parser symbol with the name `inst` and returns a pointer to the appropriate `zCPar_Symbol` structure.
+ ```dae
+ func int MEM_GetSymbol(var string inst)
+ ```
+ **Parameters**
-- `#!dae var string inst`
- Name of the symbol to be found
+ - `#!dae var string inst`
+ Name of the symbol to be found
-**Return value**
+ **Return value**
-The function returns the appropriate `zCPar_Symbol` structure of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `0` is returned.
+ The function returns the appropriate `zCPar_Symbol` structure of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `0` is returned.
### `MEM_GetSymbolByIndex`
-[`MEM_GetParserSymbol`](#mem_getparsersymbol), but with ID (index) as a parameter.
-```dae
-func int MEM_GetSymbolByIndex(var int id)
-```
-**Parameters**
+!!! function "`MEM_GetSymbolByIndex`"
+ [`MEM_GetParserSymbol`](#mem_getparsersymbol), but with ID (index) as a parameter.
+ ```dae
+ func int MEM_GetSymbolByIndex(var int id)
+ ```
+ **Parameters**
-- `#!dae var string inst`
- ID (index) of the symbol to be found
+ - `#!dae var string inst`
+ ID (index) of the symbol to be found
-**Return value**
+ **Return value**
-The function returns the appropriate `zCPar_Symbol` structure of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `0` is returned.
\ No newline at end of file
+ The function returns the appropriate `zCPar_Symbol` structure of the parser symbol with name `inst` if such a symbol exists. If non exists, a warning is issued and `0` is returned.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/string.md b/docs/zengin/scripts/extenders/ikarus/functions/string.md
index fbcfebc76f..99e270207e 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/string.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/string.md
@@ -16,276 +16,288 @@ MEM_InitAll();
## Functions
### `STR_GetCharAt`
-Returns the ASCII value of a character at a specific position in a string.
-```dae
-func int STR_GetCharAt (var string str, var int pos)
-```
-**Parameters**
+!!! function "`STR_GetCharAt`"
+ Returns the ASCII value of a character at a specific position in a string.
+ ```dae
+ func int STR_GetCharAt (var string str, var int pos)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The input string
-- `#!dae var int pos`
- The position of the character
+ - `#!dae var string str`
+ The input string
+ - `#!dae var int pos`
+ The position of the character
-**Return value**
+ **Return value**
-The function returns the ASCII value of the character at the specified position.
+ The function returns the ASCII value of the character at the specified position.
### `STR_Len`
-Returns the length of a string.
-```dae
-func int STR_Len (var string str)
-```
-**Parameters**
+!!! function "`STR_Len`"
+ Returns the length of a string.
+ ```dae
+ func int STR_Len (var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The input string
+ - `#!dae var string str`
+ The input string
-**Return value**
+ **Return value**
-The function returns the length of the string in characters.
+ The function returns the length of the string in characters.
### `STR_toChar`
-Converts a string to a pointer to its character array.
-```dae
-func int STR_toChar (var string str)
-```
-**Parameters**
+!!! function "`STR_toChar`"
+ Converts a string to a pointer to its character array.
+ ```dae
+ func int STR_toChar (var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The input string
+ - `#!dae var string str`
+ The input string
-**Return value**
+ **Return value**
-The function returns a pointer to the character array representing the input string `str`
+ The function returns a pointer to the character array representing the input string `str`
### `STR_FromChar`
-Converts a character array to a string.
-```dae
-func string STR_FromChar(var int char)
-```
-**Parameters**
+!!! function "`STR_FromChar`"
+ Converts a character array to a string.
+ ```dae
+ func string STR_FromChar(var int char)
+ ```
+ **Parameters**
-- `#!dae var int char`
- Pointer to the character array
+ - `#!dae var int char`
+ Pointer to the character array
-**Return value**
+ **Return value**
-The function returns a string representation of the character array.
+ The function returns a string representation of the character array.
### `STR_SubStr`
-Extracts a substring from a given string.
-```dae
-func string STR_SubStr (var string str, var int start, var int count)
-```
-**Parameters**
-
-- `#!dae var string str`
- The input string
-- `#!dae var int start`
- The starting position of the substring
-- `#!dae var int count`
- The length of the substring
+!!! function "`STR_SubStr`"
+ Extracts a substring from a given string.
+ ```dae
+ func string STR_SubStr (var string str, var int start, var int count)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var string str`
+ The input string
+ - `#!dae var int start`
+ The starting position of the substring
+ - `#!dae var int count`
+ The length of the substring
-The function returns a substring, if the starting position is invalid an empty string is returned.
+ **Return value**
+ The function returns a substring, if the starting position is invalid an empty string is returned.
### `STR_Prefix`
-Extracts a prefix of a given string, similar to [`STR_SubStr`](#str_substr), but with the starting position set to the first character of the string.
-```dae
-func string STR_Prefix (var string str, var int len)
-```
-**Parameters**
+!!! function "`STR_Prefix`"
+ Extracts a prefix of a given string, similar to [`STR_SubStr`](#str_substr), but with the starting position set to the first character of the string.
+ ```dae
+ func string STR_Prefix (var string str, var int len)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The input string
-- `#!dae var int count`
- The length of the prefix
+ - `#!dae var string str`
+ The input string
+ - `#!dae var int count`
+ The length of the prefix
-**Return value**
+ **Return value**
-The function returns a prefix of the input string with the specified length.
+ The function returns a prefix of the input string with the specified length.
### `STR_Compare`
-Compares two strings lexicographically and returns a result indicating their relative order.
-```dae
-func int STR_Compare(var string str1, var string str2)
-```
-**Parameters**
+!!! function "`STR_Compare`"
+ Compares two strings lexicographically and returns a result indicating their relative order.
+ ```dae
+ func int STR_Compare(var string str1, var string str2)
+ ```
+ **Parameters**
-- `#!dae var string str1`
- The first string to compare
-- `#!dae var string str2`
- The second string to compare
+ - `#!dae var string str1`
+ The first string to compare
+ - `#!dae var string str2`
+ The second string to compare
-**Return Value**
+ **Return Value**
-The function returns an integer value representing the result of the comparison:
+ The function returns an integer value representing the result of the comparison:
-- `STR_GREATER` (1): If `str1` comes lexicographically after `str2`.
-- `STR_EQUAL` (0): If `str1` is lexicographically equal to `str2`.
-- `STR_SMALLER` (-1): If `str1` comes lexicographically before `str2`.
+ - `STR_GREATER` (1): If `str1` comes lexicographically after `str2`.
+ - `STR_EQUAL` (0): If `str1` is lexicographically equal to `str2`.
+ - `STR_SMALLER` (-1): If `str1` comes lexicographically before `str2`.
-??? abstract "Examples"
- The comparison is based on lexicographic order, which is the order of characters as they appear in the ASCII table. Uppercase letters come before lowercase letters.
+ ??? abstract "Examples"
+ The comparison is based on lexicographic order, which is the order of characters as they appear in the ASCII table. Uppercase letters come before lowercase letters.
- ```dae
- int result1 = STR_Compare("A", "B");
- // The 'result1' variable now contains STR_SMALLER
+ ```dae
+ int result1 = STR_Compare("A", "B");
+ // The 'result1' variable now contains STR_SMALLER
- int result2 = STR_Compare("ABC", "ABC");
- // The 'result2' variable now contains STR_EQUAL
+ int result2 = STR_Compare("ABC", "ABC");
+ // The 'result2' variable now contains STR_EQUAL
- int result3 = STR_Compare("AA", "A");
- // The 'result3' variable now contains STR_GREATER
+ int result3 = STR_Compare("AA", "A");
+ // The 'result3' variable now contains STR_GREATER
- int result4 = STR_Compare("BA", "BB");
- // The 'result4' variable now contains STR_SMALLER
+ int result4 = STR_Compare("BA", "BB");
+ // The 'result4' variable now contains STR_SMALLER
- int result5 = STR_Compare("B", "a");
- // The 'result5' variable now contains STR_SMALLER
+ int result5 = STR_Compare("B", "a");
+ // The 'result5' variable now contains STR_SMALLER
- int result6 = STR_Compare("A", "");
- // The 'result6' variable now contains STR_GREATER
- ```
+ int result6 = STR_Compare("A", "");
+ // The 'result6' variable now contains STR_GREATER
+ ```
### `STR_ToInt`
-Converts a string to an integer.
-```dae
-func int STR_ToInt (var string str)
-```
-**Parameters**
+!!! function "`STR_ToInt`"
+ Converts a string to an integer.
+ ```dae
+ func int STR_ToInt (var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The input string
+ - `#!dae var string str`
+ The input string
-**Return Value**
+ **Return Value**
-The function returns an integer value of the string, if a string is invalid (doesn't contain an integer) zero is returned.
+ The function returns an integer value of the string, if a string is invalid (doesn't contain an integer) zero is returned.
### `STR_IndexOf`
-Searches for a substring `tok` within a given string and returns the index of the first occurrence of `tok`, taking into account upper and lower case letters.
-```dae
-func int STR_IndexOf(var string str, var string tok)
-```
-**Parameters**
+!!! function "`STR_IndexOf`"
+ Searches for a substring `tok` within a given string and returns the index of the first occurrence of `tok`, taking into account upper and lower case letters.
+ ```dae
+ func int STR_IndexOf(var string str, var string tok)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The string in which to search for `tok`.
-- `#!dae var string tok`
- The substring to search for within `str`.
+ - `#!dae var string str`
+ The string in which to search for `tok`.
+ - `#!dae var string tok`
+ The substring to search for within `str`.
-**Return Value**
+ **Return Value**
-The function returns the index at which the first occurrence of `tok` begins within `str`. If `tok` is not found in `str`, the function returns -1.
+ The function returns the index at which the first occurrence of `tok` begins within `str`. If `tok` is not found in `str`, the function returns -1.
-??? abstract "Examples"
+ ??? abstract "Examples"
- ```dae
- int index1 = STR_IndexOf("Hello World!", "Hell");
- // The 'index1' variable now contains 0
+ ```dae
+ int index1 = STR_IndexOf("Hello World!", "Hell");
+ // The 'index1' variable now contains 0
- int index2 = STR_IndexOf("Hello World!", "World");
- // The 'index2' variable now contains 6
+ int index2 = STR_IndexOf("Hello World!", "World");
+ // The 'index2' variable now contains 6
- int index3 = STR_IndexOf("Hello World!", "Cake");
- // The 'index3' variable now contains -1
+ int index3 = STR_IndexOf("Hello World!", "Cake");
+ // The 'index3' variable now contains -1
- int index4 = STR_IndexOf("Hello World!", "");
- // The 'index4' variable now contains 0
+ int index4 = STR_IndexOf("Hello World!", "");
+ // The 'index4' variable now contains 0
- int index5 = STR_IndexOf("Hello", "Hello World!");
- // The 'index5' variable now contains -1
+ int index5 = STR_IndexOf("Hello", "Hello World!");
+ // The 'index5' variable now contains -1
- int index6 = STR_IndexOf("hello Hell!", "Hell");
- // The 'index6' variable now contains 6
+ int index6 = STR_IndexOf("hello Hell!", "Hell");
+ // The 'index6' variable now contains 6
- int index7 = STR_IndexOf("", "");
- // The 'index7' variable now contains 0
- ```
+ int index7 = STR_IndexOf("", "");
+ // The 'index7' variable now contains 0
+ ```
### `STR_SplitCount`
-Counts the number of parts a string splits into when using a specified separator.
-```dae
-func int STR_SplitCount(var string str, var string separator)
-```
-**Parameters**
+!!! function "`STR_SplitCount`"
+ Counts the number of parts a string splits into when using a specified separator.
+ ```dae
+ func int STR_SplitCount(var string str, var string separator)
+ ```
+ **Parameters**
+
+ - `#!dae var string str`
+ The input string to be split.
+ - `#!dae var string separator`
+ The separator character or string used to split the input string.
-- `#!dae var string str`
- The input string to be split.
-- `#!dae var string separator`
- The separator character or string used to split the input string.
+ **Return Value**
-**Return Value**
+ The function returns a number of parts the input string splits into when using the specified separator.
-The function returns a number of parts the input string splits into when using the specified separator.
+ ??? abstract "Example"
-??? abstract "Example"
+ ```dae
+ string inputStr = "This is a sentence.";
+ int count = STR_SplitCount(inputStr, " ");
+ // The 'count' variable now contains 4
+ ```
+### `STR_Split`
+!!! function "`STR_Split`"
+ Splits a string into multiple substrings based on a specified separator and returns the substring at a specified offset.
```dae
- string inputStr = "This is a sentence.";
- int count = STR_SplitCount(inputStr, " ");
- // The 'count' variable now contains 4
+ func string STR_Split(var string str, var string separator, var int offset)
```
-### `STR_Split`
-Splits a string into multiple substrings based on a specified separator and returns the substring at a specified offset.
-```dae
-func string STR_Split(var string str, var string separator, var int offset)
-```
+ **Parameters**
-**Parameters**
+ - `#!dae var string str `
+ The input string to be split.
+ - `#!dae var string separator`
+ The separator character or string used to split the input string.
+ - `#!dae var int offset`
+ The index of the substring to be returned after splitting. The index is zero-based.
-- `#!dae var string str `
- The input string to be split.
-- `#!dae var string separator`
- The separator character or string used to split the input string.
-- `#!dae var int offset`
- The index of the substring to be returned after splitting. The index is zero-based.
+ **Return Value**
-**Return Value**
+ The function returns a substring at the specified offset after splitting the input string. If the offset is greater than or equal to the number of parts generated by splitting, an empty string is returned.
-The function returns a substring at the specified offset after splitting the input string. If the offset is greater than or equal to the number of parts generated by splitting, an empty string is returned.
+ ??? abstract "Example"
-??? abstract "Example"
+ ```dae
+ func void foo() {
+ string inputStr = "This is a sentence.";
+ string tok1 = STR_Split(inputStr, " ", 0); // This
+ string tok2 = STR_Split(inputStr, " ", 1); // is
+ string tok3 = STR_Split(inputStr, " ", 2); // a
+ string tok4 = STR_Split(inputStr, " ", 3); // sentence
+ };
+ ```
+ At the end of the function, `tok1` contains "This", `tok2` contains "is", `tok3` contains "a", and `tok4` contains "sentence.".
+### `STR_Upper`
+!!! function "`STR_Upper`"
+ Converts a string to uppercase.
```dae
- func void foo() {
- string inputStr = "This is a sentence.";
- string tok1 = STR_Split(inputStr, " ", 0); // This
- string tok2 = STR_Split(inputStr, " ", 1); // is
- string tok3 = STR_Split(inputStr, " ", 2); // a
- string tok4 = STR_Split(inputStr, " ", 3); // sentence
- };
+ func string STR_Upper(var string str)
```
- At the end of the function, `tok1` contains "This", `tok2` contains "is", `tok3` contains "a", and `tok4` contains "sentence.".
+ **Parameters**
-### `STR_Upper`
-Converts a string to uppercase.
-```dae
-func string STR_Upper(var string str)
-```
-**Parameters**
+ - `#!dae var string str`
+ The input string
-- `#!dae var string str`
- The input string
+ **Return Value**
-**Return Value**
-
-The function returns a copy of `str` with all uppercase letters converted to their corresponding uppercase letters.
+ The function returns a copy of `str` with all uppercase letters converted to their corresponding uppercase letters.
### `STR_Lower`
-Converts a string to lowercase.
-```dae
-func string STR_Lower(var string str)
-```
-**Parameters**
+!!! function "`STR_Lower`"
+ Converts a string to lowercase.
+ ```dae
+ func string STR_Lower(var string str)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The input string
+ - `#!dae var string str`
+ The input string
-**Return Value**
+ **Return Value**
-The function returns a copy of `str` with all lowercase letters converted to their corresponding uppercase letters.
+ The function returns a copy of `str` with all lowercase letters converted to their corresponding uppercase letters.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/time_benchmark.md b/docs/zengin/scripts/extenders/ikarus/functions/time_benchmark.md
index eb281fd746..58226e4b56 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/time_benchmark.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/time_benchmark.md
@@ -16,22 +16,24 @@ MEM_InitAll();
## Time functions
### `MEM_GetSystemTime`
-Returns the elapsed time since Gothic started.
-```dae
-func int MEM_GetSystemTime()
-```
-**Return value**
+!!! function "`MEM_GetSystemTime`"
+ Returns the elapsed time since Gothic started.
+ ```dae
+ func int MEM_GetSystemTime()
+ ```
+ **Return value**
-The function returns the elapsed time since the start of Gothic in milliseconds. This value is used for timing measurements, in the `BenchmarkMS` functions.
+ The function returns the elapsed time since the start of Gothic in milliseconds. This value is used for timing measurements, in the `BenchmarkMS` functions.
### `MEM_GetPerformanceCounter`
-Call to the WinAPI [`QueryPerformanceCounter`](https://learn.microsoft.com/en-us/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter) function.
-```dae
-func int MEM_GetPerformanceCounter()
-```
-**Return value**
+!!! function "`MEM_GetPerformanceCounter`"
+ Call to the WinAPI [`QueryPerformanceCounter`](https://learn.microsoft.com/en-us/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter) function.
+ ```dae
+ func int MEM_GetPerformanceCounter()
+ ```
+ **Return value**
-The function returns a value representing the number of elapsed ticks since the system was started. This value is used for timing measurements, in the `BenchmarkPC` functions.
+ The function returns a value representing the number of elapsed ticks since the system was started. This value is used for timing measurements, in the `BenchmarkPC` functions.
## Benchmark functions
@@ -56,91 +58,97 @@ The function returns a value representing the number of elapsed ticks since the
```
### `MEM_BenchmarkMS`
-Benchmark of the execution time for a specified function. (Milliseconds)
-```dae
-func int MEM_BenchmarkMS(var func f)
-```
-**Parameters**
+!!! function "`MEM_BenchmarkMS`"
+ Benchmark of the execution time for a specified function. (Milliseconds)
+ ```dae
+ func int MEM_BenchmarkMS(var func f)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function to benchmark
+ - `#!dae var func f`
+ Function to benchmark
-**Return value**
+ **Return value**
-The function returns the duration of a function execution in milliseconds.
+ The function returns the duration of a function execution in milliseconds.
### `MEM_BenchmarkMMS`
-Benchmark of the execution time for a specified function. (microseconds)
-```dae
-func int MEM_BenchmarkMMS(var func f)
-```
-**Parameters**
+!!! function "`MEM_BenchmarkMMS`"
+ Benchmark of the execution time for a specified function. (microseconds)
+ ```dae
+ func int MEM_BenchmarkMMS(var func f)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function to benchmark
+ - `#!dae var func f`
+ Function to benchmark
-**Return value**
+ **Return value**
-The function returns the duration of a function execution in microseconds.
+ The function returns the duration of a function execution in microseconds.
### `MEM_BenchmarkPC`
-Benchmark of the execution time for a specified function, using the [Performancecounter](#mem_getperformancecounter).
-```dae
-func int MEM_BenchmarkMS(var func f)
-```
-**Parameters**
+!!! function "`MEM_BenchmarkPC`"
+ Benchmark of the execution time for a specified function, using the [Performancecounter](#mem_getperformancecounter).
+ ```dae
+ func int MEM_BenchmarkMS(var func f)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function to benchmark
+ - `#!dae var func f`
+ Function to benchmark
-**Return value**
+ **Return value**
-The function returns the number of [Performancecounter](#mem_getperformancecounter) ticks the function needs.
+ The function returns the number of [Performancecounter](#mem_getperformancecounter) ticks the function needs.
### `MEM_BenchmarkMS_N`
-[`MEM_BenchmarkMS`](#mem_benchmarkms), but with the parameter to specify the number of function runs.
-```dae
-func int MEM_BenchmarkMS_N(var func f, var int n)
-```
-**Parameters**
+!!! function "`MEM_BenchmarkMS_N`"
+ [`MEM_BenchmarkMS`](#mem_benchmarkms), but with the parameter to specify the number of function runs.
+ ```dae
+ func int MEM_BenchmarkMS_N(var func f, var int n)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function to benchmark
-- `#!dae var int n`
- Number of runs
+ - `#!dae var func f`
+ Function to benchmark
+ - `#!dae var int n`
+ Number of runs
-**Return value**
+ **Return value**
-The function returns a summed duration of multiple (`n`) runs of the function in milliseconds.
+ The function returns a summed duration of multiple (`n`) runs of the function in milliseconds.
### `MEM_BenchmarkMMS_N`
-[`MEM_BenchmarkMMS`](#mem_benchmarkmms), but with the parameter to specify the number of function runs.
-```dae
-func int MEM_BenchmarkMMS_N(var func f, var int n)
-```
-**Parameters**
+!!! function "`MEM_BenchmarkMMS_N`"
+ [`MEM_BenchmarkMMS`](#mem_benchmarkmms), but with the parameter to specify the number of function runs.
+ ```dae
+ func int MEM_BenchmarkMMS_N(var func f, var int n)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function to benchmark
-- `#!dae var int n`
- Number of runs
+ - `#!dae var func f`
+ Function to benchmark
+ - `#!dae var int n`
+ Number of runs
-**Return value**
+ **Return value**
-The function returns a summed duration of multiple (`n`) runs of the function in microseconds.
+ The function returns a summed duration of multiple (`n`) runs of the function in microseconds.
### `MEM_BenchmarkPC_N`
-[`MEM_BenchmarkPC`](#mem_benchmarkpc), but with the parameter to specify the number of function runs.
-```dae
-func int MEM_BenchmarkPC_N(var func f, var int n)
-```
-**Parameters**
+!!! function "`MEM_BenchmarkPC_N`"
+ [`MEM_BenchmarkPC`](#mem_benchmarkpc), but with the parameter to specify the number of function runs.
+ ```dae
+ func int MEM_BenchmarkPC_N(var func f, var int n)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function to benchmark
-- `#!dae var int n`
- Number of runs
+ - `#!dae var func f`
+ Function to benchmark
+ - `#!dae var int n`
+ Number of runs
-**Return value**
+ **Return value**
-The function returns a summed number of [Performancecounter](#mem_getperformancecounter) ticks needed to execute function multiple (`n`) times.
\ No newline at end of file
+ The function returns a summed number of [Performancecounter](#mem_getperformancecounter) ticks needed to execute function multiple (`n`) times.
diff --git a/docs/zengin/scripts/extenders/ikarus/functions/win_utilities.md b/docs/zengin/scripts/extenders/ikarus/functions/win_utilities.md
index fc384f4c94..a93f08b24f 100644
--- a/docs/zengin/scripts/extenders/ikarus/functions/win_utilities.md
+++ b/docs/zengin/scripts/extenders/ikarus/functions/win_utilities.md
@@ -16,104 +16,111 @@ MEM_InitAll();
## Functions
### `LoadLibrary`
-Loads the specified module into the address space of the calling process. Full documentation [here](https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya).
-```dae
-func int LoadLibrary(var string lpFileName)
-```
-**Parameters**
+!!! function "`LoadLibrary`"
+ Loads the specified module into the address space of the calling process. Full documentation [here](https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya).
+ ```dae
+ func int LoadLibrary(var string lpFileName)
+ ```
+ **Parameters**
-- `#!dae var string lpFileName`
- Name of loaded module
+ - `#!dae var string lpFileName`
+ Name of loaded module
-**Return value**
+ **Return value**
-The function returns a handle to the module.
+ The function returns a handle to the module.
### `GetProcAddress`
-Retrieves the address from the specified dynamic-link library. Full documentation [here](https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-getprocaddress).
-```dae
-func int GetProcAddress(var int hModule, var string lpProcName)
-```
-**Parameters**
+!!! function "`GetProcAddress`"
+ Retrieves the address from the specified dynamic-link library. Full documentation [here](https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-getprocaddress).
+ ```dae
+ func int GetProcAddress(var int hModule, var string lpProcName)
+ ```
+ **Parameters**
-- `#!dae var int hModule`
- A handle to the DLL module that contains the function or variable. Can be obtained using the `LoadLibrary` function.
-- `#!dae var string lpProcName`
- The function or variable name.
+ - `#!dae var int hModule`
+ A handle to the DLL module that contains the function or variable. Can be obtained using the `LoadLibrary` function.
+ - `#!dae var string lpProcName`
+ The function or variable name.
-**Return value**
-The function returns address of the function or variable.
+ **Return value**
+ The function returns address of the function or variable.
### `FindKernelDllFunction`
-Uses `GetProcAddress` to find function inside the `KERNEL32.DLL` file.
-```dae
-func int FindKernelDllFunction(var string name)
-```
-**Parameters**
+!!! function "`FindKernelDllFunction`"
+ Uses `GetProcAddress` to find function inside the `KERNEL32.DLL` file.
+ ```dae
+ func int FindKernelDllFunction(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the looked function.
+ - `#!dae var string name`
+ Name of the looked function.
-**Return value**
+ **Return value**
-The function returns address of the function.
+ The function returns address of the function.
### `VirtualProtect`
-Changes the protection on a region of committed pages in the virtual address space of the calling process. Full documentation [here](https://learn.microsoft.com/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect).
-```dae
-func int VirtualProtect(var int lpAddress, var int dwSize, var int flNewProtect)
-```
-**Parameters**
+!!! function "`VirtualProtect`"
+ Changes the protection on a region of committed pages in the virtual address space of the calling process. Full documentation [here](https://learn.microsoft.com/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect).
+ ```dae
+ func int VirtualProtect(var int lpAddress, var int dwSize, var int flNewProtect)
+ ```
+ **Parameters**
-- `#!dae var int lpAddress`
- The address of the starting page of the region of pages whose access protection attributes are to be changed.
-- `#!dae var int dwSize`
- The size of the region whose access protection attributes are to be changed, in bytes.
-- `#!dae var int flNewProtect`
- The memory protection option. All options can be found [here](https://github.com/Lehona/Ikarus/blob/master/Ikarus.d#L1907-L1919).
+ - `#!dae var int lpAddress`
+ The address of the starting page of the region of pages whose access protection attributes are to be changed.
+ - `#!dae var int dwSize`
+ The size of the region whose access protection attributes are to be changed, in bytes.
+ - `#!dae var int flNewProtect`
+ The memory protection option. All options can be found [here](https://github.com/Lehona/Ikarus/blob/master/Ikarus.d#L1907-L1919).
-**Return value**
+ **Return value**
-The function returns `lpflOldProtectPtr` - a pointer to a variable that receives the previous access protection value.
+ The function returns `lpflOldProtectPtr` - a pointer to a variable that receives the previous access protection value.
-Author's comment:
-> I made `lpflOldProtectPtr` the return value and ignored the return Value of VirtualProtect.
+ Author's comment:
+ > I made `lpflOldProtectPtr` the return value and ignored the return Value of VirtualProtect.
### `MemoryProtectionOverride`
-Alias to `VirtualProtect` but with predefined `PAGE_EXECUTE_READWRITE` protection option
-```dae
-func void MemoryProtectionOverride(var int address, var int size)
-```
-**Parameters**
-
-- `#!dae var int address`
- The address of the starting page of the region of pages whose access protection attributes are to be changed.
-- `#!dae var int size`
- The size of the region whose access protection attributes are to be changed, in bytes.
+!!! function "`MemoryProtectionOverride`"
+ Alias to `VirtualProtect` but with predefined `PAGE_EXECUTE_READWRITE` protection option
+ ```dae
+ func void MemoryProtectionOverride(var int address, var int size)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ The address of the starting page of the region of pages whose access protection attributes are to be changed.
+ - `#!dae var int size`
+ The size of the region whose access protection attributes are to be changed, in bytes.
### `MEM_MessageBox`
-Calls the WinAPI MessageBox function.
-```dae
-func int MEM_MessageBox(var string txt, var string caption, var int type)
-```
-**Parameters**
-
-- `#!dae var string txt`
- Content of the MessageBox.
-- `#!dae var string caption`
- Header of MessageBox.
-- `#!dae var int type`
- Type of MessageBox. All types listed [here](https://github.com/Lehona/Ikarus/blob/master/Ikarus.d#L1956-L1992).
+!!! function "`MEM_MessageBox`"
+ Calls the WinAPI MessageBox function.
+ ```dae
+ func int MEM_MessageBox(var string txt, var string caption, var int type)
+ ```
+ **Parameters**
+
+ - `#!dae var string txt`
+ Content of the MessageBox.
+ - `#!dae var string caption`
+ Header of MessageBox.
+ - `#!dae var int type`
+ Type of MessageBox. All types listed [here](https://github.com/Lehona/Ikarus/blob/master/Ikarus.d#L1956-L1992).
### `MEM_InfoBox`
-Alias to `MEM_MessageBox` with "Information:" header and `MB_OK | MB_ICONINFORMATION` type.
-```dae
-func void MEM_InfoBox(var string txt)
-```
-**Parameters**
-
-- `#!dae var string txt`
- Content of the InfoBox.
+!!! function "`MEM_InfoBox`"
+ Alias to `MEM_MessageBox` with "Information:" header and `MB_OK | MB_ICONINFORMATION` type.
+ ```dae
+ func void MEM_InfoBox(var string txt)
+ ```
+ **Parameters**
+
+ - `#!dae var string txt`
+ Content of the InfoBox.
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/anim8.md b/docs/zengin/scripts/extenders/lego/applications/anim8.md
index 74914f20f9..af1afb6b62 100644
--- a/docs/zengin/scripts/extenders/lego/applications/anim8.md
+++ b/docs/zengin/scripts/extenders/lego/applications/anim8.md
@@ -3,178 +3,190 @@ title: Anim8
description: LeGo package for "animating" float values over a period of time
---
# Anim8
-This package allows int or float values to be "animated" over a period of time. It is possible to string several commands together and to set the type of movement. The new version of [`PrintS`](../tools/interface.md#prints) from [Interface](../tools/interface.md) uses Anim8.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [Floats](../../ikarus/floats.md)
+ **Implementation:**
+ [:material-github: Anim8.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Anim8.d)
-- [Floats](../../ikarus/floats.md)
+This package allows int or float values to be "animated" over a period of time. It is possible to string several commands together and to set the type of movement. The new version of [`PrintS`](../tools/interface.md#prints) from [Interface](../tools/interface.md) uses Anim8.
## Initialization
Initialize with `LeGo_Anim8` flag.
```dae
LeGo_Init(LeGo_Anim8);
```
-## Implementation
-[:material-github: Anim8.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Anim8.d)
## Functions
### `Anim8_New`
-Creates a new Anim8 object that can be filled with commands.
-```dae
-func int Anim8_New(var int initialValue, var int IsFloat)
-```
-**Parameters**
+!!! function "`Anim8_New`"
+ Creates a new Anim8 object that can be filled with commands.
+ ```dae
+ func int Anim8_New(var int initialValue, var int IsFloat)
+ ```
+ **Parameters**
-- `#!dae var int initialValue`
- The initial value to start animating from. Can be an integer, or an Ikarus float.
-- `var int IsFloat`
- If the `initialValue` is an Ikarus float, this parameter must be set to `TRUE`. If it is an integer, it must be set to `FALSE`.
+ - `#!dae var int initialValue`
+ The initial value to start animating from. Can be an integer, or an Ikarus float.
+ - `var int IsFloat`
+ If the `initialValue` is an Ikarus float, this parameter must be set to `TRUE`. If it is an integer, it must be set to `FALSE`.
-**Return value**
+ **Return value**
-The function returns handle of the Anim8 object.
+ The function returns handle of the Anim8 object.
### `Anim8_NewExt`
-Creates a new Anim8 object with advanced options. Extends the [`Anim8_New`](#anim8_new) function.
-```dae
-func int Anim8_NewExt(var int value, var func handler, var int data, var int IsFloat)
-```
-**Parameters**
-
-- `#!dae var int value`
- The initial value to start animating from. Can be an integer, or an Ikarus float.
-- `#!dae var func handler`
- This function is called whenever the object is updated.
- The signature of the functions depends on the `data` value:
- `data != 0`: `#!dae func void handler(var int data, var int value)`,
- `data == 0`: `#!dae func void handler(var int value)`.
-- `#!dae var int data`
- Optional parameter to send an additional value to the `handler` function. If `data == 0`, it is ignored.
-- `#!dae var int IsFloat`
- If the `initialValue` is an Ikarus float, this parameter must be set to `TRUE`. If it is an integer, it must be set to `FALSE`.
-
-**Return value**
-
-The function returns handle of the Anim8 object.
+!!! function "`Anim8_NewExt`"
+ Creates a new Anim8 object with advanced options. Extends the [`Anim8_New`](#anim8_new) function.
+ ```dae
+ func int Anim8_NewExt(var int value, var func handler, var int data, var int IsFloat)
+ ```
+ **Parameters**
+
+ - `#!dae var int value`
+ The initial value to start animating from. Can be an integer, or an Ikarus float.
+ - `#!dae var func handler`
+ This function is called whenever the object is updated.
+ The signature of the functions depends on the `data` value:
+ `data != 0`: `#!dae func void handler(var int data, var int value)`,
+ `data == 0`: `#!dae func void handler(var int value)`.
+ - `#!dae var int data`
+ Optional parameter to send an additional value to the `handler` function. If `data == 0`, it is ignored.
+ - `#!dae var int IsFloat`
+ If the `initialValue` is an Ikarus float, this parameter must be set to `TRUE`. If it is an integer, it must be set to `FALSE`.
+
+ **Return value**
+
+ The function returns handle of the Anim8 object.
### `Anim8_Delete`
-Deletes an Anim8 object created with [`Anim8_New`](#anim8_new).
-```dae
-func void Anim8_Delete(var int handle)
-```
-**Parameters**
+!!! function "`Anim8_Delete`"
+ Deletes an Anim8 object created with [`Anim8_New`](#anim8_new).
+ ```dae
+ func void Anim8_Delete(var int handle)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
### `Anim8_Get`
-Get current value of the object.
-```dae
-func int Anim8_Get(var int handle)
-```
-**Parameters**
+!!! function "`Anim8_Get`"
+ Get current value of the object.
+ ```dae
+ func int Anim8_Get(var int handle)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
-**Return value**
+ **Return value**
-The function returns value of the object.
+ The function returns value of the object.
### `Anim8_Set`
-Sets the value of the object.
-```dae
-func void Anim8_Set(var int handle, var int value)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
-- `#!dae var int value`
- New value of the object
+!!! function "`Anim8_Set`"
+ Sets the value of the object.
+ ```dae
+ func void Anim8_Set(var int handle, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int value`
+ New value of the object
### `Anim8_Empty`
-Indicates whether the object is empty, i.e. has no more commands to process.
-```dae
-func int Anim8_Empty(var int handle)
-```
-**Parameters**
+!!! function "`Anim8_Empty`"
+ Indicates whether the object is empty, i.e. has no more commands to process.
+ ```dae
+ func int Anim8_Empty(var int handle)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
-**Return value**
+ **Return value**
-The function returns `TRUE` if object is empty (has no more commands), `FALSE` is returned otherwise.
+ The function returns `TRUE` if object is empty (has no more commands), `FALSE` is returned otherwise.
### `Anim8_RemoveIfEmpty`
-If desired, Anim8 can automatically delete an object after it is empty.
-```dae
-func void Anim8_RemoveIfEmpty(var int handle, var int on)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
-- `#!dae var int on`
- `TRUE`: enable, `FALSE`: disable
+!!! function "`Anim8_RemoveIfEmpty`"
+ If desired, Anim8 can automatically delete an object after it is empty.
+ ```dae
+ func void Anim8_RemoveIfEmpty(var int handle, var int on)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int on`
+ `TRUE`: enable, `FALSE`: disable
### `Anim8_RemoveDataIfEmpty`
-With [`Anim8_NewExt`](#anim8_newext) handler and data can be set. If this function is called with `TRUE`, `data` is taken as a handle and `#!dae delete(data)` is called if the object is empty. Works only if [`Anim8_RemoveIfEmpty`](#anim8_removeifempty) is also activated.
-```dae
-func void Anim8_RemoveDataIfEmpty(var int handle, var int on)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
-- `#!dae var int on`
- `TRUE`: enable, `FALSE`: disable
+!!! function "`Anim8_RemoveDataIfEmpty`"
+ With [`Anim8_NewExt`](#anim8_newext) handler and data can be set. If this function is called with `TRUE`, `data` is taken as a handle and `#!dae delete(data)` is called if the object is empty. Works only if [`Anim8_RemoveIfEmpty`](#anim8_removeifempty) is also activated.
+ ```dae
+ func void Anim8_RemoveDataIfEmpty(var int handle, var int on)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int on`
+ `TRUE`: enable, `FALSE`: disable
### `Anim8`
-Packet core. Gives the object a new command to process.
-```dae
-func void Anim8(var int handle, var int target, var int span, var int interpol)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
-- `#!dae var int target`
- Target value of this command. When the object's value has reached this value, the command is considered completed and deleted.
-- `#!dae var int span`
- Action duration in milliseconds
-- `#!dae var int interpol`
- What form of movement is used (See [constants](../various/userconstants.md#anim8) for this)
+!!! function "`Anim8`"
+ Packet core. Gives the object a new command to process.
+ ```dae
+ func void Anim8(var int handle, var int target, var int span, var int interpol)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int target`
+ Target value of this command. When the object's value has reached this value, the command is considered completed and deleted.
+ - `#!dae var int span`
+ Action duration in milliseconds
+ - `#!dae var int interpol`
+ What form of movement is used (See [constants](../various/userconstants.md#anim8) for this)
### `Anim8q`
-As already mentioned above, Anim8 can also process several commands one after the other. While Anim8 completely resets the object and deletes all commands, Anim8q just appends a new command to the list. This will be processed as soon as the previous one is completed.
-```dae
-func void Anim8q(var int handle, var int target, var int span, var int interpol)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
-- `#!dae var int target`
- Target value of this command. When the object's value has reached this value, the command is considered completed and another one in the queue will start.
-- `#!dae var int span`
- Action duration in milliseconds
-- `#!dae var int interpol`
- What form of movement is used (See [constants](../various/userconstants.md#anim8) for this)
+!!! function "`Anim8q`"
+ As already mentioned above, Anim8 can also process several commands one after the other. While Anim8 completely resets the object and deletes all commands, Anim8q just appends a new command to the list. This will be processed as soon as the previous one is completed.
+ ```dae
+ func void Anim8q(var int handle, var int target, var int span, var int interpol)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var int target`
+ Target value of this command. When the object's value has reached this value, the command is considered completed and another one in the queue will start.
+ - `#!dae var int span`
+ Action duration in milliseconds
+ - `#!dae var int interpol`
+ What form of movement is used (See [constants](../various/userconstants.md#anim8) for this)
### `Anim8_CallOnRemove`
-Registers a function to be called when the object is deleted (e.g. by [`Anim8_RemoveIfEmpty`](#anim8_removeifempty))
-```dae
-func void Anim8_CallOnRemove(var int handle, var func dfnc)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle returned from [`Anim8_New`](#anim8_new)
-- `#!dae var func dfnc`
- This function is called when the object is deleted
+!!! function "`Anim8_CallOnRemove`"
+ Registers a function to be called when the object is deleted (e.g. by [`Anim8_RemoveIfEmpty`](#anim8_removeifempty))
+ ```dae
+ func void Anim8_CallOnRemove(var int handle, var func dfnc)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle returned from [`Anim8_New`](#anim8_new)
+ - `#!dae var func dfnc`
+ This function is called when the object is deleted
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/bars.md b/docs/zengin/scripts/extenders/lego/applications/bars.md
index c007323f7b..9cb141143c 100644
--- a/docs/zengin/scripts/extenders/lego/applications/bars.md
+++ b/docs/zengin/scripts/extenders/lego/applications/bars.md
@@ -3,20 +3,21 @@ title: Bars
description: LeGo package for creating new status bars
---
# Bars
-This package makes it very easy to add new bars, for e.g. stamina.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](../tools/permmem.md)
+ - [View](../tools/view.md)
+ **Implementation:**
+ [:material-github: Bars.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Bars.d)
-- [PermMem](../tools/permmem.md)
-- [View](../tools/view.md)
+This package makes it very easy to add new bars, for e.g. stamina.
## Initialization
Initialize with `LeGo_Bars` flag.
```dae
LeGo_Init(LeGo_Bars);
```
-## Implementation
-[:material-github: Bars.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Bars.d)
## Functions
@@ -24,207 +25,222 @@ LeGo_Init(LeGo_Bars);
If the `GothicBar` prototype is selected as the initial type (`GothicBar@` as the constructor), the user's own bars are visually indistinguishable from those used in Gothic.
### `Bar_Create`
-Creates a new bar from a constructor instance.
-```dae
-func int Bar_Create(var int inst)
-```
-
-**Parameters**
+!!! function "`Bar_Create`"
+ Creates a new bar from a constructor instance.
+ ```dae
+ func int Bar_Create(var int inst)
+ ```
-- `#!dae var int inst`
- Constructor instance of `Bar` class
+ **Parameters**
-**Return value**
+ - `#!dae var int inst`
+ Constructor instance of `Bar` class
-The function returns the address of the new bar, aka the handle.
+ **Return value**
-??? abstract "Examples"
- `#!dae var int bar; bar = Bar_Create(GothicBar@);`
+ The function returns the address of the new bar, aka the handle.
- ```dae
- var int bar; bar = Bar_Create(GothicBar@); // Create a new bar
- Bar_SetPercent(bar, 50); // And set the value to 50%
- ```
+ ??? abstract "Examples"
+ `#!dae var int bar; bar = Bar_Create(GothicBar@);`
- ```dae
- func void Example_1()
- {
+ ```dae
var int bar; bar = Bar_Create(GothicBar@); // Create a new bar
Bar_SetPercent(bar, 50); // And set the value to 50%
- };
- ```
+ ```
+
+ ```dae
+ func void Example_1()
+ {
+ var int bar; bar = Bar_Create(GothicBar@); // Create a new bar
+ Bar_SetPercent(bar, 50); // And set the value to 50%
+ };
+ ```
### `Bar_Delete`
-Deletes a bar from the screen and from memory.
-```dae
-func void Bar_Delete(var int bar)
-```
+!!! function "`Bar_Delete`"
+ Deletes a bar from the screen and from memory.
+ ```dae
+ func void Bar_Delete(var int bar)
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
### `Bar_SetMax`
-Changes a bar's maximum value but does not update its bar length (only `Bar_SetPercent`, `Bar_SetPromille` and `Bar_SetValue`)
-```dae
-func void Bar_SetMax(var int bar, var int max)
-```
-**Parameters**
+!!! function "`Bar_SetMax`"
+ Changes a bar's maximum value but does not update its bar length (only `Bar_SetPercent`, `Bar_SetPromille` and `Bar_SetValue`)
+ ```dae
+ func void Bar_SetMax(var int bar, var int max)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
-- `#!dae var int max`
- New maximum value
+ - `#!dae var int max`
+ New maximum value
### `Bar_SetValue`
-Sets the value of the bar.
-```dae
-func void Bar_SetValue(var int bar, var int val)
-```
-**Parameters**
+!!! function "`Bar_SetValue`"
+ Sets the value of the bar.
+ ```dae
+ func void Bar_SetValue(var int bar, var int val)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int val`
- New value of the bar
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int val`
+ New value of the bar
### `Bar_SetPercent`
-Sets the value of the bar but as a percentage (0..100).
-```dae
-func void Bar_SetPercent(var int bar, var int perc)
-```
-**Parameters**
+!!! function "`Bar_SetPercent`"
+ Sets the value of the bar but as a percentage (0..100).
+ ```dae
+ func void Bar_SetPercent(var int bar, var int perc)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int perc`
- New value of the bar in percent
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int perc`
+ New value of the bar in percent
### `Bar_SetPromille`
-Sets the value of the bar but per mille (0..1000).
-```dae
-func void Bar_SetPromille(var int bar, var int pro)
-```
-**Parameters**
+!!! function "`Bar_SetPromille`"
+ Sets the value of the bar but per mille (0..1000).
+ ```dae
+ func void Bar_SetPromille(var int bar, var int pro)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int pro`
- New value of the bar in per mille
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int pro`
+ New value of the bar in per mille
### `Bar_Hide`
-Hides a bar. It will not be deleted.
-```dae
-func void Bar_Hide(var int bar)
-```
-**Parameters**
+!!! function "`Bar_Hide`"
+ Hides a bar. It will not be deleted.
+ ```dae
+ func void Bar_Hide(var int bar)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
### `Bar_Show`
-Displays a bar again after using `Bar_Hide`.
-```dae
-func void Bar_Show(var int bar)
-```
-**Parameters**
+!!! function "`Bar_Show`"
+ Displays a bar again after using `Bar_Hide`.
+ ```dae
+ func void Bar_Show(var int bar)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
### `Bar_MoveTo`
-Move the bar to virtual position.
-```dae
-func void Bar_MoveTo(var int bar, var int x, var int y)
-```
-**Parameters**
+!!! function "`Bar_MoveTo`"
+ Move the bar to virtual position.
+ ```dae
+ func void Bar_MoveTo(var int bar, var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int x`
- New horizontal position in virtual coordinates
-- `#!dae var int y`
- New vertical position in virtual coordinates
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int x`
+ New horizontal position in virtual coordinates
+ - `#!dae var int y`
+ New vertical position in virtual coordinates
### `Bar_MoveToPxl`
-Move the bar to pixel position.
-```dae
-func void Bar_MoveToPxl(var int bar, var int x, var int y)
-```
-**Parameters**
+!!! function "`Bar_MoveToPxl`"
+ Move the bar to pixel position.
+ ```dae
+ func void Bar_MoveToPxl(var int bar, var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int x`
- New horizontal position in pixels
-- `#!dae var int y`
- New vertical position in pixels
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int x`
+ New horizontal position in pixels
+ - `#!dae var int y`
+ New vertical position in pixels
### `Bar_SetAlpha`
-Sets the transparency of the bar.
-```dae
-func void Bar_SetAlpha(var int bar, var int alpha)
-```
-**Parameters**
+!!! function "`Bar_SetAlpha`"
+ Sets the transparency of the bar.
+ ```dae
+ func void Bar_SetAlpha(var int bar, var int alpha)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int alpha`
- Transparency value (0..255)
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int alpha`
+ Transparency value (0..255)
### `Bar_SetBarTexture`
-Sets the foreground texture of the bar.
-```dae
-func void Bar_SetBarTexture(var int bar, var string barTex)
-```
-**Parameters**
+!!! function "`Bar_SetBarTexture`"
+ Sets the foreground texture of the bar.
+ ```dae
+ func void Bar_SetBarTexture(var int bar, var string barTex)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var string barTex`
- The new foreground texture
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var string barTex`
+ The new foreground texture
### `Bar_SetBackTexture`
-Sets the background texture of the bar.
-```dae
-func void Bar_SetBackTexture(var int bar, var string backTex)
-```
-**Parameters**
+!!! function "`Bar_SetBackTexture`"
+ Sets the background texture of the bar.
+ ```dae
+ func void Bar_SetBackTexture(var int bar, var string backTex)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var string backTex`
- The new background texture
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var string backTex`
+ The new background texture
### `Bar_Resize`
-Resize an existing bar.
-```dae
-func void Bar_Resize(var int bar, var int width, var int height)
-```
-**Parameters**
+!!! function "`Bar_Resize`"
+ Resize an existing bar.
+ ```dae
+ func void Bar_Resize(var int bar, var int width, var int height)
+ ```
+ **Parameters**
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int width`
- New width in virtual coordinates
-- `#!dae var int height`
- New height in virtual coordinates
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int width`
+ New width in virtual coordinates
+ - `#!dae var int height`
+ New height in virtual coordinates
### `Bar_ResizePxl`
-Resize existing bar (in pixels).
-```dae
-func void Bar_ResizePxl(var int bar, var int x, var int y)
-```
-**Parameters**
-
-- `#!dae var int bar`
- Handle returned from `Bar_Create`
-- `#!dae var int x`
- New width in pixels
-- `#!dae var int y`
- New height in pixels
+!!! function "`Bar_ResizePxl`"
+ Resize existing bar (in pixels).
+ ```dae
+ func void Bar_ResizePxl(var int bar, var int x, var int y)
+ ```
+ **Parameters**
+
+ - `#!dae var int bar`
+ Handle returned from `Bar_Create`
+ - `#!dae var int x`
+ New width in pixels
+ - `#!dae var int y`
+ New height in pixels
## Examples
!!! Note
diff --git a/docs/zengin/scripts/extenders/lego/applications/bars.pl.md b/docs/zengin/scripts/extenders/lego/applications/bars.pl.md
index af683b9162..76a98862d0 100644
--- a/docs/zengin/scripts/extenders/lego/applications/bars.pl.md
+++ b/docs/zengin/scripts/extenders/lego/applications/bars.pl.md
@@ -3,20 +3,21 @@ title: Bars
description: Pakiet LeGo do tworzenia nowych pasków statusu
---
# Bars - paski
-Ten pakiet bardzo ułatwia dodawanie nowych pasków, dla wyświetlania np. wytrzymałości.
-## Zależności
+!!! info inline end
+ **Zależności:**
+ - [PermMem](../tools/permmem.md)
+ - [View](../tools/view.md)
+ **Implementacja:**
+ [:material-github: Bars.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Bars.d)
-- [PermMem](../tools/permmem.md)
-- [View](../tools/view.md)
+Ten pakiet bardzo ułatwia dodawanie nowych pasków, dla wyświetlania np. wytrzymałości.
## Inicjalizacja
Zainicjuj za pomocÄ… flagi `LeGo_Bars`.
```dae
LeGo_Init(LeGo_Bars);
```
-## Implementacja
-[:material-github: Bars.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Bars.d)
## Funkcje
@@ -24,207 +25,222 @@ LeGo_Init(LeGo_Bars);
Jeśli prototyp `GothicBar` jest wybrany jako typ początkowy (`GothicBar@` jako konstruktor), paski użytkownika są wizualnie nie do odróżnienia od tych używanych w Gothicu.
### `Bar_Create`
-Tworzy nowy pasek z instancji konstruktora.
-```dae
-func int Bar_Create(var int inst)
-```
-
-**Parametry**
+!!! function "`Bar_Create`"
+ Tworzy nowy pasek z instancji konstruktora.
+ ```dae
+ func int Bar_Create(var int inst)
+ ```
-- `#!dae var int inst`
- Instancja konstruktora klasy `Bar`
+ **Parametry**
-**Zwracana wartość**
+ - `#!dae var int inst`
+ Instancja konstruktora klasy `Bar`
-Funkcja zwraca handler do nowego paska.
+ **Zwracana wartość**
-??? abstract "Examples"
- `#!dae var int bar; bar = Bar_Create(GothicBar@);`
+ Funkcja zwraca handler do nowego paska.
- ```dae
- var int bar; bar = Bar_Create(GothicBar@); // Tworzy nowy pasek
- Bar_SetPercent(bar, 50); // Ustawia jego wartość na 50%
- ```
+ ??? abstract "Examples"
+ `#!dae var int bar; bar = Bar_Create(GothicBar@);`
- ```dae
- func void Example_1()
- {
+ ```dae
var int bar; bar = Bar_Create(GothicBar@); // Tworzy nowy pasek
Bar_SetPercent(bar, 50); // Ustawia jego wartość na 50%
- };
- ```
+ ```
+
+ ```dae
+ func void Example_1()
+ {
+ var int bar; bar = Bar_Create(GothicBar@); // Tworzy nowy pasek
+ Bar_SetPercent(bar, 50); // Ustawia jego wartość na 50%
+ };
+ ```
### `Bar_Delete`
-Usuwa pasek z ekranu i pamięci.
-```dae
-func void Bar_Delete(var int bar)
-```
+!!! function "`Bar_Delete`"
+ Usuwa pasek z ekranu i pamięci.
+ ```dae
+ func void Bar_Delete(var int bar)
+ ```
-**Parametry**
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
### `Bar_SetMax`
-Zmienia maksymalna wartość paska, ale nie aktualizuje jego długości (tylko `Bar_SetPercent`, `Bar_SetPromille` i `Bar_SetValue` to robią)
-```dae
-func void Bar_SetMax(var int bar, var int max)
-```
-**Parametry**
+!!! function "`Bar_SetMax`"
+ Zmienia maksymalna wartość paska, ale nie aktualizuje jego długości (tylko `Bar_SetPercent`, `Bar_SetPromille` i `Bar_SetValue` to robią)
+ ```dae
+ func void Bar_SetMax(var int bar, var int max)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
-- `#!dae var int max`
- Nowa maksymalna wartość
+ - `#!dae var int max`
+ Nowa maksymalna wartość
### `Bar_SetValue`
-Ustawia wartość paska.
-```dae
-func void Bar_SetValue(var int bar, var int val)
-```
-**Parametry**
+!!! function "`Bar_SetValue`"
+ Ustawia wartość paska.
+ ```dae
+ func void Bar_SetValue(var int bar, var int val)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int val`
- Nowa wartość paska
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int val`
+ Nowa wartość paska
### `Bar_SetPercent`
-Ustawia wartość paska, ale w procentach (0..100).
-```dae
-func void Bar_SetPercent(var int bar, var int perc)
-```
-**Parametry**
+!!! function "`Bar_SetPercent`"
+ Ustawia wartość paska, ale w procentach (0..100).
+ ```dae
+ func void Bar_SetPercent(var int bar, var int perc)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int perc`
- Nowa wartość paska w procentach
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int perc`
+ Nowa wartość paska w procentach
### `Bar_SetPromille`
-Ustawia wartość paska, ale w promilach (0..1000).
-```dae
-func void Bar_SetPromille(var int bar, var int pro)
-```
-**Parametry**
+!!! function "`Bar_SetPromille`"
+ Ustawia wartość paska, ale w promilach (0..1000).
+ ```dae
+ func void Bar_SetPromille(var int bar, var int pro)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int pro`
- Nowa wartość paska w promilach
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int pro`
+ Nowa wartość paska w promilach
### `Bar_Hide`
-Ukrywa pasek, ale go nie usuwa.
-```dae
-func void Bar_Hide(var int bar)
-```
-**Parametry**
+!!! function "`Bar_Hide`"
+ Ukrywa pasek, ale go nie usuwa.
+ ```dae
+ func void Bar_Hide(var int bar)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
### `Bar_Show`
-Wyświetla pasek ponownie po użyciu `Bar_Hide`.
-```dae
-func void Bar_Show(var int bar)
-```
-**Parametry**
+!!! function "`Bar_Show`"
+ Wyświetla pasek ponownie po użyciu `Bar_Hide`.
+ ```dae
+ func void Bar_Show(var int bar)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
### `Bar_MoveTo`
-Przenosi pasek do danej pozycji wirtualnej.
-```dae
-func void Bar_MoveTo(var int bar, var int x, var int y)
-```
-**Parametry**
+!!! function "`Bar_MoveTo`"
+ Przenosi pasek do danej pozycji wirtualnej.
+ ```dae
+ func void Bar_MoveTo(var int bar, var int x, var int y)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int x`
- Nowa pozycja w osi x
-- `#!dae var int y`
- Nowa pozycja w osi y
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int x`
+ Nowa pozycja w osi x
+ - `#!dae var int y`
+ Nowa pozycja w osi y
### `Bar_MoveToPxl`
-Przenosi pasek do danej pozycji wyrażonej w pikselach.
-```dae
-func void Bar_MoveToPxl(var int bar, var int x, var int y)
-```
-**Parametry**
+!!! function "`Bar_MoveToPxl`"
+ Przenosi pasek do danej pozycji wyrażonej w pikselach.
+ ```dae
+ func void Bar_MoveToPxl(var int bar, var int x, var int y)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int x`
- Nowa pozycja w osi x
-- `#!dae var int y`
- Nowa pozycja w osi y
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int x`
+ Nowa pozycja w osi x
+ - `#!dae var int y`
+ Nowa pozycja w osi y
### `Bar_SetAlpha`
-Ustawia przezroczystość paska.
-```dae
-func void Bar_SetAlpha(var int bar, var int alpha)
-```
-**Parametry**
+!!! function "`Bar_SetAlpha`"
+ Ustawia przezroczystość paska.
+ ```dae
+ func void Bar_SetAlpha(var int bar, var int alpha)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int alpha`
- Wartość przezroczystości (0..255)
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int alpha`
+ Wartość przezroczystości (0..255)
### `Bar_SetBarTexture`
-Ustawia teksturę wartości paska.
-```dae
-func void Bar_SetBarTexture(var int bar, var string barTex)
-```
-**Parametry**
+!!! function "`Bar_SetBarTexture`"
+ Ustawia teksturę wartości paska.
+ ```dae
+ func void Bar_SetBarTexture(var int bar, var string barTex)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var string barTex`
- Nowa tekstura
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var string barTex`
+ Nowa tekstura
### `Bar_SetBackTexture`
-Ustawia teksturę tła paska.
-```dae
-func void Bar_SetBackTexture(var int bar, var string backTex)
-```
-**Parametry**
+!!! function "`Bar_SetBackTexture`"
+ Ustawia teksturę tła paska.
+ ```dae
+ func void Bar_SetBackTexture(var int bar, var string backTex)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var string backTex`
- Nowa tekstura tła
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var string backTex`
+ Nowa tekstura tła
### `Bar_Resize`
-Zmienia rozmiar istniejÄ…cego paska.
-```dae
-func void Bar_Resize(var int bar, var int width, var int height)
-```
-**Parametry**
+!!! function "`Bar_Resize`"
+ Zmienia rozmiar istniejÄ…cego paska.
+ ```dae
+ func void Bar_Resize(var int bar, var int width, var int height)
+ ```
+ **Parametry**
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int width`
- Nowa szerokość
-- `#!dae var int height`
- Nowa szerokość
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int width`
+ Nowa szerokość
+ - `#!dae var int height`
+ Nowa szerokość
### `Bar_ResizePxl`
-Resize existing bar (in pixels).
-```dae
-func void Bar_ResizePxl(var int bar, var int x, var int y)
-```
-**Parametry**
-
-- `#!dae var int bar`
- Handler zwrócony przez `Bar_Create`
-- `#!dae var int x`
- Nowa szerokość w pikselach
-- `#!dae var int y`
- Nowa szerokość w pikselach
+!!! function "`Bar_ResizePxl`"
+ Resize existing bar (in pixels).
+ ```dae
+ func void Bar_ResizePxl(var int bar, var int x, var int y)
+ ```
+ **Parametry**
+
+ - `#!dae var int bar`
+ Handler zwrócony przez `Bar_Create`
+ - `#!dae var int x`
+ Nowa szerokość w pikselach
+ - `#!dae var int y`
+ Nowa szerokość w pikselach
## Przykłady
!!! Note
diff --git a/docs/zengin/scripts/extenders/lego/applications/bloodsplats.md b/docs/zengin/scripts/extenders/lego/applications/bloodsplats.md
index 1ca9bd6cd9..e3eb75bb26 100644
--- a/docs/zengin/scripts/extenders/lego/applications/bloodsplats.md
+++ b/docs/zengin/scripts/extenders/lego/applications/bloodsplats.md
@@ -3,56 +3,59 @@ title: Bloodsplats
description: LeGo package for displaying bloodsplats on a screen when player is hit
---
# Bloodsplats
+
+!!! info inline end
+ **Dependencies:**
+ - [Floats](../../ikarus/floats.md)
+ - [View](../tools/view.md)
+ - [Random](../tools/random.md)
+ - [Anim8](anim8.md)
+ **Implementation:**
+ [:material-github: Bloodsplats.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Bloodsplats.d)
+
If this package is activated, red blood splatters will appear on the screen when the hero takes damage. For this, the damage perception for the hero is redirected to `_B_HeroDamage()`. To use the Bloodsplats, the enclosed textures must be available. Also, the VFX "HERO_HURT" (also included) should be entered in the `VfxInst.d` to create an even better hit effect. All textures used here are from [CGTextures.com](http://CGTextures.com). If you use Bloodsplats in your modification, this site must be noted in the credits.
!!! Tip
See [user constants](../various/userconstants.md#bloodsplats) to edit behavior of this packet.
-## Dependencies
-
-- [Floats](../../ikarus/floats.md)
-- [View](../tools/view.md)
-- [Random](../tools/random.md)
-- [Anim8](anim8.md)
-
## Initialization
Initialize with `LeGo_Bloodsplats` flag.
```dae
LeGo_Init(LeGo_Bloodsplats);
```
-## Implementation
-[:material-github: Bloodsplats.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Bloodsplats.d)
-
## Functions
### `Bloodsplat`
-Puts a blood splatter on the screen.
-```dae
-func void Bloodsplat(var int damage)
-```
-**Parameters**
+!!! function "`Bloodsplat`"
+ Puts a blood splatter on the screen.
+ ```dae
+ func void Bloodsplat(var int damage)
+ ```
+ **Parameters**
-- `#!dae var int damage`
- The damage (affects the size of the splatter)
+ - `#!dae var int damage`
+ The damage (affects the size of the splatter)
### `Bloodsplats_Rage`
-Pretty pointless feature that smears the entire screen.
-```dae
-func void Bloodsplats_Rage()
-```
+!!! function "`Bloodsplats_Rage`"
+ Pretty pointless feature that smears the entire screen.
+ ```dae
+ func void Bloodsplats_Rage()
+ ```
### `Npc_GetPercFunc`
-`oCNpc::GetPerceptionFunc` engine function wrapper
-```dae
-func int Npc_GetPercFunc(var C_Npc npc, var int type)
-```
-**Parameters**
+!!! function "`Npc_GetPercFunc`"
+ `oCNpc::GetPerceptionFunc` engine function wrapper
+ ```dae
+ func int Npc_GetPercFunc(var C_Npc npc, var int type)
+ ```
+ **Parameters**
-- `#!dae var C_NPC npc`
- NPC whose perception is checked
-- `#!dae var int type`
- Checked perception type (form [`Constant.d`](https://github.com/VaanaCZ/gothic-2-addon-scripts/blob/Unified-EN/_work/Data/Scripts/Content/_intern/Constants.d#L213-L258))
+ - `#!dae var C_NPC npc`
+ NPC whose perception is checked
+ - `#!dae var int type`
+ Checked perception type (form [`Constant.d`](https://github.com/VaanaCZ/gothic-2-addon-scripts/blob/Unified-EN/_work/Data/Scripts/Content/_intern/Constants.d#L213-L258))
-**Return value**
+ **Return value**
-The function returns the state of NPCs selected perception.
\ No newline at end of file
+ The function returns the state of NPCs selected perception.
\ No newline at end of file
diff --git a/docs/zengin/scripts/extenders/lego/applications/buffs.md b/docs/zengin/scripts/extenders/lego/applications/buffs.md
index e219fd1c97..eff2e7763c 100644
--- a/docs/zengin/scripts/extenders/lego/applications/buffs.md
+++ b/docs/zengin/scripts/extenders/lego/applications/buffs.md
@@ -3,13 +3,16 @@ title: Buffs
description: LeGo package allowing to create status effects and apply them on NPCs
---
# Buffs
-This package allows you to easily create status effects that can affect any NPC.
-Status effects on the hero are displayed graphically in a bar.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](../tools/permmem.md)
+ - [FrameFunctions](../tools/frame_functions.md)
+ **Implementation:**
+ [:material-github: Buffs.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Buffs.d)
-- [PermMem](../tools/permmem.md)
-- [FrameFunctions](../tools/frame_functions.md)
+This package allows you to easily create status effects that can affect any NPC.
+Status effects on the hero are displayed graphically in a bar.
## Initialization
Initialize with `LeGo_Buffs` flag.
@@ -20,136 +23,142 @@ LeGo_Init(LeGo_Buffs);
!!! Warning
This package is still experimental and not included in the `LeGo_All` initialization flag.
-## Implementation
-[:material-github: Buffs.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Buffs.d)
-
## Functions
### `Buff_Apply`
-Applies a status effect to an NPC.
-```dae
-func int Buff_Apply(var C_NPC npc, var int buff)
-```
-**Parameters**
+!!! function "`Buff_Apply`"
+ Applies a status effect to an NPC.
+ ```dae
+ func int Buff_Apply(var C_NPC npc, var int buff)
+ ```
+ **Parameters**
-- `#!dae var C_NPC npc`
- NPC to be affected by this effect
+ - `#!dae var C_NPC npc`
+ NPC to be affected by this effect
-- `#!dae var int buff`
- The instance of the effect to apply to the NPC
+ - `#!dae var int buff`
+ The instance of the effect to apply to the NPC
-**Return value**
+ **Return value**
-The function returns the handle of the buff, which was just generated.
+ The function returns the handle of the buff, which was just generated.
### `Buff_ApplyUnique`
-[`Buff_Apply`](#buff_apply), but nothing happens if a status effect of that kind is already on the NPC.
-```dae
-func int Buff_ApplyUnique(var C_NPC npc, var int buff)
-```
-**Parameters**
+!!! function "`Buff_ApplyUnique`"
+ [`Buff_Apply`](#buff_apply), but nothing happens if a status effect of that kind is already on the NPC.
+ ```dae
+ func int Buff_ApplyUnique(var C_NPC npc, var int buff)
+ ```
+ **Parameters**
-- `#!dae var C_NPC npc`
- NPC to be affected by this effect
+ - `#!dae var C_NPC npc`
+ NPC to be affected by this effect
-- `#!dae var int buff`
- The instance of the effect to apply to the NPC
+ - `#!dae var int buff`
+ The instance of the effect to apply to the NPC
-**Return value**
+ **Return value**
-The function returns the handle of the buff, which was just generated or `0` if the buff is already applied on the NPC.
+ The function returns the handle of the buff, which was just generated or `0` if the buff is already applied on the NPC.
### `Buff_ApplyOrRefresh`
-[`Buff_Apply`](#buff_apply), but if a status effect of this type is already affecting the NPC, the duration will be reset.
-```dae
-func int Buff_ApplyOrRefresh(var C_NPC n, var int buff)
-```
-**Parameters**
+!!! function "`Buff_ApplyOrRefresh`"
+ [`Buff_Apply`](#buff_apply), but if a status effect of this type is already affecting the NPC, the duration will be reset.
+ ```dae
+ func int Buff_ApplyOrRefresh(var C_NPC n, var int buff)
+ ```
+ **Parameters**
-- `#!dae var C_NPC npc`
- NPC to be affected by this effect
+ - `#!dae var C_NPC npc`
+ NPC to be affected by this effect
-- `#!dae var int buff`
- The instance of the effect to apply to the NPC
+ - `#!dae var int buff`
+ The instance of the effect to apply to the NPC
-**Return value**
+ **Return value**
-The function returns the handle of the buff, which was just generated or refreshed.
+ The function returns the handle of the buff, which was just generated or refreshed.
### `Buff_Refresh`
-Resets the duration of the buff.
-```dae
-func void Buff_Refresh(var int buffHandle)
-```
-**Parameters**
+!!! function "`Buff_Refresh`"
+ Resets the duration of the buff.
+ ```dae
+ func void Buff_Refresh(var int buffHandle)
+ ```
+ **Parameters**
-- `#!dae var int buffHandle`
- Handle of the buff to refresh
+ - `#!dae var int buffHandle`
+ Handle of the buff to refresh
### `Buff_Remove`
-Removes the buff from the all NPCs.
-```dae
-func void Buff_Remove(var int buffHandle)
-```
-**Parameters**
+!!! function "`Buff_Remove`"
+ Removes the buff from the all NPCs.
+ ```dae
+ func void Buff_Remove(var int buffHandle)
+ ```
+ **Parameters**
-- `#!dae var int buffHandle`
- Handle of the buff to remove
+ - `#!dae var int buffHandle`
+ Handle of the buff to remove
### `Buff_RemoveAll`
-Removes the buffs form the NPC.
-```dae
-func void Buff_RemoveAll(var C_NPC npc, var int buffInstance)
-```
-**Parameters**
+!!! function "`Buff_RemoveAll`"
+ Removes the buffs form the NPC.
+ ```dae
+ func void Buff_RemoveAll(var C_NPC npc, var int buffInstance)
+ ```
+ **Parameters**
-- `#!dae var C_NPC npc`
- NPC whose buff should be removed
+ - `#!dae var C_NPC npc`
+ NPC whose buff should be removed
### `Buff_GetNpc`
-Returns a pointer to the NPC, which is affected by the buff.
-```dae
-func int Buff_GetNpc(var int buffHandle)
-```
-**Parameters**
+!!! function "`Buff_GetNpc`"
+ Returns a pointer to the NPC, which is affected by the buff.
+ ```dae
+ func int Buff_GetNpc(var int buffHandle)
+ ```
+ **Parameters**
-- `#!dae var int buffHandle`
- Handle of the buff
+ - `#!dae var int buffHandle`
+ Handle of the buff
-**Return value**
+ **Return value**
-The function returns a pointer to the NPC, which is affected by the buff.
+ The function returns a pointer to the NPC, which is affected by the buff.
### `Buff_Has`
-Checks if the NPC already has an effect applied.
-```dae
-func int Buff_Has(var C_NPC npc, var int buff)
-```
-**Parameters**
+!!! function "`Buff_Has`"
+ Checks if the NPC already has an effect applied.
+ ```dae
+ func int Buff_Has(var C_NPC npc, var int buff)
+ ```
+ **Parameters**
-- `#!dae var C_NPC npc`
- Checked NPC
+ - `#!dae var C_NPC npc`
+ Checked NPC
-- `#!dae var int buff`
- The instance of the effect
+ - `#!dae var int buff`
+ The instance of the effect
-**Return value**
+ **Return value**
-The function returns `TRUE` if the NPC has an effect applied. `FALSE` is returned otherwise.
+ The function returns `TRUE` if the NPC has an effect applied. `FALSE` is returned otherwise.
### `SAVE_GetFuncID`
-Same as `MEM_GetFuncID` but gets the current instance.
-```dae
-func int SAVE_GetFuncID(var func f)
-```
-**Parameters**
+!!! function "`SAVE_GetFuncID`"
+ Same as `MEM_GetFuncID` but gets the current instance.
+ ```dae
+ func int SAVE_GetFuncID(var func f)
+ ```
+ **Parameters**
-`#!dae var func f`
- Function whose ID is got
+ `#!dae var func f`
+ Function whose ID is got
-**Return value**
+ **Return value**
-The function returns the ID of given function.
+ The function returns the ID of given function.
## lCBuff class
The buffs package implements an `lCBuff` class, which looks like this:
diff --git a/docs/zengin/scripts/extenders/lego/applications/buttons.md b/docs/zengin/scripts/extenders/lego/applications/buttons.md
index d751f86b61..bfcb3c72f1 100644
--- a/docs/zengin/scripts/extenders/lego/applications/buttons.md
+++ b/docs/zengin/scripts/extenders/lego/applications/buttons.md
@@ -3,12 +3,15 @@ title: Buttons
description: LeGo package for creating buttons that reacts to mouse
---
# Buttons
-This package extends the handling of the mouse and allows creating rectangular buttons, which react to mouse (hover) entry and exit as well as a mouse click.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](../tools/permmem.md)
+ - [View](../tools/view.md)
+ **Implementation:**
+ [:material-github: Buffs.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Buttons.d)
-- [PermMem](../tools/permmem.md)
-- [View](../tools/view.md)
+This package extends the handling of the mouse and allows creating rectangular buttons, which react to mouse (hover) entry and exit as well as a mouse click.
## Initialization
Initialize with `LeGo_Buttons` flag.
@@ -16,312 +19,328 @@ Initialize with `LeGo_Buttons` flag.
LeGo_Init(LeGo_Buttons);
```
-## Implementation
-[:material-github: Buffs.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Buttons.d)
-
## Functions
### `Button_Create`
-Creates a button. It is initially hidden (not visible and does not react to the mouse). The three callback functions have the following signature `void f(int handle)`.
-```dae
-func int Button_Create(var int posx, var int posy, var int width, var int height, var string tex, var func on_enter, var func on_leave, var func on_click)
-```
-**Parameters**
-
-- `#!dae var int posx`
- The horizontal position of the button in virtual coordinates
-- `#!dae var int posy`
- The vertical position of the button in virtual coordinates
-- `#!dae var int width`
- Width of the button in virtual coordinates
-- `#!dae var int height`
- Height of the button in virtual coordinates
-- `#!dae var string tex`
- Name of the button texture
-- `#!dae var func on_enter`
- This function is called when the mouse enters the button
-- `#!dae var func on_leave`
- This function is called when the mouse leaves the button
-- `#!dae var func on_click`
- This function is called when the user performs a mouse click on the button (left mouse button)
-
-**Return value**
-
-The function returns a handle to created button.
+!!! function "`Button_Create`"
+ Creates a button. It is initially hidden (not visible and does not react to the mouse). The three callback functions have the following signature `void f(int handle)`.
+ ```dae
+ func int Button_Create(var int posx, var int posy, var int width, var int height, var string tex, var func on_enter, var func on_leave, var func on_click)
+ ```
+ **Parameters**
+
+ - `#!dae var int posx`
+ The horizontal position of the button in virtual coordinates
+ - `#!dae var int posy`
+ The vertical position of the button in virtual coordinates
+ - `#!dae var int width`
+ Width of the button in virtual coordinates
+ - `#!dae var int height`
+ Height of the button in virtual coordinates
+ - `#!dae var string tex`
+ Name of the button texture
+ - `#!dae var func on_enter`
+ This function is called when the mouse enters the button
+ - `#!dae var func on_leave`
+ This function is called when the mouse leaves the button
+ - `#!dae var func on_click`
+ This function is called when the user performs a mouse click on the button (left mouse button)
+
+ **Return value**
+
+ The function returns a handle to created button.
### `Button_CreatePxl`
-`Button_Create` with pixels instead of virtual coordinates.
-```dae
-func int Button_CreatePxl(var int posx, var int posy, var int width, var int height, var string tex, var func on_enter, var func on_leave, var func on_click)
-```
-**Parameters**
-
-- `#!dae var int posx`
- The horizontal position of the button in pixels
-- `#!dae var int posy`
- The vertical position of the button in pixels
-- `#!dae var int width`
- Width of the button in pixels
-- `#!dae var int height`
- Height of the button in pixels
-- `#!dae var string tex`
- Name of the button texture
-- `#!dae var func on_enter`
- This function is called when the mouse enters the button
-- `#!dae var func on_leave`
- This function is called when the mouse leaves the button
-- `#!dae var func on_click`
- This function is called when the user performs a mouse click on the button (left mouse button)
-
-**Return value**
-
-The function returns a handle to created button.
+!!! function "`Button_CreatePxl`"
+ `Button_Create` with pixels instead of virtual coordinates.
+ ```dae
+ func int Button_CreatePxl(var int posx, var int posy, var int width, var int height, var string tex, var func on_enter, var func on_leave, var func on_click)
+ ```
+ **Parameters**
+
+ - `#!dae var int posx`
+ The horizontal position of the button in pixels
+ - `#!dae var int posy`
+ The vertical position of the button in pixels
+ - `#!dae var int width`
+ Width of the button in pixels
+ - `#!dae var int height`
+ Height of the button in pixels
+ - `#!dae var string tex`
+ Name of the button texture
+ - `#!dae var func on_enter`
+ This function is called when the mouse enters the button
+ - `#!dae var func on_leave`
+ This function is called when the mouse leaves the button
+ - `#!dae var func on_click`
+ This function is called when the user performs a mouse click on the button (left mouse button)
+
+ **Return value**
+
+ The function returns a handle to created button.
### `Button_Delete`
-Completely deletes a button.
-```dae
-func void Button_Delete(var int hndl)
-```
-**Parameters**
+!!! function "`Button_Delete`"
+ Completely deletes a button.
+ ```dae
+ func void Button_Delete(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
### `Button_Show`
-Shows the button and makes it respond to the mouse.
-```dae
-func void Button_Show(var int hndl)
-```
-**Parameters**
+!!! function "`Button_Show`"
+ Shows the button and makes it respond to the mouse.
+ ```dae
+ func void Button_Show(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
### `Button_Hide`
-Hides the button and disables it, so it is no longer responding to the mouse.
-```dae
-func void Button_Hide(var int hndl)
-```
-**Parameters**
+!!! function "`Button_Hide`"
+ Hides the button and disables it, so it is no longer responding to the mouse.
+ ```dae
+ func void Button_Hide(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
### `Button_SetTexture`
-Sets the texture of the button.
-```dae
-func void Button_SetTexture(var int hndl, var string tex)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var string tex`
- Name of the new texture
+!!! function "`Button_SetTexture`"
+ Sets the texture of the button.
+ ```dae
+ func void Button_SetTexture(var int hndl, var string tex)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var string tex`
+ Name of the new texture
### `Button_SetCaption`
-Displays a centered text on the button.
-```dae
-func void Button_SetCaption(var int hndl, var string caption, var string font)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var string caption`
- The text to be displayed
-- `#!dae var string font`
- The font in which the text should be displayed
+!!! function "`Button_SetCaption`"
+ Displays a centered text on the button.
+ ```dae
+ func void Button_SetCaption(var int hndl, var string caption, var string font)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var string caption`
+ The text to be displayed
+ - `#!dae var string font`
+ The font in which the text should be displayed
### `Button_CreateMouseover`
-Attaches a mouseover box to the cursor.
-```dae
-func void Button_CreateMouseover(var string text, var string font)
-```
-**Parameters**
-
-- `#!dae var string text`
- The text in the mouseover box
-- `#!dae var string font`
- The font of the text
+!!! function "`Button_CreateMouseover`"
+ Attaches a mouseover box to the cursor.
+ ```dae
+ func void Button_CreateMouseover(var string text, var string font)
+ ```
+ **Parameters**
+
+ - `#!dae var string text`
+ The text in the mouseover box
+ - `#!dae var string font`
+ The font of the text
### `Button_DeleteMouseover`
-Deletes the mouseover box.
-```dae
-func void Button_DeleteMouseover()
-```
+!!! function "`Button_DeleteMouseover`"
+ Deletes the mouseover box.
+ ```dae
+ func void Button_DeleteMouseover()
+ ```
### `Button_Activate`
-Activates the button, so it reacts to the mouse. Does not change the visibility.
-```dae
-func void Button_Activate(var int hndl)
-```
-**Parameters**
+!!! function "`Button_Activate`"
+ Activates the button, so it reacts to the mouse. Does not change the visibility.
+ ```dae
+ func void Button_Activate(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
### `Button_Deactivate`
-Disables the button, so it no longer reacts to the mouse.
-```dae
-func void Button_Deactivate(var int hndl)
-```
-**Parameters**
+!!! function "`Button_Deactivate`"
+ Disables the button, so it no longer reacts to the mouse.
+ ```dae
+ func void Button_Deactivate(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
### `Button_SetUserData`
-Sets the user data of the button, an integer, to give the button individual information.
-```dae
-func void Button_SetUserData(var int hndl, var int data)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var int data`
- Individual integer of the button (part of the internal `_Button` class)
-
+!!! function "`Button_SetUserData`"
+ Sets the user data of the button, an integer, to give the button individual information.
+ ```dae
+ func void Button_SetUserData(var int hndl, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var int data`
+ Individual integer of the button (part of the internal `_Button` class)
### `Button_GetUserData`
-Gets the user data of the button.
-```dae
-func int Button_GetUserData(var int hndl)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+!!! function "`Button_GetUserData`"
+ Gets the user data of the button.
+ ```dae
+ func int Button_GetUserData(var int hndl)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
-The function returns the user data of the button.
+ **Return value**
+ The function returns the user data of the button.
### `Button_GetState`
-Gets the status of the button as a bit field. See [User Constants](../various/userconstants.md#buttons).
-```dae
-func int Button_GetState(var int hndl)
-```
-**Parameters**
+!!! function "`Button_GetState`"
+ Gets the status of the button as a bit field. See [User Constants](../various/userconstants.md#buttons).
+ ```dae
+ func int Button_GetState(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
-**Return value**
-
-The function returns the status of the button.
+ **Return value**
+ The function returns the status of the button.
### `Button_Move`
-Moves the button by the given value in pixels. `posx = posx + nposx`
-```dae
-func void Button_Move(var int hndl, var int nposx, var int nposy)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var int nposx`
- X-axis shift in pixels
-- `#!dae var int nposy`
- Y-axis shift in pixels
+!!! function "`Button_Move`"
+ Moves the button by the given value in pixels. `posx = posx + nposx`
+ ```dae
+ func void Button_Move(var int hndl, var int nposx, var int nposy)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var int nposx`
+ X-axis shift in pixels
+ - `#!dae var int nposy`
+ Y-axis shift in pixels
### `Button_MoveVrt`
-Moves the button by the given value in virtual coordinates. `posx = posx + nposx`
-```dae
-func void Button_Move(var int hndl, var int nposx, var int nposy)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var int nposx`
- X-axis shift in virtual coordinates
-- `#!dae var int nposy`
- Y-axis shift in virtual coordinates
+!!! function "`Button_MoveVrt`"
+ Moves the button by the given value in virtual coordinates. `posx = posx + nposx`
+ ```dae
+ func void Button_Move(var int hndl, var int nposx, var int nposy)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var int nposx`
+ X-axis shift in virtual coordinates
+ - `#!dae var int nposy`
+ Y-axis shift in virtual coordinates
### `Button_MoveTo`
-Moves a button to the given position in pixels. `posx = nposx`
-```dae
-func void Button_MoveVrt(var int hndl, var int nposx, var int nposy)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var int nposx`
- New horizontal position in pixels
-- `#!dae var int nposy`
- New vertical position in pixels
+!!! function "`Button_MoveTo`"
+ Moves a button to the given position in pixels. `posx = nposx`
+ ```dae
+ func void Button_MoveVrt(var int hndl, var int nposx, var int nposy)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var int nposx`
+ New horizontal position in pixels
+ - `#!dae var int nposy`
+ New vertical position in pixels
### `Button_MoveToVrt`
-Moves a button to the given position in virtual coordinates. `posx = nvposx`
-```dae
-func void Button_MoveVrt(var int hndl, var int nvposx, var int nvposy)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
-- `#!dae var int nvposx`
- New horizontal position in virtual coordinates
-- `#!dae var int nvposy`
- New vertical position in virtual coordinates
+!!! function "`Button_MoveToVrt`"
+ Moves a button to the given position in virtual coordinates. `posx = nvposx`
+ ```dae
+ func void Button_MoveVrt(var int hndl, var int nvposx, var int nvposy)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
+ - `#!dae var int nvposx`
+ New horizontal position in virtual coordinates
+ - `#!dae var int nvposy`
+ New vertical position in virtual coordinates
### `Button_GetViewHandle`
-Returns the button's `zCView` as a handle.
-```dae
-func int Button_GetViewHandle(var int hndl)
-```
-**Parameters**
+!!! function "`Button_GetViewHandle`"
+ Returns the button's `zCView` as a handle.
+ ```dae
+ func int Button_GetViewHandle(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
-**Return value**
+ **Return value**
-The function returns the button's `zCView` as a handle.
+ The function returns the button's `zCView` as a handle.
### `Button_GetViewPtr`
-Returns the button's `zCView` as a pointer.
-```dae
-func int Button_GetViewPtr(var int hndl)
-```
-**Parameters**
+!!! function "`Button_GetViewPtr`"
+ Returns the button's `zCView` as a pointer.
+ ```dae
+ func int Button_GetViewPtr(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
-**Return value**
+ **Return value**
-The function returns the button's `zCView` as a pointer.
+ The function returns the button's `zCView` as a pointer.
### `Button_GetView`
-Returns the button's `zCView` as an object.
-```dae
-func zCView Button_GetView(var int hndl)
-```
-**Parameters**
+!!! function "`Button_GetView`"
+ Returns the button's `zCView` as an object.
+ ```dae
+ func zCView Button_GetView(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
-**Return value**
+ **Return value**
-The function returns the button's `zCView` as an object.
+ The function returns the button's `zCView` as an object.
### `Button_GetCaptionPtr`
-Returns the pointer to the text of the button.
-```dae
-func int Button_GetCaptionPtr(var int hndl)
-```
-**Parameters**
+!!! function "`Button_GetCaptionPtr`"
+ Returns the pointer to the text of the button.
+ ```dae
+ func int Button_GetCaptionPtr(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle returned from `Button_Create`
+ - `#!dae var int hndl`
+ Handle returned from `Button_Create`
-**Return value**
+ **Return value**
-The function returns the pointer to the text of the button.
\ No newline at end of file
+ The function returns the pointer to the text of the button.
\ No newline at end of file
diff --git a/docs/zengin/scripts/extenders/lego/applications/console_commands.md b/docs/zengin/scripts/extenders/lego/applications/console_commands.md
index 40b3d830ec..cee355e5b5 100644
--- a/docs/zengin/scripts/extenders/lego/applications/console_commands.md
+++ b/docs/zengin/scripts/extenders/lego/applications/console_commands.md
@@ -3,12 +3,15 @@ title: Console Commands
description: LeGo package allowing the registering of new console commands
---
# Console Commands
-This package allows you to create new console commands.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](../tools/permmem.md)
+ - [HookEngine](../tools/hook_engine.md)
+ **Implementation:**
+ [:material-github: ConsoleCommands.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/ConsoleCommands.d)
-- [PermMem](../tools/permmem.md)
-- [HookEngine](../tools/hook_engine.md)
+This package allows you to create new console commands.
## Initialization
Initialize with `LeGo_ConsoleCommands` flag.
@@ -16,48 +19,48 @@ Initialize with `LeGo_ConsoleCommands` flag.
LeGo_Init(LeGo_ConsoleCommands);
```
-## Implementation
-[:material-github: ConsoleCommands.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/ConsoleCommands.d)
-
## Functions
### `CC_Register`
-Registers a new console command.
-```dae
-func void CC_Register(var func f, var string cmdPrefix, var string description)
-```
-**Parameters**
-
-- `#!dae var func f`
- This function is executed when the `cmdPrefix` command is entered in the console. The function signature is `func string f(var string p0)`. The string passed is everything that was specified in the console after the actual command. The return value is then displayed in the console.
-- `#!dae var string cmdPrefix`
- This is a command, which can be entered in the console.
-- `#!dae var string description`
- This text appears next to the command (in [zSpy](../../../../tools/zSpy.md)) when you use the `help` command in the console.
+!!! function "`CC_Register`"
+ Registers a new console command.
+ ```dae
+ func void CC_Register(var func f, var string cmdPrefix, var string description)
+ ```
+ **Parameters**
+
+ - `#!dae var func f`
+ This function is executed when the `cmdPrefix` command is entered in the console. The function signature is `func string f(var string p0)`. The string passed is everything that was specified in the console after the actual command. The return value is then displayed in the console.
+ - `#!dae var string cmdPrefix`
+ This is a command, which can be entered in the console.
+ - `#!dae var string description`
+ This text appears next to the command (in [zSpy](../../../../tools/zSpy.md)) when you use the `help` command in the console.
### `CC_Remove`
-Removes a function from the console commands.
-```dae
-func void CC_Remove(var func f)
-```
-**Parameters**
+!!! function "`CC_Remove`"
+ Removes a function from the console commands.
+ ```dae
+ func void CC_Remove(var func f)
+ ```
+ **Parameters**
-- `#!dae var func f`
- This function will be removed, i.e. the associated command will no longer work.
+ - `#!dae var func f`
+ This function will be removed, i.e. the associated command will no longer work.
### `CC_Active`
-Checks whether the function passed is already part of a console command.
-```dae
-func int CC_Active(var func f)
-```
-**Parameters**
+!!! function "`CC_Active`"
+ Checks whether the function passed is already part of a console command.
+ ```dae
+ func int CC_Active(var func f)
+ ```
+ **Parameters**
-- `#!dae var func f`
- Function being checked
+ - `#!dae var func f`
+ Function being checked
-**Return value**
+ **Return value**
-The function returns `TRUE` if there is a corresponding function, `FALSE` is returned otherwise.
+ The function returns `TRUE` if there is a corresponding function, `FALSE` is returned otherwise.
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/console_commands.pl.md b/docs/zengin/scripts/extenders/lego/applications/console_commands.pl.md
index aaf30badd8..23d51d4e89 100644
--- a/docs/zengin/scripts/extenders/lego/applications/console_commands.pl.md
+++ b/docs/zengin/scripts/extenders/lego/applications/console_commands.pl.md
@@ -3,12 +3,15 @@ title: Console Commands
description: Pakiet LeGo umożliwiający rejestrację nowych poleceń konsoli
---
# Console Commands - polecenia konsoli
-Ten Pakiet pozwala na tworzenie nowych poleceń konsoli dostępnej po naciśnięciu klawisza F2 w trybie marvin.
-## Zależności
+!!! info inline end
+ **Zależności:**
+ - [PermMem](../tools/permmem.md)
+ - [HookEngine](../tools/hook_engine.md)
+ **Implementacja:**
+ [:material-github: ConsoleCommands.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/ConsoleCommands.d)
-- [PermMem](../tools/permmem.md)
-- [HookEngine](../tools/hook_engine.md)
+Ten Pakiet pozwala na tworzenie nowych poleceń konsoli dostępnej po naciśnięciu klawisza F2 w trybie marvin.
## Inicjalizacja
Zainicjuj za pomocÄ… flagi `LeGo_ConsoleCommands`.
@@ -16,48 +19,48 @@ Zainicjuj za pomocÄ… flagi `LeGo_ConsoleCommands`.
LeGo_Init(LeGo_ConsoleCommands);
```
-## Implementacja
-[:material-github: ConsoleCommands.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/ConsoleCommands.d)
-
## Funkcje
### `CC_Register`
-Rejestruje nowe polecenie konsoli.
-```dae
-func void CC_Register(var func f, var string cmdPrefix, var string description)
-```
-**Parametry**
-
-- `#!dae var func f`
- Ta funkcja jest wykonywana po wprowadzeniu polecenia `cmdPrefix` w konsoli. Sygnatura funkcji to `func string f(var string p0)`. Przekazany string to wszystko, co zostało określone w konsoli po faktycznym poleceniu. Zwracana wartość jest następnie wyświetlana w konsoli.
-- `#!dae var string cmdPrefix`
- Jest to polecenie, które można wprowadzić w konsoli.
-- `#!dae var string description`
- Ten tekst pojawia się obok polecenia (w [zSpy](../../../../tools/zSpy.md)), gdy używasz polecenia `help` w konsoli.
+!!! function "`CC_Register`"
+ Rejestruje nowe polecenie konsoli.
+ ```dae
+ func void CC_Register(var func f, var string cmdPrefix, var string description)
+ ```
+ **Parametry**
+
+ - `#!dae var func f`
+ Ta funkcja jest wykonywana po wprowadzeniu polecenia `cmdPrefix` w konsoli. Sygnatura funkcji to `func string f(var string p0)`. Przekazany string to wszystko, co zostało określone w konsoli po faktycznym poleceniu. Zwracana wartość jest następnie wyświetlana w konsoli.
+ - `#!dae var string cmdPrefix`
+ Jest to polecenie, które można wprowadzić w konsoli.
+ - `#!dae var string description`
+ Ten tekst pojawia się obok polecenia (w [zSpy](../../../../tools/zSpy.md)), gdy używasz polecenia `help` w konsoli.
### `CC_Remove`
-Usuwa funkcje z konsoli komend.
-```dae
-func void CC_Remove(var func f)
-```
-**Parametry**
+!!! function "`CC_Remove`"
+ Usuwa funkcje z konsoli komend.
+ ```dae
+ func void CC_Remove(var func f)
+ ```
+ **Parametry**
-- `#!dae var func f`
- Ta funkcja zostanie usunięta, a powiązane z nią polecenie przestanie działać.
+ - `#!dae var func f`
+ Ta funkcja zostanie usunięta, a powiązane z nią polecenie przestanie działać.
### `CC_Active`
-Sprawdza, czy dana funkcja jest już częścią polecenia konsoli.
-```dae
-func int CC_Active(var func f)
-```
-**Parametry**
+!!! function "`CC_Active`"
+ Sprawdza, czy dana funkcja jest już częścią polecenia konsoli.
+ ```dae
+ func int CC_Active(var func f)
+ ```
+ **Parametry**
-- `#!dae var func f`
- Sprawdzana funkcja
+ - `#!dae var func f`
+ Sprawdzana funkcja
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca `TRUE` jeśli znajdzie odpowiednią funkcję, inaczej `FALSE`.
+ Funkcja zwraca `TRUE` jeśli znajdzie odpowiednią funkcję, inaczej `FALSE`.
## Przykłady
diff --git a/docs/zengin/scripts/extenders/lego/applications/cursor.md b/docs/zengin/scripts/extenders/lego/applications/cursor.md
index b9894118d0..fb7093cbab 100644
--- a/docs/zengin/scripts/extenders/lego/applications/cursor.md
+++ b/docs/zengin/scripts/extenders/lego/applications/cursor.md
@@ -3,27 +3,26 @@ title: Cursor
description: LeGo package implementing in-game mouse cursor support
---
# Cursor
+
+!!! info inline end
+ **Dependencies:**
+ - [Floats](../../ikarus/floats.md)
+ - [FrameFunctions](../tools/frame_functions.md)
+ - [View](../tools/view.md)
+ **Implementation:**
+ [:material-github: Cursor.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Cursor.d)
+
This package implements Gothic in-game mouse cursor support. To visually display the cursor there is a `Cursor.tga` file in the resources, but the texture can be changed in [user constants](../various/userconstants.md#cursor-1).
!!! Warning
The cursor only works if the mouse is activated in the Gothic settings. It can be done directly from the scripts. See the [Ini file access](../../ikarus/functions/ini_access.md).
-
-## Dependencies
-
-- [Floats](../../ikarus/floats.md)
-- [FrameFunctions](../tools/frame_functions.md)
-- [View](../tools/view.md)
-
## Initialization
Initialize with `LeGo_Cursor` flag.
```dae
LeGo_Init(LeGo_Cursor);
```
-## Implementation
-[:material-github: Cursor.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Cursor.d)
-
## Variables
- `#!dae var int Cursor_X`
@@ -51,26 +50,29 @@ LeGo_Init(LeGo_Cursor);
## Functions
### `Cursor_Hide`
-Hides the displayed mouse cursor.
-```dae
-func void Cursor_Hide()
-```
+!!! function "`Cursor_Hide`"
+ Hides the displayed mouse cursor.
+ ```dae
+ func void Cursor_Hide()
+ ```
### `Cursor_Show`
-Shows the mouse cursor.
-```dae
-func void Cursor_Show()
-```
+!!! function "`Cursor_Show`"
+ Shows the mouse cursor.
+ ```dae
+ func void Cursor_Show()
+ ```
### `SetMouseEnabled`
-Can manually enable or disable the mouse.
-```dae
-func void SetMouseEnabled(var int enabled)
-```
-**Parameters**
-
-- `#!dae var int enabled`
- `TRUE` - Mouse activated
+!!! function "`SetMouseEnabled`"
+ Can manually enable or disable the mouse.
+ ```dae
+ func void SetMouseEnabled(var int enabled)
+ ```
+ **Parameters**
+
+ - `#!dae var int enabled`
+ `TRUE` - Mouse activated
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/dialoggestures.md b/docs/zengin/scripts/extenders/lego/applications/dialoggestures.md
index 402e2f8699..6d896962ac 100644
--- a/docs/zengin/scripts/extenders/lego/applications/dialoggestures.md
+++ b/docs/zengin/scripts/extenders/lego/applications/dialoggestures.md
@@ -3,68 +3,72 @@ title: Dialoggestures
description: LeGo package for modifying the NPCs' gestures during dialogue
---
# Dialoggestures
-This package can modify the NPCs' gestures during dialogue to better bring out emotions.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [AI_Function](../tools/ai_function.md)
+ **Implementation:**
+ [:material-github: Dialoggestures.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Dialoggestures.d)
-- [AI_Function](../tools/ai_function.md)
+This package can modify the NPCs' gestures during dialogue to better bring out emotions.
## Initialization
N/A
-## Implementation
-[:material-github: Dialoggestures.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Dialoggestures.d)
-
## Functions
### `DIAG`
-With this function the dialog gestures for all NPCs can be overridden. To understand the principle, it is recommended to take a look at the [examples](#examples).
+!!! function "`DIAG`"
+ With this function the dialog gestures for all NPCs can be overridden. To understand the principle, it is recommended to take a look at the [examples](#examples).
-The full name of the animation can be described as follows:
-```dae
-DIAG_Prefix + aniName + DIAG_Suffix + ((rand() % (max - (min - 1))) + min).ToString("00");
-```
-`DIAG_Prefix` and `DIAG_Suffix` are [user constants](../various/userconstants.md#dialoggestures).
+ The full name of the animation can be described as follows:
+ ```dae
+ DIAG_Prefix + aniName + DIAG_Suffix + ((rand() % (max - (min - 1))) + min).ToString("00");
+ ```
+ `DIAG_Prefix` and `DIAG_Suffix` are [user constants](../various/userconstants.md#dialoggestures).
-```dae
-func void DIAG(var string AniName, var int Min, var int Max)
-```
-**Parameters**
+ ```dae
+ func void DIAG(var string AniName, var int Min, var int Max)
+ ```
+ **Parameters**
-- `#!dae var string AniName`
- The new dialogue gesture
-- `#!dae var int Min`
- Lowest animation number
-- `#!dae var int Max`
- Highest animation number
+ - `#!dae var string AniName`
+ The new dialogue gesture
+ - `#!dae var int Min`
+ Lowest animation number
+ - `#!dae var int Max`
+ Highest animation number
### `DIAG_Reset`
-Resets the dialog gestures to the default.
-```dae
-func void DIAG_Reset()
-```
+!!! function "`DIAG_Reset`"
+ Resets the dialog gestures to the default.
+ ```dae
+ func void DIAG_Reset()
+ ```
### `DIAG_SetAni`
-Sets animation directly.
-```dae
-func void DIAG_SetAni(var string AniName)
-```
-**Parameters**
+!!! function "`DIAG_SetAni`"
+ Sets animation directly.
+ ```dae
+ func void DIAG_SetAni(var string AniName)
+ ```
+ **Parameters**
-- `#!dae var string AniName`
- Animation name
+ - `#!dae var string AniName`
+ Animation name
### `DIAG_SetMinMax`
-Sets animation numbers directly.
-```dae
-func void DIAG_SetMinMax(var int min, var int max)
-```
-**Parameters**
+!!! function "`DIAG_SetMinMax`"
+ Sets animation numbers directly.
+ ```dae
+ func void DIAG_SetMinMax(var int min, var int max)
+ ```
+ **Parameters**
-- `#!dae var int min`
- Lowest animation number
-- `#!dae var int max`
- Highest animation number
+ - `#!dae var int min`
+ Lowest animation number
+ - `#!dae var int max`
+ Highest animation number
## Examples
!!! Note
diff --git a/docs/zengin/scripts/extenders/lego/applications/focusnames.md b/docs/zengin/scripts/extenders/lego/applications/focusnames.md
index 91e4940938..0dcf4ae2d7 100644
--- a/docs/zengin/scripts/extenders/lego/applications/focusnames.md
+++ b/docs/zengin/scripts/extenders/lego/applications/focusnames.md
@@ -3,12 +3,15 @@ title: Focusnames
description: LeGo package that change NPCs/Object's focus name color based on its attitude
---
# Focusnames
-This package colors the focus names of the NPCs in appropriate colors according to the behavior defined below (alpha values are taken into account). Also affects monsters. (Mobs/Items get Color_Neutral)
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [Interface](../tools/interface.md)
+ - [HookEngine](../tools/hook_engine.md)
+ **Implementation:**
+ [:material-github: Focusnames.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Focusnames.d)
-- [Interface](../tools/interface.md)
-- [HookEngine](../tools/hook_engine.md)
+This package colors the focus names of the NPCs in appropriate colors according to the behavior defined below (alpha values are taken into account). Also affects monsters. (Mobs/Items get Color_Neutral)
## Initialization
Initialize with `LeGo_Focusnames` flag.
@@ -16,40 +19,41 @@ Initialize with `LeGo_Focusnames` flag.
LeGo_Init(LeGo_Focusnames);
```
-## Implementation
-[:material-github: Focusnames.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Focusnames.d)
-
## Usage
If you want to change colors for any behavior edit the following functions directly in [`Focusnames.d`](https://github.com/Lehona/LeGo/blob/dev/Focusnames.d) file.
### `Focusnames_Color_Friendly`
-```dae
-func int Focusnames_Color_Friendly()
-{
- return RGBA(0, 255, 0, 255); // Green
-};
-```
+!!! function "`Focusnames_Color_Friendly`"
+ ```dae
+ func int Focusnames_Color_Friendly()
+ {
+ return RGBA(0, 255, 0, 255); // Green
+ };
+ ```
### `Focusnames_Color_Neutral`
-```dae
-func int Focusnames_Color_Neutral()
-{
- return RGBA(255, 255, 255, 255); // White
-};
-```
+!!! function "`Focusnames_Color_Neutral`"
+ ```dae
+ func int Focusnames_Color_Neutral()
+ {
+ return RGBA(255, 255, 255, 255); // White
+ };
+ ```
### `Focusnames_Color_Angry`
-```dae
-func int Focusnames_Color_Angry()
-{
- return RGBA(255, 180, 0, 255); // Orange
-};
-```
+!!! function "`Focusnames_Color_Angry`"
+ ```dae
+ func int Focusnames_Color_Angry()
+ {
+ return RGBA(255, 180, 0, 255); // Orange
+ };
+ ```
### `Focusnames_Color_Hostile`
-```dae
-func int Focusnames_Color_Hostile()
-{
- return RGBA(255, 0, 0, 255); // Red
-};
-```
+!!! function "`Focusnames_Color_Hostile`"
+ ```dae
+ func int Focusnames_Color_Hostile()
+ {
+ return RGBA(255, 0, 0, 255); // Red
+ };
+ ```
diff --git a/docs/zengin/scripts/extenders/lego/applications/gamestate.md b/docs/zengin/scripts/extenders/lego/applications/gamestate.md
index 00fe81bad6..66d91680c1 100644
--- a/docs/zengin/scripts/extenders/lego/applications/gamestate.md
+++ b/docs/zengin/scripts/extenders/lego/applications/gamestate.md
@@ -3,42 +3,45 @@ title: Gamestate
description: LeGo package for calling functions during different game states
---
# Gamestate
-Gamestate package allows to check for different game states (game start, game load or level change).
-## Dependencies
-- [EventHandler](../tools/event_handler.md)
-- [Saves](../applications/saves.md)
+!!! info inline end
+ **Dependencies:**
+ - [EventHandler](../tools/event_handler.md)
+ - [Saves](../applications/saves.md)
+ **Implementation:**
+ [:material-github: Gamestate.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Gamestate.d)
+
+Gamestate package allows to check for different game states (game start, game load or level change).
## Initialization
Initialize with `LeGo_Gamestate` flag.
```dae
LeGo_Init(LeGo_Gamestate);
```
-## Implementation
-[:material-github: Gamestate.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Gamestate.d)
## Functions
### `Gamestate_AddListener`
-Adds a listener/handler to the game-state event.
-```dae
-func void Gamestate_AddListener(var func listener)
-```
-**Parameters**
-
-- `#!dae var func listener`
- This function will be called on a game-state change. The current game-state is passed as a parameter.
+!!! function "`Gamestate_AddListener`"
+ Adds a listener/handler to the game-state event.
+ ```dae
+ func void Gamestate_AddListener(var func listener)
+ ```
+ **Parameters**
+ - `#!dae var func listener`
+ This function will be called on a game-state change. The current game-state is passed as a parameter.
### `Gamestate_RemoveListener`
-Removes game-state listener.
-```dae
-func void Gamestate_RemoveListener(var func listener)
-```
-**Parameters**
-
-- `#!dae var func listener`
- Listener function to be removed.
+!!! function "`Gamestate_RemoveListener`"
+ Removes game-state listener.
+ ```dae
+ func void Gamestate_RemoveListener(var func listener)
+ ```
+ **Parameters**
+
+ - `#!dae var func listener`
+ Listener function to be removed.
## Examples
There are now two possibilities. Everything can be done directly into the `Init_Global`, or with [EventHandler](../tools/event_handler.md).
diff --git a/docs/zengin/scripts/extenders/lego/applications/gamestate.pl.md b/docs/zengin/scripts/extenders/lego/applications/gamestate.pl.md
index 372894133f..8692cd8a29 100644
--- a/docs/zengin/scripts/extenders/lego/applications/gamestate.pl.md
+++ b/docs/zengin/scripts/extenders/lego/applications/gamestate.pl.md
@@ -3,42 +3,45 @@ title: Gamestate
description: Pakiet LeGo do wywoływania funkcji podczas różnych stanów gry
---
# Gamestate - stan gry
-Pakiet Gamestate pozwala sprawdzić stan gry (rozpoczęcie gry, ładowanie gry lub zmiana poziomu).
-## Zależności
-- [EventHandler](../tools/event_handler.md)
-- [Saves](../applications/saves.md)
+!!! info inline end
+ **Zależności:**
+ - [EventHandler](../tools/event_handler.md)
+ - [Saves](../applications/saves.md)
+ **Implementacja:**
+ [:material-github: Gamestate.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Gamestate.d)
+
+Pakiet Gamestate pozwala sprawdzić stan gry (rozpoczęcie gry, ładowanie gry lub zmiana poziomu).
## Inicjalizacja
Zainicjuj za pomocÄ… flagi `LeGo_Gamestate`.
```dae
LeGo_Init(LeGo_Gamestate);
```
-## Implementacja
-[:material-github: Gamestate.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Gamestate.d)
## Funkcje
### `Gamestate_AddListener`
-Dodaje listener/handler zmiany stanu gry.
-```dae
-func void Gamestate_AddListener(var func listener)
-```
-**Parametry**
-
-- `#!dae var func listener`
- Ta funkcja zostanie wywołana przy zmianie stanu gry. Bieżący stan gry jest przekazywany jako parametr.
+!!! function "`Gamestate_AddListener`"
+ Dodaje listener/handler zmiany stanu gry.
+ ```dae
+ func void Gamestate_AddListener(var func listener)
+ ```
+ **Parametry**
+ - `#!dae var func listener`
+ Ta funkcja zostanie wywołana przy zmianie stanu gry. Bieżący stan gry jest przekazywany jako parametr.
### `Gamestate_RemoveListener`
-Usuwa listener zmiany stanu gry.
-```dae
-func void Gamestate_RemoveListener(var func listener)
-```
-**Parametry**
-
-- `#!dae var func listener`
- Listener do usunięcia.
+!!! function "`Gamestate_RemoveListener`"
+ Usuwa listener zmiany stanu gry.
+ ```dae
+ func void Gamestate_RemoveListener(var func listener)
+ ```
+ **Parametry**
+
+ - `#!dae var func listener`
+ Listener do usunięcia.
## Przykłady
Istnieją teraz dwie możliwości. Wszystko można zrobić bezpośrednio w `Init_Global` lub za pomocą [EventHandler](../tools/event_handler.md).
diff --git a/docs/zengin/scripts/extenders/lego/applications/names.md b/docs/zengin/scripts/extenders/lego/applications/names.md
index be3f0ae7d9..120f5e4bfe 100644
--- a/docs/zengin/scripts/extenders/lego/applications/names.md
+++ b/docs/zengin/scripts/extenders/lego/applications/names.md
@@ -3,40 +3,43 @@ title: Names
description: LeGo package for changing NPCs display name during the game
---
# Names
-Allows the user to change NPC name e.g. after he shows up.
-## Dependencies
-- [Talents](../tools/talents.md)
+!!! info inline end
+ **Dependencies:**
+ - [Talents](../tools/talents.md)
+ **Implementation:**
+ [:material-github: Names.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Names.d)
+
+Allows the user to change NPC name e.g. after he shows up.
## Initialization
N/A
-## Implementation
-[:material-github: Names.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Names.d)
-
## Functions
### `SetName`
-Should be set in InitGlobal().
-```dae
-func void SetName(var C_NPC npc, var string name)
-```
-**Parameters**
-
-- `#!dae var C_NPC npc`
- The NPC to be named
-- `#!dae var string name`
- The name of the NPC
+!!! function "`SetName`"
+ Should be set in InitGlobal().
+ ```dae
+ func void SetName(var C_NPC npc, var string name)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC npc`
+ The NPC to be named
+ - `#!dae var string name`
+ The name of the NPC
### `ShowName`
-Permanently displays the name set by `SetName` function above the npc.
-```dae
-func void ShowName(var C_NPC npc)
-```
-**Parameters**
-
-- `#!dae var C_NPC npc`
- The NPC whose name should be shown
+!!! function "`ShowName`"
+ Permanently displays the name set by `SetName` function above the npc.
+ ```dae
+ func void ShowName(var C_NPC npc)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC npc`
+ The NPC whose name should be shown
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/render.md b/docs/zengin/scripts/extenders/lego/applications/render.md
index 432bfd3af2..aa4ff5af06 100644
--- a/docs/zengin/scripts/extenders/lego/applications/render.md
+++ b/docs/zengin/scripts/extenders/lego/applications/render.md
@@ -3,12 +3,16 @@ title: Render
description: LeGo package for rendering items on a screen
---
# Render
-With this package items can be rendered on the screen. Since items are rendered independently of the normal views, textures that are 'below' the items must also be managed by this package, this behaviour is managed by the priority system. The view with the highest priority is always rendered first, so it is at the bottom. In theory, any .3DS model can be rendered if you just create a suitable item script.
-## Dependencies
-- [List](../tools/list.md)
-- [View](../tools/view.md)
-- [PermMem](../tools/permmem.md)
+!!! info inline end
+ **Dependencies:**
+ - [List](../tools/list.md)
+ - [View](../tools/view.md)
+ - [PermMem](../tools/permmem.md)
+ **Implementation:**
+ [:material-github: Render.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Render.d)
+
+With this package items can be rendered on the screen. Since items are rendered independently of the normal views, textures that are 'below' the items must also be managed by this package, this behaviour is managed by the priority system. The view with the highest priority is always rendered first, so it is at the bottom. In theory, any .3DS model can be rendered if you just create a suitable item script.
## Initialization
Initialize with `LeGo_Render` flag.
@@ -19,105 +23,109 @@ LeGo_Init(LeGo_Render);
!!! Warning
This package is still experimental and not included in `LeGo_All` initialization flag.
-## Implementation
-[:material-github: Render.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Render.d)
-
## Functions
### `Render_AddItemPrio`
-Generates the render of an item, with a manually specified priority.
-```dae
-func int Render_AddItemPrio(var int itemInst, var int x1, var int y1, var int x2, var int y2, var int priority)
-```
-**Parameters**
-
-- `#!dae var int itemInst`
- The instance of the item to render
-- `#!dae var int x1` `#!dae var int y1`
- The top left coordinate of the view
-- `#!dae var int x2` `#!dae var int y2`
- The bottom right coordinate of the view
-- `#!dae var int priority`
- The priority of this render object
-
-**Return value**
-
-The function returns a handle of the render object.
+!!! function "`Render_AddItemPrio`"
+ Generates the render of an item, with a manually specified priority.
+ ```dae
+ func int Render_AddItemPrio(var int itemInst, var int x1, var int y1, var int x2, var int y2, var int priority)
+ ```
+ **Parameters**
+
+ - `#!dae var int itemInst`
+ The instance of the item to render
+ - `#!dae var int x1` `#!dae var int y1`
+ The top left coordinate of the view
+ - `#!dae var int x2` `#!dae var int y2`
+ The bottom right coordinate of the view
+ - `#!dae var int priority`
+ The priority of this render object
+
+ **Return value**
+
+ The function returns a handle of the render object.
### `Render_AddItem`
-Generates the render of an item, with priority set to `0`.
-```dae
-func int Render_AddItem(var int itemInst, var int x1, var int y1, var int x2, var int y2)
-```
-**Parameters**
+!!! function "`Render_AddItem`"
+ Generates the render of an item, with priority set to `0`.
+ ```dae
+ func int Render_AddItem(var int itemInst, var int x1, var int y1, var int x2, var int y2)
+ ```
+ **Parameters**
-- `#!dae var int itemInst`
- The instance of the item to render
-- `#!dae var int x1` `#!dae var int y1`
- The top left coordinate of the view
-- `#!dae var int x2` `#!dae var int y2`
- The bottom right coordinate of the view
+ - `#!dae var int itemInst`
+ The instance of the item to render
+ - `#!dae var int x1` `#!dae var int y1`
+ The top left coordinate of the view
+ - `#!dae var int x2` `#!dae var int y2`
+ The bottom right coordinate of the view
-**Return value**
+ **Return value**
-The function returns a handle of the render object.
+ The function returns a handle of the render object.
### `Render_AddViewPrio`
-Generates the render of a View, with a manually specified priority.
-```dae
-func int Render_AddViewPrio(var int view, var int priority)
-```
-**Parameters**
+!!! function "`Render_AddViewPrio`"
+ Generates the render of a View, with a manually specified priority.
+ ```dae
+ func int Render_AddViewPrio(var int view, var int priority)
+ ```
+ **Parameters**
-- `#!dae var int view`
- A handle to a View
-- `#!dae var int priority`
- The priority of this render object
+ - `#!dae var int view`
+ A handle to a View
+ - `#!dae var int priority`
+ The priority of this render object
-**Return value**
+ **Return value**
-The function returns a handle of the render object.
+ The function returns a handle of the render object.
### `Render_AddView`
-Generates the render of a View, with priority set to `0`.
-```dae
-func int Render_AddView(var int view)
-```
-**Parameters**
+!!! function "`Render_AddView`"
+ Generates the render of a View, with priority set to `0`.
+ ```dae
+ func int Render_AddView(var int view)
+ ```
+ **Parameters**
-- `#!dae var int view`
- A handle to a View
+ - `#!dae var int view`
+ A handle to a View
-**Return value**
+ **Return value**
-The function returns a handle of the render object.
+ The function returns a handle of the render object.
### `Render_OpenView`
-Opens a render object. Only open render objects are displayed.
-```dae
-func void Render_OpenView(var int handle)
-```
-**Parameters**
+!!! function "`Render_OpenView`"
+ Opens a render object. Only open render objects are displayed.
+ ```dae
+ func void Render_OpenView(var int handle)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle of a render object
+ - `#!dae var int handle`
+ Handle of a render object
### `Render_CloseView`
-Closes a render object. Only open render objects are displayed.
-```dae
-func void Render_CloseView(var int handle)
-```
-**Parameters**
+!!! function "`Render_CloseView`"
+ Closes a render object. Only open render objects are displayed.
+ ```dae
+ func void Render_CloseView(var int handle)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle of a render object
+ - `#!dae var int handle`
+ Handle of a render object
### `Render_Remove`
-Deletes a render object. The associated view is deleted automatically.
-```dae
-func void Render_Remove(var int handle)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle of a render object
+!!! function "`Render_Remove`"
+ Deletes a render object. The associated view is deleted automatically.
+ ```dae
+ func void Render_Remove(var int handle)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle of a render object
diff --git a/docs/zengin/scripts/extenders/lego/applications/saves.md b/docs/zengin/scripts/extenders/lego/applications/saves.md
index d0c95ea4eb..4e3aff384d 100644
--- a/docs/zengin/scripts/extenders/lego/applications/saves.md
+++ b/docs/zengin/scripts/extenders/lego/applications/saves.md
@@ -3,11 +3,14 @@ title: Saves
description: LeGo package offering open data stream to the game save file
---
# Saves
-Offers an open file stream that can read/write variables on save/load. It is used by [PermMem](../tools/permmem.md), so you don't need to address it manually anymore.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [BinaryMachines](../tools/binary_machines.md)
+ **Implementation:**
+ [:material-github: Saves.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Saves.d)
-- [BinaryMachines](../tools/binary_machines.md)
+Offers an open file stream that can read/write variables on save/load. It is used by [PermMem](../tools/permmem.md), so you don't need to address it manually anymore.
## Initialization
Initialize with `LeGo_Saves` flag.
@@ -15,22 +18,21 @@ Initialize with `LeGo_Saves` flag.
LeGo_Init(LeGo_Saves);
```
-## Implementation
-[:material-github: Saves.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Saves.d)
-
## Functions
### `BW_Savegame`
-Custom function. It creates a stream to its own memory file, this can be filled with the `BW_*` functions from the [BinaryMachines](../tools/binary_machines.md#binarywriter).
-```dae
-func void BW_Savegame()
-```
+!!! function "`BW_Savegame`"
+ Custom function. It creates a stream to its own memory file, this can be filled with the `BW_*` functions from the [BinaryMachines](../tools/binary_machines.md#binarywriter).
+ ```dae
+ func void BW_Savegame()
+ ```
### `BR_Savegame`
-Custom function. It opens a stream to a previously saved memory file, which can be read from the [BinaryMachines](../tools/binary_machines.md#binaryreader) using the `BR_*` functions.
-```dae
-func void BR_Savegame()
-```
+!!! function "`BR_Savegame`"
+ Custom function. It opens a stream to a previously saved memory file, which can be read from the [BinaryMachines](../tools/binary_machines.md#binaryreader) using the `BR_*` functions.
+ ```dae
+ func void BR_Savegame()
+ ```
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/trialoge.md b/docs/zengin/scripts/extenders/lego/applications/trialoge.md
index 27bbb993cf..920d792bb3 100644
--- a/docs/zengin/scripts/extenders/lego/applications/trialoge.md
+++ b/docs/zengin/scripts/extenders/lego/applications/trialoge.md
@@ -2,171 +2,190 @@
title: Trialoge
description: LeGo package implementing trialogues to gothic
---
+
# Trialoge
-This package allows you to create conversations with any number of NPCs and control the camera during the dialog.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [AI_Function](../tools/ai_function.md)
+ **Implementation:**
+ [:material-github: Trialoge.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Trialoge.d)
-- [AI_Function](../tools/ai_function.md)
+This package allows you to create conversations with any number of NPCs and control the camera during the dialog.
## Initialization
Initialize with `LeGo_Trialoge` flag.
+
```dae
LeGo_Init(LeGo_Trialoge);
```
-## Implementation
-[:material-github: Trialoge.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Trialoge.d)
## Functions
### `EquipWeapon`
-Sektenspinner's function. Makes NPC equip a weapon.
-```dae
-func void EquipWeapon(var C_NPC slf, var int ItemInstance)
-```
-**Parameters**
-
-- `#!dae var C_NPC slf`
- NPC to have a weapon equipped
-- `#!dae var int ItemInstance`
- Weapon instance ID to be equipped
-
-**Configuration**
-
-`#!dae const int EquipWeapon_TogglesEquip = 1`
-
-Above constant configures the behaviour of the function when trying to equip an already equipped weapon:
-
-- `0` - `EquipWeapon` will do nothing
-- `1` - `EquipWeapon` will unequip this weapon
+!!! function "`EquipWeapon`"
+ Sektenspinner's function. Makes NPC equip a weapon.
+
+ ```dae
+ func void EquipWeapon(var C_NPC slf, var int ItemInstance)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC slf`
+ NPC to have a weapon equipped
+ - `#!dae var int ItemInstance`
+ Weapon instance ID to be equipped
+
+ **Configuration**
+
+ `#!dae const int EquipWeapon_TogglesEquip = 1`
+
+ Above constant configures the behaviour of the function when trying to equip an already equipped weapon:
+
+ - `0` - `EquipWeapon` will do nothing
+ - `1` - `EquipWeapon` will unequip this weapon
### `Npc_GetArmor`
-Returns NPC's equipped armor.
-```dae
-func int Npc_GetArmor(var C_NPC slf)
-```
-**Parameters**
-
-- `#!dae var C_NPC slf`
- NPC to get the armor from
-
-**Return value**
-
-The function returns instance of armor worn by the NPC.
+!!! function "`Npc_GetArmor`"
+ Returns NPC's equipped armor.
+ ```dae
+ func int Npc_GetArmor(var C_NPC slf)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC slf`
+ NPC to get the armor from
+
+ **Return value**
+
+ The function returns instance of armor worn by the NPC.
### `Npc_GetMeleeWeapon`
-Returns NPC's equipped melee weapon.
-```dae
-func int Npc_GetMeleeWeapon(var C_NPC slf)
-```
-**Parameters**
-
-- `#!dae var C_NPC slf`
- NPC to get the weapon from
-
-**Return value**
-
-The function returns instance ID of melee weapon equipped by the NPC.
+!!! function "`Npc_GetMeleeWeapon`"
+ Returns NPC's equipped melee weapon.
+ ```dae
+ func int Npc_GetMeleeWeapon(var C_NPC slf)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC slf`
+ NPC to get the weapon from
+
+ **Return value**
+
+ The function returns instance ID of melee weapon equipped by the NPC.
### `Npc_GetRangedWeapon`
-Returns NPC's equipped ranged weapon.
-```dae
-func int Npc_GetRangedWeapon(var c_npc slf)
-```
-**Parameters**
-
-- `#!dae var C_NPC slf`
- NPC to get the weapon from
-
-**Return value**
-
-The function returns instance ID of ranged weapon equipped by the NPC.
+!!! function "`Npc_GetRangedWeapon`"
+ Returns NPC's equipped ranged weapon.
+ ```dae
+ func int Npc_GetRangedWeapon(var c_npc slf)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC slf`
+ NPC to get the weapon from
+
+ **Return value**
+
+ The function returns instance ID of ranged weapon equipped by the NPC.
### `Npc_TradeItem`
-Swaps NPCs equipped weapon.
-```dae
-func void Npc_TradeItem(var c_npc slf, var int itm0, var int itm1)
-```
-**Parameters**
-
-- `#!dae var C_NPC slf`
- NPC to perform operation on
-- `#!dae var int itm0`
- instance ID of item to remove
-- `#!dae var int itm1`
- instance ID of item to create and equip
-
+!!! function "`Npc_TradeItem`"
+ Swaps NPCs equipped weapon.
+ ```dae
+ func void Npc_TradeItem(var c_npc slf, var int itm0, var int itm1)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC slf`
+ NPC to perform operation on
+ - `#!dae var int itm0`
+ instance ID of item to remove
+ - `#!dae var int itm1`
+ instance ID of item to create and equip
### `DiaCAM_Update`
-Sektenspinner's function that updates the dialogue camera. (Used internally.)
-```dae
-func void DiaCAM_Update()
-```
+!!! function "`DiaCAM_Update`"
+ Sektenspinner's function that updates the dialogue camera. (Used internally.)
+ ```dae
+ func void DiaCAM_Update()
+ ```
### `DiaCAM_Disable`
-Completely disable the dialogue cameras.
-```dae
-func void DiaCAM_Disable()
-```
+!!! function "`DiaCAM_Disable`"
+ Completely disable the dialogue cameras.
+ ```dae
+ func void DiaCAM_Disable()
+ ```
### `DiaCAM_Enable`
-Resets the dialogue cameras to the default settings.
-```dae
-func void DiaCAM_Enable()
-```
+!!! function "`DiaCAM_Enable`"
+ Resets the dialogue cameras to the default settings.
+ ```dae
+ func void DiaCAM_Enable()
+ ```
+
### `TRIA_Wait`
-Makes `self` and `other` wait for each other, e.g. for `AI_GotoWP` actions for synchronization.
-```dae
-func void TRIA_Wait()
-```
+!!! function "`TRIA_Wait`"
+ Makes `self` and `other` wait for each other, e.g. for `AI_GotoWP` actions for synchronization.
+ ```dae
+ func void TRIA_Wait()
+ ```
### `TRIA_Invite`
-Invites an NPC into a conversation. Must be called before `TRIA_Start`.
-```dae
-func void TRIA_Invite(var C_NPC slf)
-```
-**Parameters**
-
-- `#!dae var C_NPC slf`
- The invited NPC
+!!! function "`TRIA_Invite`"
+ Invites an NPC into a conversation. Must be called before `TRIA_Start`.
+ ```dae
+ func void TRIA_Invite(var C_NPC slf)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC slf`
+ The invited NPC
### `TRIA_Start`
-Starts trialogues. Before that, all NPCs should be invited by `TRIA_Invite`.
-```dae
-func void TRIA_Start()
-```
+!!! function "`TRIA_Start`"
+ Starts trialogues. Before that, all NPCs should be invited by `TRIA_Invite`.
+ ```dae
+ func void TRIA_Start()
+ ```
### `TRIA_Barrier`
-Similar to `TRIA_Wait` but applies to all participating NPCs.
-```dae
-func void TRIA_Barrier()
-```
+!!! function "`TRIA_Barrier`"
+ Similar to `TRIA_Wait` but applies to all participating NPCs.
+ ```dae
+ func void TRIA_Barrier()
+ ```
### `TRIA_Next`
-Sets the called npc to `self`.
-```dae
-func void TRIA_Next(var C_NPC n0)
-```
-**Parameters**
-
-- `#!dae var C_NPC n0`
- NPC to set to `self`
+!!! function "`TRIA_Next`"
+ Sets the called npc to `self`.
+ ```dae
+ func void TRIA_Next(var C_NPC n0)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC n0`
+ NPC to set to `self`
### `TRIA_Cam`
-Starts a tracking shot.
-```dae
-func void TRIA_Cam(var string evt)
-```
-**Parameters**
-
-- `#!dae var string evt`
- The name of the tracking shot in Spacer. If `""` is passed, the running trace shot will be aborted.
+!!! function "`TRIA_Cam`"
+ Starts a tracking shot.
+ ```dae
+ func void TRIA_Cam(var string evt)
+ ```
+ **Parameters**
+
+ - `#!dae var string evt`
+ The name of the tracking shot in Spacer. If `""` is passed, the running trace shot will be aborted.
### `TRIA_Finish`
-Ends an ongoing trialogue. Must always be called at the end, otherwise no further trialogues can be started.
-```dae
-func void TRIA_Finish()
-```
+!!! function "`TRIA_Finish`"
+ Ends an ongoing trialogue. Must always be called at the end, otherwise no further trialogues can be started.
+ ```dae
+ func void TRIA_Finish()
+ ```
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/applications/trialoge.pl.md b/docs/zengin/scripts/extenders/lego/applications/trialoge.pl.md
index 57bb2fc502..86e5b15dff 100644
--- a/docs/zengin/scripts/extenders/lego/applications/trialoge.pl.md
+++ b/docs/zengin/scripts/extenders/lego/applications/trialoge.pl.md
@@ -3,169 +3,185 @@ title: Trialoge
description: Pakiet LeGo implementujÄ…cy trialogi w gothicu
---
# Trialogi
-Ten pakiet pozwala na tworzenie rozmów z dowolną liczbą NPC i sterowanie kamerą podczas dialogu.
-## Zależności
+!!! info inline end
+ **Zależności:**
+ - [AI_Function](../tools/ai_function.md)
+ **Implementacja:**
+ [:material-github: Trialoge.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Trialoge.d)
-- [AI_Function](../tools/ai_function.md)
+Ten pakiet pozwala na tworzenie rozmów z dowolną liczbą NPC i sterowanie kamerą podczas dialogu.
## Inicjalizacja
Zainicjuj za pomocÄ… flagi `LeGo_Trialoge`.
```dae
LeGo_Init(LeGo_Trialoge);
```
-## Implementacja
-[:material-github: Trialoge.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Trialoge.d)
-
## Funkcje
### `EquipWeapon`
-Funkcja Sektenspinnera. Sprawia, że NPC wyposaża broń.
-```dae
-func void EquipWeapon(var C_NPC slf, var int ItemInstance)
-```
-**Parametry**
+!!! function "`EquipWeapon`"
+ Funkcja Sektenspinnera. Sprawia, że NPC wyposaża broń.
+ ```dae
+ func void EquipWeapon(var C_NPC slf, var int ItemInstance)
+ ```
+ **Parametry**
-- `#!dae var C_NPC slf`
- NPC który wyposaża broń
-- `#!dae var int ItemInstance`
- Instancja broni do wyposażenia
+ - `#!dae var C_NPC slf`
+ NPC który wyposaża broń
+ - `#!dae var int ItemInstance`
+ Instancja broni do wyposażenia
-**Konfiguracja**
+ **Konfiguracja**
-`#!dae const int EquipWeapon_TogglesEquip = 1`
+ `#!dae const int EquipWeapon_TogglesEquip = 1`
-Powyższa stała ustala zachowanie funkcji podczas próby założenia już założonej broni:
+ Powyższa stała ustala zachowanie funkcji podczas próby założenia już założonej broni:
-- `0` - `EquipWeapon` nic nie zrobi
-- `1` - `EquipWeapon` zdejmie tą broń
+ - `0` - `EquipWeapon` nic nie zrobi
+ - `1` - `EquipWeapon` zdejmie tą broń
### `Npc_GetArmor`
-Pobiera pancerz wyposażony przez NPC.
-```dae
-func int Npc_GetArmor(var C_NPC slf)
-```
-**Parametry**
+!!! function "`Npc_GetArmor`"
+ Pobiera pancerz wyposażony przez NPC.
+ ```dae
+ func int Npc_GetArmor(var C_NPC slf)
+ ```
+ **Parametry**
-- `#!dae var C_NPC slf`
- NPC którego pancerz jest pobierany
+ - `#!dae var C_NPC slf`
+ NPC którego pancerz jest pobierany
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca ID instancji pancerza założonego przez NPC.
+ Funkcja zwraca ID instancji pancerza założonego przez NPC.
### `Npc_GetMeleeWeapon`
-Pobiera wyposażoną przez NPC broń białą.
-```dae
-func int Npc_GetMeleeWeapon(var C_NPC slf)
-```
-**Parametry**
+!!! function "`Npc_GetMeleeWeapon`"
+ Pobiera wyposażoną przez NPC broń białą.
+ ```dae
+ func int Npc_GetMeleeWeapon(var C_NPC slf)
+ ```
+ **Parametry**
-- `#!dae var C_NPC slf`
- NPC którego broń jest pobierana
+ - `#!dae var C_NPC slf`
+ NPC którego broń jest pobierana
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca ID instancji broni białej wyposażonej przez NPC.
+ Funkcja zwraca ID instancji broni białej wyposażonej przez NPC.
### `Npc_GetRangedWeapon`
-Pobiera wyposażoną przez NPC broń dystansową.
-```dae
-func int Npc_GetRangedWeapon(var C_NPC slf)
-```
-**Parametry**
+!!! function "`Npc_GetRangedWeapon`"
+ Pobiera wyposażoną przez NPC broń dystansową.
+ ```dae
+ func int Npc_GetRangedWeapon(var C_NPC slf)
+ ```
+ **Parametry**
-- `#!dae var C_NPC slf`
- NPC którego broń jest pobierana
+ - `#!dae var C_NPC slf`
+ NPC którego broń jest pobierana
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca ID instancji broni dystansowej wyposażonej przez NPC.
+ Funkcja zwraca ID instancji broni dystansowej wyposażonej przez NPC.
### `Npc_TradeItem`
-Podmienia broń założoną przez NPC.
-```dae
-func void Npc_TradeItem(var c_npc slf, var int itm0, var int itm1)
-```
-**Parametry**
-
-- `#!dae var C_NPC slf`
- NPC na którym wykonywana jest operacja
-- `#!dae var int itm0`
- ID instancji przedmiotu do usunięcia
-- `#!dae var int itm1`
- ID instancji przedmiotu do stworzenia i założenia
+!!! function "`Npc_TradeItem`"
+ Podmienia broń założoną przez NPC.
+ ```dae
+ func void Npc_TradeItem(var c_npc slf, var int itm0, var int itm1)
+ ```
+ **Parametry**
+
+ - `#!dae var C_NPC slf`
+ NPC na którym wykonywana jest operacja
+ - `#!dae var int itm0`
+ ID instancji przedmiotu do usunięcia
+ - `#!dae var int itm1`
+ ID instancji przedmiotu do stworzenia i założenia
### `DiaCAM_Update`
-Funkcja Sektenspinnera. Aktualizuje kamerę dialogową. (Używana wewnętrznie)
-```dae
-func void DiaCAM_Update()
-```
+!!! function "`DiaCAM_Update`"
+ Funkcja Sektenspinnera. Aktualizuje kamerę dialogową. (Używana wewnętrznie)
+ ```dae
+ func void DiaCAM_Update()
+ ```
### `DiaCAM_Disable`
-Całkowicie wyłącza kamery dialogowe.
-```dae
-func void DiaCAM_Disable()
-```
+!!! function "`DiaCAM_Disable`"
+ Całkowicie wyłącza kamery dialogowe.
+ ```dae
+ func void DiaCAM_Disable()
+ ```
### `DiaCAM_Enable`
-Resetuje kamery dialogowe do ustawień domyślnych.
-```dae
-func void DiaCAM_Enable()
-```
+!!! function "`DiaCAM_Enable`"
+ Resetuje kamery dialogowe do ustawień domyślnych.
+ ```dae
+ func void DiaCAM_Enable()
+ ```
+
### `TRIA_Wait`
-Sprawia że `self` i `other` czekają na siebie, np. podczas dla synchronizacji po wywołaniu `AI_GotoWP`.
-```dae
-func void TRIA_Wait()
-```
+!!! function "`TRIA_Wait`"
+ Sprawia że `self` i `other` czekają na siebie, np. podczas dla synchronizacji po wywołaniu `AI_GotoWP`.
+ ```dae
+ func void TRIA_Wait()
+ ```
### `TRIA_Invite`
-Zaprasza NPC do rozmowy. Należy wywołać przed `TRIA_Start`.`TRIA_Start`.
-```dae
-func void TRIA_Invite(var C_NPC slf)
-```
-**Parametry**
+!!! function "`TRIA_Invite`"
+ Zaprasza NPC do rozmowy. Należy wywołać przed `TRIA_Start`.`TRIA_Start`.
+ ```dae
+ func void TRIA_Invite(var C_NPC slf)
+ ```
+ **Parametry**
-- `#!dae var C_NPC slf`
- Zapraszany NPC
+ - `#!dae var C_NPC slf`
+ Zapraszany NPC
### `TRIA_Start`
-Rozpoczyna trialog. Wcześniej wszyscy NPC powinni zostać zaproszeni przez `TRIA_Invite`.
-```dae
-func void TRIA_Start()
-```
+!!! function "`TRIA_Start`"
+ Rozpoczyna trialog. Wcześniej wszyscy NPC powinni zostać zaproszeni przez `TRIA_Invite`.
+ ```dae
+ func void TRIA_Start()
+ ```
### `TRIA_Barrier`
-Robi to samo co `TRIA_Wait`, ale dotyczy wszystkich uczestniczÄ…cych NPC.
-```dae
-func void TRIA_Barrier()
-```
+!!! function "`TRIA_Barrier`"
+ Robi to samo co `TRIA_Wait`, ale dotyczy wszystkich uczestniczÄ…cych NPC.
+ ```dae
+ func void TRIA_Barrier()
+ ```
### `TRIA_Next`
-Ustawia podanego NPC na `self`.
-```dae
-func void TRIA_Next(var C_NPC n0)
-```
-**Parametry**
+!!! function "`TRIA_Next`"
+ Ustawia podanego NPC na `self`.
+ ```dae
+ func void TRIA_Next(var C_NPC n0)
+ ```
+ **Parametry**
-- `#!dae var C_NPC n0`
- NPC ustawiany na `self`
+ - `#!dae var C_NPC n0`
+ NPC ustawiany na `self`
### `TRIA_Cam`
-Rozpoczyna zdefiniowany wcześniej ruch kamery.
-```dae
-func void TRIA_Cam(var string evt)
-```
-**Parametry**
+!!! function "`TRIA_Cam`"
+ Rozpoczyna zdefiniowany wcześniej ruch kamery.
+ ```dae
+ func void TRIA_Cam(var string evt)
+ ```
+ **Parametry**
-- `#!dae var string evt`
- Nazwa ruchu kamery w Spacerze. Jeśli zostanie przekazany pusty ciąg znaków, nastąpi przerwanie ruchu kamery.
+ - `#!dae var string evt`
+ Nazwa ruchu kamery w Spacerze. Jeśli zostanie przekazany pusty ciąg znaków, nastąpi przerwanie ruchu kamery.
### `TRIA_Finish`
-Kończy trwający trialog. Musi być zawsze wywoływana na końcu, w przeciwnym razie dalsze trialogi nie będą mogły zostać rozpoczęte.
-```dae
-func void TRIA_Finish()
-```
+!!! function "`TRIA_Finish`"
+ Kończy trwający trialog. Musi być zawsze wywoływana na końcu, w przeciwnym razie dalsze trialogi nie będą mogły zostać rozpoczęte.
+ ```dae
+ func void TRIA_Finish()
+ ```
## Przykłady
diff --git a/docs/zengin/scripts/extenders/lego/tools/ai_function.md b/docs/zengin/scripts/extenders/lego/tools/ai_function.md
index c6695dc612..daf07c3940 100644
--- a/docs/zengin/scripts/extenders/lego/tools/ai_function.md
+++ b/docs/zengin/scripts/extenders/lego/tools/ai_function.md
@@ -3,55 +3,59 @@ title: AI_Function
description: LeGo package for enqueuing functions to NPC's AI queue
---
# AI_Function
-This package allows time-delayed functions to be called by enqueuing the functions in the AI queue of the NPC in question. This can be very useful in writing cutscenes on engine or implementing new routines.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [HookEngine](hook_engine.md)
+ **Implementation:**
+ [:material-github: AI_Function.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/AI_Function.d)
-- [HookEngine](hook_engine.md)
+This package allows time-delayed functions to be called by enqueuing the functions in the AI queue of the NPC in question. This can be very useful in writing cutscenes on engine or implementing new routines.
## Initialization
Initialize with `LeGo_AI_Function` flag.
```dae
LeGo_Init(LeGo_AI_Function);
```
-## Implementation
-[:material-github: AI_Function.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/AI_Function.d)
## Functions
-The script function `function` is called with a delay: it joins the AI queue of `slf`.
-```dae
-func void AI_Function(var C_NPC slf, var func function)
-```
-**Parameters**
-- `#!dae var C_NPC slf`
- NPC in whose AI queue the function is queued
-- `#!dae var func function`
- Name of function to be queued
+### `AI_Function`
+!!! function "`AI_Function`"
+ The script function `function` is called with a delay: it joins the AI queue of `slf`.
+ ```dae
+ func void AI_Function(var C_NPC slf, var func function)
+ ```
+ **Parameters**
-Additionally, there are some overloads of `AI_Function`, which allow to call functions with parameters.
-```dae
-func void AI_Function_I (var C_NPC slf, var func function, var int param) {}; // Int
-func void AI_Function_N (var C_NPC slf, var func function, var int param) {}; // Instance (e.g. NPC)
-func void AI_Function_S (var C_NPC slf, var func function, var string param) {}; // String
-func void AI_Function_II (var C_NPC slf, var func function, var int param1, var int param2) {}; // Int, Int
-func void AI_Function_NN (var C_NPC slf, var func function, var int param1, var int param2) {}; // Instance, Instance
-func void AI_Function_SS (var C_NPC slf, var func function, var string param1, var string param2) {}; // String, String
-func void AI_Function_IS (var C_NPC slf, var func function, var int param1, var string param2) {}; // Int, String
-func void AI_Function_SI (var C_NPC slf, var func function, var string param1, var int param2) {}; // String, Int
-func void AI_Function_NS (var C_NPC slf, var func function, var int param1, var string param2) {}; // Instance, String
-func void AI_Function_SN (var C_NPC slf, var func function, var string param1, var int param2) {}; // String, Instance
-func void AI_Function_IN (var C_NPC slf, var func function, var int param1, var int param2) {}; // Int, Instance
-func void AI_Function_NI (var C_NPC slf, var func function, var int param1, var int param2) {}; // Instance, Int
-```
-Functions with more than two parameters cannot be called, but parameters can be passed indirectly via global variables.
+ - `#!dae var C_NPC slf`
+ NPC in whose AI queue the function is queued
+ - `#!dae var func function`
+ Name of function to be queued
-In the called function, `self` can be accessed as follows:
-```dae
-var oCNpc slf; slf = _^(ECX);
-```
-!!! Info
- From LeGo 2.7.2 the global instance `self` is provided correctly and can be used directly.
+ Additionally, there are some overloads of `AI_Function`, which allow to call functions with parameters.
+ ```dae
+ func void AI_Function_I (var C_NPC slf, var func function, var int param) {}; // Int
+ func void AI_Function_N (var C_NPC slf, var func function, var int param) {}; // Instance (e.g. NPC)
+ func void AI_Function_S (var C_NPC slf, var func function, var string param) {}; // String
+ func void AI_Function_II (var C_NPC slf, var func function, var int param1, var int param2) {}; // Int, Int
+ func void AI_Function_NN (var C_NPC slf, var func function, var int param1, var int param2) {}; // Instance, Instance
+ func void AI_Function_SS (var C_NPC slf, var func function, var string param1, var string param2) {}; // String, String
+ func void AI_Function_IS (var C_NPC slf, var func function, var int param1, var string param2) {}; // Int, String
+ func void AI_Function_SI (var C_NPC slf, var func function, var string param1, var int param2) {}; // String, Int
+ func void AI_Function_NS (var C_NPC slf, var func function, var int param1, var string param2) {}; // Instance, String
+ func void AI_Function_SN (var C_NPC slf, var func function, var string param1, var int param2) {}; // String, Instance
+ func void AI_Function_IN (var C_NPC slf, var func function, var int param1, var int param2) {}; // Int, Instance
+ func void AI_Function_NI (var C_NPC slf, var func function, var int param1, var int param2) {}; // Instance, Int
+ ```
+ Functions with more than two parameters cannot be called, but parameters can be passed indirectly via global variables.
+
+ In the called function, `self` can be accessed as follows:
+ ```dae
+ var oCNpc slf; slf = _^(ECX);
+ ```
+ !!! Info
+ From LeGo 2.7.2 the global instance `self` is provided correctly and can be used directly.
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/binary_machines.md b/docs/zengin/scripts/extenders/lego/tools/binary_machines.md
index 640d14f1b7..7fc4794122 100644
--- a/docs/zengin/scripts/extenders/lego/tools/binary_machines.md
+++ b/docs/zengin/scripts/extenders/lego/tools/binary_machines.md
@@ -3,298 +3,325 @@ title: BinaryMachines
description: LeGo package for creating, writing and reading your own files
---
# BinaryMachines
-This package allows you to create and write your own files anywhere in the file system.
-## Dependencies
-N/A
+!!! info inline end
+ **Dependencies:**
+ - *None*
+ **Implementation:**
+ [:material-github: BinaryMachines.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/BinaryMachines.d)
+
+This package allows you to create and write your own files anywhere in the file system.
## Initialization
N/A
-## Implementation
-[:material-github: BinaryMachines.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/BinaryMachines.d)
-
## BinaryWriter
### `BW_NewFile`
-Creates the file with the `file` name and opens a stream. Doesn't work if a stream is already open.
-```dae
-func int BW_NewFile(var string file)
-```
-**Parameters**
+!!! function "`BW_NewFile`"
+ Creates the file with the `file` name and opens a stream. Doesn't work if a stream is already open.
+ ```dae
+ func int BW_NewFile(var string file)
+ ```
+ **Parameters**
-- `#!dae var string file`
- Name of created file
+ - `#!dae var string file`
+ Name of created file
-**Return value**
+ **Return value**
-The function returns `TRUE` if the file is successfully created and initialized, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the file is successfully created and initialized, `FALSE` is returned otherwise.
### `BW_Close`
-Closes the current write stream.
-```dae
-func void BW_Close()
-```
+!!! function "`BW_Close`"
+ Closes the current write stream.
+ ```dae
+ func void BW_Close()
+ ```
### `BW`
-Writes `length` bytes from the `data` to the stream, maximum 4 bytes.
-```dae
-func void BW(var int data, var int length)
-```
-**Parameters**
-
-- `#!dae var int data`
- Value of bytes
-- `#!dae var int length`
- Number of bytes
+!!! function "`BW`"
+ Writes `length` bytes from the `data` to the stream, maximum 4 bytes.
+ ```dae
+ func void BW(var int data, var int length)
+ ```
+ **Parameters**
+
+ - `#!dae var int data`
+ Value of bytes
+ - `#!dae var int length`
+ Number of bytes
### `BW_Int`
-Writes 4 bytes from the `data` to the stream. Same as `BW(data, 4)`.
-```dae
-func void BW_Int(var int data)
-```
-**Parameters**
+!!! function "`BW_Int`"
+ Writes 4 bytes from the `data` to the stream. Same as `BW(data, 4)`.
+ ```dae
+ func void BW_Int(var int data)
+ ```
+ **Parameters**
-- `#!dae var int data`
- Integer value to write
+ - `#!dae var int data`
+ Integer value to write
### `BW_Char`
-Writes the first character from the `data` to the stream. Same as `BW(Str_GetCharAt(data, 0), 1)`.
-```dae
-func void BW_Char(var string data)
-```
-**Parameters**
+!!! function "`BW_Char`"
+ Writes the first character from the `data` to the stream. Same as `BW(Str_GetCharAt(data, 0), 1)`.
+ ```dae
+ func void BW_Char(var string data)
+ ```
+ **Parameters**
-- `#!dae var string data`
- Char to write
+ - `#!dae var string data`
+ Char to write
### `BW_String`
-Writes the `data` terminated with `\0` to the stream.
-```dae
-func void BW_String(var string data)
-```
-**Parameters**
+!!! function "`BW_String`"
+ Writes the `data` terminated with `\0` to the stream.
+ ```dae
+ func void BW_String(var string data)
+ ```
+ **Parameters**
-- `#!dae var string data`
- String to write
+ - `#!dae var string data`
+ String to write
### `BW_Byte`
-Writes a byte from the `data` to the stream. Same as `BW(data, 1)`.
-```dae
-func void BW_Byte(var int data)
-```
-**Parameters**
+!!! function "`BW_Byte`"
+ Writes a byte from the `data` to the stream. Same as `BW(data, 1)`.
+ ```dae
+ func void BW_Byte(var int data)
+ ```
+ **Parameters**
-- `#!dae var int data`
- Byte value to write
+ - `#!dae var int data`
+ Byte value to write
### `BW_Bytes`
-Writes `length` of bytes from the pointer `dataPtr` to the stream.
-```dae
-func void BW_Bytes(var int dataPtr, var int length)
-```
-**Parameters**
-
-- `#!dae var int dataPtr`
- Pointer of data to write
-- `#!dae var int length`
- Number of bytes
+!!! function "`BW_Bytes`"
+ Writes `length` of bytes from the pointer `dataPtr` to the stream.
+ ```dae
+ func void BW_Bytes(var int dataPtr, var int length)
+ ```
+ **Parameters**
+
+ - `#!dae var int dataPtr`
+ Pointer of data to write
+ - `#!dae var int length`
+ Number of bytes
### `BW_Text`
-Writes the string to the stream without terminating it. So it can no longer be read.
-```dae
-func void BW_Text(var string data)
-```
-**Parameters**
+!!! function "`BW_Text`"
+ Writes the string to the stream without terminating it. So it can no longer be read.
+ ```dae
+ func void BW_Text(var string data)
+ ```
+ **Parameters**
-- `#!dae var string data`
- Text to write
+ - `#!dae var string data`
+ Text to write
### `BW_NextLine`
-Writes a paragraph to the stream.
-```dae
-func void BW_NextLine()
-```
+!!! function "`BW_NextLine`"
+ Writes a paragraph to the stream.
+ ```dae
+ func void BW_NextLine()
+ ```
## BinaryReader
### `BR_OpenFile`
-Opens the file with the `file` name and opens a stream. Doesn't work if a stream is already open.
-```dae
-func int BR_OpenFile(var string file)
-```
-**Parameters**
-
-- `#!dae var string file`
- File to be opened
+!!! function "`BR_OpenFile`"
+ Opens the file with the `file` name and opens a stream. Doesn't work if a stream is already open.
+ ```dae
+ func int BR_OpenFile(var string file)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var string file`
+ File to be opened
-The function returns `TRUE` if the file is successfully opened and initialized, `FALSE`is returned otherwise.
+ **Return value**
+ The function returns `TRUE` if the file is successfully opened and initialized, `FALSE`is returned otherwise.
### `BR_Close`
-Closes the current read stream.
-```dae
-func void BR_Close()
-```
+!!! function "`BR_Close`"
+ Closes the current read stream.
+ ```dae
+ func void BR_Close()
+ ```
### `BR`
-Reads bytes from the stream.
-```dae
-func int BR(var int length)
-```
-**Parameters**
+!!! function "`BR`"
+ Reads bytes from the stream.
+ ```dae
+ func int BR(var int length)
+ ```
+ **Parameters**
-- `#!dae var int length`
- Number of bytes to read (maximum 4)
+ - `#!dae var int length`
+ Number of bytes to read (maximum 4)
-**Return value**
+ **Return value**
-The function returns the value of read bytes.
+ The function returns the value of read bytes.
### `BR_Int`
-Reads 4 bytes from the stream. Same as `BR(4)`.
-```dae
-func int BR_Int()
-```
-**Return value**
+!!! function "`BR_Int`"
+ Reads 4 bytes from the stream. Same as `BR(4)`.
+ ```dae
+ func int BR_Int()
+ ```
+ **Return value**
-The function returns the read integer.
+ The function returns the read integer.
### `BR_Char`
-Reads a character from the stream. Same as `BR(1)`.
-```dae
-func string BR_Char()
-```
-**Return value**
+!!! function "`BR_Char`"
+ Reads a character from the stream. Same as `BR(1)`.
+ ```dae
+ func string BR_Char()
+ ```
+ **Return value**
-The function returns the read character as a `string`.
+ The function returns the read character as a `string`.
### `BR_String`
-Reads a string terminated by `\0` from the stream.
-```dae
-func string BR_String()
-```
-**Return value**
+!!! function "`BR_String`"
+ Reads a string terminated by `\0` from the stream.
+ ```dae
+ func string BR_String()
+ ```
+ **Return value**
-The function returns the read string.
+ The function returns the read string.
### `BR_Byte`
-Reads a byte from the stream.
-```dae
-func int BR_Byte()
-```
-**Return value**
+!!! function "`BR_Byte`"
+ Reads a byte from the stream.
+ ```dae
+ func int BR_Byte()
+ ```
+ **Return value**
-The function returns the read byte.
+ The function returns the read byte.
### `BR_Bytes`
-Reads bytes from the stream.
-```dae
-func int BR_Bytes(var int length)
-```
-**Parameters**
+!!! function "`BR_Bytes`"
+ Reads bytes from the stream.
+ ```dae
+ func int BR_Bytes(var int length)
+ ```
+ **Parameters**
-- `#!dae var int length`
- Number of bytes to read
+ - `#!dae var int length`
+ Number of bytes to read
-**Return value**
+ **Return value**
-The function returns a pointer to the read bytes.
+ The function returns a pointer to the read bytes.
### `BR_TextLine`
-Reads a line from the stream.
-```dae
-func string BR_TextLine()
-```
-**Return value**
+!!! function "`BR_TextLine`"
+ Reads a line from the stream.
+ ```dae
+ func string BR_TextLine()
+ ```
+ **Return value**
-The function returns the read line.
+ The function returns the read line.
### `BR_Text`
-Reads a string of the given length from a stream.
-```dae
-func string BR_Text(var int length)
-```
-**Parameters**
+!!! function "`BR_Text`"
+ Reads a string of the given length from a stream.
+ ```dae
+ func string BR_Text(var int length)
+ ```
+ **Parameters**
-- `#!dae var int length`
- Number of characters to read
+ - `#!dae var int length`
+ Number of characters to read
-**Return value**
+ **Return value**
-The function returns the read string.
+ The function returns the read string.
### `BR_NextLine`
-Changes the read position to the next paragraph, created with [`BW_NextLine`](#bw_nextline)
-```dae
-func void BR_NextLine()
-```
+!!! function "`BR_NextLine`"
+ Changes the read position to the next paragraph, created with [`BW_NextLine`](#bw_nextline)
+ ```dae
+ func void BR_NextLine()
+ ```
## Enginecalls
### `WIN_GetLastError`
-Call of a Win32 API [`GetLastError` function](https://learn.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror)
-```dae
-func int WIN_GetLastError()
-```
-**Return value**
+!!! function "`WIN_GetLastError`"
+ Call of a Win32 API [`GetLastError` function](https://learn.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror)
+ ```dae
+ func int WIN_GetLastError()
+ ```
+ **Return value**
-The function returns calling thread's last-error code.
+ The function returns calling thread's last-error code.
### `WIN_CreateFile`
-Call of a Win32 API [`CreateFileA` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea)
-```dae
-func int WIN_CreateFile(var string lpFileName,var int dwDesiredAccess,var int dwShareMode,var int lpSecurityAttributes,var int dwCreationDisposition,var int dwFlagsAndAttributes,var int hTemplateFile)
-```
-**Parameters**
+!!! function "`WIN_CreateFile`"
+ Call of a Win32 API [`CreateFileA` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea)
+ ```dae
+ func int WIN_CreateFile(var string lpFileName,var int dwDesiredAccess,var int dwShareMode,var int lpSecurityAttributes,var int dwCreationDisposition,var int dwFlagsAndAttributes,var int hTemplateFile)
+ ```
+ **Parameters**
-Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#parameters)
+ Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#parameters)
-**Return value**
+ **Return value**
-Information about return value can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#return-value)
+ Information about return value can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#return-value)
### `WIN_WriteFile`
-Call of a Win32 API [`WriteFile` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile)
-```dae
-func void WIN_WriteFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToWrite,var int lpNumberOfBytesWritten,var int lpOverlapped)
-```
-**Parameters**
+!!! function "`WIN_WriteFile`"
+ Call of a Win32 API [`WriteFile` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile)
+ ```dae
+ func void WIN_WriteFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToWrite,var int lpNumberOfBytesWritten,var int lpOverlapped)
+ ```
+ **Parameters**
-Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile#parameters)
+ Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile#parameters)
### `WIN_ReadFile`
-Call of a Win32 API [`ReadFile` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile)
-```dae
-func void WIN_ReadFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToRead,var int lpNumberOfBytesRead,var int lpOverlapped)
-```
-**Parameters**
+!!! function "`WIN_ReadFile`"
+ Call of a Win32 API [`ReadFile` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile)
+ ```dae
+ func void WIN_ReadFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToRead,var int lpNumberOfBytesRead,var int lpOverlapped)
+ ```
+ **Parameters**
-Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile#parameters)
+ Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile#parameters)
### `WIN_CloseHandle`
-Call of a Win32 API [`CloseHandle` function](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle)
-```dae
-func void WIN_CloseHandle(var int hObject)
-```
-**Parameters**
+!!! function "`WIN_CloseHandle`"
+ Call of a Win32 API [`CloseHandle` function](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle)
+ ```dae
+ func void WIN_CloseHandle(var int hObject)
+ ```
+ **Parameters**
-Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle#parameters)
+ Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle#parameters)
### `WIN_GetFileSize`
-Call of a Win32 API [`GetFileSize` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize)
-```dae
-func int WIN_GetFileSize(var int hFile,var int lpFileSizeHigh)
-```
-**Parameters**
+!!! function "`WIN_GetFileSize`"
+ Call of a Win32 API [`GetFileSize` function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize)
+ ```dae
+ func int WIN_GetFileSize(var int hFile,var int lpFileSizeHigh)
+ ```
+ **Parameters**
-Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#parameters)
+ Full description of parameters can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#parameters)
-**Return value**
+ **Return value**
-Information about return value can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#return-value)
+ Information about return value can be found [here](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#return-value)
### Constants
In addition there are some constants defined for use with the specific engine calls.
diff --git a/docs/zengin/scripts/extenders/lego/tools/binary_machines.pl.md b/docs/zengin/scripts/extenders/lego/tools/binary_machines.pl.md
index 5f0c91ad7a..4442117b2d 100644
--- a/docs/zengin/scripts/extenders/lego/tools/binary_machines.pl.md
+++ b/docs/zengin/scripts/extenders/lego/tools/binary_machines.pl.md
@@ -3,298 +3,325 @@ title: BinaryMachines
description: Pakiet LeGo do tworzenia, zapisywania i odczytywania własnych plików
---
# BinaryMachines
-Ten pakiet pozwala tworzyć i zapisywać własne pliki w dowolnym miejscu w systemie plików.
-## Zależności
-Brak
+!!! info inline end
+ **Zależności:**
+ - Brak
+ **Implementacja:**
+ [:material-github: BinaryMachines.d na GitHub](https://github.com/Lehona/LeGo/blob/dev/BinaryMachines.d)
+
+Ten pakiet pozwala tworzyć i zapisywać własne pliki w dowolnym miejscu w systemie plików.
## Inicjalizacja
Brak
-## Implementacja
-[:material-github: BinaryMachines.d na GitHub](https://github.com/Lehona/LeGo/blob/dev/BinaryMachines.d)
-
## BinaryWriter
### `BW_NewFile`
-Tworzy plik o nazwie `file` i otwiera strumień. Nie działa, jeśli strumień jest już otwarty.
-```dae
-func int BW_NewFile(var string file)
-```
-**Parametry**
+!!! function "`BW_NewFile`"
+ Tworzy plik o nazwie `file` i otwiera strumień. Nie działa, jeśli strumień jest już otwarty.
+ ```dae
+ func int BW_NewFile(var string file)
+ ```
+ **Parametry**
-- `#!dae var string file`
- Nazwa tworzonego pliku
+ - `#!dae var string file`
+ Nazwa tworzonego pliku
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca `TRUE` jeśli plik został pomyślnie utworzony i zainicjalizowany, w przeciwnym razie zwracane jest `FALSE`.
+ Funkcja zwraca `TRUE` jeśli plik został pomyślnie utworzony i zainicjalizowany, w przeciwnym razie zwracane jest `FALSE`.
### `BW_Close`
-Zamyka aktualny strumień zapisu.
-```dae
-func void BW_Close()
-```
+!!! function "`BW_Close`"
+ Zamyka aktualny strumień zapisu.
+ ```dae
+ func void BW_Close()
+ ```
### `BW`
-Zapisuje `length` bajtów z `data` do strumienia, maksymalnie 4 bajty.
-```dae
-func void BW(var int data, var int length)
-```
-**Parametry**
-
-- `#!dae var int data`
- Wartość bajtów
-- `#!dae var int length`
- Liczba bajtów
+!!! function "`BW`"
+ Zapisuje `length` bajtów z `data` do strumienia, maksymalnie 4 bajty.
+ ```dae
+ func void BW(var int data, var int length)
+ ```
+ **Parametry**
+
+ - `#!dae var int data`
+ Wartość bajtów
+ - `#!dae var int length`
+ Liczba bajtów
### `BW_Int`
-Zapisuje 4 bajty z `data` do strumienia. To samo co `BW(data, 4)`.
-```dae
-func void BW_Int(var int data)
-```
-**Parametry**
+!!! function "`BW_Int`"
+ Zapisuje 4 bajty z `data` do strumienia. To samo co `BW(data, 4)`.
+ ```dae
+ func void BW_Int(var int data)
+ ```
+ **Parametry**
-- `#!dae var int data`
- Wartość całkowita do zapisania
+ - `#!dae var int data`
+ Wartość całkowita do zapisania
### `BW_Char`
-Zapisuje pierwszy znak z `data` do strumienia. To samo co `BW(Str_GetCharAt(data, 0), 1)`.
-```dae
-func void BW_Char(var string data)
-```
-**Parametry**
+!!! function "`BW_Char`"
+ Zapisuje pierwszy znak z `data` do strumienia. To samo co `BW(Str_GetCharAt(data, 0), 1)`.
+ ```dae
+ func void BW_Char(var string data)
+ ```
+ **Parametry**
-- `#!dae var string data`
- Znak do zapisania
+ - `#!dae var string data`
+ Znak do zapisania
### `BW_String`
-Zapisuje `data` zakończone znakiem `\0` do strumienia.
-```dae
-func void BW_String(var string data)
-```
-**Parametry**
+!!! function "`BW_String`"
+ Zapisuje `data` zakończone znakiem `\0` do strumienia.
+ ```dae
+ func void BW_String(var string data)
+ ```
+ **Parametry**
-- `#!dae var string data`
- Ciąg znaków do zapisania
+ - `#!dae var string data`
+ Ciąg znaków do zapisania
### `BW_Byte`
-Zapisuje bajt z `data` do strumienia. To samo co `BW(data, 1)`.
-```dae
-func void BW_Byte(var int data)
-```
-**Parametry**
+!!! function "`BW_Byte`"
+ Zapisuje bajt z `data` do strumienia. To samo co `BW(data, 1)`.
+ ```dae
+ func void BW_Byte(var int data)
+ ```
+ **Parametry**
-- `#!dae var int data`
- Wartość bajtowa do zapisania
+ - `#!dae var int data`
+ Wartość bajtowa do zapisania
### `BW_Bytes`
-Zapisuje `length` bajtów ze wskaźnika `dataPtr` do strumienia.
-```dae
-func void BW_Bytes(var int dataPtr, var int length)
-```
-**Parametry**
-
-- `#!dae var int dataPtr`
- Wskaźnik danych do zapisania
-- `#!dae var int length`
- Liczba bajtów
+!!! function "`BW_Bytes`"
+ Zapisuje `length` bajtów ze wskaźnika `dataPtr` do strumienia.
+ ```dae
+ func void BW_Bytes(var int dataPtr, var int length)
+ ```
+ **Parametry**
+
+ - `#!dae var int dataPtr`
+ Wskaźnik danych do zapisania
+ - `#!dae var int length`
+ Liczba bajtów
### `BW_Text`
-Zapisuje ciąg znaków do strumienia bez jego zakończenia. Nie można go już odczytać.
-```dae
-func void BW_Text(var string data)
-```
-**Parametry**
+!!! function "`BW_Text`"
+ Zapisuje ciąg znaków do strumienia bez jego zakończenia. Nie można go już odczytać.
+ ```dae
+ func void BW_Text(var string data)
+ ```
+ **Parametry**
-- `#!dae var string data`
- Tekst do zapisania
+ - `#!dae var string data`
+ Tekst do zapisania
### `BW_NextLine`
-Zapisuje akapit do strumienia.
-```dae
-func void BW_NextLine()
-```
+!!! function "`BW_NextLine`"
+ Zapisuje akapit do strumienia.
+ ```dae
+ func void BW_NextLine()
+ ```
## BinaryReader
### `BR_OpenFile`
-Otwiera plik o nazwie `file` i otwiera strumień. Nie działa, jeśli strumień jest już otwarty.
-```dae
-func int BR_OpenFile(var string file)
-```
-**Parametry**
-
-- `#!dae var string file`
- Plik, który ma być otwarty
+!!! function "`BR_OpenFile`"
+ Otwiera plik o nazwie `file` i otwiera strumień. Nie działa, jeśli strumień jest już otwarty.
+ ```dae
+ func int BR_OpenFile(var string file)
+ ```
+ **Parametry**
-**Zwracana wartość**
+ - `#!dae var string file`
+ Plik, który ma być otwarty
-Funkcja zwraca `TRUE` jeśli plik został pomyślnie otworzony i zainicjalizowany, w przeciwnym razie zwracane jest `FALSE`.
+ **Zwracana wartość**
+ Funkcja zwraca `TRUE` jeśli plik został pomyślnie otworzony i zainicjalizowany, w przeciwnym razie zwracane jest `FALSE`.
### `BR_Close`
-Zamyka aktualny strumień odczytu.
-```dae
-func void BR_Close()
-```
+!!! function "`BR_Close`"
+ Zamyka aktualny strumień odczytu.
+ ```dae
+ func void BR_Close()
+ ```
### `BR`
-Odczytuje bajty ze strumienia.
-```dae
-func int BR(var int length)
-```
-**Parametry**
+!!! function "`BR`"
+ Odczytuje bajty ze strumienia.
+ ```dae
+ func int BR(var int length)
+ ```
+ **Parametry**
-- `#!dae var int length`
- Liczba bajtów do odczytania (maksymalnie 4)
+ - `#!dae var int length`
+ Liczba bajtów do odczytania (maksymalnie 4)
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca odczytaną wartość bajtów.
+ Funkcja zwraca odczytaną wartość bajtów.
### `BR_Int`
-Odczytuje 4 bajty ze strumienia. To samo co `BR(4)`.
-```dae
-func int BR_Int()
-```
-**Zwracana wartość**
+!!! function "`BR_Int`"
+ Odczytuje 4 bajty ze strumienia. To samo co `BR(4)`.
+ ```dae
+ func int BR_Int()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca odczytaną liczbę całkowitą.
+ Funkcja zwraca odczytaną liczbę całkowitą.
### `BR_Char`
-Odczytuje znak ze strumienia. To samo co `BR(1)`.
-```dae
-func string BR_Char()
-```
-**Zwracana wartość**
+!!! function "`BR_Char`"
+ Odczytuje znak ze strumienia. To samo co `BR(1)`.
+ ```dae
+ func string BR_Char()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca odczytany znak jako `string`.
+ Funkcja zwraca odczytany znak jako `string`.
### `BR_String`
-Odczytuje ciąg znaków zakończony znakiem `\0` ze strumienia.
-```dae
-func string BR_String()
-```
-**Zwracana wartość**
+!!! function "`BR_String`"
+ Odczytuje ciąg znaków zakończony znakiem `\0` ze strumienia.
+ ```dae
+ func string BR_String()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca odczytany ciąg znaków.
+ Funkcja zwraca odczytany ciąg znaków.
### `BR_Byte`
-Odczytuje bajt ze strumienia.
-```dae
-func int BR_Byte()
-```
-**Zwracana wartość**
+!!! function "`BR_Byte`"
+ Odczytuje bajt ze strumienia.
+ ```dae
+ func int BR_Byte()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca odczytany bajt.
+ Funkcja zwraca odczytany bajt.
### `BR_Bytes`
-Odczytuje bajty ze strumienia.
-```dae
-func int BR_Bytes(var int length)
-```
-**Parametry**
+!!! function "`BR_Bytes`"
+ Odczytuje bajty ze strumienia.
+ ```dae
+ func int BR_Bytes(var int length)
+ ```
+ **Parametry**
-- `#!dae var int length`
- Liczba bajtów do odczytania
+ - `#!dae var int length`
+ Liczba bajtów do odczytania
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wskaźnik do odczytanych bajtów.
+ Funkcja zwraca wskaźnik do odczytanych bajtów.
### `BR_TextLine`
-Odczytuje liniÄ™ ze strumienia.
-```dae
-func string BR_TextLine()
-```
-**Zwracana wartość**
+!!! function "`BR_TextLine`"
+ Odczytuje liniÄ™ ze strumienia.
+ ```dae
+ func string BR_TextLine()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca odczytanÄ… liniÄ™.
+ Funkcja zwraca odczytanÄ… liniÄ™.
### `BR_Text`
-Odczytuje ciąg znaków o podanej długości ze strumienia.
-```dae
-func string BR_Text(var int length)
-```
-**Parametry**
+!!! function "`BR_Text`"
+ Odczytuje ciąg znaków o podanej długości ze strumienia.
+ ```dae
+ func string BR_Text(var int length)
+ ```
+ **Parametry**
-- `#!dae var int length`
- Liczba znaków do odczytania
+ - `#!dae var int length`
+ Liczba znaków do odczytania
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca odczytany ciąg znaków.
+ Funkcja zwraca odczytany ciąg znaków.
### `BR_NextLine`
-Zmienia pozycję odczytu na następny akapit, utworzony za pomocą [`BW_NextLine`](#bw_nextline).
-```dae
-func void BR_NextLine()
-```
+!!! function "`BR_NextLine`"
+ Zmienia pozycję odczytu na następny akapit, utworzony za pomocą [`BW_NextLine`](#bw_nextline).
+ ```dae
+ func void BR_NextLine()
+ ```
## Wywołania funkcji silnika
### `WIN_GetLastError`
-Wywołanie [funkcji `GetLastError`](https://learn.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror) z Win32 API.
-```dae
-func int WIN_GetLastError()
-```
-**Zwracana wartość**
+!!! function "`WIN_GetLastError`"
+ Wywołanie [funkcji `GetLastError`](https://learn.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror) z Win32 API.
+ ```dae
+ func int WIN_GetLastError()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca kod ostatniego błędu wątku wywołującego.
+ Funkcja zwraca kod ostatniego błędu wątku wywołującego.
### `WIN_CreateFile`
-Wywołanie [funkcji `CreateFileA`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea) z Win32 API.
-```dae
-func int WIN_CreateFile(var string lpFileName,var int dwDesiredAccess,var int dwShareMode,var int lpSecurityAttributes,var int dwCreationDisposition,var int dwFlagsAndAttributes,var int hTemplateFile)
-```
-**Parametry**
+!!! function "`WIN_CreateFile`"
+ Wywołanie [funkcji `CreateFileA`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea) z Win32 API.
+ ```dae
+ func int WIN_CreateFile(var string lpFileName,var int dwDesiredAccess,var int dwShareMode,var int lpSecurityAttributes,var int dwCreationDisposition,var int dwFlagsAndAttributes,var int hTemplateFile)
+ ```
+ **Parametry**
-Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#parameters)
+ Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#parameters)
-**Zwracana wartość**
+ **Zwracana wartość**
-Informacje o zwracanej wartości znajdziesz [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#return-value)
+ Informacje o zwracanej wartości znajdziesz [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#return-value)
### `WIN_WriteFile`
-Wywołanie [funkcji `WriteFile`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile) z Win32 API.
-```dae
-func void WIN_WriteFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToWrite,var int lpNumberOfBytesWritten,var int lpOverlapped)
-```
-**Parametry**
+!!! function "`WIN_WriteFile`"
+ Wywołanie [funkcji `WriteFile`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile) z Win32 API.
+ ```dae
+ func void WIN_WriteFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToWrite,var int lpNumberOfBytesWritten,var int lpOverlapped)
+ ```
+ **Parametry**
-Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile#parameters)
+ Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile#parameters)
### `WIN_ReadFile`
-Wywołanie [funkcji `ReadFile`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile) z Win32 API.
-```dae
-func void WIN_ReadFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToRead,var int lpNumberOfBytesRead,var int lpOverlapped)
-```
-**Parametry**
+!!! function "`WIN_ReadFile`"
+ Wywołanie [funkcji `ReadFile`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile) z Win32 API.
+ ```dae
+ func void WIN_ReadFile(var int hFile,var int lpBuffer,var int nNumberOfBytesToRead,var int lpNumberOfBytesRead,var int lpOverlapped)
+ ```
+ **Parametry**
-Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile#parameters)
+ Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile#parameters)
### `WIN_CloseHandle`
-Wywołanie [funkcji `CloseHandle`](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle) z Win32 API.
-```dae
-func void WIN_CloseHandle(var int hObject)
-```
-**Parametry**
+!!! function "`WIN_CloseHandle`"
+ Wywołanie [funkcji `CloseHandle`](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle) z Win32 API.
+ ```dae
+ func void WIN_CloseHandle(var int hObject)
+ ```
+ **Parametry**
-Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle#parameters)
+ Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle#parameters)
### `WIN_GetFileSize`
-Wywołanie [funkcji `GetFileSize`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize) z Win32 API.
-```dae
-func int WIN_GetFileSize(var int hFile,var int lpFileSizeHigh)
-```
-**Parametry**
+!!! function "`WIN_GetFileSize`"
+ Wywołanie [funkcji `GetFileSize`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize) z Win32 API.
+ ```dae
+ func int WIN_GetFileSize(var int hFile,var int lpFileSizeHigh)
+ ```
+ **Parametry**
-Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#parameters)
+ Pełny opis parametrów można znaleźć [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#parameters)
-**Zwracana wartość**
+ **Zwracana wartość**
-Informacje o zwracanej wartości znajdziesz [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#return-value)
+ Informacje o zwracanej wartości znajdziesz [tutaj](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize#return-value)
### Constants
Dodatkowo istnieją pewne stałe zdefiniowane do użycia z określonymi wywołaniami funkcji silnika.
diff --git a/docs/zengin/scripts/extenders/lego/tools/event_handler.md b/docs/zengin/scripts/extenders/lego/tools/event_handler.md
index ac6c7c6d9a..014dc61eed 100644
--- a/docs/zengin/scripts/extenders/lego/tools/event_handler.md
+++ b/docs/zengin/scripts/extenders/lego/tools/event_handler.md
@@ -3,274 +3,295 @@ title: EventHandler
description: LeGo package for creating new script events and triggering them
---
# EventHandler
+
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](permmem.md)
+ **Implementation:**
+ [:material-github: EventHandler.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/EventHandler.d)
+
This package allows to create new events and trigger them at desired times. The [Gamestate](../applications/gamestate.md) package already uses it.
!!! Warning
The EventHandler requires some basic understanding of the PermMem. The documentation can be found [here](https://lego.worldofplayers.de/?PermMem).
-## Dependencies
-
-- [PermMem](permmem.md)
-
## Initialization
Initialize with `LeGo_EventHandler` flag.
```dae
LeGo_Init(LeGo_EventHandler);
```
-## Implementation
-[:material-github: EventHandler.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/EventHandler.d)
-
## Functions
### `Event_Create`
-Creates a new event and returns a handle to it.
-```dae
-func int Event_Create()
-```
-**Return value**
+!!! function "`Event_Create`"
+ Creates a new event and returns a handle to it.
+ ```dae
+ func int Event_Create()
+ ```
+ **Return value**
-The function returns a new PermMem handle to an event.
+ The function returns a new PermMem handle to an event.
### `Event_Delete`
-Alias to PermMem `delete`. Cleans up the handle.
-```dae
-func void Event_Delete(var int event)
-```
-**Parameters**
+!!! function "`Event_Delete`"
+ Alias to PermMem `delete`. Cleans up the handle.
+ ```dae
+ func void Event_Delete(var int event)
+ ```
+ **Parameters**
-- `#!dae var int event`
- Handle returned from `Event_Create`
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
### `Event_Empty`
-Checks whether the event is "empty", i.e. nothing will happen after its execution.
-```dae
-func int Event_Empty(var int event)
-```
-**Parameters**
+!!! function "`Event_Empty`"
+ Checks whether the event is "empty", i.e. nothing will happen after its execution.
+ ```dae
+ func int Event_Empty(var int event)
+ ```
+ **Parameters**
-- `#!dae var int event`
- Handle returned from `Event_Create`
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
-**Return value**
+ **Return value**
-The function returns `TRUE` if event is empty, `FALSE` is returned otherwise.
+ The function returns `TRUE` if event is empty, `FALSE` is returned otherwise.
### `Event_Has`
-Checks if `function` is added to the event.
-```dae
-func int Event_Has(var int event, var func function)
-```
-**Parameters**
+!!! function "`Event_Has`"
+ Checks if `function` is added to the event.
+ ```dae
+ func int Event_Has(var int event, var func function)
+ ```
+ **Parameters**
-- `#!dae var int event`
- Handle returned from `Event_Create`
-- `#!dae var func function`
- Checked function
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
+ - `#!dae var func function`
+ Checked function
-**Return value**
+ **Return value**
-The function returns `TRUE` if function is added, `FALSE` is returned otherwise.
+ The function returns `TRUE` if function is added, `FALSE` is returned otherwise.
### `Event_Add`
-Adds an event handler function. The handler is called after running `Event_Execute`.
-```dae
-func void Event_Add(var int event, var func function)
-```
-**Parameters**
-
-- `#!dae var int event`
- Handle returned from `Event_Create`
-- `#!dae var func function`
- Function to be added
+!!! function "`Event_Add`"
+ Adds an event handler function. The handler is called after running `Event_Execute`.
+ ```dae
+ func void Event_Add(var int event, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
+ - `#!dae var func function`
+ Function to be added
### `Event_AddOnce`
-`Event_Add` but checks if the handler function is already added, to prevent duplicates.
-```dae
-func void Event_AddOnce(var int event, var func function)
-```
-**Parameters**
-
-- `#!dae var int event`
- Handle returned from `Event_Create`
-- `#!dae var func function`
- Function to be added
+!!! function "`Event_AddOnce`"
+ `Event_Add` but checks if the handler function is already added, to prevent duplicates.
+ ```dae
+ func void Event_AddOnce(var int event, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
+ - `#!dae var func function`
+ Function to be added
### `Event_Remove`
-Removes the event handler `function` from the event.
-```dae
-func void Event_Remove(var int event, var func function)
-```
-**Parameters**
-
-- `#!dae var int event`
- Handle returned from `Event_Create`
-- `#!dae var func function`
- Function to be removed
+!!! function "`Event_Remove`"
+ Removes the event handler `function` from the event.
+ ```dae
+ func void Event_Remove(var int event, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
+ - `#!dae var func function`
+ Function to be removed
### `Event_Execute`
-Core of the package. Calls all functions registered via `Event_Add` and `Event_AddOnce`.
-```dae
-func void Event_Execute(var int event, var int data)
-```
-**Parameters**
-
-- `#!dae var int event`
- Handle returned from `Event_Create`
-- `#!dae var int data`
- Int parameter passed to all executed functions
+!!! function "`Event_Execute`"
+ Core of the package. Calls all functions registered via `Event_Add` and `Event_AddOnce`.
+ ```dae
+ func void Event_Execute(var int event, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int event`
+ Handle returned from `Event_Create`
+ - `#!dae var int data`
+ Int parameter passed to all executed functions
## Ptr functions
+
!!! Tip
The pointer functions are used internally by the previous functions. If you created an event with `Event_Create` use functions without `Ptr` in the name, but if you created event with `EventPtr_Create` use only `Ptr` functions. The normal user will probably never need the pointer versions, however the choice, which one to use is yours.
### `EventPtr_Create`
-Creates a new event and returns a pointer to it.
-```dae
-func int EventPtr_Create()
-```
-**Return value**
+!!! function "`EventPtr_Create`"
+ Creates a new event and returns a pointer to it.
+ ```dae
+ func int EventPtr_Create()
+ ```
+ **Return value**
-The function returns a new PermMem pointer to an event.
+ The function returns a new PermMem pointer to an event.
### `EventPtr_Delete`
-Alias to PermMem `free`. Cleans up the pointer.
-```dae
-func void EventPtr_Delete(var int eventPtr)
-```
-**Parameters**
+!!! function "`EventPtr_Delete`"
+ Alias to PermMem `free`. Cleans up the pointer.
+ ```dae
+ func void EventPtr_Delete(var int eventPtr)
+ ```
+ **Parameters**
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
### `EventPtr_Empty`
-Checks whether the event is "empty", i.e. nothing will happen after its execution.
-```dae
-func int EventPtr_Empty(var int eventPtr)
-```
-**Parameters**
+!!! function "`EventPtr_Empty`"
+ Checks whether the event is "empty", i.e. nothing will happen after its execution.
+ ```dae
+ func int EventPtr_Empty(var int eventPtr)
+ ```
+ **Parameters**
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
-**Return value**
+ **Return value**
-The function returns `TRUE` if empty, `FALSE` is returned otherwise.
+ The function returns `TRUE` if empty, `FALSE` is returned otherwise.
### `EventPtr_Has`
-Checks if `function` is added to an event.
-```dae
-func int EventPtr_Has(var int eventPtr, var func function)
-```
-**Parameters**
+!!! function "`EventPtr_Has`"
+ Checks if `function` is added to an event.
+ ```dae
+ func int EventPtr_Has(var int eventPtr, var func function)
+ ```
+ **Parameters**
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var func function`
- Checked function
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var func function`
+ Checked function
-**Return value**
+ **Return value**
-The function returns `TRUE` if function is added, `FALSE` is returned otherwise.
+ The function returns `TRUE` if function is added, `FALSE` is returned otherwise.
### `EventPtr_HasI`
-`EventPtr_Has` but with function ID instead of pointer. Used mainly internally.
-```dae
-func int EventPtr_HasI(var int eventPtr, var int id)
-```
-**Parameters**
+!!! function "`EventPtr_HasI`"
+ `EventPtr_Has` but with function ID instead of pointer. Used mainly internally.
+ ```dae
+ func int EventPtr_HasI(var int eventPtr, var int id)
+ ```
+ **Parameters**
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var int id`
- ID of checked function
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var int id`
+ ID of checked function
-**Return value**
+ **Return value**
-The function returns `TRUE` if function is added, `FALSE` is returned otherwise.
+ The function returns `TRUE` if function is added, `FALSE` is returned otherwise.
### `EventPtr_Add`
-Adds an event handler function. The handler is called after running `EventPtr_Execute`.
-```dae
-func void EventPtr_Add(var int eventPtr, var func function)
-```
-**Parameters**
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var func function`
- Function to be added
+!!! function "`EventPtr_Add`"
+ Adds an event handler function. The handler is called after running `EventPtr_Execute`.
+ ```dae
+ func void EventPtr_Add(var int eventPtr, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var func function`
+ Function to be added
### `EventPtr_AddI`
-`EventPtr_Add` but with function ID instead of pointer. Used mainly internally.
-```dae
-func void EventPtr_AddI(var int eventPtr, var int id)
-```
-**Parameters**
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var int id`
- ID of function to be added
+!!! function "`EventPtr_AddI`"
+ `EventPtr_Add` but with function ID instead of pointer. Used mainly internally.
+ ```dae
+ func void EventPtr_AddI(var int eventPtr, var int id)
+ ```
+ **Parameters**
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var int id`
+ ID of function to be added
### `EventPtr_AddOnce`
-`Event_Add` but checks if function is already added, to prevent duplicates.
-```dae
-func void EventPtr_AddOnce(var int eventPtr, var func function)
-```
-**Parameters**
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var func function`
- Function to be added
+!!! function "`EventPtr_AddOnce`"
+ `Event_Add` but checks if function is already added, to prevent duplicates.
+ ```dae
+ func void EventPtr_AddOnce(var int eventPtr, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var func function`
+ Function to be added
### `EventPtr_AddOnceI`
-`EventPtr_AddI` but checks if function is already added, to prevent duplicates.
-```dae
-func void EventPtr_AddOnceI(var int eventPtr, var int id)
-```
-**Parameters**
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var int id`
- ID of function to be added
+!!! function "`EventPtr_AddOnceI`"
+ `EventPtr_AddI` but checks if function is already added, to prevent duplicates.
+ ```dae
+ func void EventPtr_AddOnceI(var int eventPtr, var int id)
+ ```
+ **Parameters**
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var int id`
+ ID of function to be added
### `EventPtr_Remove`
-Removes a function from the event's call list.
-```dae
-func void EventPtr_Remove(var int eventPtr, var func function)
-```
-**Parameters**
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var func function`
- Function to be removed
+!!! function "`EventPtr_Remove`"
+ Removes a function from the event's call list.
+ ```dae
+ func void EventPtr_Remove(var int eventPtr, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var func function`
+ Function to be removed
### `EventPtr_RemoveI`
-`EventPtr_Remove` but with function ID instead of pointer. Used mainly internally.
-```dae
-func void EventPtr_RemoveI(var int eventPtr, var int id)
-```
-**Parameters**
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var int id`
- ID of function to be removed
+!!! function "`EventPtr_RemoveI`"
+ `EventPtr_Remove` but with function ID instead of pointer. Used mainly internally.
+ ```dae
+ func void EventPtr_RemoveI(var int eventPtr, var int id)
+ ```
+ **Parameters**
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var int id`
+ ID of function to be removed
### `EventPtr_Execute`
-Core of the package. Calls all functions registered via `EventPtr_Add` and `EventPtr_AddOnce`.
-```dae
-func void EventPtr_Execute(var int eventPtr, var int data)
-```
-
-- `#!dae var int eventPtr`
- Pointer returned from `EventPtr_Create`
-- `#!dae var int data`
- Int parameter passed to all executed functions
+!!! function "`EventPtr_Execute`"
+ Core of the package. Calls all functions registered via `EventPtr_Add` and `EventPtr_AddOnce`.
+ ```dae
+ func void EventPtr_Execute(var int eventPtr, var int data)
+ ```
+
+ - `#!dae var int eventPtr`
+ Pointer returned from `EventPtr_Create`
+ - `#!dae var int data`
+ Int parameter passed to all executed functions
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/frame_functions.md b/docs/zengin/scripts/extenders/lego/tools/frame_functions.md
index 90fff3d137..9da65f12c8 100644
--- a/docs/zengin/scripts/extenders/lego/tools/frame_functions.md
+++ b/docs/zengin/scripts/extenders/lego/tools/frame_functions.md
@@ -3,253 +3,271 @@ title: FrameFunctions
description: LeGo package for calling script functions on every frame, or every time delay
---
# FrameFunctions
-The FrameFunctions package allows to call any number of functions called on every frame, or every specified time delay.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [Floats](../../ikarus/floats.md)
+ - [PermMem](permmem.md)
+ - [HookEngine](../tools/hook_engine.md)
+ - [Timer](timer.md)
+ **Implementation:**
+ [:material-github: FrameFunctions.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/FrameFunctions.d)
-- [Floats](../../ikarus/floats.md)
-- [PermMem](permmem.md)
-- [HookEngine](../tools/hook_engine.md)
-- [Timer](timer.md)
+The FrameFunctions package allows to call any number of functions called on every frame, or every specified time delay.
## Initialization
Initialize with `LeGo_FrameFunctions` flag.
```dae
LeGo_Init(LeGo_FrameFunctions);
```
-## Implementation
-[:material-github: FrameFunctions.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/FrameFunctions.d)
## Functions
### `FF_Apply`
-Adds the Daedalus function `function` to the running FrameFunctions list. `function` is called each frame.
-```dae
-func void FF_Apply(var func function)
-```
-**Parameters**
+!!! function "`FF_Apply`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. `function` is called each frame.
+ ```dae
+ func void FF_Apply(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the function
+ - `#!dae var func function`
+ Name of the function
### `FF_ApplyGT`
-Adds the Daedalus function `function` to the running FrameFunctions list. `function` is called every frame except when the game is paused.
-```dae
-func void FF_ApplyGT(var func function)
-```
-**Parameters**
+!!! function "`FF_ApplyGT`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. `function` is called every frame except when the game is paused.
+ ```dae
+ func void FF_ApplyGT(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the function
+ - `#!dae var func function`
+ Name of the function
### `FF_ApplyData`
-Adds the Daedalus function `function` to the running FrameFunctions list. The integer parameter `data` is passed to the function `function`.
-```dae
-func void FF_ApplyData(var func function, var int data)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function.
-- `#!dae var int data`
- Value passed to the function as a parameter
-
+!!! function "`FF_ApplyData`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. The integer parameter `data` is passed to the function `function`.
+ ```dae
+ func void FF_ApplyData(var func function, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function.
+ - `#!dae var int data`
+ Value passed to the function as a parameter
### `FF_ApplyExt`
-Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times.
-```dae
-func void FF_ApplyExt(var func function, var int delay, var int cycles)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
+!!! function "`FF_ApplyExt`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times.
+ ```dae
+ func void FF_ApplyExt(var func function, var int delay, var int cycles)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
### `FF_ApplyExtGT`
-Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times. Gets called only when the game is not paused.
-```dae
-func void FF_ApplyExtGT(var func function, var int delay, var int cycles)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
+!!! function "`FF_ApplyExtGT`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times. Gets called only when the game is not paused.
+ ```dae
+ func void FF_ApplyExtGT(var func function, var int delay, var int cycles)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
### `FF_ApplyExtData`
-Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times. The integer parameter `data` is passed to the function `function`.
-```dae
-func void FF_ApplyExtData(var func function, var int delay, var int cycles, var int data)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function.
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
-- `#!dae var int data`
- Value passed to the function as a parameter
+!!! function "`FF_ApplyExtData`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times. The integer parameter `data` is passed to the function `function`.
+ ```dae
+ func void FF_ApplyExtData(var func function, var int delay, var int cycles, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function.
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
+ - `#!dae var int data`
+ Value passed to the function as a parameter
### `FF_ApplyExtDataGT`
-Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times. The integer parameter `data` is passed to the function `function`. Gets called only when the game is not paused.
-```dae
-func void FF_ApplyExtData(var func function, var int delay, var int cycles, var int data)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function.
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
-- `#!dae var int data`
- Value passed to the function as a parameter
+!!! function "`FF_ApplyExtDataGT`"
+ Adds the Daedalus function `function` to the running FrameFunctions list. The function `function` is called every `delay` milliseconds, and it runs only `cycles` number of times. The integer parameter `data` is passed to the function `function`. Gets called only when the game is not paused.
+ ```dae
+ func void FF_ApplyExtData(var func function, var int delay, var int cycles, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function.
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
+ - `#!dae var int data`
+ Value passed to the function as a parameter
### `FF_ApplyOnce`
-Alias to [FF_Apply](#ff_apply), which only adds the function once, even after multiple calls.
-```dae
-func void FF_ApplyOnce(var func function)
-```
-**Parameters**
+!!! function "`FF_ApplyOnce`"
+ Alias to [FF_Apply](#ff_apply), which only adds the function once, even after multiple calls.
+ ```dae
+ func void FF_ApplyOnce(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the function
+ - `#!dae var func function`
+ Name of the function
### `FF_ApplyOnceGT`
-Alias to [FF_ApplyGT](#ff_applygt), which only adds the function once, even after multiple calls. Loop doesn't run if the game is paused.
-```dae
-func voidoften FF_ApplyOnceGT(var func function)
-```
-**Parameters**
+!!! function "`FF_ApplyOnceGT`"
+ Alias to [FF_ApplyGT](#ff_applygt), which only adds the function once, even after multiple calls. Loop doesn't run if the game is paused.
+ ```dae
+ func voidoften FF_ApplyOnceGT(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the function.
+ - `#!dae var func function`
+ Name of the function.
### `FF_ApplyOnceData`
-Alias to [FF_ApplyData](#ff_applydata), which only adds the function with the specified parameter once, even after multiple calls.
-```dae
-func void FF_ApplyOnceData(var func function, var int data)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function.
-- `#!dae var int data`
- Value passed to the function as a parameter
+!!! function "`FF_ApplyOnceData`"
+ Alias to [FF_ApplyData](#ff_applydata), which only adds the function with the specified parameter once, even after multiple calls.
+ ```dae
+ func void FF_ApplyOnceData(var func function, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function.
+ - `#!dae var int data`
+ Value passed to the function as a parameter
### `FF_ApplyOnceExt`
-Alias to [FF_ApplyExt](#ff_applyext), which adds the function only once, after repeated calls.
-```dae
-func void FF_ApplyOnceExt(var func function, var int delay, var int cycles)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
+!!! function "`FF_ApplyOnceExt`"
+ Alias to [FF_ApplyExt](#ff_applyext), which adds the function only once, after repeated calls.
+ ```dae
+ func void FF_ApplyOnceExt(var func function, var int delay, var int cycles)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
### `FF_ApplyOnceExtGT`
-Alias to [FF_ApplyExtGT](#ff_applyextgt), which adds the function only once after repeated calls. Loop doesn't run if the game is paused.
-```dae
-func void FF_ApplyOnceExtGT(var func function, var int delay, var int cycles)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
+!!! function "`FF_ApplyOnceExtGT`"
+ Alias to [FF_ApplyExtGT](#ff_applyextgt), which adds the function only once after repeated calls. Loop doesn't run if the game is paused.
+ ```dae
+ func void FF_ApplyOnceExtGT(var func function, var int delay, var int cycles)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
### `FF_ApplyOnceExtData`
-Alias to [FF_ApplyExtData](#ff_applyextdata), which adds the function with the specified parameter only once, after repeated calls.
-```dae
-func void FF_ApplyOnceExtData(var func function, var int delay, var int cycles, var int data)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the function
-- `#!dae var int delay`
- Delay between calls in milliseconds (0 = every frame)
-- `#!dae var int cycles`
- How many times should the function be called (-1 = endless)
-- `#!dae var int data`
- Value passed to the function as a parameter
+!!! function "`FF_ApplyOnceExtData`"
+ Alias to [FF_ApplyExtData](#ff_applyextdata), which adds the function with the specified parameter only once, after repeated calls.
+ ```dae
+ func void FF_ApplyOnceExtData(var func function, var int delay, var int cycles, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the function
+ - `#!dae var int delay`
+ Delay between calls in milliseconds (0 = every frame)
+ - `#!dae var int cycles`
+ How many times should the function be called (-1 = endless)
+ - `#!dae var int data`
+ Value passed to the function as a parameter
### `FF_Active`
-Checks whether the `function` is active.
-```dae
-func int FF_Active(var func function)
-```
-**Parameters**
+!!! function "`FF_Active`"
+ Checks whether the `function` is active.
+ ```dae
+ func int FF_Active(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the function
+ - `#!dae var func function`
+ Name of the function
-**Return value**
-The function returns `TRUE` if the function is active, `FALSE` if it is not.
+ **Return value**
+ The function returns `TRUE` if the function is active, `FALSE` if it is not.
### `FF_ActiveData`
-Checks whether the `function` with the specified `data` is active.
-```dae
-func int FF_ActiveData(var func function, var int data)
-```
-**Parameters**
+!!! function "`FF_ActiveData`"
+ Checks whether the `function` with the specified `data` is active.
+ ```dae
+ func int FF_ActiveData(var func function, var int data)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the function
-- `#!dae var int data`
- Value previously passed to the function
+ - `#!dae var func function`
+ Name of the function
+ - `#!dae var int data`
+ Value previously passed to the function
-**Return value**
-The function returns `TRUE` if the function is active, `FALSE` if it is not.
+ **Return value**
+ The function returns `TRUE` if the function is active, `FALSE` if it is not.
### `FF_Remove`
-Stops a specific FrameFunction.
-```dae
-func void FF_Remove(var func function)
-```
-**Parameters**
+!!! function "`FF_Remove`"
+ Stops a specific FrameFunction.
+ ```dae
+ func void FF_Remove(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the stopped function
+ - `#!dae var func function`
+ Name of the stopped function
### `FF_RemoveAll`
-Stops all intsnces of a specific FrameFunction.
-```dae
-func void FF_RemoveAll(var func function)
-```
-**Parameters**
+!!! function "`FF_RemoveAll`"
+ Stops all intsnces of a specific FrameFunction.
+ ```dae
+ func void FF_RemoveAll(var func function)
+ ```
+ **Parameters**
-- `#!dae var func function`
- Name of the stopped function
+ - `#!dae var func function`
+ Name of the stopped function
### `FF_RemoveData`
-Stops a specific FrameFunction, with the specified value (see [`FF_ApplyExtData`](#ff_applyextdata) ).
-```dae
-func void FF_RemoveData(var func function, var int data)
-```
-**Parameters**
-
-- `#!dae var func function`
- Name of the stopped function
-- `#!dae var int data`
- Value previously passed to the function as a parameter
+!!! function "`FF_RemoveData`"
+ Stops a specific FrameFunction, with the specified value (see [`FF_ApplyExtData`](#ff_applyextdata) ).
+ ```dae
+ func void FF_RemoveData(var func function, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var func function`
+ Name of the stopped function
+ - `#!dae var int data`
+ Value previously passed to the function as a parameter
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/hashtables.md b/docs/zengin/scripts/extenders/lego/tools/hashtables.md
index f0003acd9f..38ffc3597c 100644
--- a/docs/zengin/scripts/extenders/lego/tools/hashtables.md
+++ b/docs/zengin/scripts/extenders/lego/tools/hashtables.md
@@ -3,180 +3,191 @@ title: Hashtables
description: LeGo package implementing Hashtable data structure to gothic scripts
---
# Hashtables
-Hashtables package is an implementation of hashtables in Gothic. Currently (version 2.8.0) only integers are supported as keys. The Hashtables grow automatically.
-
-
-## Dependencies
-- [PermMem](permmem.md)
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](permmem.md)
+ **Implementation:**
+ [:material-github: Hashtable.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Hashtable.d)
+Hashtables package is an implementation of hashtables in Gothic. Currently (version 2.8.0) only integers are supported as keys. The Hashtables grow automatically.
+
## Initialization
Initialize with `LeGo_PermMem` flag.
```dae
LeGo_Init(LeGo_PermMem);
```
-## Implementation
-[:material-github: Hashtable.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Hashtable.d)
-
-
## Functions
### `HT_CreateSized`
-Generates a hashtable of the specified size.
-```dae
-func int HT_CreateSized(var int size)
-```
-**Parameters**
+!!! function "`HT_CreateSized`"
+ Generates a hashtable of the specified size.
+ ```dae
+ func int HT_CreateSized(var int size)
+ ```
+ **Parameters**
-- `#!dae var int size`
- Size of the hashtable to be created
+ - `#!dae var int size`
+ Size of the hashtable to be created
-**Return value**
+ **Return value**
-The function returns a handle to the created hashtable.
+ The function returns a handle to the created hashtable.
### `HT_Create`
-Generates a standard size hashtable.
-```dae
-func int HT_Create()
-```
-**Return value**
+!!! function "`HT_Create`"
+ Generates a standard size hashtable.
+ ```dae
+ func int HT_Create()
+ ```
+ **Return value**
-The function returns a handle to the created hashtable.
+ The function returns a handle to the created hashtable.
### `HT_Insert`
-Inserts a value into the Hashtable.
-```dae
-func void HT_Insert(var int handle, var int val, var int key)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int val`
- The value to be inserted
-- `#!dae var int key`
- The key associated with the value
+!!! function "`HT_Insert`"
+ Inserts a value into the Hashtable.
+ ```dae
+ func void HT_Insert(var int handle, var int val, var int key)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int val`
+ The value to be inserted
+ - `#!dae var int key`
+ The key associated with the value
### `HT_Resize`
-Changes the size of the hashtable (usually not necessary as it happens automatically).
-```dae
-func void HT_Resize(var int handle, var int size)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int size`
- The new size of the hashtable
+!!! function "`HT_Resize`"
+ Changes the size of the hashtable (usually not necessary as it happens automatically).
+ ```dae
+ func void HT_Resize(var int handle, var int size)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int size`
+ The new size of the hashtable
### `HT_Get`
-Reads a value from the hashtable.
-```dae
-func int HT_Get(var int handle, var int key)
-```
-**Parameters**
+!!! function "`HT_Get`"
+ Reads a value from the hashtable.
+ ```dae
+ func int HT_Get(var int handle, var int key)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int key`
- The key whose value is to be read
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int key`
+ The key whose value is to be read
-**Return value**
+ **Return value**
-The function returns the value associated with the key.
+ The function returns the value associated with the key.
### `HT_Has`
-Checks if the key already exist in hashtable.
-```dae
-func int HT_Has(var int handle, var int key)
-```
-**Parameters**
+!!! function "`HT_Has`"
+ Checks if the key already exist in hashtable.
+ ```dae
+ func int HT_Has(var int handle, var int key)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int key`
- The key to be checked
-**Return value**
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int key`
+ The key to be checked
+ **Return value**
-The function returns `TRUE` if the key exist, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the key exist, `FALSE` is returned otherwise.
### `HT_Remove`
-Removes a key from the hashtable.
-```dae
-func void HT_Remove(var int handle, var int key)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int key`
- The key to be removed
+!!! function "`HT_Remove`"
+ Removes a key from the hashtable.
+ ```dae
+ func void HT_Remove(var int handle, var int key)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int key`
+ The key to be removed
### `HT_Change`
-Changes the value of a key already existing in the hashtable.
-```dae
-func void HT_Change(var int handle, var int val, var int key)
-```
-**Parameters**
+!!! function "`HT_Change`"
+ Changes the value of a key already existing in the hashtable.
+ ```dae
+ func void HT_Change(var int handle, var int val, var int key)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int val`
- The new value
-- `#!dae var int key`
- The key whose value is to be changed
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int val`
+ The new value
+ - `#!dae var int key`
+ The key whose value is to be changed
### `HT_InsertOrChange`
-Inserts a value into the Hashtable, or changes the value if the key already exist into hashtable.
-```dae
-func void HT_InsertOrChange(var int handle, var int val, var int key)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var int val`
- The new value
-- `#!dae var int key`
- The key whose value is to be changed or associated with the value.
+!!! function "`HT_InsertOrChange`"
+ Inserts a value into the Hashtable, or changes the value if the key already exist into hashtable.
+ ```dae
+ func void HT_InsertOrChange(var int handle, var int val, var int key)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var int val`
+ The new value
+ - `#!dae var int key`
+ The key whose value is to be changed or associated with the value.
+
### `HT_GetNumber`
-Returns the number of entries in a hashtable.
-```dae
-func int HT_GetNumber(var int handle)
-```
-**Parameters**
+!!! function "`HT_GetNumber`"
+ Returns the number of entries in a hashtable.
+ ```dae
+ func int HT_GetNumber(var int handle)
+ ```
+ **Parameters**
-- `#!dae var int handle`
- Handle of a hashtable
+ - `#!dae var int handle`
+ Handle of a hashtable
-**Return value**
+ **Return value**
-The function returns the number of entries in the hashtable.
+ The function returns the number of entries in the hashtable.
### `HT_ForEach`
-Performs a function for each value pair in the hashtable.
-```dae
-func void HT_ForEach(var int handle, var func fnc)
-```
-**Parameters**
-
-- `#!dae var int handle`
- Handle of a hashtable
-- `#!dae var func fnc`
- A function with signature void `(int key, int val)`
+!!! function "`HT_ForEach`"
+ Performs a function for each value pair in the hashtable.
+ ```dae
+ func void HT_ForEach(var int handle, var func fnc)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ Handle of a hashtable
+ - `#!dae var func fnc`
+ A function with signature void `(int key, int val)`
### `HT_Destroy`
-Deletes the hashtable.
-```dae
-func void HT_Destroy(var int handle)
-```
-**Parameters**
-
-- `#!dae var int handle`
- The handle of the hashtable to be deleted
+!!! function "`HT_Destroy`"
+ Deletes the hashtable.
+ ```dae
+ func void HT_Destroy(var int handle)
+ ```
+ **Parameters**
+
+ - `#!dae var int handle`
+ The handle of the hashtable to be deleted
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/hook_dae.md b/docs/zengin/scripts/extenders/lego/tools/hook_dae.md
index eaaf3ef5d6..a8702cf398 100644
--- a/docs/zengin/scripts/extenders/lego/tools/hook_dae.md
+++ b/docs/zengin/scripts/extenders/lego/tools/hook_dae.md
@@ -3,119 +3,129 @@ title: HookDaedalus
description: LeGo package for hooking daedalus script functions
---
# HookDaedalus
+
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: HookDaedalus.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/HookDaedalus.d)
+
This package allows hooking daedalus functions. The principle is similar [HookEngine](hook_engine.md). We have a function (hooked function) into which we would like to hook another function (hook function).
!!! Tip
Having to hook a Daedalus function should be pretty rare, because you can simply adjust the corresponding function. However, it may become necessary in some contexts.
-## Dependencies
-N/A
-
## Initialization
N/A
-## Implementation
-[:material-github: HookDaedalus.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/HookDaedalus.d)
-
## Functions
### `HookDaedalusFunc`
-Hooks the function.
-```dae
-func void HookDaedalusFunc(var func hooked, var func hook)
-```
-**Parameters**
-
-- `#!dae var func hooked`
- Hooked function
-- `#!dae var func hook`
- Hook function
+!!! function "`HookDaedalusFunc`"
+ Hooks the function.
+ ```dae
+ func void HookDaedalusFunc(var func hooked, var func hook)
+ ```
+ **Parameters**
+
+ - `#!dae var func hooked`
+ Hooked function
+ - `#!dae var func hook`
+ Hook function
### `HookDaedalusFuncF`
-Alias to the `HookDaedalusFunc` function.
-```dae
-func void HookDaedalusFuncF(var func hooked, var func hook)
-```
-**Parameters**
-
-- `#!dae var func hooked`
- Hooked function
-- `#!dae var func hook`
- Hook function
+!!! function "`HookDaedalusFuncF`"
+ Alias to the `HookDaedalusFunc` function.
+ ```dae
+ func void HookDaedalusFuncF(var func hooked, var func hook)
+ ```
+ **Parameters**
+
+ - `#!dae var func hooked`
+ Hooked function
+ - `#!dae var func hook`
+ Hook function
### `HookDaedalusFuncI`
-`HookDaedalusFunc` but with function ID.
-```dae
-func void HookDaedalusFuncI(var int hookedID, var int hookID)
-```
-**Parameters**
-
-- `#!dae var int hookedID`
- ID of hooked function
-- `#!dae var int hookID`
- ID of hook function
+!!! function "`HookDaedalusFuncI`"
+ `HookDaedalusFunc` but with function ID.
+ ```dae
+ func void HookDaedalusFuncI(var int hookedID, var int hookID)
+ ```
+ **Parameters**
+
+ - `#!dae var int hookedID`
+ ID of hooked function
+ - `#!dae var int hookID`
+ ID of hook function
### `HookDaedalusFuncS`
-`HookDaedalusFunc` but with function name.
-```dae
-func void HookDaedalusFuncS(var string hookedName, var string hookName)
-```
-**Parameters**
-
-- `#!dae var string hookedName`
- Name of hooked function
-- `#!dae var string hookName`
- Name of hook function
+!!! function "`HookDaedalusFuncS`"
+ `HookDaedalusFunc` but with function name.
+ ```dae
+ func void HookDaedalusFuncS(var string hookedName, var string hookName)
+ ```
+ **Parameters**
+
+ - `#!dae var string hookedName`
+ Name of hooked function
+ - `#!dae var string hookName`
+ Name of hook function
### `IsHookD`
-Checks whether a function is already hooking another. Each function can be hooked any number of times, but each function can only hook one other.
-```dae
-func int IsHookD(var int funcID)
-```
-**Parameters**
+!!! function "`IsHookD`"
+ Checks whether a function is already hooking another. Each function can be hooked any number of times, but each function can only hook one other.
+ ```dae
+ func int IsHookD(var int funcID)
+ ```
+ **Parameters**
-- `#!dae var int funcID`
- Symbol index of a hook function
+ - `#!dae var int funcID`
+ Symbol index of a hook function
-**Return value**
+ **Return value**
-The function returns `TRUE` if the function is already hooking another, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the function is already hooking another, `FALSE` is returned otherwise.
### `ContinueCall`
-Continues the program run with the original function.
-```dae
-func void ContinueCall()
-```
+!!! function "`ContinueCall`"
+ Continues the program run with the original function.
+ ```dae
+ func void ContinueCall()
+ ```
### `PassArgumentI`
-Passes an integer as an argument to the original function. Must be called before `ContinueCall`.
-```dae
-func void PassArgumentI(var int i)
-```
-**Parameters**
+!!! function "`PassArgumentI`"
+ Passes an integer as an argument to the original function. Must be called before `ContinueCall`.
+ ```dae
+ func void PassArgumentI(var int i)
+ ```
+ **Parameters**
-- `#!dae var int i`
- Integer argument to forward
+ - `#!dae var int i`
+ Integer argument to forward
### `PassArgumentS`
-Passes a string as an argument to the original function. Must be called before `ContinueCall`.
-```dae
-func void PassArgumentS(var string s)
-```
-**Parameters**
+!!! function "`PassArgumentS`"
+ Passes a string as an argument to the original function. Must be called before `ContinueCall`.
+ ```dae
+ func void PassArgumentS(var string s)
+ ```
+ **Parameters**
-- `#!dae var string s`
- String argument to forward
+ - `#!dae var string s`
+ String argument to forward
### `PassArgumentN`
-Passes an instance as an argument to the original function. Must be called before `ContinueCall`.
-```dae
-func void PassArgumentN(var instance n)
-```
-**Parameters**
-
-- `#!dae var instance n`
- Instance argument to forward
+!!! function "`PassArgumentN`"
+ Passes an instance as an argument to the original function. Must be called before `ContinueCall`.
+ ```dae
+ func void PassArgumentN(var instance n)
+ ```
+ **Parameters**
+
+ - `#!dae var instance n`
+ Instance argument to forward
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/hook_engine.md b/docs/zengin/scripts/extenders/lego/tools/hook_engine.md
index 82d480104e..dd6550524e 100644
--- a/docs/zengin/scripts/extenders/lego/tools/hook_engine.md
+++ b/docs/zengin/scripts/extenders/lego/tools/hook_engine.md
@@ -3,247 +3,265 @@ title: HookEngine
description: LeGo package for hooking engine functions
---
# HookEngine
+
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: HookEngine.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/HookEngine.d)
+
This package allows you to hook anywhere in an engine function to run your own Daedalus code.
!!! Tip
Zerxes has provided a list of all engine functions for G2, including the number of bytes to fill in for `oldInstr`. This list can be found [here](https://forum.worldofplayers.de/forum/threads/1023720-Skriptpaket-LeGo/page14?p=17631567#post17631567). This should make it possible for everyone to use the HookEngine effectively without IDA.
-## Dependencies
-N/A
-
## Initialization
N/A
-## Implementation
-[:material-github: HookEngine.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/HookEngine.d)
-
## Functions
### `HookEngine`
-Attaches a function to an engine function address.
-```dae
-func void HookEngine(var int address, var int oldInstr, var string function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var string function`
- Name of Daedalus function to be called.
+!!! function "`HookEngine`"
+ Attaches a function to an engine function address.
+ ```dae
+ func void HookEngine(var int address, var int oldInstr, var string function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var string function`
+ Name of Daedalus function to be called.
### `HookEngineS`
-Alias to the `HookEngine` function.
-```dae
-func void HookEngineS(var int address, var int oldInstr, var string function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var string function`
- Name of Daedalus function to be called.
+!!! function "`HookEngineS`"
+ Alias to the `HookEngine` function.
+ ```dae
+ func void HookEngineS(var int address, var int oldInstr, var string function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var string function`
+ Name of Daedalus function to be called.
### `HookEngineI`
-Alias to `HookEngine` with funcID.
-```dae
-func void HookEngineI(var int address, var int oldInstr, var int funcID)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var int funcID`
- ID of Daedalus function to be called.
+!!! function "`HookEngineI`"
+ Alias to `HookEngine` with funcID.
+ ```dae
+ func void HookEngineI(var int address, var int oldInstr, var int funcID)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var int funcID`
+ ID of Daedalus function to be called.
### `HookEngineF`
-Alias to `HookEngine` with `func` parameter.
-```dae
-func void HookEngineF(var int address, var int oldInstr, var func function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var func function`
- Daedalus function to be called.
+!!! function "`HookEngineF`"
+ Alias to `HookEngine` with `func` parameter.
+ ```dae
+ func void HookEngineF(var int address, var int oldInstr, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var func function`
+ Daedalus function to be called.
### `IsHooked`
-Checks if a hook is already present at a given address.
-```dae
-func var int IsHooked(var int address)
-```
-**Parameters**
+!!! function "`IsHooked`"
+ Checks if a hook is already present at a given address.
+ ```dae
+ func var int IsHooked(var int address)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Address of an engine function.
+ - `#!dae var int address`
+ Address of an engine function.
-**Return value**
+ **Return value**
-The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
### `IsHook`
-Checks if a hook with a certain function is already present at an address.
-```dae
-func var int IsHook(var int address, var string function)
-```
-**Parameters**
+!!! function "`IsHook`"
+ Checks if a hook with a certain function is already present at an address.
+ ```dae
+ func var int IsHook(var int address, var string function)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Address of an engine function.
-- `#!dae var string function`
- Name of a function.
+ - `#!dae var int address`
+ Address of an engine function.
+ - `#!dae var string function`
+ Name of a function.
-**Return value**
+ **Return value**
-The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
### `IsHookI`
-Alias to `IsHook` with a funcID as parameter.
-```dae
-func var int IsHookI(var int address, var int funcID)
-```
-**Parameters**
+!!! function "`IsHookI`"
+ Alias to `IsHook` with a funcID as parameter.
+ ```dae
+ func var int IsHookI(var int address, var int funcID)
+ ```
+ **Parameters**
-- `#!dae var int address`
- Address of an engine function.
-- `#!dae var int funcID`
- ID of a function.
+ - `#!dae var int address`
+ Address of an engine function.
+ - `#!dae var int funcID`
+ ID of a function.
-**Return value**
+ **Return value**
-The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
### `IsHookF`
-Alias to `IsHook` with a function as parameter.
-```dae
-func var int IsHookF(var int address, var func function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function.
-- `#!dae var func function`
- Daedalus function.
-
-**Return value**
-`func` parameter
-The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
+!!! function "`IsHookF`"
+ Alias to `IsHook` with a function as parameter.
+ ```dae
+ func var int IsHookF(var int address, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function.
+ - `#!dae var func function`
+ Daedalus function.
+
+ **Return value**
+ `func` parameter
+ The function returns `TRUE` if the hook already exists at the address, `FALSE` is returned otherwise.
### `RemoveHook`
-Removes a function from a hook so that it is no longer called.
-```dae
-func void RemoveHook(var int address, var int oldInstr, var string function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var string function`
- Name of Daedalus function that should no longer be called.
+!!! function "`RemoveHook`"
+ Removes a function from a hook so that it is no longer called.
+ ```dae
+ func void RemoveHook(var int address, var int oldInstr, var string function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var string function`
+ Name of Daedalus function that should no longer be called.
### `RemoveHookI`
-Alias to `RemoveHook` with funcID.
-```dae
-func void RemoveHook(var int address, var int oldInstr, var int funcID)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var int funcID`
- ID of Daedalus function that should no longer be called.
+!!! function "`RemoveHookI`"
+ Alias to `RemoveHook` with funcID.
+ ```dae
+ func void RemoveHook(var int address, var int oldInstr, var int funcID)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var int funcID`
+ ID of Daedalus function that should no longer be called.
### `RemoveHookF`
-Alias for `RemoveHook` with `func` parameter.
-```dae
-func void RemoveHook(var int address, var int oldInstr, var func function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of an engine function to which the function should be attached.
-- `#!dae var int oldInstr`
- The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
-- `#!dae var func function`
- Daedalus function that should no longer be called.
+!!! function "`RemoveHookF`"
+ Alias for `RemoveHook` with `func` parameter.
+ ```dae
+ func void RemoveHook(var int address, var int oldInstr, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of an engine function to which the function should be attached.
+ - `#!dae var int oldInstr`
+ The length in bytes of the instruction to be found at `address`, at least 5 bytes. Can be seen in IDA.
+ - `#!dae var func function`
+ Daedalus function that should no longer be called.
### `ReplaceEngineFunc`
-Replaces an engine function with a Daedalus function.
-```dae
-func void ReplaceEngineFunc(var int address, var int thiscall_numparams, var string replaceFunc)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of the engine function to be replaced.
-- `#!dae var int thiscall_numparams`
- Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
-- `#!dae var string replaceFunc`
- Name of a Daedalus function to be called instead.
+!!! function "`ReplaceEngineFunc`"
+ Replaces an engine function with a Daedalus function.
+ ```dae
+ func void ReplaceEngineFunc(var int address, var int thiscall_numparams, var string replaceFunc)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of the engine function to be replaced.
+ - `#!dae var int thiscall_numparams`
+ Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
+ - `#!dae var string replaceFunc`
+ Name of a Daedalus function to be called instead.
### `ReplaceEngineFuncI`
-Alias to `ReplaceEngineFunc` with funcID.
-```dae
-func void ReplaceEngineFunc(var int address, var int thiscall_numparams, var int funcID)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of the engine function to be replaced.
-- `#!dae var int thiscall_numparams`
- Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
-- `#!dae var int funcID`
- ID of a Daedalus function to be called instead.
+!!! function "`ReplaceEngineFuncI`"
+ Alias to `ReplaceEngineFunc` with funcID.
+ ```dae
+ func void ReplaceEngineFunc(var int address, var int thiscall_numparams, var int funcID)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of the engine function to be replaced.
+ - `#!dae var int thiscall_numparams`
+ Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
+ - `#!dae var int funcID`
+ ID of a Daedalus function to be called instead.
### `ReplaceEngineFuncF`
-Alias to `ReplaceEngineFunc` with func parameter.
-```dae
-func void ReplaceEngineFunc(var int address, var int thiscall_numparams, var func function)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of the engine function to be replaced.
-- `#!dae var int thiscall_numparams`
- Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
-- `#!dae var func function`
- Daedalus function to be called instead.
+!!! function "`ReplaceEngineFuncF`"
+ Alias to `ReplaceEngineFunc` with func parameter.
+ ```dae
+ func void ReplaceEngineFunc(var int address, var int thiscall_numparams, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of the engine function to be replaced.
+ - `#!dae var int thiscall_numparams`
+ Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
+ - `#!dae var func function`
+ Daedalus function to be called instead.
### `DisableEngineFunc`
-Makes sure that an engine function is simply skipped. This is very delicate and will not always work so easily.
-```dae
-func void DisableEngineFunc(var int address, var int thiscall_numparams)
-```
-**Parameters**
-
-- `#!dae var int address`
- Address of the engine function to be skipped.
-- `#!dae var int thiscall_numparams`
- Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
+!!! function "`DisableEngineFunc`"
+ Makes sure that an engine function is simply skipped. This is very delicate and will not always work so easily.
+ ```dae
+ func void DisableEngineFunc(var int address, var int thiscall_numparams)
+ ```
+ **Parameters**
+
+ - `#!dae var int address`
+ Address of the engine function to be skipped.
+ - `#!dae var int thiscall_numparams`
+ Number of parameters passed to the engine function, if it is a stdcall or thiscall (otherwise 0).
### `Hook_ReturnFalse`
-Simple function to replace `return FALSE` in hook.
-```dae
-func void Hook_ReturnFalse()
-```
+!!! function "`Hook_ReturnFalse`"
+ Simple function to replace `return FALSE` in hook.
+ ```dae
+ func void Hook_ReturnFalse()
+ ```
### `Hook_ReturnTrue`
-Simple function to replace `return TRUE` in hook.
-```dae
-func void Hook_ReturnTrue()
-```
+!!! function "`Hook_ReturnTrue`"
+ Simple function to replace `return TRUE` in hook.
+ ```dae
+ func void Hook_ReturnTrue()
+ ```
## Registers
In addition the HookEngine package implement x86 32-bit registers that can be used to access hooked function parameters.
diff --git a/docs/zengin/scripts/extenders/lego/tools/int64.md b/docs/zengin/scripts/extenders/lego/tools/int64.md
index dac5056ab3..a1d45dee3a 100644
--- a/docs/zengin/scripts/extenders/lego/tools/int64.md
+++ b/docs/zengin/scripts/extenders/lego/tools/int64.md
@@ -3,106 +3,113 @@ title: Int64
description: LeGo package implementing 64 bit integer support
---
# Int64
-Int64 implements basic arithmetic for 64-bit integers based on machine code (hence the function signatures are also in machine code style). Furthermore, Int64 offers the constructor `int64@` for Int64 objects, but mk64 expects a pointer, not a handle.
-## Dependencies
-N/A
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: Int64.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Int64.d)
+
+Int64 implements basic arithmetic for 64-bit integers based on machine code (hence the function signatures are also in machine code style). Furthermore, Int64 offers the constructor `int64@` for Int64 objects, but mk64 expects a pointer, not a handle.
## Initialization
N/A
-## Implementation
-[:material-github: Int64.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Int64.d)
-
## Functions
### `mk64`
-Writes `lo` and `hi` in one place (dest). Makes Int64, `hi` has to be `-1` for negative 32bit `lo`.
-```dae
-func void mk64(var int dest, var int hi, var int lo)
-```
-**Parameters**
-
-- `#!dae var int dest`
- A pointer to an Int64 object or just 8 bytes of free memory.
-- `#!dae var int hi`
- High part of integer.
-- `#!dae var int lo`
- Low part of integer.
-
-??? abstract "Examples"
- Function looks like that:
+!!! function "`mk64`"
+ Writes `lo` and `hi` in one place (dest). Makes Int64, `hi` has to be `-1` for negative 32bit `lo`.
```dae
- func void mk64(var int dest, var int lo, var int hi) {
- MEM_WriteInt(dest, lo);
- MEM_WriteInt(dest+4, hi);
- };
+ func void mk64(var int dest, var int hi, var int lo)
```
- So if you want to get `9876543210` low part should be set to `1286608618` and the high part to `2`
+ **Parameters**
+
+ - `#!dae var int dest`
+ A pointer to an Int64 object or just 8 bytes of free memory.
+ - `#!dae var int hi`
+ High part of integer.
+ - `#!dae var int lo`
+ Low part of integer.
+
+ ??? abstract "Examples"
+ Function looks like that:
+ ```dae
+ func void mk64(var int dest, var int lo, var int hi) {
+ MEM_WriteInt(dest, lo);
+ MEM_WriteInt(dest+4, hi);
+ };
+ ```
+ So if you want to get `9876543210` low part should be set to `1286608618` and the high part to `2`
+
+ ```dae
+ var int ptr; ptr = MEM_Alloc(8);
+ var int low; low = 1286608618;
+ var int high; high = 2;
+ mk64(ptr, low, high);
+ // ...
+ MEM_Free(ptr);
+ ```
+### `neg64`
+!!! function "`neg64`"
+ Negates the integer: `*dest <- -(*dest)`
```dae
- var int ptr; ptr = MEM_Alloc(8);
- var int low; low = 1286608618;
- var int high; high = 2;
- mk64(ptr, low, high);
- // ...
- MEM_Free(ptr);
+ func void neg64(var int dest)
```
+ **Parameters**
-### `neg64`
-Negates the integer: `*dest <- -(*dest)`
-```dae
-func void neg64(var int dest)
-```
-**Parameters**
-
-- `#!dae var int dest`
- A pointer to an Int64 object or just 8 bytes of free memory.
+ - `#!dae var int dest`
+ A pointer to an Int64 object or just 8 bytes of free memory.
### `add64`
-Adds `src` to `dest`: `*dest <- *dest + *src`
-```dae
-func void add64(var int dest, var int src)
-```
-**Parameters**
+!!! function "`add64`"
+ Adds `src` to `dest`: `*dest <- *dest + *src`
+ ```dae
+ func void add64(var int dest, var int src)
+ ```
+ **Parameters**
-- `#!dae var int dest`
- A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
-- `#!dae var int src`
- A pointer to an Int64 object. Will not change.
+ - `#!dae var int dest`
+ A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
+ - `#!dae var int src`
+ A pointer to an Int64 object. Will not change.
### `sub64`
-Subtracts `src` from `dest`: `*dest <- *dest - *src`
-```dae
-func void sub64(var int dest, var int src)
-```
-**Parameters**
+!!! function "`sub64`"
+ Subtracts `src` from `dest`: `*dest <- *dest - *src`
+ ```dae
+ func void sub64(var int dest, var int src)
+ ```
+ **Parameters**
-- `#!dae var int dest`
- A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
-- `#!dae var int src`
- A pointer to an Int64 object. Will not change.
+ - `#!dae var int dest`
+ A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
+ - `#!dae var int src`
+ A pointer to an Int64 object. Will not change.
### `mul64`
-Multiplies `dest` by `src`: `*dest <- (*dest) * (*src)`
-```dae
-func void mul64(var int dest, var int src)
-```
-**Parameters**
+!!! function "`mul64`"
+ Multiplies `dest` by `src`: `*dest <- (*dest) * (*src)`
+ ```dae
+ func void mul64(var int dest, var int src)
+ ```
+ **Parameters**
-- `#!dae var int dest`
- A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
-- `#!dae var int src`
- A pointer to an Int64 object. Will not change.
+ - `#!dae var int dest`
+ A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
+ - `#!dae var int src`
+ A pointer to an Int64 object. Will not change.
### `div64`
-Divides `dest` by `src`: `*dest <- *dest / *src`
-```dae
-func void mul64(var int dest, var int src)
-```
-**Parameters**
-
-- `#!dae var int dest`
- A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
-- `#!dae var int src`
- A pointer to an Int64 object. Will not change.
+!!! function "`div64`"
+ Divides `dest` by `src`: `*dest <- *dest / *src`
+ ```dae
+ func void mul64(var int dest, var int src)
+ ```
+ **Parameters**
+
+ - `#!dae var int dest`
+ A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.
+ - `#!dae var int src`
+ A pointer to an Int64 object. Will not change.
diff --git a/docs/zengin/scripts/extenders/lego/tools/interface.md b/docs/zengin/scripts/extenders/lego/tools/interface.md
index eda160bd2c..a6fa03cc91 100644
--- a/docs/zengin/scripts/extenders/lego/tools/interface.md
+++ b/docs/zengin/scripts/extenders/lego/tools/interface.md
@@ -3,15 +3,17 @@ title: Interface
description: LeGo package for working with the 2D interface
---
# Interface
-This package offers a lot of useful functions to work with the 2D interface.
-
-## Dependencies
-- [AI_Function](ai_function.md)
-- [Anim8](../applications/anim8.md)
-- [HookEngine](hook_engine.md)
-- [PermMem](permmem.md)
+!!! info inline end
+ **Dependencies:**
+ - [AI_Function](ai_function.md)
+ - [Anim8](../applications/anim8.md)
+ - [HookEngine](hook_engine.md)
+ - [PermMem](permmem.md)
+ **Implementation:**
+ [:material-github: Interface.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Interface.d)
+This package offers a lot of useful functions to work with the 2D interface.
## Initialization
Initialize with `LeGo_Interface` and `LeGo_PrintS` flag.
@@ -19,596 +21,634 @@ Initialize with `LeGo_Interface` and `LeGo_PrintS` flag.
LeGo_Init(LeGo_Interface | LeGo_PrintS);
```
-## Implementation
-[:material-github: Interface.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Interface.d)
-
## Functions
### `sysGetTime`
-Better alternative for `MEM_GetSysTime()` from [Ikarus](../../ikarus/index.md).
-```dae
-func int sysGetTime()
-```
-**Return value**
+!!! function "`sysGetTime`"
+ Better alternative for `MEM_GetSysTime()` from [Ikarus](../../ikarus/index.md).
+ ```dae
+ func int sysGetTime()
+ ```
+ **Return value**
-The function returns elapsed time since game (system) startup.
+ The function returns elapsed time since game (system) startup.
### `RGBA`
-Generates a full `zColor`.
-```dae
-func int RGBA(var int r, var int g, var int b, var int a)
-```
-**Parameters**
+!!! function "`RGBA`"
+ Generates a full `zColor`.
+ ```dae
+ func int RGBA(var int r, var int g, var int b, var int a)
+ ```
+ **Parameters**
-- `#!dae var int r`
- Red channel value (0..255)
-- `#!dae var int g`
- Green channel value (0..255)
-- `#!dae var int b`
- Blue channel value (0..255)
-- `#!dae var int a`
- Alpha (0..255, 0 = invisible)
+ - `#!dae var int r`
+ Red channel value (0..255)
+ - `#!dae var int g`
+ Green channel value (0..255)
+ - `#!dae var int b`
+ Blue channel value (0..255)
+ - `#!dae var int a`
+ Alpha (0..255, 0 = invisible)
-**Return value**
+ **Return value**
-The function returns a `zColor` object.
+ The function returns a `zColor` object.
### `ChangeAlpha`
-Overrides the alpha value of a given `zColor`.
-```dae
-func int ChangeAlpha(var int zCol, var int a)
-```
-**Parameters**
+!!! function "`ChangeAlpha`"
+ Overrides the alpha value of a given `zColor`.
+ ```dae
+ func int ChangeAlpha(var int zCol, var int a)
+ ```
+ **Parameters**
-- `#!dae var int zCol`
- `zColor` to modify
-- `#!dae var int a`
- New alpha value
+ - `#!dae var int zCol`
+ `zColor` to modify
+ - `#!dae var int a`
+ New alpha value
-**Return value**
+ **Return value**
-The function returns a modified `zColor` object.
+ The function returns a modified `zColor` object.
### `GetAlpha`
-Returns the alpha value of a given `zColor`.
-```dae
-func int GetAlpha(var int zCol)
-```
-**Parameters**
+!!! function "`GetAlpha`"
+ Returns the alpha value of a given `zColor`.
+ ```dae
+ func int GetAlpha(var int zCol)
+ ```
+ **Parameters**
-- `#!dae var int zCol`
- `zColor` to get alpha from
+ - `#!dae var int zCol`
+ `zColor` to get alpha from
### `Print_CreateText`
-Creates a new `zCViewText` on the screen with PermMem that can be freely edited.
-```dae
-func int Print_CreateText(var string text, var string font)
-```
-**Parameters**
+!!! function "`Print_CreateText`"
+ Creates a new `zCViewText` on the screen with PermMem that can be freely edited.
+ ```dae
+ func int Print_CreateText(var string text, var string font)
+ ```
+ **Parameters**
-- `#!dae var string text`
- The text of the `zCViewText`
-- `#!dae var string font`
- Font of text
+ - `#!dae var string text`
+ The text of the `zCViewText`
+ - `#!dae var string font`
+ Font of text
-**Return value**
+ **Return value**
-The function returns a handle to `zCViewText`.
+ The function returns a handle to `zCViewText`.
### `Print_CreateTextPtr`
-`Print_CreateText` but returns pointer to `zCViewText` instead of handle.
-```dae
-func int Print_CreateTextPtr(var string text, var string font)
-```
-**Parameters**
+!!! function "`Print_CreateTextPtr`"
+ `Print_CreateText` but returns pointer to `zCViewText` instead of handle.
+ ```dae
+ func int Print_CreateTextPtr(var string text, var string font)
+ ```
+ **Parameters**
-- `#!dae var string text`
- The text of the `zCViewText`
-- `#!dae var string font`
- Font of text
+ - `#!dae var string text`
+ The text of the `zCViewText`
+ - `#!dae var string font`
+ Font of text
-**Return value**
+ **Return value**
-The function returns a pointer to `zCViewText`.
+ The function returns a pointer to `zCViewText`.
### `Print_CreateTextPtrColored`
-`Print_CreateTextPtr` but with additional parameter to chose color of text.
-```dae
-func int Print_CreateTextPtrColored(var string text, var string font, var int color)
-```
-**Parameters**
+!!! function "`Print_CreateTextPtrColored`"
+ `Print_CreateTextPtr` but with additional parameter to chose color of text.
+ ```dae
+ func int Print_CreateTextPtrColored(var string text, var string font, var int color)
+ ```
+ **Parameters**
-- `#!dae var string text`
- The text of the `zCViewText`
-- `#!dae var string font`
- Font of text
-- `#!dae var int color`
- `zColor` e.g. generated with [RGBA](#rgba) function
+ - `#!dae var string text`
+ The text of the `zCViewText`
+ - `#!dae var string font`
+ Font of text
+ - `#!dae var int color`
+ `zColor` e.g. generated with [RGBA](#rgba) function
-**Return value**
+ **Return value**
-The function returns a pointer to `zCViewText`.
+ The function returns a pointer to `zCViewText`.
### `Print_GetText`
-Returns `zCViewText` instance from handle.
-```dae
-func zCViewText Print_GetText(var int hndl)
-```
-**Parameters**
+!!! function "`Print_GetText`"
+ Returns `zCViewText` instance from handle.
+ ```dae
+ func zCViewText Print_GetText(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle to `zCViewText`
+ - `#!dae var int hndl`
+ Handle to `zCViewText`
### `Print_GetTextPtr`
-Returns `zCViewText` pointer from handle.
-```dae
-func int Print_GetTextPtr(var int hndl)
-```
-**Parameters**
+!!! function "`Print_GetTextPtr`"
+ Returns `zCViewText` pointer from handle.
+ ```dae
+ func int Print_GetTextPtr(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle to `zCViewText`
+ - `#!dae var int hndl`
+ Handle to `zCViewText`
### `Print_DeleteText`
-Removes a `zCViewText` from the screen.
-```dae
-func void Print_DeleteText(var int hndl)
-```
-**Parameters**
+!!! function "`Print_DeleteText`"
+ Removes a `zCViewText` from the screen.
+ ```dae
+ func void Print_DeleteText(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle to `zCViewText` (form [`Print_CreateText`](#print_createtext) or [`Print_Ext`](#print_ext))
+ - `#!dae var int hndl`
+ Handle to `zCViewText` (form [`Print_CreateText`](#print_createtext) or [`Print_Ext`](#print_ext))
### `Print_SetAlpha`
-Changes the alpha value of a given `zCViewText`.
-```dae
-func void Print_SetAlpha(var int hndl, var int a)
-```
-**Parameters**
+!!! function "`Print_SetAlpha`"
+ Changes the alpha value of a given `zCViewText`.
+ ```dae
+ func void Print_SetAlpha(var int hndl, var int a)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle to `zCViewText`
-- `#!dae var int a`
- New alpha value
+ - `#!dae var int hndl`
+ Handle to `zCViewText`
+ - `#!dae var int a`
+ New alpha value
### `PrintPtr_SetAlpha`
-`Print_SetAlpha` but with pointer to `zCViewText` instead of handle.
-```dae
-func void PrintPtr_SetAlpha(var int ptr, var int a)
-```
-**Parameters**
+!!! function "`PrintPtr_SetAlpha`"
+ `Print_SetAlpha` but with pointer to `zCViewText` instead of handle.
+ ```dae
+ func void PrintPtr_SetAlpha(var int ptr, var int a)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- Pointer to `zCViewText`
-- `#!dae var int a`
- New alpha value
+ - `#!dae var int ptr`
+ Pointer to `zCViewText`
+ - `#!dae var int a`
+ New alpha value
### `Print_GetScreenSize`
-Writes the current resolution to the Print_Screen array and the current aspect ratio to Print_Ratio variable.
-```dae
-func void Print_GetScreenSize()
-```
+!!! function "`Print_GetScreenSize`"
+ Writes the current resolution to the Print_Screen array and the current aspect ratio to Print_Ratio variable.
+ ```dae
+ func void Print_GetScreenSize()
+ ```
#### `Print_Screen`
-An int array holding the current resolution. (Filled by `Print_GetScreenSize`)
-```dae
-int Print_Screen[2];
-```
+!!! function "`Print_Screen`"
+ An int array holding the current resolution. (Filled by `Print_GetScreenSize`)
+ ```dae
+ int Print_Screen[2];
+ ```
-- `Print_Screen[PS_X]` is the horizontal resolution
+ - `Print_Screen[PS_X]` is the horizontal resolution
-- `Print_Screen[PS_Y]` is the vertical resolution
+ - `Print_Screen[PS_Y]` is the vertical resolution
#### `Print_Ratio`
-A float variable that holds the current aspect ratio. (Filled by `Print_GetScreenSize`)
-```dae
-int Print_Ratio;
-```
+!!! function "`Print_Ratio`"
+ A float variable that holds the current aspect ratio. (Filled by `Print_GetScreenSize`)
+ ```dae
+ int Print_Ratio;
+ ```
#### `PS_VMax`
-An int constant that holds the highest possible value of a virtual coordinate.
-```dae
-const int PS_VMax = 8192;
-```
+!!! function "`PS_VMax`"
+ An int constant that holds the highest possible value of a virtual coordinate.
+ ```dae
+ const int PS_VMax = 8192;
+ ```
### `Print_ToVirtual`
-Convents pixel position to a virtual position.
-```dae
-func int Print_ToVirtual(var int pxl, var int dim)
-```
-**Parameters**
+!!! function "`Print_ToVirtual`"
+ Convents pixel position to a virtual position.
+ ```dae
+ func int Print_ToVirtual(var int pxl, var int dim)
+ ```
+ **Parameters**
-- `#!dae var int pxl`
- Pixel position to convert
-- `#!dae var int dim`
- PS_X or PS_Y (see [`Print_Screen`](#print_screen))
+ - `#!dae var int pxl`
+ Pixel position to convert
+ - `#!dae var int dim`
+ PS_X or PS_Y (see [`Print_Screen`](#print_screen))
-**Return value**
+ **Return value**
-The function returns a virtual position of a given pixel position.
+ The function returns a virtual position of a given pixel position.
### `Print_ToVirtualF`
-`Print_ToVirtual` but returns Ikarus float value instead of integer.
-```dae
-func int Print_ToVirtualF(var int pxl, var int dim)
-```
-**Parameters**
+!!! function "`Print_ToVirtualF`"
+ `Print_ToVirtual` but returns Ikarus float value instead of integer.
+ ```dae
+ func int Print_ToVirtualF(var int pxl, var int dim)
+ ```
+ **Parameters**
-- `#!dae var int pxl`
- Pixel position to convert
-- `#!dae var int dim`
- PS_X or PS_Y (see [`Print_Screen`](#print_screen))
+ - `#!dae var int pxl`
+ Pixel position to convert
+ - `#!dae var int dim`
+ PS_X or PS_Y (see [`Print_Screen`](#print_screen))
-**Return value**
+ **Return value**
-The function returns a virtual position of a given pixel position as Ikarus float.
+ The function returns a virtual position of a given pixel position as Ikarus float.
### `Print_ToPixel`
-Convents virtual position to a pixel position.
-```dae
-func int Print_ToPixel(var int vrt, var int dim)
-```
-**Parameters**
+!!! function "`Print_ToPixel`"
+ Convents virtual position to a pixel position.
+ ```dae
+ func int Print_ToPixel(var int vrt, var int dim)
+ ```
+ **Parameters**
-- `#!dae var int vrt`
- Virtual position to convert
-- `#!dae var int dim`
- PS_X or PS_Y (see [`Print_Screen`](#print_screen))
+ - `#!dae var int vrt`
+ Virtual position to convert
+ - `#!dae var int dim`
+ PS_X or PS_Y (see [`Print_Screen`](#print_screen))
-**Return value**
+ **Return value**
-The function returns a pixel position of a given virtual position.
+ The function returns a pixel position of a given virtual position.
### `Print_ToPixelF`
-`Print_ToPixel` but returns Ikarus float value instead of integer.
-```dae
-func int Print_ToPixelF(var int vrt, var int dim)
-```
-**Parameters**
+!!! function "`Print_ToPixelF`"
+ `Print_ToPixel` but returns Ikarus float value instead of integer.
+ ```dae
+ func int Print_ToPixelF(var int vrt, var int dim)
+ ```
+ **Parameters**
-- `#!dae var int vrt`
- Virtual position to convert
-- `#!dae var int dim`
- PS_X or PS_Y (see [`Print_Screen`](#print_screen))
+ - `#!dae var int vrt`
+ Virtual position to convert
+ - `#!dae var int dim`
+ PS_X or PS_Y (see [`Print_Screen`](#print_screen))
-**Return value**
+ **Return value**
-The function returns a pixel position of a given virtual position as Ikarus float.
+ The function returns a pixel position of a given virtual position as Ikarus float.
### `Print_ToRatio`
-Gets the size in the specified dimension in ratioed by the screen.
-```dae
-func int Print_ToRatio(var int size, var int dim)
-```
-**Parameters**
+!!! function "`Print_ToRatio`"
+ Gets the size in the specified dimension in ratioed by the screen.
+ ```dae
+ func int Print_ToRatio(var int size, var int dim)
+ ```
+ **Parameters**
-- `#!dae var int size`
- Size to convert
-- `#!dae var int dim`
- PS_X or PS_Y (see [`Print_Screen`](#print_screen))
+ - `#!dae var int size`
+ Size to convert
+ - `#!dae var int dim`
+ PS_X or PS_Y (see [`Print_Screen`](#print_screen))
-**Return value**
+ **Return value**
-The function returns size correctly calculated to the ratio.
+ The function returns size correctly calculated to the ratio.
-??? abstract "Example"
- If you have a view and the view you need to be a square of 400 units, you would do:
- ```dae
- height = Print_ToRatio(400, PS_Y);
- width = 400;
- ```
- This is because width is always the max in virtual coordinates - 8192 virtual points and the height has a different height based on the ratio, this function calculates it for you.
+ ??? abstract "Example"
+ If you have a view and the view you need to be a square of 400 units, you would do:
+ ```dae
+ height = Print_ToRatio(400, PS_Y);
+ width = 400;
+ ```
+ This is because width is always the max in virtual coordinates - 8192 virtual points and the height has a different height based on the ratio, this function calculates it for you.
- `PS_X` can be used in function, if you already have the height but need the width in the correct ratio.
+ `PS_X` can be used in function, if you already have the height but need the width in the correct ratio.
### `Print_ToRadian`
-Converts angle in degrees to radians.
-```dae
-func int Print_ToRadian(var int angle)
-```
-**Parameters**
+!!! function "`Print_ToRadian`"
+ Converts angle in degrees to radians.
+ ```dae
+ func int Print_ToRadian(var int angle)
+ ```
+ **Parameters**
-- `#!dae var int angle`
- Angle in degrees
+ - `#!dae var int angle`
+ Angle in degrees
-**Return value**
+ **Return value**
-The function returns calculated angle in radians.
+ The function returns calculated angle in radians.
### `Print_ToDegree`
-Converts angle in radians to degrees.
-```dae
-func int Print_ToDegree(var int angle)
-```
-**Parameters**
+!!! function "`Print_ToDegree`"
+ Converts angle in radians to degrees.
+ ```dae
+ func int Print_ToDegree(var int angle)
+ ```
+ **Parameters**
-- `#!dae var int angle`
- Angle in radians
+ - `#!dae var int angle`
+ Angle in radians
-**Return value**
+ **Return value**
-The function returns calculated angle in degrees.
+ The function returns calculated angle in degrees.
### `Print_GetFontPtr`
-Returns a pointer to a `zCFont` by its name.
-```dae
-func int Print_GetFontPtr(var string font)
-```
-**Parameters**
+!!! function "`Print_GetFontPtr`"
+ Returns a pointer to a `zCFont` by its name.
+ ```dae
+ func int Print_GetFontPtr(var string font)
+ ```
+ **Parameters**
-- `#!dae var string font`
- Name of font
+ - `#!dae var string font`
+ Name of font
### `Print_GetFontName`
-Returns a name of a `zCFont` from its pointer.
-```dae
-func string Print_GetFontName(var int fontPtr)
-```
-**Parameters**
+!!! function "`Print_GetFontName`"
+ Returns a name of a `zCFont` from its pointer.
+ ```dae
+ func string Print_GetFontName(var int fontPtr)
+ ```
+ **Parameters**
-- `#!dae var int fontPtr`
- Pointer to font
+ - `#!dae var int fontPtr`
+ Pointer to font
### `Print_GetStringWidth`
-Returns the width of a string in pixels.
-```dae
-func int Print_GetStringWidth(var string s, var string font)
-```
-**Parameters**
+!!! function "`Print_GetStringWidth`"
+ Returns the width of a string in pixels.
+ ```dae
+ func int Print_GetStringWidth(var string s, var string font)
+ ```
+ **Parameters**
-- `#!dae var string s`
- Measured string
-- `#!dae var string font`
- Name of font
+ - `#!dae var string s`
+ Measured string
+ - `#!dae var string font`
+ Name of font
### `Print_GetStringWidthPtr`
-`Print_GetStringWidth` but with `zCFont` pointer instead of name.
-```dae
-func int Print_GetStringWidthPtr(var string s, var int font)
-```
-**Parameters**
+!!! function "`Print_GetStringWidthPtr`"
+ `Print_GetStringWidth` but with `zCFont` pointer instead of name.
+ ```dae
+ func int Print_GetStringWidthPtr(var string s, var int font)
+ ```
+ **Parameters**
-- `#!dae var string s`
- Measured string
-- `#!dae var int font`
- `zCFont` pointer
+ - `#!dae var string s`
+ Measured string
+ - `#!dae var int font`
+ `zCFont` pointer
### `Print_GetFontHeight`
-Returns the height of a string in pixels.
-```dae
-func int Print_GetFontHeight(var string font)
-```
-**Parameters**
+!!! function "`Print_GetFontHeight`"
+ Returns the height of a string in pixels.
+ ```dae
+ func int Print_GetFontHeight(var string font)
+ ```
+ **Parameters**
-- `#!dae var string font`
- Name of font
+ - `#!dae var string font`
+ Name of font
### `Print_Ext`
-Like the external `PrintScreen`, writes a text on the screen, but with more options.
-```dae
-func int Print_Ext(var int x, var int y, var string text, var string font, var int color, var int time)
-```
-**Parameters**
-
-- `#!dae var int x`
- X coordinate on the screen (virtual)
-- `#!dae var int y`
- Y coordinate on the screen (virtual)
-- `#!dae var string text`
- Displayed text
-- `#!dae var string font`
- Name of font
-- `#!dae var int color`
- `zColor` e.g. generated with [RGBA](#rgba) function
-- `#!dae var int time`
- display time in milliseconds (-1 = permanent)
-
-**Return value**
-
-If `time == -1`, a valid handle is returned. If `time != -1`, the print is only volatile and no handle is returned.
-
-??? abstract "Example"
- ```dae
- func void Example1()
- {
- // x, y, text, font, color, time
- Print_ExtPxl(2, 2, "Text", FONT_Screen, RGBA(255, 0, 0, 128), 500);
- };
+!!! function "`Print_Ext`"
+ Like the external `PrintScreen`, writes a text on the screen, but with more options.
+ ```dae
+ func int Print_Ext(var int x, var int y, var string text, var string font, var int color, var int time)
```
+ **Parameters**
+
+ - `#!dae var int x`
+ X coordinate on the screen (virtual)
+ - `#!dae var int y`
+ Y coordinate on the screen (virtual)
+ - `#!dae var string text`
+ Displayed text
+ - `#!dae var string font`
+ Name of font
+ - `#!dae var int color`
+ `zColor` e.g. generated with [RGBA](#rgba) function
+ - `#!dae var int time`
+ display time in milliseconds (-1 = permanent)
+
+ **Return value**
+
+ If `time == -1`, a valid handle is returned. If `time != -1`, the print is only volatile and no handle is returned.
+
+ ??? abstract "Example"
+ ```dae
+ func void Example1()
+ {
+ // x, y, text, font, color, time
+ Print_ExtPxl(2, 2, "Text", FONT_Screen, RGBA(255, 0, 0, 128), 500);
+ };
+ ```
### `Print_ExtPxl`
-`Print_Ext` but with pixel coordinates instead of virtual.
-```dae
-func int Print_ExtPxl(var int x, var int y, var string text, var string font, var int color, var int time)
-```
-**Parameters**
+!!! function "`Print_ExtPxl`"
+ `Print_Ext` but with pixel coordinates instead of virtual.
+ ```dae
+ func int Print_ExtPxl(var int x, var int y, var string text, var string font, var int color, var int time)
+ ```
+ **Parameters**
-- `#!dae var int x`
- X coordinate on the screen (pixel)
-- `#!dae var int y`
- Y coordinate on the screen (pixel)
-- `#!dae var string text`
- Displayed text
-- `#!dae var string font`
- Name of font
-- `#!dae var int color`
- `zColor` e.g. generated with [RGBA](#rgba) function
-- `#!dae var int time`
- display time in milliseconds (-1 = permanent)
+ - `#!dae var int x`
+ X coordinate on the screen (pixel)
+ - `#!dae var int y`
+ Y coordinate on the screen (pixel)
+ - `#!dae var string text`
+ Displayed text
+ - `#!dae var string font`
+ Name of font
+ - `#!dae var int color`
+ `zColor` e.g. generated with [RGBA](#rgba) function
+ - `#!dae var int time`
+ display time in milliseconds (-1 = permanent)
-**Return value**
+ **Return value**
-If `time == -1`, a valid handle is returned. If `time != -1`, the print is only volatile and no handle is returned.
+ If `time == -1`, a valid handle is returned. If `time != -1`, the print is only volatile and no handle is returned.
### `Print_LongestLine`
-Returns the longest line from `text` as a string, using default line separator tilde `~`.
-```dae
-func string Print_LongestLine(var string text, var string font)
-```
-**Parameters**
+!!! function "`Print_LongestLine`"
+ Returns the longest line from `text` as a string, using default line separator tilde `~`.
+ ```dae
+ func string Print_LongestLine(var string text, var string font)
+ ```
+ **Parameters**
-- `#!dae var string text`
- Measured text
-- `#!dae var string font`
- Name of font
+ - `#!dae var string text`
+ Measured text
+ - `#!dae var string font`
+ Name of font
### `Print_LongestLineExt`
-Returns the longest line from `text` as a string, but you specify new line separator.
-```dae
-func string Print_LongestLineExt(var string text, var string font, var string separator)
-```
-**Parameters**
+!!! function "`Print_LongestLineExt`"
+ Returns the longest line from `text` as a string, but you specify new line separator.
+ ```dae
+ func string Print_LongestLineExt(var string text, var string font, var string separator)
+ ```
+ **Parameters**
-- `#!dae var string text`
- Measured text
-- `#!dae var string font`
- Name of font
-- `#!dae var string separator`
- New line separator
+ - `#!dae var string text`
+ Measured text
+ - `#!dae var string font`
+ Name of font
+ - `#!dae var string separator`
+ New line separator
### `Print_LongestLineLength`
-Returns the longest line width in pixels, using default line separator tilde `~`.
-```dae
-func int Print_LongestLineLength(var string text, var string font)
-```
-**Parameters**
+!!! function "`Print_LongestLineLength`"
+ Returns the longest line width in pixels, using default line separator tilde `~`.
+ ```dae
+ func int Print_LongestLineLength(var string text, var string font)
+ ```
+ **Parameters**
-- `#!dae var string text`
- Measured text
-- `#!dae var string font`
- Name of font
+ - `#!dae var string text`
+ Measured text
+ - `#!dae var string font`
+ Name of font
### `Print_LongestLineLengthExt`
-Returns the longest line width in pixels, but allows you to specify new line separator.
-```dae
-func int Print_LongestLineLengthExt(var string text, var string font, var string separator)
-```
-**Parameters**
+!!! function "`Print_LongestLineLengthExt`"
+ Returns the longest line width in pixels, but allows you to specify new line separator.
+ ```dae
+ func int Print_LongestLineLengthExt(var string text, var string font, var string separator)
+ ```
+ **Parameters**
-- `#!dae var string text`
- Measured text
-- `#!dae var string font`
- Name of font
-- `#!dae var string separator`
- New line separator
+ - `#!dae var string text`
+ Measured text
+ - `#!dae var string font`
+ Name of font
+ - `#!dae var string separator`
+ New line separator
### `Print_TextField`
-Creates a text field (view with text) using virtual coordinates.
-```dae
-func int Print_TextField(var int x, var int y, var string text, var string font, var int height)
-```
-**Parameters**
-
-- `#!dae var int x`
- X coordinate (virtual)
-- `#!dae var int y`
- Y coordinate (virtual)
-- `#!dae var string text`
- Text to be printed
-- `#!dae var string font`
- Name of font
-- `#!dae var int height`
- A specific line `height`
-
-**Return value**
-
-The function returns a text field pointer. Here is how it is used:
-```dae
-var zCView view; view = get(viewHndl);
-view.textLines_next = Print_TextField(x, y, text, FONT, fontHeight);
-```
+!!! function "`Print_TextField`"
+ Creates a text field (view with text) using virtual coordinates.
+ ```dae
+ func int Print_TextField(var int x, var int y, var string text, var string font, var int height)
+ ```
+ **Parameters**
+
+ - `#!dae var int x`
+ X coordinate (virtual)
+ - `#!dae var int y`
+ Y coordinate (virtual)
+ - `#!dae var string text`
+ Text to be printed
+ - `#!dae var string font`
+ Name of font
+ - `#!dae var int height`
+ A specific line `height`
+
+ **Return value**
+
+ The function returns a text field pointer. Here is how it is used:
+ ```dae
+ var zCView view; view = get(viewHndl);
+ view.textLines_next = Print_TextField(x, y, text, FONT, fontHeight);
+ ```
### `Print_TextFieldPxl`
-`Print_TextField` but with pixel coordinates.
-```dae
-func int Print_TextFieldPxl(var int x, var int y, var string text, var string font)
-```
-**Parameters**
+!!! function "`Print_TextFieldPxl`"
+ `Print_TextField` but with pixel coordinates.
+ ```dae
+ func int Print_TextFieldPxl(var int x, var int y, var string text, var string font)
+ ```
+ **Parameters**
-- `#!dae var int x`
- X coordinate (pixel)
-- `#!dae var int y`
- Y coordinate (pixel)
-- `#!dae var string text`
- Text to be printed
-- `#!dae var string font`
- Name of font
+ - `#!dae var int x`
+ X coordinate (pixel)
+ - `#!dae var int y`
+ Y coordinate (pixel)
+ - `#!dae var string text`
+ Text to be printed
+ - `#!dae var string font`
+ Name of font
-**Return value**
+ **Return value**
-The function returns a text field pointer. Look at the `Print_TextField` return value to see an example.
+ The function returns a text field pointer. Look at the `Print_TextField` return value to see an example.
### `Print_TextFieldColored`
-`Print_TextField` but you specify the color of text.
-```dae
-func int Print_TextFieldColored(var int x, var int y, var string text, var string font, var int height, var int color)
-```
-**Parameters**
+!!! function "`Print_TextFieldColored`"
+ `Print_TextField` but you specify the color of text.
+ ```dae
+ func int Print_TextFieldColored(var int x, var int y, var string text, var string font, var int height, var int color)
+ ```
+ **Parameters**
-- `#!dae var int x`
- X coordinate (virtual)
-- `#!dae var int y`
- Y coordinate (virtual)
-- `#!dae var string text`
- Text to be printed
-- `#!dae var string font`
- Name of font
-- `#!dae var int height`
- A specific line `height`
-- `#!dae var int color`
- `zColor` e.g. generated with [RGBA](#rgba) function
+ - `#!dae var int x`
+ X coordinate (virtual)
+ - `#!dae var int y`
+ Y coordinate (virtual)
+ - `#!dae var string text`
+ Text to be printed
+ - `#!dae var string font`
+ Name of font
+ - `#!dae var int height`
+ A specific line `height`
+ - `#!dae var int color`
+ `zColor` e.g. generated with [RGBA](#rgba) function
-**Return value**
+ **Return value**
-The function returns a text field pointer. Look at the `Print_TextField` return value to see an example.
+ The function returns a text field pointer. Look at the `Print_TextField` return value to see an example.
### `PrintS`
-Same function as the external `Print`, but with smooth animations. The effect can be changed as desired with the [user constants](../various/userconstants.md#prints).
-```dae
-func void PrintS(var string txt)
-```
-**Parameters**
+!!! function "`PrintS`"
+ Same function as the external `Print`, but with smooth animations. The effect can be changed as desired with the [user constants](../various/userconstants.md#prints).
+ ```dae
+ func void PrintS(var string txt)
+ ```
+ **Parameters**
-- `#!dae var string txt`
- Printed text
+ - `#!dae var string txt`
+ Printed text
### `PrintS_Ext`
-`PrintS` but with an additional parameter to choose the color of the text.
-```dae
-func void PrintS_Ext(var string txt, var int color)
-```
-**Parameters**
+!!! function "`PrintS_Ext`"
+ `PrintS` but with an additional parameter to choose the color of the text.
+ ```dae
+ func void PrintS_Ext(var string txt, var int color)
+ ```
+ **Parameters**
-- `#!dae var string txt`
- Printed text
-- `#!dae var int color`
- `zColor` e.g. generated with [RGBA](#rgba) function
+ - `#!dae var string txt`
+ Printed text
+ - `#!dae var int color`
+ `zColor` e.g. generated with [RGBA](#rgba) function
### `AI_PrintS`
-Version of `PrintS` that enqueue in given NPCs AI queue.
-```dae
-func void AI_PrintS(var c_npc slf, var string txt)
-```
-**Parameters**
+!!! function "`AI_PrintS`"
+ Version of `PrintS` that enqueue in given NPCs AI queue.
+ ```dae
+ func void AI_PrintS(var c_npc slf, var string txt)
+ ```
+ **Parameters**
-- `#!dae var c_npc slf`
- NPC to whose AI queue the function is enqueued
-- `#!dae var string txt`
- Printed text
+ - `#!dae var c_npc slf`
+ NPC to whose AI queue the function is enqueued
+ - `#!dae var string txt`
+ Printed text
### `AI_PrintS_Ext`
-Version of `PrintS_Ext` that enqueue in given NPCs AI queue.
-```dae
-func void AI_PrintS_Ext(var c_npc slf, var string txt, var int color)
-```
-**Parameters**
-
-- `#!dae var c_npc slf`
- NPC to whose AI queue the function is enqueued
-- `#!dae var string txt`
- Printed text
-- `#!dae var int color`
- `zColor` e.g. generated with [RGBA](#rgba) function
+!!! function "`AI_PrintS_Ext`"
+ Version of `PrintS_Ext` that enqueue in given NPCs AI queue.
+ ```dae
+ func void AI_PrintS_Ext(var c_npc slf, var string txt, var int color)
+ ```
+ **Parameters**
+
+ - `#!dae var c_npc slf`
+ NPC to whose AI queue the function is enqueued
+ - `#!dae var string txt`
+ Printed text
+ - `#!dae var int color`
+ `zColor` e.g. generated with [RGBA](#rgba) function
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/item_helper.md b/docs/zengin/scripts/extenders/lego/tools/item_helper.md
index 1e0c374b18..1b3ac41e0a 100644
--- a/docs/zengin/scripts/extenders/lego/tools/item_helper.md
+++ b/docs/zengin/scripts/extenders/lego/tools/item_helper.md
@@ -3,31 +3,33 @@ title: ItemHelper
description: LeGo package that makes changing `C_ITEM` instance to `oCItem` pointer possible
---
# ItemHelper
+
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: ItemHelper.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/ItemHelper.d)
+
This package is very simple - it retrieves a `oCItem` pointer from an `C_ITEM` instance valid for the current world and session.
!!! Warning
Make sure every world has waypoint with name `TOT` ("dead" in German). Ikarus & LeGo need this waypoint to spawn helper NPCs.
This is especially important in Gothic 1 since G1 vanilla worlds do not have the `TOT` waypoint.
-## Dependencies
-N/A
-
## Initialization
N/A
-## Implementation
-[:material-github: ItemHelper.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/ItemHelper.d)
-
## Functions
### `Itm_GetPtr`
-```dae
-func int Itm_GetPtr(var int instance)
-```
-**Parameters**
+!!! function "`Itm_GetPtr`"
+ ```dae
+ func int Itm_GetPtr(var int instance)
+ ```
+ **Parameters**
-- `#!dae var int instance`
- `C_ITEM` instance to get the pointer of
+ - `#!dae var int instance`
+ `C_ITEM` instance to get the pointer of
-**Return value**
-The function returns `oCItem` pointer of the `C_ITEM` instance.
+ **Return value**
+ The function returns `oCItem` pointer of the `C_ITEM` instance.
diff --git a/docs/zengin/scripts/extenders/lego/tools/item_helper.pl.md b/docs/zengin/scripts/extenders/lego/tools/item_helper.pl.md
index b76263bb24..e7b6f55d0a 100644
--- a/docs/zengin/scripts/extenders/lego/tools/item_helper.pl.md
+++ b/docs/zengin/scripts/extenders/lego/tools/item_helper.pl.md
@@ -3,32 +3,34 @@ title: ItemHelper
description: Pakiet LeGo umożliwiający zmianę instancji `C_ITEM` na pointer `oCItem`
---
# ItemHelper - pomocnik do przedmiotów
+
+!!! info inline end
+ **Zależności:**
+ - Brak
+ **Implementacja:**
+ [:material-github: ItemHelper.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/ItemHelper.d)
+
Ten pakiet jest bardzo prosty - pobiera wskaźnik `oCItem` z instancji `C_ITEM` ważnej dla bieżącego świata i sesji.
!!! Warning
Upewnij się, że każdy świat ma waypoint o nazwie `TOT` (po niemiecku "martwy"). Ikarus i LeGo potrzebują tego punktu nawigacyjnego, aby odradzać pomocniczych NPC.
Jest to szczególnie ważne w Gothicu 1, ponieważ jego światy nie mają waypointu `TOT`.
-## Zależności
-Nie dotyczy.
-
## Inicjalizacja
Nie dotyczy.
-## Implementacja
-[:material-github: ItemHelper.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/ItemHelper.d)
-
## Funkcje
### `Itm_GetPtr`
-```dae
-func int Itm_GetPtr(var int instance)
-```
-**Parametry**
+!!! function "`Itm_GetPtr`"
+ ```dae
+ func int Itm_GetPtr(var int instance)
+ ```
+ **Parametry**
-- `#!dae var int instance`
- Instancja `C_ITEM`, z której ma zostać pobrany wskaźnik
+ - `#!dae var int instance`
+ Instancja `C_ITEM`, z której ma zostać pobrany wskaźnik
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wskaźnik `oCItem` instancji `C_ITEM`.
+ Funkcja zwraca wskaźnik `oCItem` instancji `C_ITEM`.
diff --git a/docs/zengin/scripts/extenders/lego/tools/list.md b/docs/zengin/scripts/extenders/lego/tools/list.md
index 2512ac66a8..0d19c96829 100644
--- a/docs/zengin/scripts/extenders/lego/tools/list.md
+++ b/docs/zengin/scripts/extenders/lego/tools/list.md
@@ -3,381 +3,408 @@ title: List
description: LeGo package implementing `zCList` and `zCListSort` data types handling
---
# List
-The List package is a collection of functions designed to simplify the handling of `zCList` and `zCListSort` lists in daedalus. It offers a range of functions for creating, manipulating, and querying lists.
-## Dependencies
-N/A
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: List.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/List.d)
+
+The List package is a collection of functions designed to simplify the handling of `zCList` and `zCListSort` lists in daedalus. It offers a range of functions for creating, manipulating, and querying lists.
## Initialization
N/A
-## Implementation
-[:material-github: List.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/List.d)
-
## Functions
+
!!! Note
All functions, expect `List_Compare` come with an additional "S" at the end for objects of type `zCListSort`. (Example: `List_NodeS` .) Unlike most LeGo packages, pointers are used here, not handles!
### `List_Create`
-Creates a list with an initial value.
-```dae
-func int List_Create(var int data)
-```
-**Parameters**
+!!! function "`List_Create`"
+ Creates a list with an initial value.
+ ```dae
+ func int List_Create(var int data)
+ ```
+ **Parameters**
-- `#!dae var int data`
- The value of the first list element.
+ - `#!dae var int data`
+ The value of the first list element.
-**Return value**
+ **Return value**
-The function returns a pointer to the created list.
+ The function returns a pointer to the created list.
### `List_Add`
-Appends a value to the end of the list.
-```dae
-func void List_Add(var int list, var int data)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int data`
- The value to be appended.
+!!! function "`List_Add`"
+ Appends a value to the end of the list.
+ ```dae
+ func void List_Add(var int list, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int data`
+ The value to be appended.
### `List_AddFront`
-Adds a value before the first element of the list.
-```dae
-func void List_AddFront(var int list, var int data)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int data`
- The value to be appended.
+!!! function "`List_AddFront`"
+ Adds a value before the first element of the list.
+ ```dae
+ func void List_AddFront(var int list, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int data`
+ The value to be appended.
### `List_AddOffset`
-Inserts a value between two list elements.
-```dae
-func void List_AddOffset(var int list, var int offset, var int data)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int offset`
- The number of the list element after which the value is inserted.
-- `#!dae var int data`
- The value to be appended.
+!!! function "`List_AddOffset`"
+ Inserts a value between two list elements.
+ ```dae
+ func void List_AddOffset(var int list, var int offset, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int offset`
+ The number of the list element after which the value is inserted.
+ - `#!dae var int data`
+ The value to be appended.
### `List_Set`
-Sets a list element to a specific value.
-```dae
-func void List_Set(var int node, var int data)
-```
-**Parameters**
-
-- `#!dae var int node`
- Pointer to a list element.
-- `#!dae var int data`
- The value to be written into the list element.
+!!! function "`List_Set`"
+ Sets a list element to a specific value.
+ ```dae
+ func void List_Set(var int node, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int node`
+ Pointer to a list element.
+ - `#!dae var int data`
+ The value to be written into the list element.
### `List_Get`
-Retrieves the value of a list element.
-```dae
-func int List_Get(var int list, var int nr)
-```
-**Parameters**
+!!! function "`List_Get`"
+ Retrieves the value of a list element.
+ ```dae
+ func int List_Get(var int list, var int nr)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int nr`
- The number of the list element.
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int nr`
+ The number of the list element.
-**Return value**
+ **Return value**
-The function returns the value of the specified list element.
+ The function returns the value of the specified list element.
### `List_Node`
-Returns a pointer to a list element.
-```dae
-func int List_Node(var int list, var int nr)
-```
-**Parameters**
+!!! function "`List_Node`"
+ Returns a pointer to a list element.
+ ```dae
+ func int List_Node(var int list, var int nr)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int nr`
- The number of a list element.
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int nr`
+ The number of a list element.
-**Return value**
+ **Return value**
-The function returns a pointer to the specified list element.
+ The function returns a pointer to the specified list element.
### `List_Length`
-Returns the length of the list (number of all elements).
-```dae
-func int List_Length(var int list)
-```
-**Parameters**
+!!! function "`List_Length`"
+ Returns the length of the list (number of all elements).
+ ```dae
+ func int List_Length(var int list)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
+ - `#!dae var int list`
+ The list to be used.
-**Return value**
+ **Return value**
-The function returns the number of elements in the list.
+ The function returns the number of elements in the list.
### `List_HasLength`
-Checks if the list has the specified length.
-```dae
-func int List_HasLength(var int list, var int length)
-```
-**Parameters**
+!!! function "`List_HasLength`"
+ Checks if the list has the specified length.
+ ```dae
+ func int List_HasLength(var int list, var int length)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int length`
- The desired length.
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int length`
+ The desired length.
-**Return value**
+ **Return value**
-The function returns a boolean value indicating whether the list has the specified length or not.
+ The function returns a boolean value indicating whether the list has the specified length or not.
### `List_End`
-Returns the last list element of the list.
-```dae
-func int List_End(var int list)
-```
-**Parameters**
+!!! function "`List_End`"
+ Returns the last list element of the list.
+ ```dae
+ func int List_End(var int list)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
+ - `#!dae var int list`
+ The list to be used.
-**Return value**
+ **Return value**
-The function returns a pointer to the last list element.
+ The function returns a pointer to the last list element.
### `List_Concat`
-Concatenates two lists.
-```dae
-func void List_Concat(var int list, var int list2)
-```
-**Parameters**
-
-- `#!dae var int list`
- The first list.
-- `#!dae var int list2`
- The second list. Its beginning is appended to the end of the first list.
+!!! function "`List_Concat`"
+ Concatenates two lists.
+ ```dae
+ func void List_Concat(var int list, var int list2)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The first list.
+ - `#!dae var int list2`
+ The second list. Its beginning is appended to the end of the first list.
### `List_Contains`
-Returns the last list element with a specific value.
-```dae
-func int List_Contains(var int list, var int data)
-```
-**Parameters**
+!!! function "`List_Contains`"
+ Returns the last list element with a specific value.
+ ```dae
+ func int List_Contains(var int list, var int data)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int data`
- The value to search for.
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int data`
+ The value to search for.
-**Return value**
+ **Return value**
-The function returns the number of the last list element with the value `data`.
+ The function returns the number of the last list element with the value `data`.
### `List_For`
-Calls a function for each list element, passing a pointer to the list element as a parameter.
-```dae
-func void List_For(var int list, var string function)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var string function`
- Name of a function to be called for each list element (`void handler(var int node)`).
+!!! function "`List_For`"
+ Calls a function for each list element, passing a pointer to the list element as a parameter.
+ ```dae
+ func void List_For(var int list, var string function)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var string function`
+ Name of a function to be called for each list element (`void handler(var int node)`).
### `List_ForF`
-Similar to `List_For`, but with a function parameter instead of a string.
-```dae
-func void ListForF(var int list, var func function)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var func function`
- The function to be called for each list element (`void handler(var int node)`).
+!!! function "`List_ForF`"
+ Similar to `List_For`, but with a function parameter instead of a string.
+ ```dae
+ func void ListForF(var int list, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var func function`
+ The function to be called for each list element (`void handler(var int node)`).
### `List_ForI`
-Similar to `List_For`, but with a function parameter instead of a string.
-```dae
-func void List_ForI(var int list, var int funcID)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int funcID`
- ID of a function to be called for each list element (`void handler(var int node)`).
+!!! function "`List_ForI`"
+ Similar to `List_For`, but with a function parameter instead of a string.
+ ```dae
+ func void List_ForI(var int list, var int funcID)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int funcID`
+ ID of a function to be called for each list element (`void handler(var int node)`).
### `List_Delete`
-Deletes a list element. All subsequent elements shift position.
-```dae
-func void List_Delete(var int list, var int nr)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list to be used.
-- `#!dae var int nr`
- The number of the list element to be deleted.
-
+!!! function "`List_Delete`"
+ Deletes a list element. All subsequent elements shift position.
+ ```dae
+ func void List_Delete(var int list, var int nr)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list to be used.
+ - `#!dae var int nr`
+ The number of the list element to be deleted.
### `List_Destroy`
-Destroys the entire list.
-```dae
-func void List_Destroy(var int list)
-```
-**Parameters**
+!!! function "`List_Destroy`"
+ Destroys the entire list.
+ ```dae
+ func void List_Destroy(var int list)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be destroyed.
+ - `#!dae var int list`
+ The list to be destroyed.
### `List_ToArray`
-Returns a pointer to a memory area containing all values of the list.
-```dae
-func int List_ToArray(var int list)
-```
-**Parameters**
+!!! function "`List_ToArray`"
+ Returns a pointer to a memory area containing all values of the list.
+ ```dae
+ func int List_ToArray(var int list)
+ ```
+ **Parameters**
-- `#!dae var int list`
- The list to be used.
+ - `#!dae var int list`
+ The list to be used.
-**Return value**
+ **Return value**
-The function returns a memory area containing all the values of the list.
+ The function returns a memory area containing all the values of the list.
### `List_MoveDown`
-Moves the specified list node down by one position in the list.
-```dae
-func void List_MoveDown(var int list, var int node)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list in which the node is located.
-- `#!dae var int node`
- The node to be moved down.
+!!! function "`List_MoveDown`"
+ Moves the specified list node down by one position in the list.
+ ```dae
+ func void List_MoveDown(var int list, var int node)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list in which the node is located.
+ - `#!dae var int node`
+ The node to be moved down.
### `List_MoveUp`
-Moves the specified list node up by one position in the list.
-```dae
-func void List_MoveUp(var int list, var int node)
-```
-**Parameters**
-
-- `#!dae var int list`
- The list in which the node is located.
-- `#!dae var int node`
- The node to be moved up.
+!!! function "`List_MoveUp`"
+ Moves the specified list node up by one position in the list.
+ ```dae
+ func void List_MoveUp(var int list, var int node)
+ ```
+ **Parameters**
+
+ - `#!dae var int list`
+ The list in which the node is located.
+ - `#!dae var int node`
+ The node to be moved up.
### `List_InsertSorted`
-Inserts a value into a sorted list while preserving the sort order.
+!!! function "`List_InsertSorted`"
+ Inserts a value into a sorted list while preserving the sort order.
-```dae
-func void List_InsertSorted(var int list, var int data, var func compare)
-```
-**Parameters:**
+ ```dae
+ func void List_InsertSorted(var int list, var int data, var func compare)
+ ```
+ **Parameters:**
-- `#!dae var int list`
- The list to insert the value into.
-- `#!dae var int data`
- The value to be inserted.
-- `#!dae var func compare`
- A comparison function used to determine the sort order.
+ - `#!dae var int list`
+ The list to insert the value into.
+ - `#!dae var int data`
+ The value to be inserted.
+ - `#!dae var func compare`
+ A comparison function used to determine the sort order.
### `List_Compare`
-```dae
-func int List_Compare(var int data1, var int data2, var func compare)
-```
-**Parameters:**
-
-- `#!dae var int data1`
- The first integer value.
-- `#!dae var int data2`
- The second integer value.
-- `#!dae var func compare`
- One of comparison functions.
-**Return value**
-
-The function returns the return value of specified comparison function.
+!!! function "`List_Compare`"
+ ```dae
+ func int List_Compare(var int data1, var int data2, var func compare)
+ ```
+ **Parameters:**
+
+ - `#!dae var int data1`
+ The first integer value.
+ - `#!dae var int data2`
+ The second integer value.
+ - `#!dae var func compare`
+ One of comparison functions.
+ **Return value**
+
+ The function returns the return value of specified comparison function.
## Comparison Functions
The following comparison functions can be used as the `compare` parameter in the `List_InsertSorted` and `List_Compare` function:
#### `List_CmpAscending`
-Compares two integer values in ascending order.
-```dae
-func int List_CmpAscending(var int data1, var int data2)
-```
-**Parameters:**
+!!! function "`List_CmpAscending`"
+ Compares two integer values in ascending order.
+ ```dae
+ func int List_CmpAscending(var int data1, var int data2)
+ ```
+ **Parameters:**
-- `#!dae var int data1`
- The first integer value.
-- `#!dae var int data2`
- The second integer value.
+ - `#!dae var int data1`
+ The first integer value.
+ - `#!dae var int data2`
+ The second integer value.
-**Return Value:**
+ **Return Value:**
-The function returns `TRUE` if `data1` is greater than `data2`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `data1` is greater than `data2`, `FALSE` is returned otherwise.
#### `List_CmpDescending`
-Compares two integer values in descending order.
-```dae
-func int List_CmpDescending(var int data1, var int data2)
-```
-**Parameters:**
+!!! function "`List_CmpDescending`"
+ Compares two integer values in descending order.
+ ```dae
+ func int List_CmpDescending(var int data1, var int data2)
+ ```
+ **Parameters:**
-- `#!dae var int data1`
- The first integer value.
-- `#!dae var int data2`
- The second integer value.
+ - `#!dae var int data1`
+ The first integer value.
+ - `#!dae var int data2`
+ The second integer value.
-**Return Value:**
+ **Return Value:**
-The function returns `TRUE` if `data1` is less than `data2`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `data1` is less than `data2`, `FALSE` is returned otherwise.
#### `List_CmpAscendingUnsigned`
-Compares two unsigned integer values in ascending order.
-```dae
-func int List_CmpAscendingUnsigned(var int data1, var int data2)
-```
-**Parameters:**
+!!! function "`List_CmpAscendingUnsigned`"
+ Compares two unsigned integer values in ascending order.
+ ```dae
+ func int List_CmpAscendingUnsigned(var int data1, var int data2)
+ ```
+ **Parameters:**
-- `#!dae var int data1`
- The first unsigned integer value.
-- `#!dae var int data2`
- The second unsigned integer value.
+ - `#!dae var int data1`
+ The first unsigned integer value.
+ - `#!dae var int data2`
+ The second unsigned integer value.
-**Return Value:**
+ **Return Value:**
-The function returns `TRUE` if `data1` is greater than `data2`, `FALSE` is returned otherwise.
+ The function returns `TRUE` if `data1` is greater than `data2`, `FALSE` is returned otherwise.
#### `List_CmpDescendingUnsigned`
-Compares two unsigned integer values in descending order.
-```dae
-func int List_CmpDescendingUnsigned(var int data1, var int data2)
-```
-**Parameters:**
+!!! function "`List_CmpDescendingUnsigned`"
+ Compares two unsigned integer values in descending order.
+ ```dae
+ func int List_CmpDescendingUnsigned(var int data1, var int data2)
+ ```
+ **Parameters:**
-- `#!dae var int data1`
- The first unsigned integer value.
-- `#!dae var int data2`
- The second unsigned integer value.
+ - `#!dae var int data1`
+ The first unsigned integer value.
+ - `#!dae var int data2`
+ The second unsigned integer value.
-**Return Value:**
+ **Return Value:**
-The function returns `TRUE` if `data1` is less than `data2`, `FALSE` is returned otherwise.
\ No newline at end of file
+ The function returns `TRUE` if `data1` is less than `data2`, `FALSE` is returned otherwise.
\ No newline at end of file
diff --git a/docs/zengin/scripts/extenders/lego/tools/locals.md b/docs/zengin/scripts/extenders/lego/tools/locals.md
index fcc41fcf7b..c6dabbe907 100644
--- a/docs/zengin/scripts/extenders/lego/tools/locals.md
+++ b/docs/zengin/scripts/extenders/lego/tools/locals.md
@@ -3,44 +3,46 @@ title: Locals
description: LeGo package adding true local variables and final clause
---
# Locals
+
+!!! info inline end
+ **Dependencies:**
+ - [StringBuilder](string_builder.md)
+ **Implementation:**
+ [:material-github: Locals.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Locals.d)
+
Daedalus doesn't offer any local variables, which can quickly lead to problems with recursive functions. The Locals package allows variables to be saved temporarily on a pseudo-stack.
Locals is a very specific package. People who work normally with Daedalus will probably never need it.
There is also the `final` function, which can be used to emulate something similar to the `final` clause in Java.
-## Dependencies
-
-- [StringBuilder](string_builder.md)
-
## Initialization
N/A
-## Implementation
-[:material-github: Locals.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Locals.d)
-
## Functions
### `Locals`
-All that has to be done to enable the `Locals` is to write this function at the beginning of the function that should receive "real" local variables.
-```dae
-func void locals()
-```
+!!! function "`Locals`"
+ All that has to be done to enable the `Locals` is to write this function at the beginning of the function that should receive "real" local variables.
+ ```dae
+ func void locals()
+ ```
### `Final`
-It is hard to explain how to use it, but very easy to understand once you've seen an example.
-```dae
-func int Final()
-```
-
-??? abstract "Example"
- With `final()` it is very easy to emulate Java's `final` clause, i.e. a block of code can be specified, which is executed after this function is exited, regardless of when or where the function is exited.
+!!! function "`Final`"
+ It is hard to explain how to use it, but very easy to understand once you've seen an example.
```dae
- func void testFinal()
- {
- if (final())
+ func int Final()
+ ```
+
+ ??? abstract "Example"
+ With `final()` it is very easy to emulate Java's `final` clause, i.e. a block of code can be specified, which is executed after this function is exited, regardless of when or where the function is exited.
+ ```dae
+ func void testFinal()
{
- MEM_InfoBox("Final was called.");
+ if (final())
+ {
+ MEM_InfoBox("Final was called.");
+ };
+ MEM_InfoBox("This will appear before Final");
};
- MEM_InfoBox("This will appear before Final");
- };
- ```
- Few lines of code say more than a thousand words.
+ ```
+ Few lines of code say more than a thousand words.
diff --git a/docs/zengin/scripts/extenders/lego/tools/misc.md b/docs/zengin/scripts/extenders/lego/tools/misc.md
index f20b55745c..d450975e37 100644
--- a/docs/zengin/scripts/extenders/lego/tools/misc.md
+++ b/docs/zengin/scripts/extenders/lego/tools/misc.md
@@ -3,18 +3,18 @@ title: Misc
description: LeGo package implementing various helper functions
---
# Misc
-The Misc package introduces various helper functions that did not fit into any other package.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [Floats](../../ikarus/floats.md)
+ **Implementation:**
+ [:material-github: Misc.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Misc.d)
-- [Floats](../../ikarus/floats.md)
+The Misc package introduces various helper functions that did not fit into any other package.
## Initialization
N/A
-## Implementation
-[:material-github: Misc.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Misc.d)
-
## Constants
Misc package implements the `phi` constant
```dae
@@ -27,130 +27,135 @@ Decimal: `1.5707...`
## Functions
### `atan2f`
-Calculates the arcus tangent of an angle between the origin and (x, y) point.
-```dae
-func int atan2f(var int x, var int y)
-```
-**Parameters**
+!!! function "`atan2f`"
+ Calculates the arcus tangent of an angle between the origin and (x, y) point.
+ ```dae
+ func int atan2f(var int x, var int y)
+ ```
+ **Parameters**
-- `#!dae var int x`
- X-coordinate
-- `#!dae var int y`
- Y-coordinate
+ - `#!dae var int x`
+ X-coordinate
+ - `#!dae var int y`
+ Y-coordinate
-**Return value**
+ **Return value**
-The function returns arcus tangent in radians as Ikarus `float`.
+ The function returns arcus tangent in radians as Ikarus `float`.
### `sin`
-Calculates the sine of an angle given in radians.
-```dae
-func int sin(var int angle)
-```
-**Parameters**
+!!! function "`sin`"
+ Calculates the sine of an angle given in radians.
+ ```dae
+ func int sin(var int angle)
+ ```
+ **Parameters**
-- `#!dae var int angle`
- The angle in radians as a Ikarus `float`
+ - `#!dae var int angle`
+ The angle in radians as a Ikarus `float`
-**Return value**
+ **Return value**
-The function returns sine of the angle as Ikarus `float`.
+ The function returns sine of the angle as Ikarus `float`.
### `cos`
-Calculates the cosine of an angle given in radians.
-```dae
-func int cos(var int angle)
-```
-**Parameters**
+!!! function "`cos`"
+ Calculates the cosine of an angle given in radians.
+ ```dae
+ func int cos(var int angle)
+ ```
+ **Parameters**
-- `#!dae var int angle`
- The angle in radians as a Ikarus `float`
+ - `#!dae var int angle`
+ The angle in radians as a Ikarus `float`
-**Return value**
-
-The function returns cosine of the angle as Ikarus `float`.
+ **Return value**
+ The function returns cosine of the angle as Ikarus `float`.
### `tan`
-Calculates the tangent of an angle given in radians.
-```dae
-func int tan(var int angle)
-```
-**Parameters**
+!!! function "`tan`"
+ Calculates the tangent of an angle given in radians.
+ ```dae
+ func int tan(var int angle)
+ ```
+ **Parameters**
-- `#!dae var int angle`
- The angle in radians as a Ikarus `float`
+ - `#!dae var int angle`
+ The angle in radians as a Ikarus `float`
-**Return value**
+ **Return value**
-The function returns tangent of the angle as Ikarus `float`.
+ The function returns tangent of the angle as Ikarus `float`.
### `asin`
-Calculates the arcus sine.
-```dae
-func int asin(var int sine)
-```
-**Parameters**
+!!! function "`asin`"
+ Calculates the arcus sine.
+ ```dae
+ func int asin(var int sine)
+ ```
+ **Parameters**
-- `#!dae var int sine`
- The sine of an angle as a Ikarus `float`
+ - `#!dae var int sine`
+ The sine of an angle as a Ikarus `float`
-**Return value**
+ **Return value**
-The function returns arcus sine of the angle as Ikarus `float`.
+ The function returns arcus sine of the angle as Ikarus `float`.
### `acos`
-Calculates the arcus cosine
-```dae
-func int acos(var int cosine)
-```
-**Parameters**
+!!! function "`acos`"
+ Calculates the arcus cosine
+ ```dae
+ func int acos(var int cosine)
+ ```
+ **Parameters**
-- `#!dae var int cosine`
- The cosine of an angle as a Ikarus `float`
+ - `#!dae var int cosine`
+ The cosine of an angle as a Ikarus `float`
-**Return value**
-
-The function returns arcus cosine of the angle as Ikarus `float`.
+ **Return value**
+ The function returns arcus cosine of the angle as Ikarus `float`.
### `distance2D`
-Calculates the distance between two points on a two-dimensional plane.
-```dae
-func int distance2D(var int x1, var int x2, var int y1, var int y2)
-```
-**Parameters**
-
-- `#!dae var int x1`
- X-coordinate of the first point
-- `#!dae var int x2`
- X-coordinate of the second point
-- `#!dae var int y1`
- Y-coordinate of the first point
-- `#!dae var int y2`
- Y-coordinate of the second point
-
-**Return value**
-
-The function returns the distance between the two points.
+!!! function "`distance2D`"
+ Calculates the distance between two points on a two-dimensional plane.
+ ```dae
+ func int distance2D(var int x1, var int x2, var int y1, var int y2)
+ ```
+ **Parameters**
+
+ - `#!dae var int x1`
+ X-coordinate of the first point
+ - `#!dae var int x2`
+ X-coordinate of the second point
+ - `#!dae var int y1`
+ Y-coordinate of the first point
+ - `#!dae var int y2`
+ Y-coordinate of the second point
+
+ **Return value**
+
+ The function returns the distance between the two points.
### `distance2Df`
-Calculates the distance between two points on a two-dimensional plane but parameters and return values are Ikarus `floats`.
-```dae
-func int distance2Df(var int x1, var int x2, var int y1, var int y2)
-```
-**Parameters**
-
-- `#!dae var int x1`
- X-coordinate of the first point
-- `#!dae var int x2`
- X-coordinate of the second point
-- `#!dae var int y1`
- Y-coordinate of the first point
-- `#!dae var int y2`
- Y-coordinate of the second point
-
-**Return value**
-
-The function returns the distance between the two points as Ikarus `float`.
-
+!!! function "`distance2Df`"
+ Calculates the distance between two points on a two-dimensional plane but parameters and return values are Ikarus `floats`.
+ ```dae
+ func int distance2Df(var int x1, var int x2, var int y1, var int y2)
+ ```
+ **Parameters**
+
+ - `#!dae var int x1`
+ X-coordinate of the first point
+ - `#!dae var int x2`
+ X-coordinate of the second point
+ - `#!dae var int y1`
+ Y-coordinate of the first point
+ - `#!dae var int y2`
+ Y-coordinate of the second point
+
+ **Return value**
+
+ The function returns the distance between the two points as Ikarus `float`.
diff --git a/docs/zengin/scripts/extenders/lego/tools/misc.pl.md b/docs/zengin/scripts/extenders/lego/tools/misc.pl.md
index 15cf87044e..fb1a261c41 100644
--- a/docs/zengin/scripts/extenders/lego/tools/misc.pl.md
+++ b/docs/zengin/scripts/extenders/lego/tools/misc.pl.md
@@ -3,17 +3,18 @@ title: Misc
description: Pakiet LeGo implementujący różne funkcje pomocnicze
---
# Misc - różne
-Pakiet Misc wprowadza różne funkcje pomocnicze, które nie pasowały do żadnego innego pakietu.
-## Zależności
-Nie dotyczy.
+!!! info inline end
+ **Zależności:**
+ - Nie dotyczy.
+ **Implementacja:**
+ [:material-github: Misc.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Misc.d)
+
+Pakiet Misc wprowadza różne funkcje pomocnicze, które nie pasowały do żadnego innego pakietu.
## Inicjalizacja
Nie dotyczy.
-## Implementacja
-[:material-github: Misc.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Misc.d)
-
## Stałe
Pakiet Misc implementuje satłą `phi`
```dae
@@ -23,135 +24,138 @@ która w rzeczywistości jest liczbą `pi` podzieloną przez 2 zapisaną jako ik
Decymalnie: `1.5707...`
-
## Funkcje
### `atan2f`
-Oblicza arcus tangens kąta między początkiem a punktem (x, y).
-```dae
-func int atan2f(var int x, var int y)
-```
-**Parametry**
+!!! function "`atan2f`"
+ Oblicza arcus tangens kąta między początkiem a punktem (x, y).
+ ```dae
+ func int atan2f(var int x, var int y)
+ ```
+ **Parametry**
-- `#!dae var int x`
- Współrzędna x
-- `#!dae var int y`
- Współrzędna y
+ - `#!dae var int x`
+ Współrzędna x
+ - `#!dae var int y`
+ Współrzędna y
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca arcus tangens w radianach, jako ikarusowy `float`.
+ Funkcja zwraca arcus tangens w radianach, jako ikarusowy `float`.
### `sin`
-Oblicza sinus kÄ…ta podanego w radianach.
-```dae
-func int sin(var int angle)
-```
-**Parametry**
+!!! function "`sin`"
+ Oblicza sinus kÄ…ta podanego w radianach.
+ ```dae
+ func int sin(var int angle)
+ ```
+ **Parametry**
-- `#!dae var int angle`
- KÄ…t w radianach jako ikarusowy `float`
+ - `#!dae var int angle`
+ KÄ…t w radianach jako ikarusowy `float`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca sinus kÄ…ta, jako ikarusowy `float`.
+ Funkcja zwraca sinus kÄ…ta, jako ikarusowy `float`.
### `cos`
-Oblicza cosinus kÄ…ta podanego w radianach.
-```dae
-func int cos(var int angle)
-```
-**Parametry**
+!!! function "`cos`"
+ Oblicza cosinus kÄ…ta podanego w radianach.
+ ```dae
+ func int cos(var int angle)
+ ```
+ **Parametry**
-- `#!dae var int angle`
- KÄ…t w radianach jako ikarusowy `float`
+ - `#!dae var int angle`
+ KÄ…t w radianach jako ikarusowy `float`
-**Zwracana wartość**
-
-Funkcja zwraca cosinus kÄ…ta, jako ikarusowy `float`.
+ **Zwracana wartość**
+ Funkcja zwraca cosinus kÄ…ta, jako ikarusowy `float`.
### `tan`
-Oblicza tangens kÄ…ta podanego w radianach.
-```dae
-func int tan(var int angle)
-```
-**Parametry**
+!!! function "`tan`"
+ Oblicza tangens kÄ…ta podanego w radianach.
+ ```dae
+ func int tan(var int angle)
+ ```
+ **Parametry**
-- `#!dae var int angle`
- KÄ…t w radianach jako ikarusowy `float`
+ - `#!dae var int angle`
+ KÄ…t w radianach jako ikarusowy `float`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca tangens kÄ…ta, jako ikarusowy `float`.
+ Funkcja zwraca tangens kÄ…ta, jako ikarusowy `float`.
### `asin`
-Oblicza arcus sinus
-```dae
-func int asin(var int sine)
-```
-**Parametry**
+!!! function "`asin`"
+ Oblicza arcus sinus
+ ```dae
+ func int asin(var int sine)
+ ```
+ **Parametry**
-- `#!dae var int sine`
- Sinus kÄ…ta jako ikarusowy `float`
+ - `#!dae var int sine`
+ Sinus kÄ…ta jako ikarusowy `float`
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca arcus sinus kÄ…ta, jako ikarusowy `float`.
+ Funkcja zwraca arcus sinus kÄ…ta, jako ikarusowy `float`.
### `acos`
-Oblicza arcus cosinus
-```dae
-func int acos(var int cosine)
-```
-**Parametry**
-
-- `#!dae var int cosine`
- Cosinus kÄ…ta jako ikarusowy `float`
+!!! function "`acos`"
+ Oblicza arcus cosinus
+ ```dae
+ func int acos(var int cosine)
+ ```
+ **Parametry**
-**Zwracana wartość**
+ - `#!dae var int cosine`
+ Cosinus kÄ…ta jako ikarusowy `float`
-Funkcja zwraca arcus cosinus kÄ…ta, jako ikarusowy `float`.
+ **Zwracana wartość**
+ Funkcja zwraca arcus cosinus kÄ…ta, jako ikarusowy `float`.
### `distance2D`
-Oblicza odległość między dwoma punktami na płaszczyźnie dwuwymiarowej.
-```dae
-func int distance2D(var int x1, var int x2, var int y1, var int y2)
-```
-**Parametry**
-
-- `#!dae var int x1`
- współrzędna x pierwszego punktu
-- `#!dae var int x2`
- współrzędna x drugiego punktu
-- `#!dae var int y1`
- współrzędna y pierwszego punktu
-- `#!dae var int y2`
- współrzędna y drugiego punktu
-
-**Zwracana wartość**
-
-Funkcja zwraca odległość między dwoma punktami.
-
+!!! function "`distance2D`"
+ Oblicza odległość między dwoma punktami na płaszczyźnie dwuwymiarowej.
+ ```dae
+ func int distance2D(var int x1, var int x2, var int y1, var int y2)
+ ```
+ **Parametry**
+
+ - `#!dae var int x1`
+ współrzędna x pierwszego punktu
+ - `#!dae var int x2`
+ współrzędna x drugiego punktu
+ - `#!dae var int y1`
+ współrzędna y pierwszego punktu
+ - `#!dae var int y2`
+ współrzędna y drugiego punktu
+
+ **Zwracana wartość**
+
+ Funkcja zwraca odległość między dwoma punktami.
### `distance2Df`
-Oblicza odległość między dwoma punktami na płaszczyźnie dwuwymiarowej, ale na liczbach zmiennoprzecinkowych (float).
-```dae
-func int distance2Df(var int x1, var int x2, var int y1, var int y2)
-```
-**Parametry**
-
-- `#!dae var int x1`
- współrzędna x pierwszego punktu
-- `#!dae var int x2`
- współrzędna x drugiego punktu
-- `#!dae var int y1`
- współrzędna y pierwszego punktu
-- `#!dae var int y2`
- współrzędna y drugiego punktu
-
-**Zwracana wartość**
-
-Funkcja zwraca odległość między dwoma punktami, jako ikarusowy `float`.
-
+!!! function "`distance2Df`"
+ Oblicza odległość między dwoma punktami na płaszczyźnie dwuwymiarowej, ale na liczbach zmiennoprzecinkowych (float).
+ ```dae
+ func int distance2Df(var int x1, var int x2, var int y1, var int y2)
+ ```
+ **Parametry**
+
+ - `#!dae var int x1`
+ współrzędna x pierwszego punktu
+ - `#!dae var int x2`
+ współrzędna x drugiego punktu
+ - `#!dae var int y1`
+ współrzędna y pierwszego punktu
+ - `#!dae var int y2`
+ współrzędna y drugiego punktu
+
+ **Zwracana wartość**
+
+ Funkcja zwraca odległość między dwoma punktami, jako ikarusowy `float`.
diff --git a/docs/zengin/scripts/extenders/lego/tools/permmem.md b/docs/zengin/scripts/extenders/lego/tools/permmem.md
index a32df568ac..4ff0f818a6 100644
--- a/docs/zengin/scripts/extenders/lego/tools/permmem.md
+++ b/docs/zengin/scripts/extenders/lego/tools/permmem.md
@@ -3,12 +3,15 @@ title: PermMem
description: LeGo package implementing automatic instances saving and loading
---
# PermMem
-PermMem is a powerful package that allows classes (or instances) to be used permanently even after loading or restarting by saving them to the ASCII `.ZEN` archive in the savegame directory. PermMem manages handles that are used to access instances, and provides various functions to manipulate these handles and instances.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [Saves](../applications/saves.md)
+ - [Locals](locals.md)
+ **Implementation:**
+ [:material-github: PermMem.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/PermMem.d)
-- [Saves](../applications/saves.md)
-- [Locals](locals.md)
+PermMem is a powerful package that allows classes (or instances) to be used permanently even after loading or restarting by saving them to the ASCII `.ZEN` archive in the savegame directory. PermMem manages handles that are used to access instances, and provides various functions to manipulate these handles and instances.
## Initialization
Initialize with `LeGo_PermMem` flag.
@@ -16,500 +19,536 @@ Initialize with `LeGo_PermMem` flag.
LeGo_Init(LeGo_PermMem);
```
-## Implementation
-[:material-github: PermMem.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/PermMem.d)
-
## Functions
### `new`
-Creates a handle to a new instance of `inst`.
-```dae
-func int new(var int inst)
-```
-**Parameters**
+!!! function "`new`"
+ Creates a handle to a new instance of `inst`.
+ ```dae
+ func int new(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- A valid instance. Used as "constructor"
+ - `#!dae var int inst`
+ A valid instance. Used as "constructor"
-**Return value**
+ **Return value**
-The function returns a new, valid PermMem handle.
+ The function returns a new, valid PermMem handle.
### `create`
-Similar to [`new`](#new), but here a pointer is returned directly and not a handle. Caution! Not managed by PermMem!
-```dae
-func int create(var int inst)
-```
-**Parameters**
+!!! function "`create`"
+ Similar to [`new`](#new), but here a pointer is returned directly and not a handle. Caution! Not managed by PermMem!
+ ```dae
+ func int create(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- A valid instance. Used as "constructor"
+ - `#!dae var int inst`
+ A valid instance. Used as "constructor"
-**Return value**
+ **Return value**
-The function returns a pointer to the new instance.
+ The function returns a pointer to the new instance.
### `wrap`
-"Wraps" a handle "around" a pointer so that the pointer can be used with any function that expects handles.
-Only conditionally managed by PermMem.
-```dae
-func int wrap(var int inst, var int ptr)
-```
-**Parameters**
+!!! function "`wrap`"
+ "Wraps" a handle "around" a pointer so that the pointer can be used with any function that expects handles.
+ Only conditionally managed by PermMem.
+ ```dae
+ func int wrap(var int inst, var int ptr)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- A valid instance. Determines the type of the handle
-- `#!dae var int ptr`
- Pointer to wrap
+ - `#!dae var int inst`
+ A valid instance. Determines the type of the handle
+ - `#!dae var int ptr`
+ Pointer to wrap
-**Return value**
+ **Return value**
-The function returns a handle with `ptr` as content.
+ The function returns a handle with `ptr` as content.
### `clear`
-Cleans the handle. After that it is invalid.
-```dae
-func void clear(var int hndl)
-```
-**Parameters**
+!!! function "`clear`"
+ Cleans the handle. After that it is invalid.
+ ```dae
+ func void clear(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
### `release`
-Frees the handle. The reserved memory is not deleted, the handle becomes invalid.
-```dae
-func void release(var int hndl)
-```
-**Parameters**
+!!! function "`release`"
+ Frees the handle. The reserved memory is not deleted, the handle becomes invalid.
+ ```dae
+ func void release(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
### `delete`
-Cleans the handle just like [`clear`](#clear), only the destructor is also called.
-```dae
-func void delete(var int hndl)
-```
-**Parameters**
+!!! function "`delete`"
+ Cleans the handle just like [`clear`](#clear), only the destructor is also called.
+ ```dae
+ func void delete(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
### `free`
-Similar to [`delete`](#delete), only here a pointer is destroyed and not a handle. Caution! Not managed by PermMem!
-```dae
-func void free(var int ptr, var int inst)
-```
-**Parameters**
+!!! function "`free`"
+ Similar to [`delete`](#delete), only here a pointer is destroyed and not a handle. Caution! Not managed by PermMem!
+ ```dae
+ func void free(var int ptr, var int inst)
+ ```
+ **Parameters**
-- `#!dae var int ptr`
- The pointer to be cleaned
-- `#!dae var int inst`
- Instance used in [`create`](#create) function.
+ - `#!dae var int ptr`
+ The pointer to be cleaned
+ - `#!dae var int inst`
+ Instance used in [`create`](#create) function.
### `get`
-Returns the instance of the handle.
-```dae
-func instance get(var int hndl)
-```
-**Parameters**
+!!! function "`get`"
+ Returns the instance of the handle.
+ ```dae
+ func instance get(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
### `getPtr`
-Returns a pointer to instance of handle.
-```dae
-func int getPtr(var int hndl)
-```
-**Parameters**
+!!! function "`getPtr`"
+ Returns a pointer to instance of handle.
+ ```dae
+ func int getPtr(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
### `setPtr`
-Sets the pointer of a handle.
-```dae
-func void setPtr(var int hndl, var int ptr)
-```
-**Parameters**
+!!! function "`setPtr`"
+ Sets the pointer of a handle.
+ ```dae
+ func void setPtr(var int hndl, var int ptr)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
-- `#!dae var int ptr`
- New pointer for handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
+ - `#!dae var int ptr`
+ New pointer for handle
### `getInst`
-Returns the instance used to create the given handle in [`new`](#new) function.
-```dae
-func int getInst(var int hndl)
-```
-**Parameters**
+!!! function "`getInst`"
+ Returns the instance used to create the given handle in [`new`](#new) function.
+ ```dae
+ func int getInst(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Valid PermMem handle
+ - `#!dae var int hndl`
+ Valid PermMem handle
### `numHandles`
-Returns the number of handles managed by PermMem.
-```dae
-func int numHandles()
-```
+!!! function "`numHandles`"
+ Returns the number of handles managed by PermMem.
+ ```dae
+ func int numHandles()
+ ```
### `sizeof`
-Gets the size of the given instance's class.
-```dae
-func int sizeof(var int inst)
-```
-**Parameters**
+!!! function "`sizeof`"
+ Gets the size of the given instance's class.
+ ```dae
+ func int sizeof(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- Any instance
+ - `#!dae var int inst`
+ Any instance
-**Return value**
+ **Return value**
-The function returns the size of a given instance's class in bytes.
+ The function returns the size of a given instance's class in bytes.
### `Hlp_IsValidHandle`
-Indicates whether the handle exists and is managed by PermMem.
-```dae
-func int Hlp_IsValidHandle(var int hndl)
-```
-**Parameters**
+!!! function "`Hlp_IsValidHandle`"
+ Indicates whether the handle exists and is managed by PermMem.
+ ```dae
+ func int Hlp_IsValidHandle(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- PermMem's handle
+ - `#!dae var int hndl`
+ PermMem's handle
-**Return value**
+ **Return value**
-The function returns `TRUE` if the handle is valid (managed by PermMem), `FALSE` is returned otherwise.
+ The function returns `TRUE` if the handle is valid (managed by PermMem), `FALSE` is returned otherwise.
-??? abstract "Example"
- The example function that use `Hlp_IsValidHandle` is [`Bar_SetMax`](../applications/bars.md#bar_setmax) form LeGo [Bars](../applications/bars.md) package. The function first checks if the handle is valid, then gets the instance and changes its parameters.
+ ??? abstract "Example"
+ The example function that use `Hlp_IsValidHandle` is [`Bar_SetMax`](../applications/bars.md#bar_setmax) form LeGo [Bars](../applications/bars.md) package. The function first checks if the handle is valid, then gets the instance and changes its parameters.
- ```dae
- func void Bar_SetMax(var int bar, var int max)
- {
- if(!Hlp_IsValidHandle(bar)) { return; };
- var _bar b; b = get(bar);
- b.valMax = max;
- };
- ```
+ ```dae
+ func void Bar_SetMax(var int bar, var int max)
+ {
+ if(!Hlp_IsValidHandle(bar)) { return; };
+ var _bar b; b = get(bar);
+ b.valMax = max;
+ };
+ ```
### `foreachHndl`
-Executes a function for each handle of an instance.
-```dae
-func void foreachHndl(var int inst, var func fnc)
-```
-**Parameters**
+!!! function "`foreachHndl`"
+ Executes a function for each handle of an instance.
+ ```dae
+ func void foreachHndl(var int inst, var func fnc)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- The function is called for this instance
-- `#!dae var int inst`
- This function is called. The signature is `function(int handle)`
+ - `#!dae var int inst`
+ The function is called for this instance
+ - `#!dae var int inst`
+ This function is called. The signature is `function(int handle)`
### `hasHndl`
-Checks if PermMem has a handle of this instance.
-```dae
-func int hasHndl(var int inst)
-```
-**Parameters**
+!!! function "`hasHndl`"
+ Checks if PermMem has a handle of this instance.
+ ```dae
+ func int hasHndl(var int inst)
+ ```
+ **Parameters**
-- `#!dae var int inst`
- Instance to be checked
+ - `#!dae var int inst`
+ Instance to be checked
-**Return value**
+ **Return value**
-The function returns `TRUE` if the PermMem has a handle of this instance, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the PermMem has a handle of this instance, `FALSE` is returned otherwise.
### `MEM_ReadStringArray`
-Function moved to PermMem form [Ikarus](../../ikarus/functions/mem_access.md#mem_readstringarray). Reads string from the array at the `arrayAddress`.
-```dae
-func string MEM_ReadStringArray(var int arrayAddress, var int index)
-```
-**Parameters**
-
-- `#!dae var int arrayAddress`
- Memory address of array
-- `#!dae var int offset`
- Array offset (array index)
+!!! function "`MEM_ReadStringArray`"
+ Function moved to PermMem form [Ikarus](../../ikarus/functions/mem_access.md#mem_readstringarray). Reads string from the array at the `arrayAddress`.
+ ```dae
+ func string MEM_ReadStringArray(var int arrayAddress, var int index)
+ ```
+ **Parameters**
-**Return value**
+ - `#!dae var int arrayAddress`
+ Memory address of array
+ - `#!dae var int offset`
+ Array offset (array index)
-The function returns string from the array if the address is correct.
+ **Return value**
+ The function returns string from the array if the address is correct.
### `PM_Exists`
-Checks if the specified field already exists in the archive. (used with archiver/unarchiver)
-```dae
-func int PM_Exists(var string name)
-```
-**Parameters**
+!!! function "`PM_Exists`"
+ Checks if the specified field already exists in the archive. (used with archiver/unarchiver)
+ ```dae
+ func int PM_Exists(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field
+ - `#!dae var string name`
+ Name of the field
-**Return value**
+ **Return value**
-The function returns `TRUE` if the field exists in the archive, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the field exists in the archive, `FALSE` is returned otherwise.
## Archiver
### `PM_SaveInt`
-Saves an integer to the archive.
-```dae
-func void PM_SaveInt (var string name, var int val)
-```
-**Parameters**
+!!! function "`PM_SaveInt`"
+ Saves an integer to the archive.
+ ```dae
+ func void PM_SaveInt (var string name, var int val)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int val`
- Value of the saved integer
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int val`
+ Value of the saved integer
### `PM_SaveFloat`
-Saves a daedalus float to the archive.
-```dae
-func void PM_SaveFloat (var string name, var int flt)
-```
-**Parameters**
+!!! function "`PM_SaveFloat`"
+ Saves a daedalus float to the archive.
+ ```dae
+ func void PM_SaveFloat (var string name, var int flt)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int flt`
- Value of the saved float
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int flt`
+ Value of the saved float
### `PM_SaveString`
-Saves a string to the archive.
-```dae
-func void PM_SaveString (var string name, var string val)
-```
-**Parameters**
+!!! function "`PM_SaveString`"
+ Saves a string to the archive.
+ ```dae
+ func void PM_SaveString (var string name, var string val)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var string val`
- Saved string
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var string val`
+ Saved string
### `PM_SaveFuncID`
-Saves a function ID to the archive.
-```dae
-func void PM_SaveFuncID(var string name, var int fnc)
-```
-**Parameters**
+!!! function "`PM_SaveFuncID`"
+ Saves a function ID to the archive.
+ ```dae
+ func void PM_SaveFuncID(var string name, var int fnc)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int fnc`
- Saved function ID
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int fnc`
+ Saved function ID
### `PM_SaveFuncOffset`
-Saves a function offset to the archive.
-```dae
-func void PM_SaveFuncOffset(var string name, var int fnc)
-```
-**Parameters**
+!!! function "`PM_SaveFuncOffset`"
+ Saves a function offset to the archive.
+ ```dae
+ func void PM_SaveFuncOffset(var string name, var int fnc)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int fnc`
- Saved function offset
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int fnc`
+ Saved function offset
### `PM_SaveFuncPtr`
-Saves a function pointer to the archive.
-```dae
-func void PM_SaveFuncPtr(var string name, var int fnc)
-```
-**Parameters**
+!!! function "`PM_SaveFuncPtr`"
+ Saves a function pointer to the archive.
+ ```dae
+ func void PM_SaveFuncPtr(var string name, var int fnc)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int fnc`
- Saved function pointer
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int fnc`
+ Saved function pointer
### `PM_SaveClassPtr`
-Saves a pointer of a class to the archive.
-```dae
-func void PM_SaveClassPtr(var string name, var int ptr, var string className)
-```
-**Parameters**
+!!! function "`PM_SaveClassPtr`"
+ Saves a pointer of a class to the archive.
+ ```dae
+ func void PM_SaveClassPtr(var string name, var int ptr, var string className)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int ptr`
- Saved pointer
-- `#!dae var string className`
- Name of the class of stored pointer
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int ptr`
+ Saved pointer
+ - `#!dae var string className`
+ Name of the class of stored pointer
### `PM_SaveClass`
-Saves a class like [`PM_SaveClassPtr`](#pm_saveclassptr).
-```dae
-func void PM_SaveClass(var string name, var int ptr, var string className)
-```
-**Parameters**
+!!! function "`PM_SaveClass`"
+ Saves a class like [`PM_SaveClassPtr`](#pm_saveclassptr).
+ ```dae
+ func void PM_SaveClass(var string name, var int ptr, var string className)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int ptr`
- Saved class pointer
-- `#!dae var string className`
- Name of the class of stored pointer
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int ptr`
+ Saved class pointer
+ - `#!dae var string className`
+ Name of the class of stored pointer
### `PM_SaveIntArray`
-Saves an array of integers.
-```dae
-func void PM_SaveIntArray(var string name, var int ptr, var int elements)
-```
-**Parameters**
+!!! function "`PM_SaveIntArray`"
+ Saves an array of integers.
+ ```dae
+ func void PM_SaveIntArray(var string name, var int ptr, var int elements)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int ptr`
- Pointer to the array
-- `#!dae var int elements`
- Number of elements in array
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int ptr`
+ Pointer to the array
+ - `#!dae var int elements`
+ Number of elements in array
### `PM_SaveStringArray`
-Saves an array of integers.
-```dae
-func void PM_SaveStringArray(var string name, var int ptr, var int elements)
-```
-**Parameters**
+!!! function "`PM_SaveStringArray`"
+ Saves an array of integers.
+ ```dae
+ func void PM_SaveStringArray(var string name, var int ptr, var int elements)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the field in saved archive
-- `#!dae var int ptr`
- Pointer to the array
-- `#!dae var int elements`
- Number of elements in array
+ - `#!dae var string name`
+ Name of the field in saved archive
+ - `#!dae var int ptr`
+ Pointer to the array
+ - `#!dae var int elements`
+ Number of elements in array
## Unarchiver
### `PM_Load`
-Universal function to load integers, floats, class pointers and int arrays.
-```dae
-func int PM_Load(var string name)
-```
-**Parameters**
+!!! function "`PM_Load`"
+ Universal function to load integers, floats, class pointers and int arrays.
+ ```dae
+ func int PM_Load(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
-**Return value**
-The function returns the data existing in the archive at the given field.
+ **Return value**
+ The function returns the data existing in the archive at the given field.
### `PM_LoadInt`
-Returns an integer stored in the archive.
-```dae
-func int PM_LoadInt(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadInt`"
+ Returns an integer stored in the archive.
+ ```dae
+ func int PM_LoadInt(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadFloat`
-Returns a daedalus float stored in the archive.
-```dae
-func int PM_LoadFloat(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadFloat`"
+ Returns a daedalus float stored in the archive.
+ ```dae
+ func int PM_LoadFloat(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadString`
-Returns a string stored in the archive.
-```dae
-func string PM_LoadString(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadString`"
+ Returns a string stored in the archive.
+ ```dae
+ func string PM_LoadString(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadFuncID`
-Returns a function ID stored in the archive.
-```dae
-func int PM_LoadFuncID(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadFuncID`"
+ Returns a function ID stored in the archive.
+ ```dae
+ func int PM_LoadFuncID(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadFuncOffset`
-Returns a function offset stored in the archive.
-```dae
-func int PM_LoadFuncOffset(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadFuncOffset`"
+ Returns a function offset stored in the archive.
+ ```dae
+ func int PM_LoadFuncOffset(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadFuncPtr`
-Returns a function pointer stored in the archive.
-```dae
-func int PM_LoadFuncPtr(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadFuncPtr`"
+ Returns a function pointer stored in the archive.
+ ```dae
+ func int PM_LoadFuncPtr(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadClassPtr`
-Returns a class pointer stored in the archive.
-```dae
-func int PM_LoadClassPtr(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadClassPtr`"
+ Returns a class pointer stored in the archive.
+ ```dae
+ func int PM_LoadClassPtr(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadClass`
-Loads a pointer to the class from the archive to `destPtr`.
-```dae
-func void PM_LoadClass(var string name, var int destPtr)
-```
-**Parameters**
+!!! function "`PM_LoadClass`"
+ Loads a pointer to the class from the archive to `destPtr`.
+ ```dae
+ func void PM_LoadClass(var string name, var int destPtr)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
-- `#!dae var int destPtr`
- Destination pointer, the address to where it will deserialize the saved data
+ - `#!dae var string name`
+ Name of the loaded field
+ - `#!dae var int destPtr`
+ Destination pointer, the address to where it will deserialize the saved data
### `PM_LoadArray`
-Returns a pointer to array stored in the archive.
-```dae
-func int PM_LoadArray(var string name)
-```
-**Parameters**
+!!! function "`PM_LoadArray`"
+ Returns a pointer to array stored in the archive.
+ ```dae
+ func int PM_LoadArray(var string name)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
+ - `#!dae var string name`
+ Name of the loaded field
### `PM_LoadArrayToPtr`
-Loads a pointer to array from the archive to `destPtr`.
-```dae
-func void PM_LoadArrayToPtr(var string name, var int destPtr)
-```
-**Parameters**
+!!! function "`PM_LoadArrayToPtr`"
+ Loads a pointer to array from the archive to `destPtr`.
+ ```dae
+ func void PM_LoadArrayToPtr(var string name, var int destPtr)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
-- `#!dae var int destPtr`
- Destination pointer, the address to where it will deserialize the saved data
+ - `#!dae var string name`
+ Name of the loaded field
+ - `#!dae var int destPtr`
+ Destination pointer, the address to where it will deserialize the saved data
### `PM_LoadToPtr`
-Universal function to load array or class pointer from the archive to `destPtr`.
-```dae
-func void PM_LoadToPtr(var string name, var int destPtr)
-```
-**Parameters**
+!!! function "`PM_LoadToPtr`"
+ Universal function to load array or class pointer from the archive to `destPtr`.
+ ```dae
+ func void PM_LoadToPtr(var string name, var int destPtr)
+ ```
+ **Parameters**
-- `#!dae var string name`
- Name of the loaded field
-- `#!dae var int destPtr`
- Destination pointer, the address to where it will deserialize the saved data
\ No newline at end of file
+ - `#!dae var string name`
+ Name of the loaded field
+ - `#!dae var int destPtr`
+ Destination pointer, the address to where it will deserialize the saved data
diff --git a/docs/zengin/scripts/extenders/lego/tools/queue.md b/docs/zengin/scripts/extenders/lego/tools/queue.md
index f16a52283e..41b326d757 100644
--- a/docs/zengin/scripts/extenders/lego/tools/queue.md
+++ b/docs/zengin/scripts/extenders/lego/tools/queue.md
@@ -3,192 +3,206 @@ title: Queue
description: LeGo package implementing queue data structure
---
# Queue
-This package is an implementation of the Queue data structure and a queue for function calls.
-## Dependencies
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](permmem.md)
+ **Implementation:**
+ [:material-github: Queue.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Queue.d)
-- [PermMem](permmem.md)
+This package is an implementation of the Queue data structure and a queue for function calls.
## Initialization
N/A
-## Implementation
-[:material-github: Queue.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Queue.d)
-
## Queue
-### `Q_Create`
-Creates a new queue and returns a handle to it.
-```dae
-func int Q_Create()
-```
-**Return value**
+### `Q_Create`
+!!! function "`Q_Create`"
+ Creates a new queue and returns a handle to it.
+ ```dae
+ func int Q_Create()
+ ```
+ **Return value**
-The function returns a handle to a queue.
+ The function returns a handle to a queue.
### `Q_Enqueue`
-Appends an integer to the back of the queue
-```dae
-func void Q_Enqueue(var int queue, var int value)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a queue
-- `#!dae var int value`
- The value to be appended to the queue
+!!! function "`Q_Enqueue`"
+ Appends an integer to the back of the queue
+ ```dae
+ func void Q_Enqueue(var int queue, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a queue
+ - `#!dae var int value`
+ The value to be appended to the queue
### `Q_IsEmpty`
-Checks if the queue is empty.
-```dae
-func int Q_IsEmpty(var int queue)
-```
-**Parameters**
+!!! function "`Q_IsEmpty`"
+ Checks if the queue is empty.
+ ```dae
+ func int Q_IsEmpty(var int queue)
+ ```
+ **Parameters**
-- `#!dae var int queue`
- Handle of a queue
+ - `#!dae var int queue`
+ Handle of a queue
-**Return value**
+ **Return value**
-The function returns `TRUE` if the queue is empty, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the queue is empty, `FALSE` is returned otherwise.
### `Q_Advance`
-Removes the oldest value from the queue and returns it.
-```dae
-func int Q_Advance(var int queue)
-```
-**Parameters**
+!!! function "`Q_Advance`"
+ Removes the oldest value from the queue and returns it.
+ ```dae
+ func int Q_Advance(var int queue)
+ ```
+ **Parameters**
-- `#!dae var int queue`
- Handle of a queue
+ - `#!dae var int queue`
+ Handle of a queue
-**Return value**
+ **Return value**
-The function returns the oldest value in the queue.
+ The function returns the oldest value in the queue.
### `Q_Peek`
-Returns the oldest value in the queue without removing it.
-```dae
-func int Q_Peek(var int queue)
-```
-**Parameters**
+!!! function "`Q_Peek`"
+ Returns the oldest value in the queue without removing it.
+ ```dae
+ func int Q_Peek(var int queue)
+ ```
+ **Parameters**
-- `#!dae var int queue`
- Handle of a queue
+ - `#!dae var int queue`
+ Handle of a queue
-**Return value**
+ **Return value**
-The function returns the oldest value in the queue.
+ The function returns the oldest value in the queue.
### `Q_For`
-Function with the `funcID` is called with every element of the list as parameter.
-The list element is passed to the function as a `zCList` pointer.
-```dae
-func void Q_For(var int queue, var int funcID)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a queue
-- `#!dae var int funcID`
- ID of function that is executed for all values in the queue (signature: `void (zCList*)`)
+!!! function "`Q_For`"
+ Function with the `funcID` is called with every element of the list as parameter.
+ The list element is passed to the function as a `zCList` pointer.
+ ```dae
+ func void Q_For(var int queue, var int funcID)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a queue
+ - `#!dae var int funcID`
+ ID of function that is executed for all values in the queue (signature: `void (zCList*)`)
### `Q_ForF`
-Like `Q_For`, but with function as a parameter instead of a function ID.
-```dae
-func void Q_ForF(var int queue, var func f)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a queue
-- `#!dae var func f`
- This function is executed for all values in the queue (signature: `void (zCList*)`)
+!!! function "`Q_ForF`"
+ Like `Q_For`, but with function as a parameter instead of a function ID.
+ ```dae
+ func void Q_ForF(var int queue, var func f)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a queue
+ - `#!dae var func f`
+ This function is executed for all values in the queue (signature: `void (zCList*)`)
## CallbackQueue
### `CQ_Create`
-Creates a new callback queue and returns a handle to it.
-```dae
-func int CQ_Create()
-```
-**Return value**
+!!! function "`CQ_Create`"
+ Creates a new callback queue and returns a handle to it.
+ ```dae
+ func int CQ_Create()
+ ```
+ **Return value**
-The function returns a handle to a callback queue.
+ The function returns a handle to a callback queue.
### `CQ_EnqueueNoData`
-Appends a function to the callback queue.
-```dae
-func void CQ_EnqueueNoData(var int queue, var func function)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a callback queue
-- `#!dae var func function`
- A function with no return value, expecting no parameter
+!!! function "`CQ_EnqueueNoData`"
+ Appends a function to the callback queue.
+ ```dae
+ func void CQ_EnqueueNoData(var int queue, var func function)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a callback queue
+ - `#!dae var func function`
+ A function with no return value, expecting no parameter
### `CQ_EnqueueData`
-Appends a function together with a value to the callback queue.
-```dae
-func void CQ_EnqueueData(var int queue, var func function, var int data)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a callback queue
-- `#!dae var func function`
- A function with no return value, expecting an integer as a parameter.
-- `#!dae var int data`
- When calling `function`, this value is passed as a parameter
+!!! function "`CQ_EnqueueData`"
+ Appends a function together with a value to the callback queue.
+ ```dae
+ func void CQ_EnqueueData(var int queue, var func function, var int data)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a callback queue
+ - `#!dae var func function`
+ A function with no return value, expecting an integer as a parameter.
+ - `#!dae var int data`
+ When calling `function`, this value is passed as a parameter
### `CQ_Enqueue`
-Appends a function together with an optional value to the callback queue.
-This function should not usually be used. Use `CQ_EnqueueData` and `CQ_EnqueueNoData` instead.
-```dae
-func void CQ_Enqueue(var int queue, var int funcID, var int data, var int hasData)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a callback queue
-- `#!dae var int funcID`
- The function ID of a function to be appended to the callback queue.
-- `#!dae var int data`
- If hasData is not 0, this value is passed to the associated function.
-- `#!dae var int hasData`
- Must be 0 if the function does not expect an integer as a parameter, otherwise not 0.
+!!! function "`CQ_Enqueue`"
+ Appends a function together with an optional value to the callback queue.
+ This function should not usually be used. Use `CQ_EnqueueData` and `CQ_EnqueueNoData` instead.
+ ```dae
+ func void CQ_Enqueue(var int queue, var int funcID, var int data, var int hasData)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a callback queue
+ - `#!dae var int funcID`
+ The function ID of a function to be appended to the callback queue.
+ - `#!dae var int data`
+ If hasData is not 0, this value is passed to the associated function.
+ - `#!dae var int hasData`
+ Must be 0 if the function does not expect an integer as a parameter, otherwise not 0.
### `CQ_IsEmpty`
-Checks if no function is in the callback queue.
-```dae
-func int CQ_IsEmpty(var int queue)
-```
-**Parameters**
+!!! function "`CQ_IsEmpty`"
+ Checks if no function is in the callback queue.
+ ```dae
+ func int CQ_IsEmpty(var int queue)
+ ```
+ **Parameters**
-- `#!dae var int queue`
- Handle of a callback queue
+ - `#!dae var int queue`
+ Handle of a callback queue
-**Return value**
+ **Return value**
-The function returns `TRUE` if the callback queue is empty, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the callback queue is empty, `FALSE` is returned otherwise.
### `CQ_Advance`
-Executes the foremost function of the callback queue and removes it from the callback queue.
-```dae
-func void CQ_Advance(var int queue)
-```
-**Parameters**
+!!! function "`CQ_Advance`"
+ Executes the foremost function of the callback queue and removes it from the callback queue.
+ ```dae
+ func void CQ_Advance(var int queue)
+ ```
+ **Parameters**
-- `#!dae var int queue`
- Handle of a callback queue
+ - `#!dae var int queue`
+ Handle of a callback queue
### `CQ_Exhaust`
-Executes all functions contained in the callback queue.
-```dae
-func void CQ_Exhaust(var int queue)
-```
-**Parameters**
-
-- `#!dae var int queue`
- Handle of a callback queue
+!!! function "`CQ_Exhaust`"
+ Executes all functions contained in the callback queue.
+ ```dae
+ func void CQ_Exhaust(var int queue)
+ ```
+ **Parameters**
+
+ - `#!dae var int queue`
+ Handle of a callback queue
diff --git a/docs/zengin/scripts/extenders/lego/tools/random.md b/docs/zengin/scripts/extenders/lego/tools/random.md
index 1b5c48d6cd..1883ad10d0 100644
--- a/docs/zengin/scripts/extenders/lego/tools/random.md
+++ b/docs/zengin/scripts/extenders/lego/tools/random.md
@@ -3,10 +3,14 @@ title: Random
description: LeGo package providing a better alternative for a `Hlp_Random()` function
---
# Random
-Provides more random randomization than `Hlp_Random()` function.
-## Dependencies
-N/A
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: Random.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Random.d)
+
+Provides more random randomization than `Hlp_Random()` function.
## Initialization
Initialize with `LeGo_Random` flag.
@@ -14,62 +18,64 @@ Initialize with `LeGo_Random` flag.
LeGo_Init(LeGo_Random);
```
-## Implementation
-[:material-github: Random.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Random.d)
-
## Functions
### `r_Next`
-Returns a random number.
-```dae
-func int r_Next()
-```
-**Return value**
+!!! function "`r_Next`"
+ Returns a random number.
+ ```dae
+ func int r_Next()
+ ```
+ **Return value**
-The function returns a random number.
+ The function returns a random number.
### `r_Max`
-Returns a random number from 0 to `max`.
-```dae
-func int r_Max(var int max)
-```
-**Parameters**
+!!! function "`r_Max`"
+ Returns a random number from 0 to `max`.
+ ```dae
+ func int r_Max(var int max)
+ ```
+ **Parameters**
-- `#!dae var int max`
- Maximum value of number
+ - `#!dae var int max`
+ Maximum value of number
-**Return value**
+ **Return value**
-The function returns a random number from 0 to 'max'.
+ The function returns a random number from 0 to 'max'.
### `r_MinMax`
-Returns a random number from 'min' to 'max'.
-```dae
-func int r_MinMax(var int min, var int max)
-```
-**Parameters**
+!!! function "`r_MinMax`"
+ Returns a random number from 'min' to 'max'.
+ ```dae
+ func int r_MinMax(var int min, var int max)
+ ```
+ **Parameters**
-- `#!dae var int max`
- Maximum value of number
-- `#!dae var int min`
- Minimum value of number
+ - `#!dae var int max`
+ Maximum value of number
+ - `#!dae var int min`
+ Minimum value of number
-**Return value**
+ **Return value**
-The function returns a random number from `min` to `max`.
+ The function returns a random number from `min` to `max`.
### `r_Init`
-Initializes the random number generator. Happens optionally in `LeGo_Init`.
-```dae
-func void r_Init(var int seed)
-```
-**Parameters**
+!!! function "`r_Init`"
+ Initializes the random number generator. Happens optionally in `LeGo_Init`.
+ ```dae
+ func void r_Init(var int seed)
+ ```
+ **Parameters**
-- `#!dae var int seed`
- The initializing value
+ - `#!dae var int seed`
+ The initializing value
### `r_DefaultInit`
-Initializes the random number generator based on the current time.
-```dae
-func void r_DefaultInit()
-```
+!!! function "`r_DefaultInit`"
+ Initializes the random number generator based on the current time.
+ ```dae
+ func void r_DefaultInit()
+ ```
diff --git a/docs/zengin/scripts/extenders/lego/tools/string_builder.md b/docs/zengin/scripts/extenders/lego/tools/string_builder.md
index 7734c54d5d..c3afe5070f 100644
--- a/docs/zengin/scripts/extenders/lego/tools/string_builder.md
+++ b/docs/zengin/scripts/extenders/lego/tools/string_builder.md
@@ -3,6 +3,13 @@ title: StringBuilder
description: LeGo package for creating strings without using a 'ConcatStrings' function
---
# StringBuilder
+
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: StringBuilder.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/StringBuilder.d)
+
The StringBuilder is a package, designed to easily concatenate multiple elements into a string (without `ConcatStrings` and `IntToString`).
All created StringBuilders are transient. All functions starting from [`SB_InitBuffer`](#sb_initbuffer), including it, use the active StringBuilder set with [`SB_New`](#sb_new) or [`SB_Use`](#sb_use), so there is no `#!dae var int stringBuilder` parameter in functions. A look at the example explains what I mean.
@@ -10,256 +17,272 @@ All created StringBuilders are transient. All functions starting from [`SB_InitB
!!! Warning
The StringBuilder works with pointers, not handles like many other LeGo packages.
-## Dependencies
-N/A
-
## Initialization
N/A
-## Implementation
-[:material-github: StringBuilder.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/StringBuilder.d)
-
## Functions
### `SB_New`
-Creates and returns a new `StringBuilder`. At the same time, this new `StringBuilder` is set as active. (See [`SB_Use`](#sb_use).)
-```dae
-func int SB_New()
-```
-**Return value**
+!!! function "`SB_New`"
+ Creates and returns a new `StringBuilder`. At the same time, this new `StringBuilder` is set as active. (See [`SB_Use`](#sb_use).)
+ ```dae
+ func int SB_New()
+ ```
+ **Return value**
-The function returns a pointer to a new `StringBuilder`.
+ The function returns a pointer to a new `StringBuilder`.
### `SB_Use`
-Marks this `StringBuilder` as active. It can now be used with the functions.
-```dae
-func void SB_Use(var int sb)
-```
-**Parameters**
+!!! function "`SB_Use`"
+ Marks this `StringBuilder` as active. It can now be used with the functions.
+ ```dae
+ func void SB_Use(var int sb)
+ ```
+ **Parameters**
-- `#!dae var int sb`
- Pointer to a `StringBuilder`, returned from [`SB_New`](#sb_new)
+ - `#!dae var int sb`
+ Pointer to a `StringBuilder`, returned from [`SB_New`](#sb_new)
### `SB_Get`
-Returns the active `StringBuilder`.
-```dae
-func int SB_Get()
-```
-**Return value**
+!!! function "`SB_Get`"
+ Returns the active `StringBuilder`.
+ ```dae
+ func int SB_Get()
+ ```
+ **Return value**
-The function returns the active `StringBuilder` object - last set with [`SB_Use`](#sb_use) or just created with [`SB_New`](#sb_new).
+ The function returns the active `StringBuilder` object - last set with [`SB_Use`](#sb_use) or just created with [`SB_New`](#sb_new).
### `SB_InitBuffer`
-If the size of the resulting string is already known, the buffer can be set manually. This is usually not necessary.
-```dae
-func void SB_InitBuffer(var int size)
-```
-**Parameters**
+!!! function "`SB_InitBuffer`"
+ If the size of the resulting string is already known, the buffer can be set manually. This is usually not necessary.
+ ```dae
+ func void SB_InitBuffer(var int size)
+ ```
+ **Parameters**
-- `#!dae var int size`
- Size in bytes. **Warning!** Only works if the `StringBuilder` has been newly created!
+ - `#!dae var int size`
+ Size in bytes. **Warning!** Only works if the `StringBuilder` has been newly created!
### `SB_Clear`
-Empties the current `StringBuilder`. It is not destroyed in the process, so it can be used again. If the object has a buffer allocated, the buffer is freed.
-```dae
-func void SB_Clear()
-```
+!!! function "`SB_Clear`"
+ Empties the current `StringBuilder`. It is not destroyed in the process, so it can be used again. If the object has a buffer allocated, the buffer is freed.
+ ```dae
+ func void SB_Clear()
+ ```
### `SB_Release`
-Releases the current stream of the `StringBuilder`. The `StringBuilder` is destroyed, and the stream can be obtained via `SB_GetStream`.
-```dae
-func void SB_Release()
-```
+!!! function "`SB_Release`"
+ Releases the current stream of the `StringBuilder`. The `StringBuilder` is destroyed, and the stream can be obtained via `SB_GetStream`.
+ ```dae
+ func void SB_Release()
+ ```
### `SB_Destroy`
-Completely destroys the `StringBuilder`.
-```dae
-func void SB_Destroy()
-```
+!!! function "`SB_Destroy`"
+ Completely destroys the `StringBuilder`.
+ ```dae
+ func void SB_Destroy()
+ ```
### `SB_ToString`
-Returns a copy of the stream as a string.
-```dae
-func string SB_ToString()
-```
-**Return value**
+!!! function "`SB_ToString`"
+ Returns a copy of the stream as a string.
+ ```dae
+ func string SB_ToString()
+ ```
+ **Return value**
-The function returns the copy of the active `StringBuilder` as a string. If the `StringBuilder` object doesn't have a buffer allocated, an empty string is returned.
+ The function returns the copy of the active `StringBuilder` as a string. If the `StringBuilder` object doesn't have a buffer allocated, an empty string is returned.
### `SB_ToStream`
-Returns a copy of the stream in raw format.
-```dae
-func int SB_ToStream()
-```
-**Return value**
+!!! function "`SB_ToStream`"
+ Returns a copy of the stream in raw format.
+ ```dae
+ func int SB_ToStream()
+ ```
+ **Return value**
-The function returns a copy of the stream in raw format (`char[]`)
+ The function returns a copy of the stream in raw format (`char[]`)
### `SB_GetStream`
-Doesn't copy the stream, but returns it as it is.
-```dae
-func int SB_GetStream()
-```
-**Return value**
+!!! function "`SB_GetStream`"
+ Doesn't copy the stream, but returns it as it is.
+ ```dae
+ func int SB_GetStream()
+ ```
+ **Return value**
-The function returns the stream as it is. [`SB_Destroy`](#sb_destroy) or [`SB_Clear`](#sb_clear) destroy the returned pointer.
+ The function returns the stream as it is. [`SB_Destroy`](#sb_destroy) or [`SB_Clear`](#sb_clear) destroy the returned pointer.
### `SB_Length`
-Returns the current length of the stream. Similar to [`STR_Len`](../../ikarus/functions/string.md#str_len) from [Ikarus](../../ikarus/index.md) .
-```dae
-func int SB_Length()
-```
-**Return value**
+!!! function "`SB_Length`"
+ Returns the current length of the stream. Similar to [`STR_Len`](../../ikarus/functions/string.md#str_len) from [Ikarus](../../ikarus/index.md) .
+ ```dae
+ func int SB_Length()
+ ```
+ **Return value**
-The function returns the current length of the active `StringBuilder`.
+ The function returns the current length of the active `StringBuilder`.
### `SB_SetLength`
-Sets the length of the stream. When increasing, zero bytes are appended.
-```dae
-func void SB_SetLength(var int length)
-```
+!!! function "`SB_SetLength`"
+ Sets the length of the stream. When increasing, zero bytes are appended.
+ ```dae
+ func void SB_SetLength(var int length)
+ ```
## Stream operations
-
### `SB`
-Appends a string, to the active `StringBuilder`.
-```dae
-func void SB(var string s)
-```
-**Parameters**
+!!! function "`SB`"
+ Appends a string, to the active `StringBuilder`.
+ ```dae
+ func void SB(var string s)
+ ```
+ **Parameters**
-- `#!dae var string s`
- The appended string
+ - `#!dae var string s`
+ The appended string
### `SBi`
-Appends an integer in text form, to the active `StringBuilder`.
-```dae
-func void SBi(var int i)
-```
-**Parameters**
+!!! function "`SBi`"
+ Appends an integer in text form, to the active `StringBuilder`.
+ ```dae
+ func void SBi(var int i)
+ ```
+ **Parameters**
-- `#!dae var int i`
- The appended integer
+ - `#!dae var int i`
+ The appended integer
### `SBc`
-Appends a byte, to the active `StringBuilder`. (e.g. 82 for 'R' - An ASCII table can be quickly found)
-```dae
-func void SBc(var int c)
-```
-**Parameters**
+!!! function "`SBc`"
+ Appends a byte, to the active `StringBuilder`. (e.g. 82 for 'R' - An ASCII table can be quickly found)
+ ```dae
+ func void SBc(var int c)
+ ```
+ **Parameters**
-- `#!dae var int c`
- The appended byte (ASCII table character)
+ - `#!dae var int c`
+ The appended byte (ASCII table character)
### `SBraw`
-Appends a raw bytes array, to the active `StringBuilder`.
-```dae
-func void SBraw(var int ptr, var int len)
-```
-**Parameters**
-
-- `#!dae var int ptr`
- Pointer to the appended array
-- `#!dae var int len`
- Length of an array
+!!! function "`SBraw`"
+ Appends a raw bytes array, to the active `StringBuilder`.
+ ```dae
+ func void SBraw(var int ptr, var int len)
+ ```
+ **Parameters**
+
+ - `#!dae var int ptr`
+ Pointer to the appended array
+ - `#!dae var int len`
+ Length of an array
### `SBflt`
-Appends a Daedalus float in text form, to the active `StringBuilder`.
-```dae
-func void SBflt(var float x)
-```
-**Parameters**
+!!! function "`SBflt`"
+ Appends a Daedalus float in text form, to the active `StringBuilder`.
+ ```dae
+ func void SBflt(var float x)
+ ```
+ **Parameters**
-- `#!dae var float x`
- The appended Daedalus float value
+ - `#!dae var float x`
+ The appended Daedalus float value
### `SBf`
-Appends an [Ikarus float](../../ikarus/floats.md) in text form, to the active `StringBuilder`.
-```dae
-func void SBf(var int x)
-```
-**Parameters**
+!!! function "`SBf`"
+ Appends an [Ikarus float](../../ikarus/floats.md) in text form, to the active `StringBuilder`.
+ ```dae
+ func void SBf(var int x)
+ ```
+ **Parameters**
-- `#!dae var float x`
- The appended Ikarus float value
+ - `#!dae var float x`
+ The appended Ikarus float value
### `SBw`
-Appends a 4-byte raw data (interpreted as an integer `x`), to the active `StringBuilder`.
-```dae
-func void SBw(var int x)
-```
-**Parameters**
+!!! function "`SBw`"
+ Appends a 4-byte raw data (interpreted as an integer `x`), to the active `StringBuilder`.
+ ```dae
+ func void SBw(var int x)
+ ```
+ **Parameters**
-- `#!dae var int i`
- The appended value
+ - `#!dae var int i`
+ The appended value
## Independent Functions
### `STR_Escape`
-Makes escape sequences out of non-writable characters. For example, newline character `\n` becomes `\\n`, tab character `\t` becomes `\\t`, etc.
-```dae
-func string STR_Escape(var string s0)
-```
-**Parameters**
+!!! function "`STR_Escape`"
+ Makes escape sequences out of non-writable characters. For example, newline character `\n` becomes `\\n`, tab character `\t` becomes `\\t`, etc.
+ ```dae
+ func string STR_Escape(var string s0)
+ ```
+ **Parameters**
-- `#!dae var string s0`
- The string to be added escape sequences
+ - `#!dae var string s0`
+ The string to be added escape sequences
-**Return value**
-
-The function returns a new string with escape sequences added for special characters.
+ **Return value**
+ The function returns a new string with escape sequences added for special characters.
### `STR_Unescape`
-Counterpart to `STR_Escape`. Escape sequences like `\n`, `\r` or `\t` are converted back.
-```dae
-func string STR_Unescape(var string s0)
-```
-**Parameters**
+!!! function "`STR_Unescape`"
+ Counterpart to `STR_Escape`. Escape sequences like `\n`, `\r` or `\t` are converted back.
+ ```dae
+ func string STR_Unescape(var string s0)
+ ```
+ **Parameters**
-- `#!dae var string s0`
- The string to be removed escape sequences
+ - `#!dae var string s0`
+ The string to be removed escape sequences
-**Return value**
+ **Return value**
-The function returns a new string with escape sequences replaced by their corresponding characters.
+ The function returns a new string with escape sequences replaced by their corresponding characters.
### `STR_StartsWith`
-Checks if the input string `s` starts with the specified prefix string.
-```dae
-func int STR_StartsWith(var string str, var string start)
-```
-**Parameters**
+!!! function "`STR_StartsWith`"
+ Checks if the input string `s` starts with the specified prefix string.
+ ```dae
+ func int STR_StartsWith(var string str, var string start)
+ ```
+ **Parameters**
-- `#!dae var string str`
- The string to be checked
-- `#!dae var string start`
- The searched prefix
+ - `#!dae var string str`
+ The string to be checked
+ - `#!dae var string start`
+ The searched prefix
-**Return value**
+ **Return value**
-The function returns `TRUE` if the string starts with the prefix, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the string starts with the prefix, `FALSE` is returned otherwise.
## Additional Functions
### `BuildStringSymbolsArray`
-Creates an array of all string symbols found in the parser's string table.
-```dae
-func int BuildStringSymbolsArray()
-```
-**Return value**
+!!! function "`BuildStringSymbolsArray`"
+ Creates an array of all string symbols found in the parser's string table.
+ ```dae
+ func int BuildStringSymbolsArray()
+ ```
+ **Return value**
-The function returns created array.
+ The function returns created array.
### `GetStringSymbolByAddr`
-Retrieves the symbol at the specified address from the string table.
-```dae
-func int BuildStringSymbolsArray()
-```
-**Return value**
-
-The function returns a parser symbol at the given address.
+!!! function "`GetStringSymbolByAddr`"
+ Retrieves the symbol at the specified address from the string table.
+ ```dae
+ func int BuildStringSymbolsArray()
+ ```
+ **Return value**
+
+ The function returns a parser symbol at the given address.
## Examples
diff --git a/docs/zengin/scripts/extenders/lego/tools/talents.md b/docs/zengin/scripts/extenders/lego/tools/talents.md
index e252dd067c..255c0eb3f1 100644
--- a/docs/zengin/scripts/extenders/lego/tools/talents.md
+++ b/docs/zengin/scripts/extenders/lego/tools/talents.md
@@ -3,6 +3,13 @@ title: Talents
description: LeGo package providing an extension for AIVar array
---
# Talents
+
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](permmem.md)
+ **Implementation:**
+ [:material-github: Talents.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Talents.d)
+
The Talents package does two things:
1. save any number of values for a specific NPC (effectively AIVar array extension).
@@ -10,81 +17,79 @@ The Talents package does two things:
Talents package uses one free AIVar variables, the default is AIVar with the index 89 that can be customized in `Userconst.d` the [`AIV_TALENT` constant](../various/userconstants.md#talents).
-## Dependencies
-
-- [PermMem](permmem.md)
-
## Initialization
Initialize with `LeGo_PermMem` flag.
```dae
LeGo_Init(LeGo_PermMem);
```
-## Implementation
-[:material-github: Talents.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Talents.d)
-
## Functions
### `Npc_GetID`
-Returns unique ID specific for provided NPC.
+!!! function "`Npc_GetID`"
+ Returns unique ID specific for provided NPC.
-```dae
-func int Npc_GetID(var C_NPC slf)
-```
-**Parameters**
+ ```dae
+ func int Npc_GetID(var C_NPC slf)
+ ```
+ **Parameters**
-- `#!dae var C_NPC slf`
- NPC to get ID
+ - `#!dae var C_NPC slf`
+ NPC to get ID
-**Return value**
+ **Return value**
-The function returns NPCs unique ID.
+ The function returns NPCs unique ID.
### `Npc_FindByID`
-Finds the NPC pointer of an NPC with the given ID.
-```dae
-func int Npc_FindByID(var int ID)
-```
-**Parameters**
+!!! function "`Npc_FindByID`"
+ Finds the NPC pointer of an NPC with the given ID.
+ ```dae
+ func int Npc_FindByID(var int ID)
+ ```
+ **Parameters**
-- `#!dae var int ID`
- NPC ID
+ - `#!dae var int ID`
+ NPC ID
-**Return value**
+ **Return value**
-The function returns NPC pointer.
+ The function returns NPC pointer.
### `TAL_CreateTalent`
-Creates a talent into which you can later save a value for every NPC (just like `AI_Var`).
-```dae
-func int TAL_CreateTalent()
-```
-**Return value**
+!!! function "`TAL_CreateTalent`"
+ Creates a talent into which you can later save a value for every NPC (just like `AI_Var`).
+ ```dae
+ func int TAL_CreateTalent()
+ ```
+ **Return value**
-The function returns value that can be later used as a talent ID.
+ The function returns value that can be later used as a talent ID.
### `TAL_SetValue`
-Sets a new value to the specified talent.
-```dae
-func void TAL_SetValue(var C_NPC npc, var int talent, var int value)
-```
-**Parameters**
-
-- `#!dae var C_NPC npc`
- Set the talent value for this NPC
-- `#!dae var int talent`
- Talent ID
-- `#!dae var int value`
- Value to be set
+!!! function "`TAL_SetValue`"
+ Sets a new value to the specified talent.
+ ```dae
+ func void TAL_SetValue(var C_NPC npc, var int talent, var int value)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC npc`
+ Set the talent value for this NPC
+ - `#!dae var int talent`
+ Talent ID
+ - `#!dae var int value`
+ Value to be set
### `TAL_GetValue`
-Returns the value of a saved talent for specified NPC.
-```dae
-func int TAL_GetValue(var C_NPC npc, var int talent)
-```
-**Parameters**
-
-- `#!dae var C_NPC npc`
- Get the talent value from this NPC
-- `#!dae var int talent`
- Talent ID
+!!! function "`TAL_GetValue`"
+ Returns the value of a saved talent for specified NPC.
+ ```dae
+ func int TAL_GetValue(var C_NPC npc, var int talent)
+ ```
+ **Parameters**
+
+ - `#!dae var C_NPC npc`
+ Get the talent value from this NPC
+ - `#!dae var int talent`
+ Talent ID
diff --git a/docs/zengin/scripts/extenders/lego/tools/talents.pl.md b/docs/zengin/scripts/extenders/lego/tools/talents.pl.md
index e7689a3069..88235fe550 100644
--- a/docs/zengin/scripts/extenders/lego/tools/talents.pl.md
+++ b/docs/zengin/scripts/extenders/lego/tools/talents.pl.md
@@ -3,6 +3,13 @@ title: Talents
description: Pakiet LeGo zapewniajÄ…cy rozszerzenie dla tablicy AIVar
---
# Talents - talenty
+
+!!! info inline end
+ **Zależności:**
+ - [PermMem](permmem.md)
+ **Implementacja:**
+ [:material-github: Talents.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Talents.d)
+
Ten pakiet robi dwie rzeczy:
1. Zapisuje dowolną liczbę wartości dla określonego NPC (efektywne rozszerzenie tablicy AIVar).
@@ -10,81 +17,79 @@ Ten pakiet robi dwie rzeczy:
Pakiet `Talents` używa jednego wolnego AIVara, domyślnie jest to AIVar z numerem 89, który można dostosować w `Userconst.d` [`AIV_TALENT`](../various/userconstants.md#talents).
-## Zależności
-
-- [PermMem](permmem.md)
-
## Inicjalizacja
Zainicjuj za pomocÄ… flagi `LeGo_PermMem`.
```dae
LeGo_Init(LeGo_PermMem);
```
-## Implementacja
-[:material-github: Talents.d na GitHubie](https://github.com/Lehona/LeGo/blob/dev/Talents.d)
-
## Funkcje
### `NPC_GetID`
-Zwraca unikalne ID dla podanego NPC.
+!!! function "`NPC_GetID`"
+ Zwraca unikalne ID dla podanego NPC.
-```dae
-func int NPC_GetID(var C_NPC slf)
-```
-**Parametry**
+ ```dae
+ func int NPC_GetID(var C_NPC slf)
+ ```
+ **Parametry**
-- `#!dae var C_NPC slf`
- NPC
+ - `#!dae var C_NPC slf`
+ NPC
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca unikalne ID dla podanego NPC.
+ Funkcja zwraca unikalne ID dla podanego NPC.
### `NPC_FindByID`
-Znajduje wskaźnik NPC o podanym ID.
-```dae
-func int NPC_FindByID(var int ID)
-```
-**Parametry**
+!!! function "`NPC_FindByID`"
+ Znajduje wskaźnik NPC o podanym ID.
+ ```dae
+ func int NPC_FindByID(var int ID)
+ ```
+ **Parametry**
-- `#!dae var int ID`
- ID postaci
+ - `#!dae var int ID`
+ ID postaci
-**Zwracana wartość**
+ **Zwracana wartość**
-Funkcja zwraca wskaźnik podanej postaci (NPC).
+ Funkcja zwraca wskaźnik podanej postaci (NPC).
### `TAL_CreateTalent`
-Tworzy talent, w którym możesz później zapisać wartość dla każdego NPC (tak jak w AIVarze).
-```dae
-func int TAL_CreateTalent()
-```
-**Zwracana wartość**
+!!! function "`TAL_CreateTalent`"
+ Tworzy talent, w którym możesz później zapisać wartość dla każdego NPC (tak jak w AIVarze).
+ ```dae
+ func int TAL_CreateTalent()
+ ```
+ **Zwracana wartość**
-Funkcja zwraca wartość, która jest później wykorzystywana jako ID talentu.
+ Funkcja zwraca wartość, która jest później wykorzystywana jako ID talentu.
### `TAL_SetValue`
-Ustawia nową wartość dla określonego talentu.
-```dae
-func void TAL_SetValue(var C_NPC npc, var int talent, var int value)
-```
-**Parametry**
-
-- `#!dae var C_NPC npc`
- NPC dla którego ustawiana jest wartość
-- `#!dae var int talent`
- ID talentu
-- `#!dae var int value`
- Ustawiana wartość
-
-### TAL_GetValue
-Zwraca wartość talentu dla określonego NPC.
-```dae
-func int TAL_GetValue(var C_NPC npc, var int talent)
-```
-**Parametry**
-
-- `#!dae var C_NPC npc`
- NPC, którego wartość talentu jest zwracana
-- `#!dae var int talent`
- ID talentu
+!!! function "`TAL_SetValue`"
+ Ustawia nową wartość dla określonego talentu.
+ ```dae
+ func void TAL_SetValue(var C_NPC npc, var int talent, var int value)
+ ```
+ **Parametry**
+
+ - `#!dae var C_NPC npc`
+ NPC dla którego ustawiana jest wartość
+ - `#!dae var int talent`
+ ID talentu
+ - `#!dae var int value`
+ Ustawiana wartość
+
+### `TAL_GetValue`
+!!! function "`TAL_GetValue`"
+ Zwraca wartość talentu dla określonego NPC.
+ ```dae
+ func int TAL_GetValue(var C_NPC npc, var int talent)
+ ```
+ **Parametry**
+
+ - `#!dae var C_NPC npc`
+ NPC, którego wartość talentu jest zwracana
+ - `#!dae var int talent`
+ ID talentu
diff --git a/docs/zengin/scripts/extenders/lego/tools/timer.md b/docs/zengin/scripts/extenders/lego/tools/timer.md
index 11bb06fb40..a05738ae47 100644
--- a/docs/zengin/scripts/extenders/lego/tools/timer.md
+++ b/docs/zengin/scripts/extenders/lego/tools/timer.md
@@ -3,73 +3,81 @@ title: Timer
description: LeGo package for better game timer handling
---
# Timer
-Timer is a better alternative to the timers that Gothic offers. The [FrameFunctions](frame_functions.md) and [Anim8](../applications/anim8.md) packages are already based on it. It isn't possible to modify the current time, as this would only cause difficulties.
-## Dependencies
-N/A
+!!! info inline end
+ **Dependencies:**
+ - None
+ **Implementation:**
+ [:material-github: Timer.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Timer.d)
+
+Timer is a better alternative to the timers that Gothic offers. The [FrameFunctions](frame_functions.md) and [Anim8](../applications/anim8.md) packages are already based on it. It isn't possible to modify the current time, as this would only cause difficulties.
## Initialization
Initialize with `LeGo_Timer` flag.
```dae
LeGo_Init(LeGo_Timer);
```
-## Implementation
-[:material-github: Timer.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/Timer.d)
## Functions
### `Timer`
-Returns the current playing time. If a new game is started, the time is 0. It is measured in milliseconds.
-```dae
-func int Timer()
-```
-**Return value**
+!!! function "`Timer`"
+ Returns the current playing time. If a new game is started, the time is 0. It is measured in milliseconds.
+ ```dae
+ func int Timer()
+ ```
+ **Return value**
-The function returns current playing time in milliseconds.
+ The function returns current playing time in milliseconds.
### `TimerGT`
-Returns the current game time, but the timer is paused when the game is paused (in the menu or status screen).
-```dae
-func int TimerGT()
-```
-**Return value**
+!!! function "`TimerGT`"
+ Returns the current game time, but the timer is paused when the game is paused (in the menu or status screen).
+ ```dae
+ func int TimerGT()
+ ```
+ **Return value**
-The function returns current playing time in milliseconds, but without measuring time when game is paused.
+ The function returns current playing time in milliseconds, but without measuring time when game is paused.
### `TimerF`
-Alias to `Timer` function that returns the time as an Ikarus float value.
-```dae
-func int TimerF()
-```
-**Return value**
+!!! function "`TimerF`"
+ Alias to `Timer` function that returns the time as an Ikarus float value.
+ ```dae
+ func int TimerF()
+ ```
+ **Return value**
-The function returns current playing time as an Ikarus float value.
+ The function returns current playing time as an Ikarus float value.
### `Timer_SetPause`
-Pauses the timer (and thus all [FrameFunctions](frame_functions.md) and running animations).
-```dae
-func void Timer_SetPause(var int on)
-```
-**Parameters**
+!!! function "`Timer_SetPause`"
+ Pauses the timer (and thus all [FrameFunctions](frame_functions.md) and running animations).
+ ```dae
+ func void Timer_SetPause(var int on)
+ ```
+ **Parameters**
-- `#!dae var int on`
- Pause on/off
+ - `#!dae var int on`
+ Pause on/off
### `Timer_SetPauseInMenu`
-The timer can automatically pause when the game is paused. (status screen, main menu...)
-```dae
-func void Timer_SetPauseInMenu(var int on)
-```
-**Parameters**
+!!! function "`Timer_SetPauseInMenu`"
+ The timer can automatically pause when the game is paused. (status screen, main menu...)
+ ```dae
+ func void Timer_SetPauseInMenu(var int on)
+ ```
+ **Parameters**
-- `#!dae var int on`
- Automatic pause on/off
+ - `#!dae var int on`
+ Automatic pause on/off
### `Timer_IsPaused`
-This can be used to query whether the timer is paused.
-```dae
-func int Timer_IsPaused()
-```
-**Return value**
+!!! function "`Timer_IsPaused`"
+ This can be used to query whether the timer is paused.
+ ```dae
+ func int Timer_IsPaused()
+ ```
+ **Return value**
-The function returns `TRUE` if the timer is paused, `FALSE` is returned otherwise.
+ The function returns `TRUE` if the timer is paused, `FALSE` is returned otherwise.
diff --git a/docs/zengin/scripts/extenders/lego/tools/view.md b/docs/zengin/scripts/extenders/lego/tools/view.md
index ada2fc380a..b41901edb6 100644
--- a/docs/zengin/scripts/extenders/lego/tools/view.md
+++ b/docs/zengin/scripts/extenders/lego/tools/view.md
@@ -3,11 +3,15 @@ title: View
description: LeGo package for `zCView` handling in daedalus
---
# View
-This package can create textures on the screen and work with them in an extended manner.
-## Dependencies
-- [PermMem](permmem.md)
-- [Interface](interface.md)
+!!! info inline end
+ **Dependencies:**
+ - [PermMem](permmem.md)
+ - [Interface](interface.md)
+ **Implementation:**
+ [:material-github: View.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/View.d)
+
+This package can create textures on the screen and work with them in an extended manner.
## Initialization
Initialize with `LeGo_View` flag.
@@ -15,317 +19,336 @@ Initialize with `LeGo_View` flag.
LeGo_Init(LeGo_View);
```
-## Implementation
-[:material-github: View.d on GitHub](https://github.com/Lehona/LeGo/blob/dev/View.d)
-
## Functions
### `View_Create`
-Creates a `zCView` with virtual coordinates.
-```dae
-func int View_Create(var int x1, var int y1, var int x2, var int y2)
-```
-**Parameters**
+!!! function "`View_Create`"
+ Creates a `zCView` with virtual coordinates.
+ ```dae
+ func int View_Create(var int x1, var int y1, var int x2, var int y2)
+ ```
+ **Parameters**
-- `#!dae var int x1`/`#!dae var int y1`
- Top-left corner coordinates (virtual)
-- `#!dae var int x2`/`#!dae var int y2`
- Bottom-right corner coordinates (virtual)
+ - `#!dae var int x1`/`#!dae var int y1`
+ Top-left corner coordinates (virtual)
+ - `#!dae var int x2`/`#!dae var int y2`
+ Bottom-right corner coordinates (virtual)
-**Return value**
+ **Return value**
-The function returns a [PermMem](permmem.md) handle to a `zCView`.
+ The function returns a [PermMem](permmem.md) handle to a `zCView`.
### `View_CreatePxl`
-Alias for [`View_Create`](#view_create) using pixel coordinates.
-```dae
-func int View_CreatePxl(var int x1, var int y1, var int x2, var int y2)
-```
-**Parameters**
+!!! function "`View_CreatePxl`"
+ Alias for [`View_Create`](#view_create) using pixel coordinates.
+ ```dae
+ func int View_CreatePxl(var int x1, var int y1, var int x2, var int y2)
+ ```
+ **Parameters**
-- `#!dae var int x1`/`#!dae var int y1`
- Top-left corner coordinates (pixel)
-- `#!dae var int x2`/`#!dae var int y2`
- Bottom-right corner coordinates (pixel)
+ - `#!dae var int x1`/`#!dae var int y1`
+ Top-left corner coordinates (pixel)
+ - `#!dae var int x2`/`#!dae var int y2`
+ Bottom-right corner coordinates (pixel)
-**Return value**
+ **Return value**
-The function returns a [PermMem](permmem.md) handle to a `zCView`.
+ The function returns a [PermMem](permmem.md) handle to a `zCView`.
### `View_CreateCenter`
-Creates a `zCView` with virtual coordinates centered.
-```dae
-func int View_CreateCenter(var int x, var int y, var int width, var int height)
-```
-**Parameters**
-
-- `#!dae var int x`
- Horizontal position
-- `#!dae var int y`
- Vertical position
-- `#!dae var int width`
- Width of the view
-- `#!dae var int height`
- Height of the view
-
-**Return value**
-
-The function returns a [PermMem](permmem.md) handle to a `zCView`.
+!!! function "`View_CreateCenter`"
+ Creates a `zCView` with virtual coordinates centered.
+ ```dae
+ func int View_CreateCenter(var int x, var int y, var int width, var int height)
+ ```
+ **Parameters**
+
+ - `#!dae var int x`
+ Horizontal position
+ - `#!dae var int y`
+ Vertical position
+ - `#!dae var int width`
+ Width of the view
+ - `#!dae var int height`
+ Height of the view
+
+ **Return value**
+
+ The function returns a [PermMem](permmem.md) handle to a `zCView`.
### `View_CreateCenterPxl`
-Alias for `View_CreateCenter` using pixel coordinates.
-```dae
-func int View_CreateCenterPxl(var int x, var int y, var int width, var int height)
-```
-**Parameters**
-
-- `#!dae var int x`
- Horizontal position
-- `#!dae var int y`
- Vertical position
-- `#!dae var int width`
- Width of the view
-- `#!dae var int height`
- Height of the view
-
-**Return value**
-
-The function returns a [PermMem](permmem.md) handle to a `zCView`.
+!!! function "`View_CreateCenterPxl`"
+ Alias for `View_CreateCenter` using pixel coordinates.
+ ```dae
+ func int View_CreateCenterPxl(var int x, var int y, var int width, var int height)
+ ```
+ **Parameters**
+
+ - `#!dae var int x`
+ Horizontal position
+ - `#!dae var int y`
+ Vertical position
+ - `#!dae var int width`
+ Width of the view
+ - `#!dae var int height`
+ Height of the view
+
+ **Return value**
+
+ The function returns a [PermMem](permmem.md) handle to a `zCView`.
### `View_Get`
-Alias for [`get`](permmem.md#get) form [PermMem](permmem.md).
-```dae
-zCView View_Get(var int hndl)
-```
-**Parameters**
+!!! function "`View_Get`"
+ Alias for [`get`](permmem.md#get) form [PermMem](permmem.md).
+ ```dae
+ zCView View_Get(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_GetPtr`
-Alias for [`getPtr`](permmem.md#getptr) form [PermMem](permmem.md).
-```dae
-func int View_GetPtr(var int hndl)
-```
-**Parameters**
+!!! function "`View_GetPtr`"
+ Alias for [`getPtr`](permmem.md#getptr) form [PermMem](permmem.md).
+ ```dae
+ func int View_GetPtr(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_Render`
-Renders a `zCView`. Should be used sparingly, as it works only in specific cases.
-```dae
-func void View_Render(var int hndl)
-```
-**Parameters**
+!!! function "`View_Render`"
+ Renders a `zCView`. Should be used sparingly, as it works only in specific cases.
+ ```dae
+ func void View_Render(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_SetTexture`
-Assigns a texture to a view. The key function of this package.
-```dae
-func void View_SetTexture(var int hndl, var string texture)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var string texture`
- Filename of a texture
+!!! function "`View_SetTexture`"
+ Assigns a texture to a view. The key function of this package.
+ ```dae
+ func void View_SetTexture(var int hndl, var string texture)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var string texture`
+ Filename of a texture
### `View_GetTexture`
-Gets the name of a previously assigned texture.
-```dae
-func string View_GetTexture(var int hndl)
-```
-**Parameters**
+!!! function "`View_GetTexture`"
+ Gets the name of a previously assigned texture.
+ ```dae
+ func string View_GetTexture(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
-**Return value**
+ **Return value**
-The function returns the previously assigned texture.
+ The function returns the previously assigned texture.
### `View_SetColor`
-Sets the color of a view.
-```dae
-func void View_SetColor(var int hndl, var int color)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int color`
- zColor, can be created with RGBA
+!!! function "`View_SetColor`"
+ Sets the color of a view.
+ ```dae
+ func void View_SetColor(var int hndl, var int color)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int color`
+ zColor, can be created with RGBA
### `View_GetColor`
-Gets the color of a view.
-```dae
-func int View_GetColor(var int hndl)
-```
-**Parameters**
+!!! function "`View_GetColor`"
+ Gets the color of a view.
+ ```dae
+ func int View_GetColor(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
-**Return value**
+ **Return value**
-The function returns the full zColor.
+ The function returns the full zColor.
### `View_Open`
-Opens a view. It will be displayed on the screen.
-```dae
-func void View_Open(var int hndl)
-```
-**Parameters**
+!!! function "`View_Open`"
+ Opens a view. It will be displayed on the screen.
+ ```dae
+ func void View_Open(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_Close`
-Closes a view. It disappears from the screen but can still be used.
-```dae
-func void View_Close(var int hndl)
-```
-**Parameters**
+!!! function "`View_Close`"
+ Closes a view. It disappears from the screen but can still be used.
+ ```dae
+ func void View_Close(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_Delete`
-Alias for `delete`.
-```dae
-`zCView` View_Delete(var int hndl)
-```
-**Parameters**
+!!! function "`View_Delete`"
+ Alias for `delete`.
+ ```dae
+ `zCView` View_Delete(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_Resize`
-Scales a view to a virtual size. The top-left position of the view remains fixed.
-```dae
-func void View_Resize(var int hndl, var int width, var int height)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int width`
- New width of the view
-- `#!dae var int height`
- New height of the view
+!!! function "`View_Resize`"
+ Scales a view to a virtual size. The top-left position of the view remains fixed.
+ ```dae
+ func void View_Resize(var int hndl, var int width, var int height)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int width`
+ New width of the view
+ - `#!dae var int height`
+ New height of the view
### `View_ResizePxl`
-Alias for [`View_Resize`](#view_resize) using pixel coordinates.
-```dae
-func void View_ResizePxl(var int hndl, var int width, var int height)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int width`
- New width of the view
-- `#!dae var int height`
- New height of the view
+!!! function "`View_ResizePxl`"
+ Alias for [`View_Resize`](#view_resize) using pixel coordinates.
+ ```dae
+ func void View_ResizePxl(var int hndl, var int width, var int height)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int width`
+ New width of the view
+ - `#!dae var int height`
+ New height of the view
### `View_Move`
-Moves the view by virtual units.
-```dae
-func void View_Move(var int hndl, var int x, var int y)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int x`
- Shift left/right
-- `#!dae var int y`
- Shift up/down
+!!! function "`View_Move`"
+ Moves the view by virtual units.
+ ```dae
+ func void View_Move(var int hndl, var int x, var int y)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int x`
+ Shift left/right
+ - `#!dae var int y`
+ Shift up/down
### `View_MovePxl`
-Alias for [`View_Move`](#view_move) using pixel coordinates.
-```dae
-func void View_MovePxl(var int hndl, var int x, var int y)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int x`
- Shift left/right
-- `#!dae var int y`
- Shift up/down
+!!! function "`View_MovePxl`"
+ Alias for [`View_Move`](#view_move) using pixel coordinates.
+ ```dae
+ func void View_MovePxl(var int hndl, var int x, var int y)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int x`
+ Shift left/right
+ - `#!dae var int y`
+ Shift up/down
### `View_MoveTo`
-Moves the top-left corner of the view to a virtual position.
-```dae
-func void View_MoveTo(var int hndl, var int x, var int y)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int x`
- New horizontal position (-1 for no change)
-- `#!dae var int y`
- New vertical position (-1 for no change)
+!!! function "`View_MoveTo`"
+ Moves the top-left corner of the view to a virtual position.
+ ```dae
+ func void View_MoveTo(var int hndl, var int x, var int y)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int x`
+ New horizontal position (-1 for no change)
+ - `#!dae var int y`
+ New vertical position (-1 for no change)
### `View_MoveToPxl`
-Alias for [`View_MoveTo`](#view_moveto) using pixel coordinates.
-```dae
-func void View_MoveToPxl(var int hndl, var int x, var int y)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int x`
- New horizontal position (-1 for no change)
-- `#!dae var int y`
- New vertical position (-1 for no change)
+!!! function "`View_MoveToPxl`"
+ Alias for [`View_MoveTo`](#view_moveto) using pixel coordinates.
+ ```dae
+ func void View_MoveToPxl(var int hndl, var int x, var int y)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int x`
+ New horizontal position (-1 for no change)
+ - `#!dae var int y`
+ New vertical position (-1 for no change)
### `View_AddText`
-Adds a text line to the view. The position is virtual and relative to the view's position. If the view is moved, the text moves as well.
-```dae
-func void View_AddText(var int hndl, var int x, var int y, var string text, var string font)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-- `#!dae var int x`
- Horizontal position
-- `#!dae var int y`
- Vertical position
-- `#!dae var string text`
- Added text
-- `#!dae var string font`
- Used Font
+!!! function "`View_AddText`"
+ Adds a text line to the view. The position is virtual and relative to the view's position. If the view is moved, the text moves as well.
+ ```dae
+ func void View_AddText(var int hndl, var int x, var int y, var string text, var string font)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
+ - `#!dae var int x`
+ Horizontal position
+ - `#!dae var int y`
+ Vertical position
+ - `#!dae var string text`
+ Added text
+ - `#!dae var string font`
+ Used Font
### `View_DeleteText`
-Removes all text added with [`View_AddText`](#view_addtext).
-```dae
-func void View_DeleteText(var int hndl)
-```
-**Parameters**
+!!! function "`View_DeleteText`"
+ Removes all text added with [`View_AddText`](#view_addtext).
+ ```dae
+ func void View_DeleteText(var int hndl)
+ ```
+ **Parameters**
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
### `View_Top`
-Places the view above all others.
-```dae
-func void View_Top(var int hndl)
-```
-**Parameters**
-
-- `#!dae var int hndl`
- Handle created with [`View_Create`](#view_get)
-
+!!! function "`View_Top`"
+ Places the view above all others.
+ ```dae
+ func void View_Top(var int hndl)
+ ```
+ **Parameters**
+
+ - `#!dae var int hndl`
+ Handle created with [`View_Create`](#view_get)
## Examples
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/ai.md b/docs/zengin/scripts/extenders/zparserextender/externals/ai.md
index 7c193b377a..af3cb5f55f 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/ai.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/ai.md
@@ -4,176 +4,189 @@ title: AI functions
# AI - functions for working with AI
Functions to work with the new [`C_Trigger`](../classes/c_trigger.md) class and NPC's AI queue.
-
-## AI_CallScript
-Adds a `funcName` function call to the AI queue
-
-```dae
-func void AI_CallScript(var string funcName,
- var C_NPC slf,
- var C_NPC oth) {};
-```
-
-- `funcName` - name of the function to be called
-- `slf` - will be inserted into global `self` instance
-- `oth` - will be inserted into global `other` instance
-
-## AI_startTriggerScript
-Creates a trigger script that calls function `funcName` once every `interval` in milliseconds
-
-```dae
-func C_Trigger AI_startTriggerScript(var string funcName, var int interval) {};
-```
-
-- `funcName` - name of the function to be called
-- `interval` - call period in milliseconds
-- `return` - created C_Trigger instance
-
-## AI_startTriggerScriptEx
-Extended version call - Creates a trigger script, that calls function `funcName` once every `interval` in milliseconds also updates the `self`, `other` and `victim` global instances based on `slf`, `oth` and `vct` parameters respectively
-
-```dae
-func C_Trigger AI_startTriggerScriptEx( var string funcName,
- var int interval,
- var C_NPC slf,
- var C_NPC oth,
- var C_NPC vct) {};
-```
-
-- `funcName` - name of the function to be called
-- `interval` - call period in milliseconds
-- `slf` - will be inserted into global `self` instance
-- `oth` - will be inserted into global `other` instance
-- `vct` - will be inserted into global `victim` instance
-- `return` - created C_Trigger instance
-
-## AI_GetTriggerByID
-Returns a C_Trigger instance from the array of active triggers by the array index `ID`
-
-```dae
-func C_Trigger AI_GetTriggerByID(var int ID) {};
-```
-
-- `ID` - array id
-- `return` - active C_Trigger instance
-
-## AI_GetTriggersNum
-Returns the number of active C_Trigger scripts
-
-```dae
-func int AI_GetTriggersNum() {};
-```
-
-- `return` - number of active C_Trigger scripts
-
-## AI_GetTriggerNPC
-Returns the npc associated with the C_Trigger script based on the ID
-selfID = 0;
-otherID = 1;
-victimID = 2;
-
-```dae
-func C_NPC AI_GetTriggerNPC(var C_Trigger trigger, var int npcID) {};
-```
-
-- `trigger` - C_Trigger script
-- `npcID` - NPC id
-- `return` - active C_Trigger instance
-
-## AI_GetTriggerFunc
-Returns the function associated with the specified C_Trigger
-
-```dae
-func func AI_GetTriggerFunc(var C_Trigger trigger) {};
-```
-
-- `trigger` - C_Trigger script
-- `return` - trigger function
-
-## AI_GetTriggerFuncName
-Returns the function name of a function associated with the specified C_Trigger
-
-```dae
-func string AI_GetTriggerFuncName(var C_Trigger trigger) {};
-```
-
-- `trigger` - C_Trigger script
-- `return` - active C_Trigger instance
-
-## Ai_GetNextTriggerByFunc
-Returns the next trigger in the active trigger array based on the trigger function,
-starting on the `startTrigger` trigger
-
-```dae
-func C_Trigger Ai_GetNextTriggerByFunc(var C_Trigger startTrigger, var func function) {};
-```
-
-- `startTrigger` - C_Trigger script to start the search from
-- `function` - function to be matched
-- `return` - C_Trigger instance
-
-## Ai_GetNextTriggerByFuncName
-Returns the next trigger in the active trigger array based on the trigger function
-name, starting on the `startTrigger` trigger
-
-```dae
-func C_Trigger Ai_GetNextTriggerByFuncName(var C_Trigger startTrigger, var string functionName) {};
-```
-
-- `startTrigger` - C_Trigger script to start the search from
-- `functionName` - name of a function to be matched
-- `return` - C_Trigger instance
-
-## Ai_GetNextTriggerBySelf
-Returns the next trigger in the active trigger array based on the `self` trigger
-parameter, starting on the `startTrigger` instance set in the trigger
-
-```dae
-func C_Trigger Ai_GetNextTriggerBySelf(var C_Trigger startTrigger, var C_NPC self) {};
-```
-
-- `startTrigger` - C_Trigger script to start the search from
-- `self` - C_NPC instance
-- `return` - C_Trigger instance
-
-## Ai_GetNextTriggerByOther
-Returns the next trigger in the active trigger array based on the `other` trigger
-parameter, starting on the `startTrigger` instance set in the trigger
-
-```dae
-func C_Trigger Ai_GetNextTriggerByOther(var C_Trigger startTrigger, var C_NPC other) {};
-```
-
-- `startTrigger` - C_Trigger script to start the search from
-- `other` - C_NPC instance
-- `return` - C_Trigger instance
-
-## Ai_GetNextTriggerByVictim
-Returns the next trigger in the active trigger array based on the `victim` trigger
-parameter, starting on the `startTrigger` instance set in the trigger
-
-```dae
-func C_Trigger Ai_GetNextTriggerByVictim( var C_Trigger startTrigger, var C_NPC victim ) {};
-```
-
-- `startTrigger` - C_Trigger script to start the search from
-- `victim` - C_NPC instance
-- `return` - C_Trigger instance
-
-## Ai_GetNextTriggerByNPCs
-Returns the next trigger in the active trigger array based on all the NPCs
-set in the trigger script `self`, `other` and `victim`,
-starting on the `startTrigger` instance set in the trigger
-
-```dae
-func c_trigger Ai_GetNextTriggerByNPCs( var C_Trigger startTrigger,
- var C_NPC self,
- var C_NPC other,
- var C_NPC victim) {};
-```
-
-- `startTrigger` - C_Trigger script to start the search from
-- `self` - self C_NPC instance
-- `other` - other C_NPC instance
-- `victim` - victim C_NPC instance
-- `return` - C_Trigger instance
+## `AI_CallScript`
+!!! function "`AI_CallScript`"
+ Adds a `funcName` function call to the AI queue
+
+ ```dae
+ func void AI_CallScript(var string funcName,
+ var C_NPC slf,
+ var C_NPC oth) {};
+ ```
+
+ - `funcName` - name of the function to be called
+ - `slf` - will be inserted into global `self` instance
+ - `oth` - will be inserted into global `other` instance
+
+## `AI_startTriggerScript`
+!!! function "`AI_startTriggerScript`"
+ Creates a trigger script that calls function `funcName` once every `interval` in milliseconds
+
+ ```dae
+ func C_Trigger AI_startTriggerScript(var string funcName, var int interval) {};
+ ```
+
+ - `funcName` - name of the function to be called
+ - `interval` - call period in milliseconds
+ - `return` - created C_Trigger instance
+
+## `AI_startTriggerScriptEx`
+!!! function "`AI_startTriggerScriptEx`"
+ Extended version call - Creates a trigger script, that calls function `funcName` once every `interval` in milliseconds also updates the `self`, `other` and `victim` global instances based on `slf`, `oth` and `vct` parameters respectively
+
+ ```dae
+ func C_Trigger AI_startTriggerScriptEx( var string funcName,
+ var int interval,
+ var C_NPC slf,
+ var C_NPC oth,
+ var C_NPC vct) {};
+ ```
+
+ - `funcName` - name of the function to be called
+ - `interval` - call period in milliseconds
+ - `slf` - will be inserted into global `self` instance
+ - `oth` - will be inserted into global `other` instance
+ - `vct` - will be inserted into global `victim` instance
+ - `return` - created C_Trigger instance
+
+## `AI_GetTriggerByID`
+!!! function "`AI_GetTriggerByID`"
+ Returns a C_Trigger instance from the array of active triggers by the array index `ID`
+
+ ```dae
+ func C_Trigger AI_GetTriggerByID(var int ID) {};
+ ```
+
+ - `ID` - array id
+ - `return` - active C_Trigger instance
+
+## `AI_GetTriggersNum`
+!!! function "`AI_GetTriggersNum`"
+ Returns the number of active C_Trigger scripts
+
+ ```dae
+ func int AI_GetTriggersNum() {};
+ ```
+
+ - `return` - number of active C_Trigger scripts
+
+## `AI_GetTriggerNPC`
+!!! function "`AI_GetTriggerNPC`"
+ Returns the npc associated with the C_Trigger script based on the ID
+ selfID = 0;
+ otherID = 1;
+ victimID = 2;
+
+ ```dae
+ func C_NPC AI_GetTriggerNPC(var C_Trigger trigger, var int npcID) {};
+ ```
+
+ - `trigger` - C_Trigger script
+ - `npcID` - NPC id
+ - `return` - active C_Trigger instance
+
+## `AI_GetTriggerFunc`
+!!! function "`AI_GetTriggerFunc`"
+ Returns the function associated with the specified C_Trigger
+
+ ```dae
+ func func AI_GetTriggerFunc(var C_Trigger trigger) {};
+ ```
+
+ - `trigger` - C_Trigger script
+ - `return` - trigger function
+
+## `AI_GetTriggerFuncName`
+!!! function "`AI_GetTriggerFuncName`"
+ Returns the function name of a function associated with the specified C_Trigger
+
+ ```dae
+ func string AI_GetTriggerFuncName(var C_Trigger trigger) {};
+ ```
+
+ - `trigger` - C_Trigger script
+ - `return` - active C_Trigger instance
+
+## `Ai_GetNextTriggerByFunc`
+!!! function "`Ai_GetNextTriggerByFunc`"
+ Returns the next trigger in the active trigger array based on the trigger function,
+ starting on the `startTrigger` trigger
+
+ ```dae
+ func C_Trigger Ai_GetNextTriggerByFunc(var C_Trigger startTrigger, var func function) {};
+ ```
+
+ - `startTrigger` - C_Trigger script to start the search from
+ - `function` - function to be matched
+ - `return` - C_Trigger instance
+
+## `Ai_GetNextTriggerByFuncName`
+!!! function "`Ai_GetNextTriggerByFuncName`"
+ Returns the next trigger in the active trigger array based on the trigger function
+ name, starting on the `startTrigger` trigger
+
+ ```dae
+ func C_Trigger Ai_GetNextTriggerByFuncName(var C_Trigger startTrigger, var string functionName) {};
+ ```
+
+ - `startTrigger` - C_Trigger script to start the search from
+ - `functionName` - name of a function to be matched
+ - `return` - C_Trigger instance
+
+## `Ai_GetNextTriggerBySelf`
+!!! function "`Ai_GetNextTriggerBySelf`"
+ Returns the next trigger in the active trigger array based on the `self` trigger
+ parameter, starting on the `startTrigger` instance set in the trigger
+
+ ```dae
+ func C_Trigger Ai_GetNextTriggerBySelf(var C_Trigger startTrigger, var C_NPC self) {};
+ ```
+
+ - `startTrigger` - C_Trigger script to start the search from
+ - `self` - C_NPC instance
+ - `return` - C_Trigger instance
+
+## `Ai_GetNextTriggerByOther`
+!!! function "`Ai_GetNextTriggerByOther`"
+ Returns the next trigger in the active trigger array based on the `other` trigger
+ parameter, starting on the `startTrigger` instance set in the trigger
+
+ ```dae
+ func C_Trigger Ai_GetNextTriggerByOther(var C_Trigger startTrigger, var C_NPC other) {};
+ ```
+
+ - `startTrigger` - C_Trigger script to start the search from
+ - `other` - C_NPC instance
+ - `return` - C_Trigger instance
+
+## `Ai_GetNextTriggerByVictim`
+!!! function "`Ai_GetNextTriggerByVictim`"
+ Returns the next trigger in the active trigger array based on the `victim` trigger
+ parameter, starting on the `startTrigger` instance set in the trigger
+
+ ```dae
+ func C_Trigger Ai_GetNextTriggerByVictim( var C_Trigger startTrigger, var C_NPC victim ) {};
+ ```
+
+ - `startTrigger` - C_Trigger script to start the search from
+ - `victim` - C_NPC instance
+ - `return` - C_Trigger instance
+
+## `Ai_GetNextTriggerByNPCs`
+!!! function "`Ai_GetNextTriggerByNPCs`"
+ Returns the next trigger in the active trigger array based on all the NPCs
+ set in the trigger script `self`, `other` and `victim`,
+ starting on the `startTrigger` instance set in the trigger
+
+ ```dae
+ func c_trigger Ai_GetNextTriggerByNPCs( var C_Trigger startTrigger,
+ var C_NPC self,
+ var C_NPC other,
+ var C_NPC victim) {};
+ ```
+
+ - `startTrigger` - C_Trigger script to start the search from
+ - `self` - self C_NPC instance
+ - `other` - other C_NPC instance
+ - `victim` - victim C_NPC instance
+ - `return` - C_Trigger instance
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/cast.md b/docs/zengin/scripts/extenders/zparserextender/externals/cast.md
index 33bb6d3738..06a35cf067 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/cast.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/cast.md
@@ -4,113 +4,124 @@ title: CAST functions
# CAST - data type conversion functions
External functions for data type conversion and pointer casting.
-## Cast_PointerToInstance
-Converts memory address (pointer) to an instance
+## `Cast_PointerToInstance`
+!!! function "`Cast_PointerToInstance`"
+ Converts memory address (pointer) to an instance
-```dae
-func instance Cast_PointerToInstance(var int address) {};
-```
+ ```dae
+ func instance Cast_PointerToInstance(var int address) {};
+ ```
-- `address` - object pointer
-- `return` - instance of the object
+ - `address` - object pointer
+ - `return` - instance of the object
-## Cast_InstanceToPointer
-Converts instance to a memory address (pointer)
+## `Cast_InstanceToPointer`
+!!! function "`Cast_InstanceToPointer`"
+ Converts instance to a memory address (pointer)
-```dae
-func int Cast_InstanceToPointer( var instance object) {};
-```
+ ```dae
+ func int Cast_InstanceToPointer( var instance object) {};
+ ```
-- `object` - object instance
-- `return` - memory address (pointer) of the object
+ - `object` - object instance
+ - `return` - memory address (pointer) of the object
-## Cast_PointerToNpc
-Casts memory address (pointer) to an NPC
+## `Cast_PointerToNpc`
+!!! function "`Cast_PointerToNpc`"
+ Casts memory address (pointer) to an NPC
-```dae
-func C_NPC Cast_PointerToNpc( var int address) {};
-```
+ ```dae
+ func C_NPC Cast_PointerToNpc( var int address) {};
+ ```
-- `address` - npc pointer
-- `return` - NPC instance
+ - `address` - npc pointer
+ - `return` - NPC instance
-## Cast_PointerToItem
-Casts memory address (pointer) to an Item
+## `Cast_PointerToItem`
+!!! function "`Cast_PointerToItem`"
+ Casts memory address (pointer) to an Item
-```dae
-func C_ITEM Cast_PointerToItem( var int address) {};
-```
+ ```dae
+ func C_ITEM Cast_PointerToItem( var int address) {};
+ ```
-- `address` - item pointer
-- `return` - Item instance
+ - `address` - item pointer
+ - `return` - Item instance
-## Cast_InstanceIsNpc
-Checks whether object is an NPC
+## `Cast_InstanceIsNpc`
+!!! function "`Cast_InstanceIsNpc`"
+ Checks whether object is an NPC
-```dae
-func int Cast_InstanceIsNpc( var instance object) {};
-```
+ ```dae
+ func int Cast_InstanceIsNpc( var instance object) {};
+ ```
-- `object` - object to check
-- `return` - `TRUE` or `FALSE`
+ - `object` - object to check
+ - `return` - `TRUE` or `FALSE`
-## Cast_InstanceIsItem
-Checks whether object is an Item
+## `Cast_InstanceIsItem`
+!!! function "`Cast_InstanceIsItem`"
+ Checks whether object is an Item
-```dae
-func int Cast_InstanceIsItem( var instance object) {};
-```
+ ```dae
+ func int Cast_InstanceIsItem( var instance object) {};
+ ```
-- `object` - object to check
-- `return` - `TRUE` or `FALSE`
+ - `object` - object to check
+ - `return` - `TRUE` or `FALSE`
-## Cast_InstanceIsMob
-Checks whether object is an MOB
+## `Cast_InstanceIsMob`
+!!! function "`Cast_InstanceIsMob`"
+ Checks whether object is an MOB
-```dae
-func int Cast_InstanceIsMob( var instance object) {};
-```
+ ```dae
+ func int Cast_InstanceIsMob( var instance object) {};
+ ```
-- `object` - object to check
-- `return` - `TRUE` or `FALSE`
+ - `object` - object to check
+ - `return` - `TRUE` or `FALSE`
-## Cast_GetInstanceIndex
-Returns symbolID of the object, returns -1 when not found
+## `Cast_GetInstanceIndex`
+!!! function "`Cast_GetInstanceIndex`"
+ Returns symbolID of the object, returns -1 when not found
-```dae
-func int Cast_GetInstanceIndex( var instance object) {};
-```
+ ```dae
+ func int Cast_GetInstanceIndex( var instance object) {};
+ ```
-- `object` - instance of an object
-- `return` - symbol table index, -1 when not found
+ - `object` - instance of an object
+ - `return` - symbol table index, -1 when not found
-## Cast_GetClassID
-Returns the class identifier of a class by its name
+## `Cast_GetClassID`
+!!! function "`Cast_GetClassID`"
+ Returns the class identifier of a class by its name
-```dae
-func int Cast_GetClassID( var string className ) {};
-```
+ ```dae
+ func int Cast_GetClassID( var string className ) {};
+ ```
-- `className` - name of the class
-- `return` - class identifier
+ - `className` - name of the class
+ - `return` - class identifier
-## Cast_GetVobClassID
-Returns class identifier of the zCObject vob class
+## `Cast_GetVobClassID`
+!!! function "`Cast_GetVobClassID`"
+ Returns class identifier of the zCObject vob class
-```dae
-func int Cast_GetVobClassID( var instance object ) {};
-```
+ ```dae
+ func int Cast_GetVobClassID( var instance object ) {};
+ ```
-- `object` - object instance
-- `return` - class zCObject identifier
+ - `object` - object instance
+ - `return` - class zCObject identifier
-## Cast_CheckVobClassID
-Checks if the classId class is the parent class of the object
+## `Cast_CheckVobClassID`
+!!! function "`Cast_CheckVobClassID`"
+ Checks if the classId class is the parent class of the object
-```dae
-func int Cast_CheckVobClassID( var int classId, var instance object ) {};
-```
+ ```dae
+ func int Cast_CheckVobClassID( var int classId, var instance object ) {};
+ ```
-- `classId` - class identifier, from Cast_GetClassID function
-- `object` - object instance
-- `return` - class zCObject identifier
\ No newline at end of file
+ - `classId` - class identifier, from Cast_GetClassID function
+ - `object` - object instance
+ - `return` - class zCObject identifier
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/hlp.md b/docs/zengin/scripts/extenders/zparserextender/externals/hlp.md
index cb7337851c..979aa4dd18 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/hlp.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/hlp.md
@@ -4,255 +4,275 @@ title: HLP functions
# HLP - help functions
Helper functions generally used for safety checks, to get specific information from the engine or to interface with the configuration `.ini` files.
-## Hlp_HasFocusVob
-Returns `TRUE`, if a specified NPC has a Vob in focus
+## `Hlp_HasFocusVob`
+!!! function "`Hlp_HasFocusVob`"
+ Returns `TRUE`, if a specified NPC has a Vob in focus
-```dae
-func int Hlp_HasFocusVob( var C_NPC npc ) {};
-```
+ ```dae
+ func int Hlp_HasFocusVob( var C_NPC npc ) {};
+ ```
-- `npc` - NPC
-- `return` - `TRUE` if npc has a focus Vob, `FALSE` if it does not
+ - `npc` - NPC
+ - `return` - `TRUE` if npc has a focus Vob, `FALSE` if it does not
-## Hlp_GetFocusVob
-Returns NPC's focus Vob
+## `Hlp_GetFocusVob`
+!!! function "`Hlp_GetFocusVob`"
+ Returns NPC's focus Vob
-```dae
-func instance Hlp_GetFocusVob( var C_NPC npc ) {};
-```
+ ```dae
+ func instance Hlp_GetFocusVob( var C_NPC npc ) {};
+ ```
-- `npc` - NPC
-- `return` - focus vob
+ - `npc` - NPC
+ - `return` - focus vob
-## Hlp_GetFocusVobName
-Returns the name of NPC's focus vob
+## `Hlp_GetFocusVobName`
+!!! function "`Hlp_GetFocusVobName`"
+ Returns the name of NPC's focus vob
-```dae
-func string Hlp_GetFocusVobName( var C_NPC npc ) {};
-```
+ ```dae
+ func string Hlp_GetFocusVobName( var C_NPC npc ) {};
+ ```
-- `npc` - NPC
-- `return` - focus vob name
+ - `npc` - NPC
+ - `return` - focus vob name
-## Hlp_GetStringLength
-Returns the length of a specified string
+## `Hlp_GetStringLength`
+!!! function "`Hlp_GetStringLength`"
+ Returns the length of a specified string
-```dae
-func int Hlp_GetStringLength( var string str ) {};
-```
+ ```dae
+ func int Hlp_GetStringLength( var string str ) {};
+ ```
-- `return` - length of `str`
+ - `return` - length of `str`
-## IsNAN
-Checks whether floating point number is valid
+## `IsNAN`
+!!! function "`IsNAN`"
+ Checks whether floating point number is valid
-```dae
-func int IsNAN( var float value ) {};
-```
+ ```dae
+ func int IsNAN( var float value ) {};
+ ```
-- `return` - `TRUE` if `value` is NaN, `FALSE` if `value` is a valid floating point number
+ - `return` - `TRUE` if `value` is NaN, `FALSE` if `value` is a valid floating point number
-## Hlp_KeyToggled
-Checks whether `key` is toggled
+## `Hlp_KeyToggled`
+!!! function "`Hlp_KeyToggled`"
+ Checks whether `key` is toggled
-```dae
-func int Hlp_KeyToggled( var int key ) {};
-```
+ ```dae
+ func int Hlp_KeyToggled( var int key ) {};
+ ```
-- `key` - key code
-- `return` - `TRUE` if key is toggled, `FALSE` if key is not toggled
+ - `key` - key code
+ - `return` - `TRUE` if key is toggled, `FALSE` if key is not toggled
-## Hlp_KeyPressed
-Checks whether `key` is pressed
+## `Hlp_KeyPressed`
+!!! function "`Hlp_KeyPressed`"
+ Checks whether `key` is pressed
-```dae
-func int Hlp_KeyPressed( var int key ) {};
-```
+ ```dae
+ func int Hlp_KeyPressed( var int key ) {};
+ ```
-- `key` - key code
-- `return` - `TRUE` if key is pressed, `FALSE` if key is not pressed
+ - `key` - key code
+ - `return` - `TRUE` if key is pressed, `FALSE` if key is not pressed
-## Hlp_LogicalKeyToggled
-Checks whether logical `key` is toggled
+## `Hlp_LogicalKeyToggled`
+!!! function "`Hlp_LogicalKeyToggled`"
+ Checks whether logical `key` is toggled
-```dae
-func int Hlp_LogicalKeyToggled( var int key ) {};
-```
+ ```dae
+ func int Hlp_LogicalKeyToggled( var int key ) {};
+ ```
-- `key` - key code
-- `return` - `TRUE` if key is toggled, `FALSE` if key is not toggled
+ - `key` - key code
+ - `return` - `TRUE` if key is toggled, `FALSE` if key is not toggled
-## Hlp_GameOnPause
-Checks whether the game is paused
+## `Hlp_GameOnPause`
+!!! function "`Hlp_GameOnPause`"
+ Checks whether the game is paused
-```dae
-func int Hlp_GameOnPause() {};
-```
+ ```dae
+ func int Hlp_GameOnPause() {};
+ ```
-- `return` - `TRUE` if the game is paused, `FALSE` if the game is not paused
+ - `return` - `TRUE` if the game is paused, `FALSE` if the game is not paused
-## Hlp_MessageBox
-Opens a message box with a specified message
+## `Hlp_MessageBox`
+!!! function "`Hlp_MessageBox`"
+ Opens a message box with a specified message
-```dae
-func void Hlp_MessageBox( var string message ) {};
-```
+ ```dae
+ func void Hlp_MessageBox( var string message ) {};
+ ```
-- `message` - message to be printed
+ - `message` - message to be printed
-## Hlp_PrintConsole
-Prints a message to the Union debug console
+## `Hlp_PrintConsole`
+!!! function "`Hlp_PrintConsole`"
+ Prints a message to the Union debug console
-```dae
-func void Hlp_PrintConsole(var string message) {};
-```
+ ```dae
+ func void Hlp_PrintConsole(var string message) {};
+ ```
-- `message` - message to be printed
+ - `message` - message to be printed
-## Hlp_OptionIsExists
-Checks whether the `entry` in `section` in `.ini` file `optName` exists
+## `Hlp_OptionIsExists`
+!!! function "`Hlp_OptionIsExists`"
+ Checks whether the `entry` in `section` in `.ini` file `optName` exists
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func int Hlp_OptionIsExists(var string optName, var string section, var string entry) {};
-```
+ ```dae
+ func int Hlp_OptionIsExists(var string optName, var string section, var string entry) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[GAME]`
-- `entry` - one setting entry like `playLogoVideos`
-- `return` - `TRUE` if the option exists, `FALSE` if the option does not exist
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[GAME]`
+ - `entry` - one setting entry like `playLogoVideos`
+ - `return` - `TRUE` if the option exists, `FALSE` if the option does not exist
-## Hlp_ReadOptionInt
-Read an integer value from specified `.ini` file, section and entry.
+## `Hlp_ReadOptionInt`
+!!! function "`Hlp_ReadOptionInt`"
+ Read an integer value from specified `.ini` file, section and entry.
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func int Hlp_ReadOptionInt(var string optName, var string section, var string entry, var int default) {};
-```
+ ```dae
+ func int Hlp_ReadOptionInt(var string optName, var string section, var string entry, var int default) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[GAME]`
-- `entry` - one setting entry like `playLogoVideos`
-- `default` - default value - if the value is empty
-- `return` - the option value
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[GAME]`
+ - `entry` - one setting entry like `playLogoVideos`
+ - `default` - default value - if the value is empty
+ - `return` - the option value
-## Hlp_ReadOptionFloat
-Read a floating point value from specified `.ini` file, section and entry.
+## `Hlp_ReadOptionFloat`
+ !!! function "`Hlp_ReadOptionFloat`"
+ Read a floating point value from specified `.ini` file, section and entry.
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func float Hlp_ReadOptionFloat(var string optName, var string section, var string entry, var float default) {};
-```
+ ```dae
+ func float Hlp_ReadOptionFloat(var string optName, var string section, var string entry, var float default) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[INTERFACE]`
-- `entry` - one setting entry like `scale`
-- `default` - default value - if the value is empty
-- `return` - the option value
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[INTERFACE]`
+ - `entry` - one setting entry like `scale`
+ - `default` - default value - if the value is empty
+ - `return` - the option value
-## Hlp_ReadOptionString
-Read a string value from specified `.ini` file, section and entry.
+## `Hlp_ReadOptionString`
+!!! function "`Hlp_ReadOptionString`"
+ Read a string value from specified `.ini` file, section and entry.
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func string Hlp_ReadOptionString(var string optName, var string section, var string entry, var string default) {};
-```
+ ```dae
+ func string Hlp_ReadOptionString(var string optName, var string section, var string entry, var string default) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[INTERFACE]`
-- `entry` - one setting entry like `scale`
-- `default` - default value - if the value is empty
-- `return` - the option value
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[INTERFACE]`
+ - `entry` - one setting entry like `scale`
+ - `default` - default value - if the value is empty
+ - `return` - the option value
-## Hlp_WriteOptionInt
-Writes an integer value to specified `.ini` file, section and entry.
+## `Hlp_WriteOptionInt`
+!!! function "`Hlp_WriteOptionInt`"
+ Writes an integer value to specified `.ini` file, section and entry.
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func void Hlp_WriteOptionInt(var string optName, var string section, var string entry, var int value) {};
-```
+ ```dae
+ func void Hlp_WriteOptionInt(var string optName, var string section, var string entry, var int value) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[INTERFACE]`
-- `entry` - one setting entry like `scale`
-- `value` - value to be written
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[INTERFACE]`
+ - `entry` - one setting entry like `scale`
+ - `value` - value to be written
-## Hlp_WriteOptionFloat
-Writes a floating point value to specified `.ini` file, section and entry.
+## `Hlp_WriteOptionFloat`
+!!! function "`Hlp_WriteOptionFloat`"
+ Writes a floating point value to specified `.ini` file, section and entry.
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func void Hlp_WriteOptionFloat(var string optName, var string section, var string entry, var float value) {};
-```
+ ```dae
+ func void Hlp_WriteOptionFloat(var string optName, var string section, var string entry, var float value) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[INTERFACE]`
-- `entry` - one setting entry like `scale`
-- `value` - value to be written
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[INTERFACE]`
+ - `entry` - one setting entry like `scale`
+ - `value` - value to be written
-## Hlp_WriteOptionString
-Writes a string value to specified `.ini` file, section and entry.
+## `Hlp_WriteOptionString`
+!!! function "`Hlp_WriteOptionString`"
+ Writes a string value to specified `.ini` file, section and entry.
-`optName` values
+ `optName` values
-- `#!dae "Gothic"`
-- `#!dae "Mod"`
-- `#!dae "SystemPack"`
+ - `#!dae "Gothic"`
+ - `#!dae "Mod"`
+ - `#!dae "SystemPack"`
-```dae
-func void Hlp_WriteOptionString(var string optName, var string section, var string entry, var string value) {};
-```
+ ```dae
+ func void Hlp_WriteOptionString(var string optName, var string section, var string entry, var string value) {};
+ ```
-- `optName` - the `.ini` file
-- `section` - settings section like `[INTERFACE]`
-- `entry` - one setting entry like `scale`
-- `value` - value to be written
+ - `optName` - the `.ini` file
+ - `section` - settings section like `[INTERFACE]`
+ - `entry` - one setting entry like `scale`
+ - `value` - value to be written
-## Hlp_GetSteamPersonalName
-Returns the name of the current Steam user
-Returns empty string when not run with Steam
+## `Hlp_GetSteamPersonalName`
+!!! function "`Hlp_GetSteamPersonalName`"
+ Returns the name of the current Steam user
+ Returns empty string when not run with Steam
-```dae
-func string Hlp_GetSteamPersonalName() {};
-```
+ ```dae
+ func string Hlp_GetSteamPersonalName() {};
+ ```
-- `return` - string containing the Steam username, or an empty string
+ - `return` - string containing the Steam username, or an empty string
-## Hlp_DoEvent
-Calls every event function with the name `funcName`.
+## `Hlp_DoEvent`
+!!! function "`Hlp_DoEvent`"
+ Calls every event function with the name `funcName`.
-```dae
-func void Hlp_DoEvent(var string funcName) {};
-```
+ ```dae
+ func void Hlp_DoEvent(var string funcName) {};
+ ```
-- `funcName` - name of the [event](../syntax_extensions/events.md) function to be called (all of them).
+ - `funcName` - name of the [event](../syntax_extensions/events.md) function to be called (all of them).
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/log.md b/docs/zengin/scripts/extenders/zparserextender/externals/log.md
index 867f6dd2af..e17f812bad 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/log.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/log.md
@@ -1,34 +1,36 @@
# Log functions
As discussed on [Inside Gothic](https://ataulien.github.io/Inside-Gothic/QuestLog/), vanilla Gothic has no way of getting the status of a quest. These functions implement that functionality.
-## Log_GetTopicStatus
-Returns the status of diary topic
-
-- `-1` - Not found
-- `0` - Free
-- `1` - Running
-- `2` - Success
-- `3` - Failure
-- `4` - Obsolete
-
-```dae
-func int Log_GetTopicStatus(var string topic) {};
-```
-
-- `topic` - name of the topic
-- `return` - topic status
-
-## Log_GetTopicSection
-Returns the topic the diary topic is in
-
-- `-1` - Not found
-- `0` - Missions
-- `1` - Notes
-- `2` - All
-
-```dae
-func int Log_GetTopicSection(var string topic) {};
-```
-
-- `topic` - name of the topic
-- `return` - topic section
\ No newline at end of file
+## `Log_GetTopicStatus`
+!!! function "`Log_GetTopicStatus`"
+ Returns the status of diary topic
+
+ - `-1` - Not found
+ - `0` - Free
+ - `1` - Running
+ - `2` - Success
+ - `3` - Failure
+ - `4` - Obsolete
+
+ ```dae
+ func int Log_GetTopicStatus(var string topic) {};
+ ```
+
+ - `topic` - name of the topic
+ - `return` - topic status
+
+## `Log_GetTopicSection`
+!!! function "`Log_GetTopicSection`"
+ Returns the topic the diary topic is in
+
+ - `-1` - Not found
+ - `0` - Missions
+ - `1` - Notes
+ - `2` - All
+
+ ```dae
+ func int Log_GetTopicSection(var string topic) {};
+ ```
+
+ - `topic` - name of the topic
+ - `return` - topic section
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/mdl.md b/docs/zengin/scripts/extenders/zparserextender/externals/mdl.md
index 48343c677d..0b4b727179 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/mdl.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/mdl.md
@@ -4,125 +4,137 @@ title: MDL functions
# MDL - model functions
Functions to tweak animation and other model related settings.
-## Mdl_GetAnimationIndex
-Returns animation's index for specified NPC based on animation's name
+## `Mdl_GetAnimationIndex`
+!!! function "`Mdl_GetAnimationIndex`"
+ Returns animation's index for specified NPC based on animation's name
-```dae
-func int Mdl_GetAnimationIndex( var C_NPC npc, var string ani_name ) {};
-```
+ ```dae
+ func int Mdl_GetAnimationIndex( var C_NPC npc, var string ani_name ) {};
+ ```
-- `npc` - NPC with the animation
-- `ani_name` - name of the animation in uppercase
-- `return` - animation index
+ - `npc` - NPC with the animation
+ - `ani_name` - name of the animation in uppercase
+ - `return` - animation index
-## Mdl_GetAnimationName
-Returns animation's name for specified NPC based on animation's index
+## `Mdl_GetAnimationName`
+!!! function "`Mdl_GetAnimationName`"
+ Returns animation's name for specified NPC based on animation's index
-```dae
-func string Mdl_GetAnimationName( var C_NPC npc, var int ani_index ) {};
-```
+ ```dae
+ func string Mdl_GetAnimationName( var C_NPC npc, var int ani_index ) {};
+ ```
-- `npc` - NPC with the animation
-- `ani_index` - animation index
-- `return` - animation name
+ - `npc` - NPC with the animation
+ - `ani_index` - animation index
+ - `return` - animation name
-## Mdl_AnimationIsExists
-Checks whether animation exists
+## `Mdl_AnimationIsExists`
+!!! function "`Mdl_AnimationIsExists`"
+ Checks whether animation exists
-```dae
-func int Mdl_AnimationIsExists( var C_NPC npc, var int ani_index ) {};
-```
+ ```dae
+ func int Mdl_AnimationIsExists( var C_NPC npc, var int ani_index ) {};
+ ```
-- `npc` - NPC with the animation
-- `ani_index` - animation index
-- `return` - animation name
+ - `npc` - NPC with the animation
+ - `ani_index` - animation index
+ - `return` - animation name
-## Mdl_AnimationIsActive
-Checks whether animation is active (whether it is currently played)
+## `Mdl_AnimationIsActive`
+!!! function "`Mdl_AnimationIsActive`"
+ Checks whether animation is active (whether it is currently played)
-```dae
-func int Mdl_AnimationIsActive( var C_NPC npc, var int ani_index ) {};
-```
+ ```dae
+ func int Mdl_AnimationIsActive( var C_NPC npc, var int ani_index ) {};
+ ```
-- `npc` - NPC with the animation
-- `ani_index` - animation index
-- `return` - `TRUE` if the animation is playing, `FALSE` if it is not playing
+ - `npc` - NPC with the animation
+ - `ani_index` - animation index
+ - `return` - `TRUE` if the animation is playing, `FALSE` if it is not playing
-## Mdl_SetAllAnimationsFPS
-Set framerate for all animations
+## `Mdl_SetAllAnimationsFPS`
+!!! function "`Mdl_SetAllAnimationsFPS`"
+ Set framerate for all animations
-```dae
-func void Mdl_SetAllAnimationsFPS( var C_NPC npc, var float fps ) {};
-```
+ ```dae
+ func void Mdl_SetAllAnimationsFPS( var C_NPC npc, var float fps ) {};
+ ```
-- `npc` - NPC with the animation
-- `fps` - framerate
+ - `npc` - NPC with the animation
+ - `fps` - framerate
-## Mdl_ResetAllAnimationsFPS
-Reset framerate for all animations to default value
+## `Mdl_ResetAllAnimationsFPS`
+!!! function "`Mdl_ResetAllAnimationsFPS`"
+ Reset framerate for all animations to default value
-```dae
-func void Mdl_ResetAllAnimationsFPS( var C_NPC npc ) {};
-```
+ ```dae
+ func void Mdl_ResetAllAnimationsFPS( var C_NPC npc ) {};
+ ```
-- `npc` - NPC with the animation
+ - `npc` - NPC with the animation
-## Mdl_SetAnimationFPS
-Set framerate for animation specified by animation index
+## `Mdl_SetAnimationFPS`
+!!! function "`Mdl_SetAnimationFPS`"
+ Set framerate for animation specified by animation index
-```dae
-func void Mdl_SetAnimationFPS( var C_NPC npc, var int ani_index, var float fps ) {};
-```
+ ```dae
+ func void Mdl_SetAnimationFPS( var C_NPC npc, var int ani_index, var float fps ) {};
+ ```
-- `npc` - NPC with the animation
-- `ani_index` - animation index
-- `fps` - framerate
+ - `npc` - NPC with the animation
+ - `ani_index` - animation index
+ - `fps` - framerate
-## Mdl_ResetAnimationFPS
-Reset framerate to default for animation specified by animation index
+## `Mdl_ResetAnimationFPS`
+!!! function "`Mdl_ResetAnimationFPS`"
+ Reset framerate to default for animation specified by animation index
-```dae
-func void Mdl_ResetAnimationFPS( var C_NPC npc, var int ani_index ) {};
-```
+ ```dae
+ func void Mdl_ResetAnimationFPS( var C_NPC npc, var int ani_index ) {};
+ ```
-- `npc` - NPC with the animation
-- `ani_index` - animation index
+ - `npc` - NPC with the animation
+ - `ani_index` - animation index
-## Mdl_SetVisible
-Set NPCs visibility
+## `Mdl_SetVisible`
+!!! function "`Mdl_SetVisible`"
+ Set NPCs visibility
-```dae
-func void Mdl_SetVisible( var C_NPC npc, var int isVisible ) {};
-```
+ ```dae
+ func void Mdl_SetVisible( var C_NPC npc, var int isVisible ) {};
+ ```
-- `npc` - specified NPC
-- `isVisible` - `TRUE` - visible, `FALSE` - invisible
+ - `npc` - specified NPC
+ - `isVisible` - `TRUE` - visible, `FALSE` - invisible
-## Mdl_ApplyOverlayMds_AtFirst
-Applies or moves existing overlay to the top of the list
+## `Mdl_ApplyOverlayMds_AtFirst`
+!!! function "`Mdl_ApplyOverlayMds_AtFirst`"
+ Applies or moves existing overlay to the top of the list
-```dae
-func void Mdl_ApplyOverlayMds_AtFirst( var string mdsName ) {};
-```
+ ```dae
+ func void Mdl_ApplyOverlayMds_AtFirst( var string mdsName ) {};
+ ```
-- `mdsName` - name of the overlay
+ - `mdsName` - name of the overlay
-## Mdl_SetNpcSpeedMultiplier
-Sets a multiplier for animation speed
-1.0 = 100% speed (normal speed)
+## `Mdl_SetNpcSpeedMultiplier`
+!!! function "`Mdl_SetNpcSpeedMultiplier`"
+ Sets a multiplier for animation speed
+ 1.0 = 100% speed (normal speed)
-```dae
-func void Mdl_SetNpcSpeedMultiplier( var C_Npc npc, var float multiplier ) {};
-```
+ ```dae
+ func void Mdl_SetNpcSpeedMultiplier( var C_Npc npc, var float multiplier ) {};
+ ```
-- `npc` - npc to be affected
-- `multiplier` - speed of the animation
+ - `npc` - npc to be affected
+ - `multiplier` - speed of the animation
-## Mdl_ResetNpcSpeedMultiplier
-Resets the animation speed of an NPC
+## `Mdl_ResetNpcSpeedMultiplier`
+!!! function "`Mdl_ResetNpcSpeedMultiplier`"
+ Resets the animation speed of an NPC
-```dae
-func void Mdl_ResetNpcSpeedMultiplier( var C_Npc npc ) {};
-```
+ ```dae
+ func void Mdl_ResetNpcSpeedMultiplier( var C_Npc npc ) {};
+ ```
-- `npc` - npc to be affected
\ No newline at end of file
+ - `npc` - npc to be affected
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/menu.md b/docs/zengin/scripts/extenders/zparserextender/externals/menu.md
index f00aa7d763..97ba966e42 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/menu.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/menu.md
@@ -1,13 +1,14 @@
# Menu function
-## Menu_SearchItems
-Find all C_MenuItem object instances by the mask and automatically places them in the current menu instance
+## `Menu_SearchItems`
+!!! function "`Menu_SearchItems`"
+ Find all C_MenuItem object instances by the mask and automatically places them in the current menu instance
-```dae
-func void Menu_SearchItems( var string mask ) {};
-```
+ ```dae
+ func void Menu_SearchItems( var string mask ) {};
+ ```
-- `mask` - regex like mask for searching
+ - `mask` - regex like mask for searching
### Example
This function is used in the Union Menu [API script](../daedalus_injection/index.md#api-script).
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/mob.md b/docs/zengin/scripts/extenders/zparserextender/externals/mob.md
index 99f24fb07b..ee70843854 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/mob.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/mob.md
@@ -4,113 +4,124 @@ title: MOB functions
# MOB - interactive object functions
Functions to manipulate interactive objects like destroying MOBs, setting lockpick combination and such.
-## Mob_Destroy
-Marks oCMOB as destroyed, changes the visual to visualDestroyed (if present).
+## `Mob_Destroy`
+!!! function "`Mob_Destroy`"
+ Marks oCMOB as destroyed, changes the visual to visualDestroyed (if present).
-```dae
-func void Mob_Destroy( var instance object ) {};
-```
+ ```dae
+ func void Mob_Destroy( var instance object ) {};
+ ```
-- `object` - oCMOB to be destroyed
+ - `object` - oCMOB to be destroyed
-## Mob_RemoveItem
-Removes an item from a oCMobContainer
+## `Mob_RemoveItem`
+!!! function "`Mob_RemoveItem`"
+ Removes an item from a oCMobContainer
-```dae
-func void Mob_RemoveItem( var instance object, var int item ) {};
-```
+ ```dae
+ func void Mob_RemoveItem( var instance object, var int item ) {};
+ ```
-- `object` - oCMobContainer object
-- `item` - item to be removed
+ - `object` - oCMobContainer object
+ - `item` - item to be removed
-## Mob_RemoveItems
-Removes specified number of items from a oCMobContainer
+## `Mob_RemoveItems`
+!!! function "`Mob_RemoveItems`"
+ Removes specified number of items from a oCMobContainer
-```dae
-func void Mob_RemoveItems( var instance object, var int item, var int cnt ) {};
-```
+ ```dae
+ func void Mob_RemoveItems( var instance object, var int item, var int cnt ) {};
+ ```
-- `object` - oCMobContainer object
-- `item` - item to be removed
-- `cnt` - number of items to be removed
+ - `object` - oCMobContainer object
+ - `item` - item to be removed
+ - `cnt` - number of items to be removed
-## Mob_InsertItem
-Inserts an item into a oCMobContainer
+## `Mob_InsertItem`
+!!! function "`Mob_InsertItem`"
+ Inserts an item into a oCMobContainer
-```dae
-func void Mob_InsertItem( var instance object, var int item ) {};
-```
+ ```dae
+ func void Mob_InsertItem( var instance object, var int item ) {};
+ ```
-- `object` - oCMobContainer object
-- `item` - item to be inserted
+ - `object` - oCMobContainer object
+ - `item` - item to be inserted
-## Mob_InsertItems
-Inserts specified number of items into a oCMobContainer
+## `Mob_InsertItems`
+!!! function "`Mob_InsertItems`"
+ Inserts specified number of items into a oCMobContainer
-```dae
-func void Mob_InsertItems( var instance object, var int item, var int cnt ) {};
-```
+ ```dae
+ func void Mob_InsertItems( var instance object, var int item, var int cnt ) {};
+ ```
-- `object` - oCMobContainer object
-- `item` - item to be inserted
-- `cnt` - number of items to be inserted
+ - `object` - oCMobContainer object
+ - `item` - item to be inserted
+ - `cnt` - number of items to be inserted
-## Mob_GetLockCombination
-Returns a lock combination of a oCMobContainer
+## `Mob_GetLockCombination`
+!!! function "`Mob_GetLockCombination`"
+ Returns a lock combination of a oCMobContainer
-```dae
-func string Mob_GetLockCombination( var instance object ) {};
-```
+ ```dae
+ func string Mob_GetLockCombination( var instance object ) {};
+ ```
-- `object` - oCMobContainer object
-- `return` - lock combination
+ - `object` - oCMobContainer object
+ - `return` - lock combination
-## Mob_SetLockCombination
-Sets a lock combination to a oCMobContainer
+## `Mob_SetLockCombination`
+!!! function "`Mob_SetLockCombination`"
+ Sets a lock combination to a oCMobContainer
-```dae
-func void Mob_SetLockCombination( var instance object, var string comb ) {};
-```
+ ```dae
+ func void Mob_SetLockCombination( var instance object, var string comb ) {};
+ ```
-- `object` - oCMobContainer object
-- `comb` - lock combination
+ - `object` - oCMobContainer object
+ - `comb` - lock combination
-## Mob_IsLocked
-Returns `TRUE` if the object is locked
+## `Mob_IsLocked`
+!!! function "`Mob_IsLocked`"
+ Returns `TRUE` if the object is locked
-```dae
-func int Mob_IsLocked( var instance object ) {};
-```
+ ```dae
+ func int Mob_IsLocked( var instance object ) {};
+ ```
-- `object` - oCMobLockable object
-- `return` - `TRUE` if locked, `FALSE` if unlocked
+ - `object` - oCMobLockable object
+ - `return` - `TRUE` if locked, `FALSE` if unlocked
-## Mob_SetLocked
-Set the lock status of the object
+## `Mob_SetLocked`
+!!! function "`Mob_SetLocked`"
+ Set the lock status of the object
-```dae
-func void Mob_SetLocked( var instance object, var int locked ) {};
-```
+ ```dae
+ func void Mob_SetLocked( var instance object, var int locked ) {};
+ ```
-- `object` - oCMobLockable object
-- `locked` - lock or unlock the object
+ - `object` - oCMobLockable object
+ - `locked` - lock or unlock the object
-## Mob_GetKeyInstance
-Returns the key instance, that unlocks the object
+## `Mob_GetKeyInstance`
+!!! function "`Mob_GetKeyInstance`"
+ Returns the key instance, that unlocks the object
-```dae
-func instance Mob_GetKeyInstance( var instance object ) {};
-```
+ ```dae
+ func instance Mob_GetKeyInstance( var instance object ) {};
+ ```
-- `object` - oCMobLockable object
-- `return` - the key C_ITEM instance
+ - `object` - oCMobLockable object
+ - `return` - the key C_ITEM instance
-## Mob_SetKeyInstance
-Stets the key instance, that unlocks the object
+## `Mob_SetKeyInstance`
+!!! function "`Mob_SetKeyInstance`"
+ Stets the key instance, that unlocks the object
-```dae
-func void Mob_SetKeyInstance( var instance object, var int key ) {};
-```
+ ```dae
+ func void Mob_SetKeyInstance( var instance object, var int key ) {};
+ ```
-- `object` - oCMobLockable object
-- `key` - the key C_ITEM instance
\ No newline at end of file
+ - `object` - oCMobLockable object
+ - `key` - the key C_ITEM instance
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/npc.md b/docs/zengin/scripts/extenders/zparserextender/externals/npc.md
index 05528ea0f3..4419d495d0 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/npc.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/npc.md
@@ -4,94 +4,103 @@ title: NPC functions
# NPC - character functions
NPC related functions.
-## Npc_SetAsHero
-Changes players character to specified `npc`
+## `Npc_SetAsHero`
+!!! function "`Npc_SetAsHero`"
+ Changes players character to specified `npc`
-```dae
-func void Npc_SetAsHero( var C_NPC npc ) {};
-```
+ ```dae
+ func void Npc_SetAsHero( var C_NPC npc ) {};
+ ```
-- `npc` - NPC to be set as players character
+ - `npc` - NPC to be set as players character
-## Npc_OpenInventory
-Opens NPCs main inventory
+## `Npc_OpenInventory`
+!!! function "`Npc_OpenInventory`"
+ Opens NPCs main inventory
-```dae
-func void Npc_OpenInventory( var C_NPC npc ) {};
-```
+ ```dae
+ func void Npc_OpenInventory( var C_NPC npc ) {};
+ ```
-- `npc` - NPC
+ - `npc` - NPC
-## Npc_OpenInventorySteal
-Opens the steal inventory of `npc`'s focus NPC
+## `Npc_OpenInventorySteal`
+!!! function "`Npc_OpenInventorySteal`"
+ Opens the steal inventory of `npc`'s focus NPC
-```dae
-func void Npc_OpenInventorySteal( var C_NPC npc ) {};
-```
+ ```dae
+ func void Npc_OpenInventorySteal( var C_NPC npc ) {};
+ ```
-- `npc` - NPC
+ - `npc` - NPC
-## Npc_OpenInventoryTrade
-Start the trading dialogue with specified NPC
+## `Npc_OpenInventoryTrade`
+!!! function "`Npc_OpenInventoryTrade`"
+ Start the trading dialogue with specified NPC
-```dae
-func void Npc_OpenInventoryTrade( var C_NPC npc ) {};
-```
+ ```dae
+ func void Npc_OpenInventoryTrade( var C_NPC npc ) {};
+ ```
-- `npc` - NPC
+ - `npc` - NPC
-## Npc_GetLeftHandItem
-Returns an item in NPC's left hand slot
+## `Npc_GetLeftHandItem`
+!!! function "`Npc_GetLeftHandItem`"
+ Returns an item in NPC's left hand slot
-```dae
-func C_Item Npc_GetLeftHandItem( var C_Npc npc ) {};
-```
+ ```dae
+ func C_Item Npc_GetLeftHandItem( var C_Npc npc ) {};
+ ```
-- `npc` - npc to be affected
-- `return` - found C_ITEM instance
+ - `npc` - npc to be affected
+ - `return` - found C_ITEM instance
-## Npc_GetRightHandItem
-Returns an item in NPC's right hand slot
+## `Npc_GetRightHandItem`
+!!! function "`Npc_GetRightHandItem`"
+ Returns an item in NPC's right hand slot
-```dae
-func C_Item Npc_GetRightHandItem( var C_Npc npc ) {};
-```
+ ```dae
+ func C_Item Npc_GetRightHandItem( var C_Npc npc ) {};
+ ```
-- `npc` - npc to be affected
-- `return` - found C_ITEM instance
+ - `npc` - npc to be affected
+ - `return` - found C_ITEM instance
-## Npc_GetSlotItem
-Returns an item from a slot with the slotName
+## `Npc_GetSlotItem`
+!!! function "`Npc_GetSlotItem`"
+ Returns an item from a slot with the slotName
-```dae
-func C_Item Npc_GetSlotItem( var C_Npc npc, var string slotName ) {};
-```
+ ```dae
+ func C_Item Npc_GetSlotItem( var C_Npc npc, var string slotName ) {};
+ ```
-- `npc` - npc to be affected
-- `slotName` - name of the slot
-- `return` - found C_ITEM instance
+ - `npc` - npc to be affected
+ - `slotName` - name of the slot
+ - `return` - found C_ITEM instance
-## Npc_PutInSlot
-Places an instance of the oCVom class (including items and NPCs) object into the slotName of the NPC
-The copyInInv parameter determines whether a copy of the object should remain in the character's inventory
+## `Npc_PutInSlot`
+!!! function "`Npc_PutInSlot`"
+ Places an instance of the oCVom class (including items and NPCs) object into the slotName of the NPC
+ The copyInInv parameter determines whether a copy of the object should remain in the character's inventory
-```dae
-func void Npc_PutInSlot(var C_Npc npc, var string slotName, var instance object, var int copyInInv) {};
-```
+ ```dae
+ func void Npc_PutInSlot(var C_Npc npc, var string slotName, var instance object, var int copyInInv) {};
+ ```
-- `npc` - npc to remove the item from
-- `slotName` - name of the slot from which to remove the item
-- `object` - object to be inserted into the slot
-- `copyInInv` - should a copy of the object stay in character inventory
+ - `npc` - npc to remove the item from
+ - `slotName` - name of the slot from which to remove the item
+ - `object` - object to be inserted into the slot
+ - `copyInInv` - should a copy of the object stay in character inventory
-## Npc_RemoveFromSlot
-Removes an object from the slotName of the NPC.
-The dropIt parameter in Gothic 2 defines, whether object should drop out of the slot. In Gothic 1, this parameter is reserved and must be 0.
+## `Npc_RemoveFromSlot`
+!!! function "`Npc_RemoveFromSlot`"
+ Removes an object from the slotName of the NPC.
+ The dropIt parameter in Gothic 2 defines, whether object should drop out of the slot. In Gothic 1, this parameter is reserved and must be 0.
-```dae
-func void Npc_RemoveFromSlot(var C_Npc npc, var string slotName, var int dropIt) {};
-```
+ ```dae
+ func void Npc_RemoveFromSlot(var C_Npc npc, var string slotName, var int dropIt) {};
+ ```
-- `npc` - npc to remove the item from
-- `slotName` - name of the slot from which to remove the item
-- `dropIt` - should the object be dropped
\ No newline at end of file
+ - `npc` - npc to remove the item from
+ - `slotName` - name of the slot from which to remove the item
+ - `dropIt` - should the object be dropped
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/par.md b/docs/zengin/scripts/extenders/zparserextender/externals/par.md
index 5a2aeca5be..b597dd0fc4 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/par.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/par.md
@@ -4,204 +4,221 @@ title: PAR functions
# PAR - functions for parser manipulation
Parser functions are used to manipulate the parsers. Retrieve SymbolID, access arrays and such.
-## Par_GetParserID
-Returns a parser ID of the parser with a `parName` name
+## `Par_GetParserID`
+!!! function "`Par_GetParserID`"
+ Returns a parser ID of the parser with a `parName` name
+
+ Parser names:
-Parser names:
+ - `#!dae "Game"`
+ - `#!dae "SFX"`
+ - `#!dae "PFX"`
+ - `#!dae "VFX"`
+ - `#!dae "Camera"`
+ - `#!dae "Menu"`
+ - `#!dae "Music"`
-- `#!dae "Game"`
-- `#!dae "SFX"`
-- `#!dae "PFX"`
-- `#!dae "VFX"`
-- `#!dae "Camera"`
-- `#!dae "Menu"`
-- `#!dae "Music"`
+ ```dae
+ func int Par_GetParserID(var string parName) {};
+ ```
+
+ - `parName` - parser name
+ - `return` - parser ID
+
+## `Par_GetSymbolID`
+!!! function "`Par_GetSymbolID`"
+ Returns symbol ID for the symbol specified by its name
+
+ ```dae
+ func int Par_GetSymbolID(var int parId, var string symName) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `return` - symbol ID
+
+## `Par_GetSymbolLength`
+!!! function "`Par_GetSymbolLength`"
+ Returns symbol length (number of elements)
+
+ ```dae
+ func int Par_GetSymbolLength(var int parId, var int symId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `return` - symbol length
+
+## `Par_GetSymbolValueInt`
+!!! function "`Par_GetSymbolValueInt`"
+ Returns the integer value of specified symbol
+
+ ```dae
+ func int Par_GetSymbolValueInt(var int parId, var int symId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `return` - symbol value
+
+## `Par_GetSymbolValueFloat`
+!!! function "`Par_GetSymbolValueFloat`"
+ Returns the float value of specified symbol
+
+ ```dae
+ func float Par_GetSymbolValueFloat(var int parId, var int symId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `return` - symbol value
+
+## `Par_GetSymbolValueString`
+!!! function "`Par_GetSymbolValueString`"
+ Returns the string value of specified symbol
+
+ ```dae
+ func string Par_GetSymbolValueString(var int parId, var int symId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `return` - symbol value
+
+## `Par_GetSymbolValueInstance`
+!!! function "`Par_GetSymbolValueInstance`"
+ Returns the instance value of specified symbol
+
+ ```dae
+ func instance Par_GetSymbolValueInstance(var int parId, var int symId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `return` - symbol value
+
+## `Par_GetSymbolValueIntArray`
+!!! function "`Par_GetSymbolValueIntArray`"
+ Returns the value of specified integer array at the `arrayID` index
+
+ ```dae
+ func int Par_GetSymbolValueIntArray(var int parId, var int symId, var int arrayId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `arrayID` - array index
+ - `return` - value
+
+## `Par_GetSymbolValueFloatArray`
+!!! function "`Par_GetSymbolValueFloatArray`"
+ Returns the value of specified float array at the `arrayID` index
+
+ ```dae
+ func float Par_GetSymbolValueFloatArray(var int parId, var int symId, var int arrayId) {};
+ ```
-```dae
-func int Par_GetParserID(var string parName) {};
-```
-
-- `parName` - parser name
-- `return` - parser ID
-
-## Par_GetSymbolID
-Returns symbol ID for the symbol specified by its name
-
-```dae
-func int Par_GetSymbolID(var int parId, var string symName) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `return` - symbol ID
-
-## Par_GetSymbolLength
-Returns symbol length (number of elements)
-
-```dae
-func int Par_GetSymbolLength(var int parId, var int symId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `return` - symbol length
-
-## Par_GetSymbolValueInt
-Returns the integer value of specified symbol
-
-```dae
-func int Par_GetSymbolValueInt(var int parId, var int symId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `return` - symbol value
-
-## Par_GetSymbolValueFloat
-Returns the float value of specified symbol
-
-```dae
-func float Par_GetSymbolValueFloat(var int parId, var int symId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `return` - symbol value
-
-## Par_GetSymbolValueString
-Returns the string value of specified symbol
-
-```dae
-func string Par_GetSymbolValueString(var int parId, var int symId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `return` - symbol value
-
-## Par_GetSymbolValueInstance
-Returns the instance value of specified symbol
-
-```dae
-func instance Par_GetSymbolValueInstance(var int parId, var int symId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `return` - symbol value
-
-## Par_GetSymbolValueIntArray
-Returns the value of specified integer array at the `arrayID` index
-
-```dae
-func int Par_GetSymbolValueIntArray(var int parId, var int symId, var int arrayId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `arrayID` - array index
-- `return` - value
-
-## Par_GetSymbolValueFloatArray
-Returns the value of specified float array at the `arrayID` index
-
-```dae
-func float Par_GetSymbolValueFloatArray(var int parId, var int symId, var int arrayId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `arrayID` - array index
-- `return` - value
-
-## Par_GetSymbolValueStringArray
-Returns the value of specified string array at the `arrayID` index
-
-```dae
-func string Par_GetSymbolValueStringArray(var int parId, var int symId, var int arrayId) {};
-```
-
-- `parID` - parser ID
-- `symName` - symbol name
-- `arrayID` - array index
-- `return` - value
-
-## Par_SetSymbolValueInt
-Sets a new integer value to specified symbol
-
-```dae
-func void Par_SetSymbolValueInt(var int value, var int parId, var int symId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-
-## Par_SetSymbolValueFloat
-Sets a new float value to specified symbol
-
-```dae
-func void Par_SetSymbolValueFloat(var float value, var int parId, var int symId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-
-## Par_SetSymbolValueString
-Sets a new string value to specified symbol
-
-```dae
-func void Par_SetSymbolValueString(var string value, var int parId, var int symId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-
-## Par_SetSymbolValueInstance
-Sets a new instance value to specified symbol
-
-```dae
-func void Par_SetSymbolValueInstance(var instance value, var int parId, var int symId, var int arrayId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-
-## Par_SetSymbolValueIntArray
-Sets a new integer value to specified integer array symbol
-
-```dae
-func void Par_SetSymbolValueIntArray(var int value, var int parId, var int symId, var int arrayId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-- `arrayId` - array index
-
-## Par_SetSymbolValueFloatArray
-Sets a new float value to specified float array symbol
-
-```dae
-func void Par_SetSymbolValueFloatArray(var float value, var int parId, var int symId, var int arrayId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-- `arrayId` - array index
-
-## Par_SetSymbolValueStringArray
-Sets a new string value to specified string array symbol
-
-```dae
-func void Par_SetSymbolValueStringArray(var string value, var int parId, var int symId, var int arrayId) {};
-```
-
-- `value` - value to be set
-- `parID` - parser ID
-- `symId` - symbol ID
-- `arrayId` - array index
\ No newline at end of file
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `arrayID` - array index
+ - `return` - value
+
+## `Par_GetSymbolValueStringArray`
+!!! function "`Par_GetSymbolValueStringArray`"
+ Returns the value of specified string array at the `arrayID` index
+
+ ```dae
+ func string Par_GetSymbolValueStringArray(var int parId, var int symId, var int arrayId) {};
+ ```
+
+ - `parID` - parser ID
+ - `symName` - symbol name
+ - `arrayID` - array index
+ - `return` - value
+
+## `Par_SetSymbolValueInt`
+!!! function "`Par_SetSymbolValueInt`"
+ Sets a new integer value to specified symbol
+
+ ```dae
+ func void Par_SetSymbolValueInt(var int value, var int parId, var int symId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+
+## `Par_SetSymbolValueFloat`
+!!! function "`Par_SetSymbolValueFloat`"
+ Sets a new float value to specified symbol
+
+ ```dae
+ func void Par_SetSymbolValueFloat(var float value, var int parId, var int symId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+
+## `Par_SetSymbolValueString`
+!!! function "`Par_SetSymbolValueString`"
+ Sets a new string value to specified symbol
+
+ ```dae
+ func void Par_SetSymbolValueString(var string value, var int parId, var int symId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+
+## `Par_SetSymbolValueInstance`
+!!! function "`Par_SetSymbolValueInstance`"
+ Sets a new instance value to specified symbol
+
+ ```dae
+ func void Par_SetSymbolValueInstance(var instance value, var int parId, var int symId, var int arrayId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+
+## `Par_SetSymbolValueIntArray`
+!!! function "`Par_SetSymbolValueIntArray`"
+ Sets a new integer value to specified integer array symbol
+
+ ```dae
+ func void Par_SetSymbolValueIntArray(var int value, var int parId, var int symId, var int arrayId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+ - `arrayId` - array index
+
+## `Par_SetSymbolValueFloatArray`
+!!! function "`Par_SetSymbolValueFloatArray`"
+ Sets a new float value to specified float array symbol
+
+ ```dae
+ func void Par_SetSymbolValueFloatArray(var float value, var int parId, var int symId, var int arrayId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+ - `arrayId` - array index
+
+## `Par_SetSymbolValueStringArray`
+!!! function "`Par_SetSymbolValueStringArray`"
+ Sets a new string value to specified string array symbol
+
+ ```dae
+ func void Par_SetSymbolValueStringArray(var string value, var int parId, var int symId, var int arrayId) {};
+ ```
+
+ - `value` - value to be set
+ - `parID` - parser ID
+ - `symId` - symbol ID
+ - `arrayId` - array index
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/string.md b/docs/zengin/scripts/extenders/zparserextender/externals/string.md
index d1fc56cd92..3d63f3b25d 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/string.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/string.md
@@ -1,119 +1,128 @@
# String functions
Functions to manipulate and format strings.
-## Str_Format
-Returns formatted string using format specifiers
-
-Format specifiers:
-
-- `%s` - inserts a string
-- `%i` - inserts an integer number
-- `%x` - inserts an integer in hexadecimal
-- `%f` - inserts a floating point number
-- `%b` - inserts a logical expression
-- `%p` - inserts a pointer
-
-```dae
-func string Str_Format( var string format, ... ) {};
-```
-
-- `return` - formatted string
-
-### Examples
-
-Very powerful function, can be used to streamline strings used in the scripts as well as optimize them for translations.
-
-Define constants containing the string with format specifiers.
-```dae
-const string MENU_SAVE = "Slot %i - press ENTER to save in this slot.";
-const string MENU_LOAD = "Slot %i - press ENTER to load saved game.";
-```
-Then define two format functions as such:
-```dae
-func string GetSaveSlotString (var int number)
-{
- return Str_format(MENU_SAVE, number);
-};
-```
-```dae
-func string GetLoadSlotString (var int number)
-{
- return Str_format(MENU_LOAD, number);
-};
-```
-!!! Tip
- Since the whole translatable string is saved in one constant, it is very easy for translators to change the word order. This was not possible to do without code change to the `ConcatStrings` function calls within the scripts.
- With this simple change, translators have to translate only 2 strings instead of 30 (15 + 15 slots) and only 2 strings are compiled into the compiled `Menu.dat` file.
-
-## Str_GetLocalizedString
-Returns a string in the current language, otherwise in English.
-Arguments MUST be encoded in UTF-8! The result string will be converted to appropriate ANSI string.
-
-
-```dae
-func string Str_GetLocalizedString( var string russian,
- var string english,
- var string german,
- var string polish ) {};
-```
-
-- `russian` - Russian string
-- `english` - English string
-- `german` - German string
-- `polish` - Polish string
-- `return` - string in the current language
-
-## Str_GetLocalizedStringEx
-Returns a string in the current language, otherwise in English.
-Offers additional languages
-
-
-```dae
-func string Str_GetLocalizedStringEx( var string russian,
+## `Str_Format`
+!!! function "`Str_Format`"
+ Returns formatted string using format specifiers
+
+ Format specifiers:
+
+ - `%s` - inserts a string
+ - `%i` - inserts an integer number
+ - `%x` - inserts an integer in hexadecimal
+ - `%f` - inserts a floating point number
+ - `%b` - inserts a logical expression
+ - `%p` - inserts a pointer
+
+ ```dae
+ func string Str_Format( var string format, ... ) {};
+ ```
+
+ - `return` - formatted string
+
+### `Examples`
+!!! function "`Examples`"
+ Very powerful function, can be used to streamline strings used in the scripts as well as optimize them for translations.
+
+ Define constants containing the string with format specifiers.
+
+ ```dae
+ const string MENU_SAVE = "Slot %i - press ENTER to save in this slot.";
+ const string MENU_LOAD = "Slot %i - press ENTER to load saved game.";
+ ```
+
+ Then define two format functions as such:
+
+ ```dae
+ func string GetSaveSlotString (var int number)
+ {
+ return Str_format(MENU_SAVE, number);
+ };
+ ```
+
+ ```dae
+ func string GetLoadSlotString (var int number)
+ {
+ return Str_format(MENU_LOAD, number);
+ };
+ ```
+
+ !!! Tip
+ Since the whole translatable string is saved in one constant, it is very easy for translators to change the word order. This was not possible to do without code change to the `ConcatStrings` function calls within the scripts.
+ With this simple change, translators have to translate only 2 strings instead of 30 (15 + 15 slots) and only 2 strings are compiled into the compiled `Menu.dat` file.
+
+## `Str_GetLocalizedString`
+!!! function "`Str_GetLocalizedString`"
+ Returns a string in the current language, otherwise in English.
+ Arguments MUST be encoded in UTF-8! The result string will be converted to appropriate ANSI string.
+
+ ```dae
+ func string Str_GetLocalizedString( var string russian,
var string english,
var string german,
- var string polish,
- var string romanian,
- var string italian,
- var string czech,
- var string spanish ) {};
-```
-
-- `russian` - Russian string
-- `english` - English string
-- `german` - German string
-- `polish` - Polish string
-- `romanian` - Romanian string
-- `italian` - Italian string
-- `czech` - Czech string
-- `spanish` - Spanish string
-- `return` - string in the current language
-
-## Str_UTF8_to_ANSI
-Converts UTF-8 string into an ANSI string with codePage
-
-```dae
-func string Str_UTF8_to_ANSI( var string utf8, var int codePage ) {};
-```
-
-- `utf8` - string encoded in UTF8
-- `codePage` - codePage id, can be obtained from Str_GetCurrentCP
-- `return` -
-
-## Str_GetCurrentCP
-Return the code page corresponding to the current language set in the Union System
-```dae
-func int Str_GetCurrentCP() {};
-```
-
-- `return` - code page corresponding to the current language
-
-## Str_GetLength
-Returns the length of a string
-
-```dae
-func int Str_GetLength( var int str ) {};
-```
-
-- `str` - string to be measured
-- `return` - length of the string
\ No newline at end of file
+ var string polish ) {};
+ ```
+
+ - `russian` - Russian string
+ - `english` - English string
+ - `german` - German string
+ - `polish` - Polish string
+ - `return` - string in the current language
+
+## `Str_GetLocalizedStringEx`
+!!! function "`Str_GetLocalizedStringEx`"
+ Returns a string in the current language, otherwise in English.
+ Offers additional languages
+
+ ```dae
+ func string Str_GetLocalizedStringEx( var string russian,
+ var string english,
+ var string german,
+ var string polish,
+ var string romanian,
+ var string italian,
+ var string czech,
+ var string spanish ) {};
+ ```
+
+ - `russian` - Russian string
+ - `english` - English string
+ - `german` - German string
+ - `polish` - Polish string
+ - `romanian` - Romanian string
+ - `italian` - Italian string
+ - `czech` - Czech string
+ - `spanish` - Spanish string
+ - `return` - string in the current language
+
+## `Str_UTF8_to_ANSI`
+!!! function "`Str_UTF8_to_ANSI`"
+ Converts UTF-8 string into an ANSI string with codePage
+
+ ```dae
+ func string Str_UTF8_to_ANSI( var string utf8, var int codePage ) {};
+ ```
+
+ - `utf8` - string encoded in UTF8
+ - `codePage` - codePage id, can be obtained from Str_GetCurrentCP
+ - `return` -
+
+## `Str_GetCurrentCP`
+!!! function "`Str_GetCurrentCP`"
+ Return the code page corresponding to the current language set in the Union System
+ ```dae
+ func int Str_GetCurrentCP() {};
+ ```
+
+ - `return` - code page corresponding to the current language
+
+## `Str_GetLength`
+!!! function "`Str_GetLength`"
+ Returns the length of a string
+
+ ```dae
+ func int Str_GetLength( var int str ) {};
+ ```
+
+ - `str` - string to be measured
+ - `return` - length of the string
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/vob.md b/docs/zengin/scripts/extenders/zparserextender/externals/vob.md
index b53e7c9de7..296578ccec 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/vob.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/vob.md
@@ -4,157 +4,172 @@ title: VOB functions
# VOB - functions for object manipulation
VOB functions allow you to manipulate game world objects.
-## Vob_GetVobPosition
-Returns the current position of the object in the world
+## `Vob_GetVobPosition`
+!!! function "`Vob_GetVobPosition`"
+ Returns the current position of the object in the world
-```dae
-func C_Position Vob_GetVobPosition( var C_Vob vob ) {};
-```
+ ```dae
+ func C_Position Vob_GetVobPosition( var C_Vob vob ) {};
+ ```
-- `vob` - vob to ge the position of
-- `return` - C_Position instance - position of the VOB
+ - `vob` - vob to ge the position of
+ - `return` - C_Position instance - position of the VOB
-## Vob_SetVobPosition
-Sets the current position of the object in the world
+## `Vob_SetVobPosition`
+!!! function "`Vob_SetVobPosition`"
+ Sets the current position of the object in the world
-```dae
-func void Vob_SetVobPosition( var C_Vob vob, var C_Position pos ) {};
-```
+ ```dae
+ func void Vob_SetVobPosition( var C_Vob vob, var C_Position pos ) {};
+ ```
-- `vob` - vob to get the position of
-- `pos` - new position of the vob
+ - `vob` - vob to get the position of
+ - `pos` - new position of the vob
-## Vob_GetVobData
-Returns the universal data of the zCVob object
+## `Vob_GetVobData`
+!!! function "`Vob_GetVobData`"
+ Returns the universal data of the zCVob object
-```dae
-func C_Vob_Data Vob_GetVobData( var C_Vob vob ) {};
-```
+ ```dae
+ func C_Vob_Data Vob_GetVobData( var C_Vob vob ) {};
+ ```
-- `vob` - VOB to get the position of
-- `return` - general vob data C_Vob_Data
+ - `vob` - VOB to get the position of
+ - `return` - general vob data C_Vob_Data
-## Vob_SetVobData
-Sets the universal data to a zCVob object
+## `Vob_SetVobData`
+!!! function "`Vob_SetVobData`"
+ Sets the universal data to a zCVob object
-```dae
-func void Vob_SetVobData( var C_Vob vob, var C_Vob_Data data ) {};
-```
+ ```dae
+ func void Vob_SetVobData( var C_Vob vob, var C_Vob_Data data ) {};
+ ```
-- `vob` - VOB to get the position of
-- `data` - general vob data C_Vob_Data
+ - `vob` - VOB to get the position of
+ - `data` - general vob data C_Vob_Data
-## Vob_GetLightData
-Returns zCVobLight object data
+## `Vob_GetLightData`
+!!! function "`Vob_GetLightData`"
+ Returns zCVobLight object data
-```dae
-func C_Light_Data Vob_GetLightData( var C_Vob vobLight ) {};
-```
+ ```dae
+ func C_Light_Data Vob_GetLightData( var C_Vob vobLight ) {};
+ ```
-- `vobLight` - vobLight object
-- `return` - C_Light_Data of the light
+ - `vobLight` - vobLight object
+ - `return` - C_Light_Data of the light
-## Vob_SetLightData
-Sets the data of a zCVobLight object
+## `Vob_SetLightData`
+!!! function "`Vob_SetLightData`"
+ Sets the data of a zCVobLight object
-```dae
-func void Vob_SetLightData( var C_Vob vobLight, var C_Light_Data data ) {};
-```
+ ```dae
+ func void Vob_SetLightData( var C_Vob vobLight, var C_Light_Data data ) {};
+ ```
-- `vobLight` - object to apply the light data to
-- `data` - C_Light_Data light data to be set
+ - `vobLight` - object to apply the light data to
+ - `data` - C_Light_Data light data to be set
-## Vob_ClearLightAniList
-Clears the list of animation colours for the light source
+## `Vob_ClearLightAniList`
+!!! function "`Vob_ClearLightAniList`"
+ Clears the list of animation colours for the light source
-```dae
-func void Vob_ClearLightAniList( var C_Vob vobLight ) {};
-```
+ ```dae
+ func void Vob_ClearLightAniList( var C_Vob vobLight ) {};
+ ```
-- `vobLight` - light vob
+ - `vobLight` - light vob
-## Vob_AddLightAniColor
-Adds a color to the colour list
+## `Vob_AddLightAniColor`
+!!! function "`Vob_AddLightAniColor`"
+ Adds a color to the colour list
-```dae
-func void Vob_AddLightAniColor( var C_Vob vobLight, var C_Color col ) {};
-```
+ ```dae
+ func void Vob_AddLightAniColor( var C_Vob vobLight, var C_Color col ) {};
+ ```
-- `vobLight` - object to apply the colour to
-- `col` - colour to be applied
+ - `vobLight` - object to apply the colour to
+ - `col` - colour to be applied
-## Vob_AddLightAniColorRGB
-Adds a color to the colour list
+## `Vob_AddLightAniColorRGB`
+!!! function "`Vob_AddLightAniColorRGB`"
+ Adds a color to the colour list
-```dae
-func void Vob_AddLightAniColorRGB( var C_Vob vobLight,
- var int r,
- var int g,
- var int b ) {};
-```
+ ```dae
+ func void Vob_AddLightAniColorRGB( var C_Vob vobLight,
+ var int r,
+ var int g,
+ var int b ) {};
+ ```
-- `vobLight` - object to apply the colour to
-- `r` - red colour channel
-- `g` - green colour channel
-- `b` - blue colour channel
+ - `vobLight` - object to apply the colour to
+ - `r` - red colour channel
+ - `g` - green colour channel
+ - `b` - blue colour channel
-## Vob_GetMobData
-Returns the data of the oCMOB object
+## `Vob_GetMobData`
+!!! function "`Vob_GetMobData`"
+ Returns the data of the oCMOB object
-```dae
-func C_Mob_Data Vob_GetMobData( var C_Vob mob ) {};
-```
+ ```dae
+ func C_Mob_Data Vob_GetMobData( var C_Vob mob ) {};
+ ```
-- `mob` - oCMOB object
-- `return` - mob data
+ - `mob` - oCMOB object
+ - `return` - mob data
-## Vob_SetMobData
-Sets the data of the oCMOB object
+## `Vob_SetMobData`
+!!! function "`Vob_SetMobData`"
+ Sets the data of the oCMOB object
-```dae
-func void Vob_SetMobData( var C_Vob mob, var C_Mob_Data data ) {};
-```
+ ```dae
+ func void Vob_SetMobData( var C_Vob mob, var C_Mob_Data data ) {};
+ ```
-- `mob` - oCMOB object
-- `data` - C_Mob_Data to be set
+ - `mob` - oCMOB object
+ - `data` - C_Mob_Data to be set
-## Vob_GetMobInterData
-Returns the data of the oCMobInter object
+## `Vob_GetMobInterData`
+!!! function "`Vob_GetMobInterData`"
+ Returns the data of the oCMobInter object
-```dae
-func MobInter_Data Vob_GetMobInterData( var C_Vob mobInter ) {};
-```
+ ```dae
+ func MobInter_Data Vob_GetMobInterData( var C_Vob mobInter ) {};
+ ```
-- `mobInter` - oCMobInter object
-- `return` - MobInter_Data of the object
+ - `mobInter` - oCMobInter object
+ - `return` - MobInter_Data of the object
-## Vob_SetMobInterData
-Sets the data of the oCMobInter object
+## `Vob_SetMobInterData`
+!!! function "`Vob_SetMobInterData`"
+ Sets the data of the oCMobInter object
-```dae
-func void Vob_SetMobInterData( var C_Vob mobInter, var C_MobInter_Data data ) {};
-```
+ ```dae
+ func void Vob_SetMobInterData( var C_Vob mobInter, var C_MobInter_Data data ) {};
+ ```
-- `mobInter` - oCMobInter object
-- `data` - MobInter_Data of the object
+ - `mobInter` - oCMobInter object
+ - `data` - MobInter_Data of the object
-## Vob_GetMobInterData
-Returns the data of the oCMobLockable object
+## `Vob_GetMobInterData`
+!!! function "`Vob_GetMobInterData`"
+ Returns the data of the oCMobLockable object
-```dae
-func C_MobLockable_Data Vob_GetMobInterData( var C_Vob mobLock ) {};
-```
+ ```dae
+ func C_MobLockable_Data Vob_GetMobInterData( var C_Vob mobLock ) {};
+ ```
-- `mobLock` - oCMobLockable object
-- `data` - MobInter_Data of the object
-- `return` - C_MobLockable_Data of the object
+ - `mobLock` - oCMobLockable object
+ - `data` - MobInter_Data of the object
+ - `return` - C_MobLockable_Data of the object
-## Vob_SetMobInterData
-Sets the data of the oCMobLockable object
+## `Vob_SetMobInterData`
+!!! function "`Vob_SetMobInterData`"
+ Sets the data of the oCMobLockable object
-```dae
-func void Vob_SetMobInterData( var C_Vob mobLock, var C_MobLockable_Data data ) {};
-```
+ ```dae
+ func void Vob_SetMobInterData( var C_Vob mobLock, var C_MobLockable_Data data ) {};
+ ```
-- `mobLock` - oCMobLockable object
-- `data` - C_MobLockable_Data of the object
+ - `mobLock` - oCMobLockable object
+ - `data` - C_MobLockable_Data of the object
diff --git a/docs/zengin/scripts/extenders/zparserextender/externals/wld.md b/docs/zengin/scripts/extenders/zparserextender/externals/wld.md
index 7c4f383008..07582ee3fe 100644
--- a/docs/zengin/scripts/extenders/zparserextender/externals/wld.md
+++ b/docs/zengin/scripts/extenders/zparserextender/externals/wld.md
@@ -4,96 +4,103 @@ title: WLD functions
# WLD - world manipulation functions
Functions related to the world.
-## Wld_ChangeLevel
-Trigger level change.
-
-```dae
-func void Wld_ChangeLevel( var string world, var string waypoint ) {};
-```
-
-- `world` - name of the world
-- `waypoint` - target waypoint
-
-## Wld_FindVob
-Return the VOB instance based on its name.
-
-```dae
-func instance Wld_FindVob( var string vobname ) {};
-```
-
-- `vobname` - name of the vob
-- `return` - zCVob pointer
-
-## Wld_PlayEffectVob
-Play a visual effect at specified vob
-
-```dae
-func void Wld_PlayEffectVob( var string effect,
- var instance pvob,
+## `Wld_ChangeLevel`
+!!! function "`Wld_ChangeLevel`"
+ Trigger level change.
+
+ ```dae
+ func void Wld_ChangeLevel( var string world, var string waypoint ) {};
+ ```
+
+ - `world` - name of the world
+ - `waypoint` - target waypoint
+
+## `Wld_FindVob`
+!!! function "`Wld_FindVob`"
+ Return the VOB instance based on its name.
+
+ ```dae
+ func instance Wld_FindVob( var string vobname ) {};
+ ```
+
+ - `vobname` - name of the vob
+ - `return` - zCVob pointer
+
+## `Wld_PlayEffectVob`
+!!! function "`Wld_PlayEffectVob`"
+ Play a visual effect at specified vob
+
+ ```dae
+ func void Wld_PlayEffectVob( var string effect,
+ var instance pvob,
+ var int level,
+ var int damage,
+ var int damage_type,
+ var int damage_speed ) {};
+ ```
+
+ - `effect` - effect name
+ - `pvob` - zCVob to play the effect at
+ - `level` - effect level
+ - `damage` - damage amount
+ - `damage_type` - damage type
+ - `damage_speed` - damage interval
+
+## `Wld_PlayEffectAt`
+!!! function "`Wld_PlayEffectAt`"
+ Play a visual effect at specified world coordinates
+
+ ```dae
+ func void Wld_PlayEffectAt( var string effect,
+ var instance coord,
var int level,
var int damage,
var int damage_type,
var int damage_speed ) {};
-```
-
-- `effect` - effect name
-- `pvob` - zCVob to play the effect at
-- `level` - effect level
-- `damage` - damage amount
-- `damage_type` - damage type
-- `damage_speed` - damage interval
-
-## Wld_PlayEffectAt
-Play a visual effect at specified world coordinates
-
-```dae
-func void Wld_PlayEffectAt( var string effect,
- var instance coord,
- var int level,
- var int damage,
- var int damage_type,
- var int damage_speed ) {};
-```
+ ```
-- `effect` - effect name
-- `coord` - world coordinates (`zVEC3`) to play the effect at
-- `level` - effect level
-- `damage` - damage amount
-- `damage_type` - damage type
-- `damage_speed` - damage interval
+ - `effect` - effect name
+ - `coord` - world coordinates (`zVEC3`) to play the effect at
+ - `level` - effect level
+ - `damage` - damage amount
+ - `damage_type` - damage type
+ - `damage_speed` - damage interval
-## Wld_ToggleRain
-Turns on the rain
+## `Wld_ToggleRain`
+!!! function "`Wld_ToggleRain`"
+ Turns on the rain
-```dae
-func void Wld_ToggleRain( var float weight, var float time ) {};
-```
+ ```dae
+ func void Wld_ToggleRain( var float weight, var float time ) {};
+ ```
-- `weight` - the strength of the rain
-- `time` - rain duration
+ - `weight` - the strength of the rain
+ - `time` - rain duration
-## Wld_SetWeatherType
-Sets the weather type.
-Types:
+## `Wld_SetWeatherType`
+!!! function "`Wld_SetWeatherType`"
+ Sets the weather type.
+ Types:
-`0` - snow
-`1` - rain
+ `0` - snow
+ `1` - rain
-```dae
-func void Wld_SetWeatherType( var int type ) {};
-```
+ ```dae
+ func void Wld_SetWeatherType( var int type ) {};
+ ```
-- `type` - weather type
+ - `type` - weather type
-## Wld_GetWeatherType
-Returns the weather type.
-Types:
+## `Wld_GetWeatherType`
+!!! function "`Wld_GetWeatherType`"
+ Returns the weather type.
+ Types:
-`0` - snow
-`1` - rain
+ `0` - snow
+ `1` - rain
-```dae
-func int Wld_GetWeatherType() {};
-```
+ ```dae
+ func int Wld_GetWeatherType() {};
+ ```
-- `return` - weather type
+ - `return` - weather type
diff --git a/docs/zengin/scripts/externals/doc.md b/docs/zengin/scripts/externals/doc.md
index 9cf648f0dd..be8ae3c415 100644
--- a/docs/zengin/scripts/externals/doc.md
+++ b/docs/zengin/scripts/externals/doc.md
@@ -6,223 +6,225 @@ title: Doc functions
Doc functions are used to control the document manager. They allow you to fine tune the display of maps, letters and books.
## `Doc_Create`
-
-Creates a new instance of the document manager and returns its ID.
-```dae
-func int Doc_Create() {};
-```
-
-**Return value**
-Returns the ID of the document manager instance.
-
-!!! Example
+!!! function "`Doc_Create`"
+ Creates a new instance of the document manager and returns its ID.
```dae
- var int nDocID; // Variable to store the id in
- nDocID = Doc_Create();
+ func int Doc_Create() {};
```
-## `Doc_CreateMap`
+ **Return value**
+ Returns the ID of the document manager instance.
-Creates a new instance of the document manager with the arrow showing players position on the map and returns its ID.
-```dae
-func int Doc_CreateMap() {};
-```
+ !!! Example
+ ```dae
+ var int nDocID; // Variable to store the id in
+ nDocID = Doc_Create();
+ ```
-**Return value**
-Returns the ID of the document manager instance.
-
-!!! Example
+## `Doc_CreateMap`
+!!! function "`Doc_CreateMap`"
+ Creates a new instance of the document manager with the arrow showing players position on the map and returns its ID.
```dae
- var int nDocID; // Variable to store the id in
- nDocID = Doc_CreateMap();
+ func int Doc_CreateMap() {};
```
-## `Doc_SetLevel`
+ **Return value**
+ Returns the ID of the document manager instance.
-Set a world level to a map. This maps the texture of the document to the bounding box of the provided level.
-```dae
-func void Doc_SetLevel(var int docID, var string level) {};
-```
-
-**Parameters**
+ !!! Example
+ ```dae
+ var int nDocID; // Variable to store the id in
+ nDocID = Doc_CreateMap();
+ ```
-- `#!dae var int docID` - document manager ID
-- `#!dae var string level` - name of the ZEN file
-
-!!! Example
+## `Doc_SetLevel`
+!!! function "`Doc_SetLevel`"
+ Set a world level to a map. This maps the texture of the document to the bounding box of the provided level.
```dae
- nDocID = Doc_CreateMap();
- Doc_SetLevel(nDocID, "WORLD.ZEN");
+ func void Doc_SetLevel(var int docID, var string level) {};
```
-## `Doc_SetLevelCoords`
+ **Parameters**
-!!! Warning
- This function is only available in Gothic 2
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var string level` - name of the ZEN file
-Sets the map coordinates. This is used to map smaller portions of the world map to the document map to correctly show players position on the map.
-```dae
-func void Doc_SetLevelCoords(var int docID, var int left, var int top, var int right, var int bottom) {};
-```
+ !!! Example
+ ```dae
+ nDocID = Doc_CreateMap();
+ Doc_SetLevel(nDocID, "WORLD.ZEN");
+ ```
-**Parameters**
+## `Doc_SetLevelCoords`
+!!! function "`Doc_SetLevelCoords`"
-- `#!dae var int docID` - document manager ID
-- `#!dae var int left` - left coordinate
-- `#!dae var int top` - top coordinate
-- `#!dae var int right` - right coordinate
-- `#!dae var int bottom` - bottom coordinate
+ !!! Warning
+ This function is only available in Gothic 2
-!!! Example
+ Sets the map coordinates. This is used to map smaller portions of the world map to the document map to correctly show players position on the map.
```dae
- Doc_SetLevelCoords(nDocID, -28000, 50500, 95500, -42500);
+ func void Doc_SetLevelCoords(var int docID, var int left, var int top, var int right, var int bottom) {};
```
-## `Doc_SetFont`
-Sets a `font` to be used on a `page` in a document with `docID`. Can be called multiple times to display different lines with different fonts.
+ **Parameters**
-```dae
-func void Doc_SetFont(var int docID, var int page, var string font) {};
-```
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int left` - left coordinate
+ - `#!dae var int top` - top coordinate
+ - `#!dae var int right` - right coordinate
+ - `#!dae var int bottom` - bottom coordinate
-**Parameters**
+ !!! Example
+ ```dae
+ Doc_SetLevelCoords(nDocID, -28000, 50500, 95500, -42500);
+ ```
-- `#!dae var int docID` - document manager ID
-- `#!dae var int page` - page index, if set to `-1`, fonts will be applied to all pages
-- `#!dae var string font` - font to be used
+## `Doc_SetFont`
+!!! function "`Doc_SetFont`"
+ Sets a `font` to be used on a `page` in a document with `docID`. Can be called multiple times to display different lines with different fonts.
-!!! Example
```dae
- Doc_SetFont(nDocID, -1, "FONT_10_BOOK.TGA");
+ func void Doc_SetFont(var int docID, var int page, var string font) {};
```
-## `Doc_SetPages`
+ **Parameters**
-Sets the number of pages `numOfPages` of the document.
-```dae
-func void Doc_SetPages(var int docID, var int numOfPages) {};
-```
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int page` - page index, if set to `-1`, fonts will be applied to all pages
+ - `#!dae var string font` - font to be used
-**Parameters**
+ !!! Example
+ ```dae
+ Doc_SetFont(nDocID, -1, "FONT_10_BOOK.TGA");
+ ```
-- `#!dae var int docID` - document manager ID
-- `#!dae var int numOfPages` - number of pages
-
-!!! Example
+## `Doc_SetPages`
+!!! function "`Doc_SetPages`"
+ Sets the number of pages `numOfPages` of the document.
```dae
- nDocID = Doc_Create();
- Doc_SetPages(nDocID, 2);
+ func void Doc_SetPages(var int docID, var int numOfPages) {};
```
-## `Doc_SetPage`
-
-Set `page` to have `texture` as a background with `scale`.
-```dae
-func void Doc_SetPage(var int docID, var int page, var string texture, var int scale) {};
-```
+ **Parameters**
-**Parameters**
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int numOfPages` - number of pages
-- `#!dae var int docID` - document manager ID
-- `#!dae var int page` - page index, if set to `-1`, settings are applied to all pages
-- `#!dae var string texture` - texture of the background
-- `#!dae var int scale` - scale of the texture, `TRUE` to scale the page, `FALSE` to not scale
+ !!! Example
+ ```dae
+ nDocID = Doc_Create();
+ Doc_SetPages(nDocID, 2);
+ ```
-!!! Example
+## `Doc_SetPage`
+!!! function "`Doc_SetPage`"
+ Set `page` to have `texture` as a background with `scale`.
```dae
- Doc_SetPage(nDocID, 0, "Book_Mage_L.tga", FALSE);
- Doc_SetPage(nDocID, 1, "Book_Mage_R.tga", FALSE);
+ func void Doc_SetPage(var int docID, var int page, var string texture, var int scale) {};
```
-## `Doc_SetMargins`
+ **Parameters**
-Sets text margins of the page
-```dae
-func void Doc_SetMargins(var int docID,
- var int page,
- var int left,
- var int top,
- var int right,
- var int bottom,
- var int pixels) {};
-```
-
-**Parameters**
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int page` - page index, if set to `-1`, settings are applied to all pages
+ - `#!dae var string texture` - texture of the background
+ - `#!dae var int scale` - scale of the texture, `TRUE` to scale the page, `FALSE` to not scale
-- `#!dae var int docID` - document manager ID
-- `#!dae var int page` - page index, if set to `-1`, settings are applied to all pages
-- `#!dae var int left` - left margin
-- `#!dae var int top` - top margin
-- `#!dae var int right` - right margin
-- `#!dae var int bottom` - bottom margin
-- `#!dae var int pixels` - `TRUE` to use pixels, `FALSE` to use virtual coordinates
-!!! Warning
- After a thorough examination of this external function in the decompiler, it looks like the function works in pixels only regardless of this parameter.
+ !!! Example
+ ```dae
+ Doc_SetPage(nDocID, 0, "Book_Mage_L.tga", FALSE);
+ Doc_SetPage(nDocID, 1, "Book_Mage_R.tga", FALSE);
+ ```
-!!! Example
+## `Doc_SetMargins`
+!!! function "`Doc_SetMargins`"
+ Sets text margins of the page
```dae
- Doc_SetMargins(nDocID, 0, 275, 20, 30, 20, TRUE);
+ func void Doc_SetMargins(var int docID,
+ var int page,
+ var int left,
+ var int top,
+ var int right,
+ var int bottom,
+ var int pixels) {};
```
-## `Doc_PrintLine`
+ **Parameters**
-Prints a line of `text` (font is set using [Doc_SetFont](#doc_setfont)) onto the document with `docID`, onto the `page`. Does not split the text into multiple lines if they do not fit onto the page.
-```dae
-func void Doc_PrintLine(var int docID, var int page, var string text) {};
-```
-
-**Parameters**
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int page` - page index, if set to `-1`, settings are applied to all pages
+ - `#!dae var int left` - left margin
+ - `#!dae var int top` - top margin
+ - `#!dae var int right` - right margin
+ - `#!dae var int bottom` - bottom margin
+ - `#!dae var int pixels` - `TRUE` to use pixels, `FALSE` to use virtual coordinates
+ !!! Warning
+ After a thorough examination of this external function in the decompiler, it looks like the function works in pixels only regardless of this parameter.
-- `#!dae var int docID` - document manager ID
-- `#!dae var int page` - page index
-- `#!dae var string text` - text to be printed
+ !!! Example
+ ```dae
+ Doc_SetMargins(nDocID, 0, 275, 20, 30, 20, TRUE);
+ ```
-!!! Example
+## `Doc_PrintLine`
+!!! function "`Doc_PrintLine`"
+ Prints a line of `text` (font is set using [Doc_SetFont](#doc_setfont)) onto the document with `docID`, onto the `page`. Does not split the text into multiple lines if they do not fit onto the page.
```dae
- Doc_PrintLine(nDocID, 0, ""); // insert empty line
- Doc_PrintLine(nDocID, 0, "The Book");
+ func void Doc_PrintLine(var int docID, var int page, var string text) {};
```
-## `Doc_PrintLines`
+ **Parameters**
-Prints a line of `text` (font is set using [Doc_SetFont](#doc_setfont)) onto the document with `docID`, onto the `page`. Splits the text into multiple lines if they do not fit onto the page.
-```dae
-func void Doc_PrintLines(var int docID, var int page, var string text) {};
-```
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int page` - page index
+ - `#!dae var string text` - text to be printed
-**Parameters**
+ !!! Example
+ ```dae
+ Doc_PrintLine(nDocID, 0, ""); // insert empty line
+ Doc_PrintLine(nDocID, 0, "The Book");
+ ```
-- `#!dae var int docID` - document manager ID
-- `#!dae var int page` - page index
-- `#!dae var string text` - text to be printed
-
-!!! Example
+## `Doc_PrintLines`
+!!! function "`Doc_PrintLines`"
+ Prints a line of `text` (font is set using [Doc_SetFont](#doc_setfont)) onto the document with `docID`, onto the `page`. Splits the text into multiple lines if they do not fit onto the page.
```dae
- Doc_PrintLines(nDocID, 0, "The war had been decided. Varant had lost its seaports, vital to army supplies. King Rhobar had not lingered on the battle fields for a long time, but left his generals to deal with the few remaining enemy troops. Varant had only one large force left, commanded by Lukkor, the most capable warlord of the Varant army, who had more than once turned defeat into victory.");
- Doc_PrintLines(nDocID, 0, "But now his army was trapped. The situation was hopeless, even though his army greatly outnumbered the enemy. Lee, a war hero from Myrtana, had lured him into this trap. The heavy cavalry had been unable to fight on the thick, swamped ground of the narrow valley. Lee's soldiers had occupied the range of hills surrounding the swamp, and they had struck repeatedly, decimating the army. The desperate sallies his troops had launched had been cut short in pools of blood. He was beaten.");
+ func void Doc_PrintLines(var int docID, var int page, var string text) {};
```
-## `Doc_Show`
-
-Display the document using the document manager ID
-```dae
-func void Doc_Show(var int docID) {};
-```
+ **Parameters**
-**Parameters**
+ - `#!dae var int docID` - document manager ID
+ - `#!dae var int page` - page index
+ - `#!dae var string text` - text to be printed
-- `#!dae var int docID` - document manager ID
+ !!! Example
+ ```dae
+ Doc_PrintLines(nDocID, 0, "The war had been decided. Varant had lost its seaports, vital to army supplies. King Rhobar had not lingered on the battle fields for a long time, but left his generals to deal with the few remaining enemy troops. Varant had only one large force left, commanded by Lukkor, the most capable warlord of the Varant army, who had more than once turned defeat into victory.");
+ Doc_PrintLines(nDocID, 0, "But now his army was trapped. The situation was hopeless, even though his army greatly outnumbered the enemy. Lee, a war hero from Myrtana, had lured him into this trap. The heavy cavalry had been unable to fight on the thick, swamped ground of the narrow valley. Lee's soldiers had occupied the range of hills surrounding the swamp, and they had struck repeatedly, decimating the army. The desperate sallies his troops had launched had been cut short in pools of blood. He was beaten.");
+ ```
-!!! Example
+## `Doc_Show`
+!!! function "`Doc_Show`"
+ Display the document using the document manager ID
```dae
- var int nDocID; // Variable to store the id in
- nDocID = Doc_Create();
-
- // ... document configuration
-
- Doc_Show(nDocID);
+ func void Doc_Show(var int docID) {};
```
+ **Parameters**
+
+ - `#!dae var int docID` - document manager ID
+
+ !!! Example
+ ```dae
+ var int nDocID; // Variable to store the id in
+ nDocID = Doc_Create();
+
+ // ... document configuration
+
+ Doc_Show(nDocID);
+ ```
+
## Externals with docu comments
```dae
diff --git a/docs/zengin/scripts/externals/log.md b/docs/zengin/scripts/externals/log.md
index e31119cdaf..7996d694df 100644
--- a/docs/zengin/scripts/externals/log.md
+++ b/docs/zengin/scripts/externals/log.md
@@ -4,61 +4,63 @@ title: Log functions
# Log external functions
Log externals are used to manipulate players log and to track quest progress.
+## ``Log_CreateTopic``
+!!! function "``Log_CreateTopic``"
+ Creates a new log topic with the name `topicName` under the section `logSection`
-## `Log_CreateTopic`
-Creates a new log topic with the name `topicName` under the section `logSection`
-
-```dae
-func void Log_CreateTopic(var string topicName, var int logSection) {};
-```
-**Parameters**
+ ```dae
+ func void Log_CreateTopic(var string topicName, var int logSection) {};
+ ```
+ **Parameters**
-- `#!dae var string topicName`
- Unique string used to identify and name the topic
-- `#!dae var int logSection`
- Indicates in which section to create the topic in.
- Takes constants `LOG_MISSION`, `LOG_NOTE` as values
+ - `#!dae var string topicName`
+ Unique string used to identify and name the topic
+ - `#!dae var int logSection`
+ Indicates in which section to create the topic in.
+ Takes constants `LOG_MISSION`, `LOG_NOTE` as values
## `Log_AddEntry`
-Adds an entry to a log topic with the name `topicName` under the section `logSection`
+!!! function "`Log_AddEntry`"
+ Adds an entry to a log topic with the name `topicName` under the section `logSection`
-```dae
-func void Log_AddEntry(var string topicName, var string entry) {};
-```
-**Parameters**
+ ```dae
+ func void Log_AddEntry(var string topicName, var string entry) {};
+ ```
+ **Parameters**
-- `#!dae var string topicName`
- Unique string used to identify and name the topic
-- `#!dae var string entry`
- Content of the new entry
+ - `#!dae var string topicName`
+ Unique string used to identify and name the topic
+ - `#!dae var string entry`
+ Content of the new entry
-!!! Info
- In the engine the `#!dae Log_AddEntry()` is wrapped in a `#!dae B_LogEntry()` function. This function also handles printing the "New Journal Entry" message to the screen and playing the sound effect.
- ```dae
- func void B_LogEntry(var string topic, var string entry)
- {
- PrintDebugNpc(PD_ZS_DETAIL, "B_LogEntry"); // Logging
+ !!! Info
+ In the engine the `#!dae Log_AddEntry()` is wrapped in a `#!dae B_LogEntry()` function. This function also handles printing the "New Journal Entry" message to the screen and playing the sound effect.
+ ```dae
+ func void B_LogEntry(var string topic, var string entry)
+ {
+ PrintDebugNpc(PD_ZS_DETAIL, "B_LogEntry"); // Logging
- Log_AddEntry(topic, entry);
+ Log_AddEntry(topic, entry);
- PrintScreen(NAME_NewLogEntry, -1, _YPOS_MESSAGE_LOGENTRY, "font_old_10_white.tga", _TIME_MESSAGE_LOGENTRY);
- Snd_Play("LogEntry");
- };
- ```
+ PrintScreen(NAME_NewLogEntry, -1, _YPOS_MESSAGE_LOGENTRY, "font_old_10_white.tga", _TIME_MESSAGE_LOGENTRY);
+ Snd_Play("LogEntry");
+ };
+ ```
## `Log_SetTopicStatus`
-Changes the status of the topic with the name `topicName`
+!!! function "`Log_SetTopicStatus`"
+ Changes the status of the topic with the name `topicName`
-```dae
-func void Log_SetTopicStatus(var string topicName, var int status) {};
-```
-**Parameters**
+ ```dae
+ func void Log_SetTopicStatus(var string topicName, var int status) {};
+ ```
+ **Parameters**
-- `#!dae var string topicName`
- Unique string used to identify and name the topic
-- `#!dae var int status`
- The status to be set.
- Takes constants `LOG_RUNNING`, `LOG_SUCCESS`, `LOG_FAILED`, `LOG_OBSOLETE` as values
+ - `#!dae var string topicName`
+ Unique string used to identify and name the topic
+ - `#!dae var int status`
+ The status to be set.
+ Takes constants `LOG_RUNNING`, `LOG_SUCCESS`, `LOG_FAILED`, `LOG_OBSOLETE` as values
## zParserExtender
diff --git a/docs/zengin/scripts/externals/mdl.md b/docs/zengin/scripts/externals/mdl.md
index 20cedf29a1..cb23742619 100644
--- a/docs/zengin/scripts/externals/mdl.md
+++ b/docs/zengin/scripts/externals/mdl.md
@@ -5,210 +5,219 @@ title: MDL functions
Functions to tweak animation and other model related settings.
## `Mdl_ApplyOverlayMDS`
-Apply an animation overlay with `overlay_name` for the specified `npc`
-```dae
-func void Mdl_ApplyOverlayMDS(var c_npc npc, var string overlay_name) {};
-```
+!!! function "`Mdl_ApplyOverlayMDS`"
+ Apply an animation overlay with `overlay_name` for the specified `npc`
+ ```dae
+ func void Mdl_ApplyOverlayMDS(var c_npc npc, var string overlay_name) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var c_npc npc`
- NPC to apply the overlay to
-- `#!dae var string overlay_name`
- Name of the animation overlay
+ - `#!dae var c_npc npc`
+ NPC to apply the overlay to
+ - `#!dae var string overlay_name`
+ Name of the animation overlay
## `Mdl_ApplyOverlayMDSTimed`
-Apply an animation overlay with `overlay_name` for the specified `npc` for `duration` milliseconds
-```dae
-func void Mdl_ApplyOverlayMDSTimed(var c_npc npc, var string overlay_name, var float duration) {};
-```
+!!! function "`Mdl_ApplyOverlayMDSTimed`"
+ Apply an animation overlay with `overlay_name` for the specified `npc` for `duration` milliseconds
+ ```dae
+ func void Mdl_ApplyOverlayMDSTimed(var c_npc npc, var string overlay_name, var float duration) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var c_npc npc`
- NPC to apply the overlay to
-- `#!dae var string overlay_name`
- Name of the animation overlay
-- `#!dae var float duration`
- Overlay duration in milliseconds
+ - `#!dae var c_npc npc`
+ NPC to apply the overlay to
+ - `#!dae var string overlay_name`
+ Name of the animation overlay
+ - `#!dae var float duration`
+ Overlay duration in milliseconds
## `Mdl_RemoveOverlayMDS`
-Remove the animation overlay `overlay_name` from specified `npc`
-```dae
-func void Mdl_RemoveOverlayMDS(var c_npc npc, var string overlay_name) {};
-```
+!!! function "`Mdl_RemoveOverlayMDS`"
+ Remove the animation overlay `overlay_name` from specified `npc`
+ ```dae
+ func void Mdl_RemoveOverlayMDS(var c_npc npc, var string overlay_name) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var c_npc npc`
- NPC to remove the overlay from
-- `#!dae var string overlay_name`
- Name of the animation overlay
+ - `#!dae var c_npc npc`
+ NPC to remove the overlay from
+ - `#!dae var string overlay_name`
+ Name of the animation overlay
## `Mdl_ApplyRandomAni`
-Assign a random animation `ani2` to random animation list of animation `ani1`
-```dae
-func void Mdl_ApplyRandomAni(var c_npc npc, var string ani1, var string ani2) {};
-```
+!!! function "`Mdl_ApplyRandomAni`"
+ Assign a random animation `ani2` to random animation list of animation `ani1`
+ ```dae
+ func void Mdl_ApplyRandomAni(var c_npc npc, var string ani1, var string ani2) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var c_npc npc`
- NPC owning the animation
-- `#!dae var string ani1`
- The animation to assign random animation to
-- `#!dae var string ani2`
- Animation to be assigned
+ - `#!dae var c_npc npc`
+ NPC owning the animation
+ - `#!dae var string ani1`
+ The animation to assign random animation to
+ - `#!dae var string ani2`
+ Animation to be assigned
## `Mdl_ApplyRandomAniFreq`
-Sets the random animation frequency for animation `ani1`
-```dae
-func void Mdl_ApplyRandomAniFreq(var c_npc npc, var string ani1, var float frequency) {};
-```
+!!! function "`Mdl_ApplyRandomAniFreq`"
+ Sets the random animation frequency for animation `ani1`
+ ```dae
+ func void Mdl_ApplyRandomAniFreq(var c_npc npc, var string ani1, var float frequency) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var c_npc npc`
- NPC owning the animation
-- `#!dae var string ani1`
- The animation to set the random frequency
-- `#!dae var float frequency`
- Number of seconds between random animations
+ - `#!dae var c_npc npc`
+ NPC owning the animation
+ - `#!dae var string ani1`
+ The animation to set the random frequency
+ - `#!dae var float frequency`
+ Number of seconds between random animations
-??? Abstract "Example"
- ```dae
- // Attach T_WOUNDED_TRY animation to the S_WOUNDED animation
- Mdl_ApplyRandomAni(self, "S_WOUNDED", "T_WOUNDED_TRY");
- // Make the random animation attached play every 8 seconds
- Mdl_ApplyRandomAniFreq(self, "S_WOUNDED", 8);
- ```
+ ??? Abstract "Example"
+ ```dae
+ // Attach T_WOUNDED_TRY animation to the S_WOUNDED animation
+ Mdl_ApplyRandomAni(self, "S_WOUNDED", "T_WOUNDED_TRY");
+ // Make the random animation attached play every 8 seconds
+ Mdl_ApplyRandomAniFreq(self, "S_WOUNDED", 8);
+ ```
## `Mdl_SetModelFatness`
-Set the procedural model fatness
-```dae
-func void Mdl_SetModelFatness(var c_npc npc, var float fatness) {};
-```
-
-**Parameters**
+!!! function "`Mdl_SetModelFatness`"
+ Set the procedural model fatness
+ ```dae
+ func void Mdl_SetModelFatness(var c_npc npc, var float fatness) {};
+ ```
-- `#!dae var c_npc npc`
- NPC to apply the fatness to
-- `#!dae var float fatness`
- Fatness value
+ **Parameters**
+ - `#!dae var c_npc npc`
+ NPC to apply the fatness to
+ - `#!dae var float fatness`
+ Fatness value
## `Mdl_SetModelScale`
-Set model scale per axis
-```dae
-func void Mdl_SetModelScale(var c_npc npc, var float x, var float y, var float z) {};
-```
-
-**Parameters**
+!!! function "`Mdl_SetModelScale`"
+ Set model scale per axis
+ ```dae
+ func void Mdl_SetModelScale(var c_npc npc, var float x, var float y, var float z) {};
+ ```
-- `#!dae var c_npc npc`
- NPC to apply the scale to
-- `#!dae var float x`
- Scale along the x-axis, 1.0 = 100%, 1.5 = 150%, 0.9 = 90%
-- `#!dae var float y`
- Scale along the y-axis, 1.0 = 100%, 1.5 = 150%, 0.9 = 90%
-- `#!dae var float z`
- Scale along the z-axis, 1.0 = 100%, 1.5 = 150%, 0.9 = 90%
+ **Parameters**
+ - `#!dae var c_npc npc`
+ NPC to apply the scale to
+ - `#!dae var float x`
+ Scale along the x-axis, 1.0 = 100%, 1.5 = 150%, 0.9 = 90%
+ - `#!dae var float y`
+ Scale along the y-axis, 1.0 = 100%, 1.5 = 150%, 0.9 = 90%
+ - `#!dae var float z`
+ Scale along the z-axis, 1.0 = 100%, 1.5 = 150%, 0.9 = 90%
## `Mdl_SetVisualBody`
-Sets up the visual of an NPC
-```dae
-func void Mdl_SetVisualBody(var instance npc,
- var string body_mesh,
- var int body_tex,
- var int skin,
- var string head_mesh,
- var int head_tex,
- var int teeth_tex,
- var int armor_inst ) {};
-```
-
-**Parameters**
-
-- `#!dae var instance npc`
- NPC to be affected
-- `#!dae var string body_mesh`
- Mesh to be used as the body e.g. `HUN_BODY_NAKED0`
-- `#!dae var int body_tex`
- Body texture assigned to this body mesh
-- `#!dae var int skin`
- Body texture variant
-- `#!dae var string head_mesh`
- Head mesh
-- `#!dae var int head_tex`
- Head texture
-- `#!dae var int teeth_tex`
- Teeth texture
-- `#!dae var int armor_inst`
- Armor ([`C_ITEM`](../classes/c_item.md) instance) to be equipped or `-1` for no armor
+!!! function "`Mdl_SetVisualBody`"
+ Sets up the visual of an NPC
+ ```dae
+ func void Mdl_SetVisualBody(var instance npc,
+ var string body_mesh,
+ var int body_tex,
+ var int skin,
+ var string head_mesh,
+ var int head_tex,
+ var int teeth_tex,
+ var int armor_inst ) {};
+ ```
+
+ **Parameters**
+
+ - `#!dae var instance npc`
+ NPC to be affected
+ - `#!dae var string body_mesh`
+ Mesh to be used as the body e.g. `HUN_BODY_NAKED0`
+ - `#!dae var int body_tex`
+ Body texture assigned to this body mesh
+ - `#!dae var int skin`
+ Body texture variant
+ - `#!dae var string head_mesh`
+ Head mesh
+ - `#!dae var int head_tex`
+ Head texture
+ - `#!dae var int teeth_tex`
+ Teeth texture
+ - `#!dae var int armor_inst`
+ Armor ([`C_ITEM`](../classes/c_item.md) instance) to be equipped or `-1` for no armor
## `Mdl_SetVisual`
-Set the animation set (also dictates models you can set using the `Mdl_SetVisualBody`)
-```dae
-func void Mdl_SetVisual(var instance npc, var string animation_set) {};
-```
+!!! function "`Mdl_SetVisual`"
+ Set the animation set (also dictates models you can set using the `Mdl_SetVisualBody`)
+ ```dae
+ func void Mdl_SetVisual(var instance npc, var string animation_set) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var instance npc`
- NPC to apply the animation set to
-- `#!dae var string animation_set`
- Name of the MDS file that contains the animation set
+ - `#!dae var instance npc`
+ NPC to apply the animation set to
+ - `#!dae var string animation_set`
+ Name of the MDS file that contains the animation set
## `Mdl_StartFaceAni`
-Start a face animation
-```dae
-func void Mdl_StartFaceAni(var c_npc npc,
- var string name,
- var float intensity,
- var float holdtime) {};
-```
+!!! function "`Mdl_StartFaceAni`"
+ Start a face animation
+ ```dae
+ func void Mdl_StartFaceAni(var c_npc npc,
+ var string name,
+ var float intensity,
+ var float holdtime) {};
+ ```
-**Parameters**
+ **Parameters**
-- `#!dae var c_npc npc`
- NPC to apply the animation to
-- `#!dae var string name`
- Animation name
-- `#!dae var float intensity`
- Intensity of the animation 0.0 to 1.0
-- `#!dae var float holdtime`
- How long should the animation be held for `-2` will use the MMS defined value, '-1' will make the hold time infinite
+ - `#!dae var c_npc npc`
+ NPC to apply the animation to
+ - `#!dae var string name`
+ Animation name
+ - `#!dae var float intensity`
+ Intensity of the animation 0.0 to 1.0
+ - `#!dae var float holdtime`
+ How long should the animation be held for `-2` will use the MMS defined value, '-1' will make the hold time infinite
## `Mdl_ApplyRandomFaceAni`
-Start a random face animation
-```dae
-func void Mdl_ApplyRandomFaceAni(var c_npc npc,
- var string name,
- var float timemin,
- var float timeminvar,
- var float timemax,
- var float timemaxvar,
- var float probmin) {};
-```
-
-**Parameters**
-
-- `#!dae var c_npc npc`
- NPC to apply the animation to
-- `#!dae var string name`
- Animation name
-- `#!dae var float timemin`
- Minimum time after which the ani should be started (in seconds)
-- `#!dae var float timeminvar`
- Minimum boundary variation (in seconds)
-- `#!dae var float timemax`
- Maximum time after which the ani should be started (in seconds)
-- `#!dae var float timemaxvar`
- Maximum boundary variation (in seconds)
-- `#!dae var float probmin`
- Probability (0.0 to 1.0) to choose the lower boundary time
+!!! function "`Mdl_ApplyRandomFaceAni`"
+ Start a random face animation
+ ```dae
+ func void Mdl_ApplyRandomFaceAni(var c_npc npc,
+ var string name,
+ var float timemin,
+ var float timeminvar,
+ var float timemax,
+ var float timemaxvar,
+ var float probmin) {};
+ ```
+
+ **Parameters**
+
+ - `#!dae var c_npc npc`
+ NPC to apply the animation to
+ - `#!dae var string name`
+ Animation name
+ - `#!dae var float timemin`
+ Minimum time after which the ani should be started (in seconds)
+ - `#!dae var float timeminvar`
+ Minimum boundary variation (in seconds)
+ - `#!dae var float timemax`
+ Maximum time after which the ani should be started (in seconds)
+ - `#!dae var float timemaxvar`
+ Maximum boundary variation (in seconds)
+ - `#!dae var float probmin`
+ Probability (0.0 to 1.0) to choose the lower boundary time
## Externals with docu comments
diff --git a/overrides/assets/stylesheets/constants.css b/overrides/assets/stylesheets/constants.css
index a959467188..b6996933a4 100644
--- a/overrides/assets/stylesheets/constants.css
+++ b/overrides/assets/stylesheets/constants.css
@@ -8,6 +8,9 @@
--gmc-external-svg: url('data:image/svg+xml;charset=utf-8,');
/* SVG to CSS inline data converter: https://yoksel.github.io/url-encoder/ - output edited */
--md-admonition-icon--trivia: url('data:image/svg+xml;charset=utf-8,');
+
+ --md-admonition-icon--function: url('data:image/svg+xml;charset=utf-8,')
+
}
/* Color */
diff --git a/overrides/assets/stylesheets/extra.css b/overrides/assets/stylesheets/extra.css
index 97137b63f8..01e279718d 100644
--- a/overrides/assets/stylesheets/extra.css
+++ b/overrides/assets/stylesheets/extra.css
@@ -30,11 +30,6 @@
}
}
-/* Add left padding indent to the content */
-article > div > :is(:not(h1, h2, h3, h4)) {
- padding-left: 1em !important;
-}
-
/* Shrink header and footer to the content size*/
.md-grid {
/* Default 61rem */
@@ -147,12 +142,6 @@ div.md-nav__link--index {
[data-md-color-scheme=default] :is(h1, h2, h3, h4, h5, h6) {
--md-default-fg-color--light: #000;
}
- [data-md-color-scheme=slate] :is(h3, h4, h5, h6) {
- border-top: 1px solid hsla(var(--md-hue), 100%, 100%, 0.15);
- }
- [data-md-color-scheme=default] :is(h3, h4, h5, h6) {
- border-top: 1px solid hsla(0, 0%, 0%, 0.15);
- }
}
/* override md-content min-height */
@@ -309,6 +298,22 @@ div.md-nav__link--index {
animation: heart 1000ms infinite;
}
+
+.md-typeset .admonition.function,
+.md-typeset details.function {
+ border-color: rgb(163, 159, 159);
+}
+.md-typeset .function > .admonition-title,
+.md-typeset .function > summary {
+ background-color: rgba(148, 148, 148, 0.1);
+}
+.md-typeset .function > .admonition-title::before,
+.md-typeset .function > summary::before {
+ background-color: rgb(163, 159, 159);
+ -webkit-mask-image: var(--md-admonition-icon--function);
+ mask-image: var(--md-admonition-icon--function);
+}
+
/* Beautiful heart beat animation I found here: https://github.com/squidfunk/mkdocs-material/discussions/3850 */
@keyframes heart
{