From 8075ce83710a39c95ac0ea89482cb69277659032 Mon Sep 17 00:00:00 2001 From: Sebastian K Date: Thu, 17 Jun 2021 13:44:50 +0200 Subject: [PATCH] Add FlagBitsToString - Converts a bit string to a string of flag characters (#377) * Add new method - Converts a bit string to a string of flag characters * New syntax * Set tags * Fix tags * Change method name * Remove for - set null only once --- plugins/include/admin.inc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/plugins/include/admin.inc b/plugins/include/admin.inc index 5a8e32d1..2e1eb90d 100644 --- a/plugins/include/admin.inc +++ b/plugins/include/admin.inc @@ -773,3 +773,32 @@ stock bool BitToFlag(int bit, AdminFlag &flag) return false; } + +/** + * Converts a bit string to a string of flag characters. + * + * @param bits Bit string containing the flags. + * @param flags Output array to write a string of flag characters. + * @param maxSize Maximum size of the string array. + * @return Number of flag characters written. + */ +stock int FlagBitsToString(const int bits, char[] flags, const int maxSize) +{ + AdminFlag array[AdminFlags_TOTAL]; + int numFlags = FlagBitsToArray(bits, array, AdminFlags_TOTAL); + if (numFlags > maxSize) + { + numFlags = maxSize; + } + int i, c, numId = 0; + for (i = 0; i < numFlags; ++i) + { + if(FindFlagChar(array[i], c)) + { + flags[numId++] = c; + } + } + flags[numId] = '\0'; + + return numId; +}