diff options
| author | aura <nw@moneybot.cc> | 2026-02-17 23:42:09 +0100 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-02-17 23:42:09 +0100 |
| commit | 5e2eb7d67ae933b7566f1944d0bb7744da03d586 (patch) | |
| tree | 054acff1113270a9cd07933df760f3768c1b6853 /source/sourcemod/scripting/include/smlib/arrays.inc | |
| parent | 341db13a008dc12bb22ceb50452d93d01476308c (diff) | |
move source stuff to its own folder
Diffstat (limited to 'source/sourcemod/scripting/include/smlib/arrays.inc')
| -rw-r--r-- | source/sourcemod/scripting/include/smlib/arrays.inc | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/source/sourcemod/scripting/include/smlib/arrays.inc b/source/sourcemod/scripting/include/smlib/arrays.inc new file mode 100644 index 0000000..87f1733 --- /dev/null +++ b/source/sourcemod/scripting/include/smlib/arrays.inc @@ -0,0 +1,157 @@ +#if defined _smlib_array_included + #endinput +#endif +#define _smlib_array_included + +#include <sourcemod> + +/** + * Returns the index for the first occurance of the given value. + * If the value cannot be found, -1 will be returned. + * + * @param array Static Array. + * @param size Size of the Array. + * @param value Value to search for. + * @param start Optional: Offset where to start (0 - (size-1)). + * @return Array index, or -1 if the value couldn't be found. + */ +stock int Array_FindValue(const any[] array, int size, any value, int start=0) +{ + if (start < 0) { + start = 0; + } + + for (int i=start; i < size; i++) { + + if (array[i] == value) { + return i; + } + } + + return -1; +} + +/** + * Searchs for the first occurance of a string in the array. + * If the value cannot be located, -1 will be returned. + * + * @param array Static Array. + * @param size Size of the Array. + * @param value String to search for. + * @param start Optional: Offset where to start(0 - (size-1)). + * @return Array index, or -1 if the value couldn't be found. + */ +stock int Array_FindString(const char[][] array, int size, const char[] str, bool caseSensitive=true, int start=0) +{ + if (start < 0) { + start = 0; + } + + for (int i=start; i < size; i++) { + + if (StrEqual(array[i], str, caseSensitive)) { + return i; + } + } + + return -1; +} + +/** + * Returns the Index of the Lowest value in the array + * + * @param array Static Array. + * @param size Size of the Array. + * @param start Optional: Offset where to start (0 - (size-1)). + * @return Array index. + */ +stock int Array_FindLowestValue(const any[] array, int size, int start=0) +{ + if (start < 0) { + start = 0; + } + + any value = array[start]; + any tempValue; + int x = start; + + for (int i=start; i < size; i++) { + + tempValue = array[i]; + + if (tempValue < value) { + value = tempValue; + x = i; + } + + } + + return x; +} + +/** + * Returns the Index of the Highest value in the array + * + * @param array Static Array. + * @param size Size of the Array. + * @param start Optional: Offset where to start (0 - (size-1)). + * @return Array index. + */ +stock int Array_FindHighestValue(const any[] array, int size, int start=0) +{ + if (start < 0) { + start = 0; + } + + any value = array[start]; + any tempValue; + int x = start; + + for (int i=start; i < size; i++) { + + tempValue = array[i]; + + if (tempValue > value) { + value = tempValue; + x = i; + } + + } + + return x; +} + +/** + * Fills an array with a given value in a 1 dimensional static array. + * You can specify the amount of cells to be written. + * + * @param array Static Array. + * @param size Number of cells to write (eg. the array's size) + * @param value Fill value. + * @param start Optional: Offset where to start (0 - (size-1)). + */ +stock void Array_Fill(any[] array, int size, any value, int start=0) +{ + if (start < 0) { + start = 0; + } + + for (int i=start; i < size; i++) { + array[i] = value; + } +} + +/** + * Copies a 1 dimensional static array. + * + * @param array Static Array to copy from. + * @param newArray New Array to copy to. + * @param size Size of the array (or number of cells to copy) + * @noreturn + */ +stock void Array_Copy(const any[] array, any[] newArray, int size) +{ + for (int i=0; i < size; i++) { + newArray[i] = array[i]; + } +} |
