diff --git a/src/karyuu/variable/handles.inc b/src/karyuu/variable/handles.inc index 4de47fc..d79c781 100644 --- a/src/karyuu/variable/handles.inc +++ b/src/karyuu/variable/handles.inc @@ -31,7 +31,7 @@ stock void Karyuu_DeleteArrayList(ArrayList &alArrayList) { if (Karyuu_IsValidArrayList(alArrayList)) { - Karyuu_ClearArraySafe(alArrayList); + alArrayList.Clear(); delete alArrayList; } } @@ -45,17 +45,6 @@ stock void Karyuu_DeleteStack(ArrayStack &asArrayStack) } } -stock void Karyuu_ClearArraySafe(ArrayList &alArrayList) -{ - for (int iData = 0; iData < alArrayList.Length; iData++) - { - Handle hHandle = alArrayList.Get(iData); - delete hHandle; - } - - alArrayList.Clear(); -} - stock void Karyuu_ClearTrieSafe(StringMap &smStringMap) { int iSize; @@ -90,7 +79,7 @@ stock bool Karyuu_KillTimerSafe(Handle &hTimer) return true; } -stock Handle Karyuu_LazyCloseHandle(Handle hHandle) +stock Handle Karyuu_LazyCloseHandle(Handle &hHandle) { if (hHandle) RequestFrame(Karyuu_OnHandleShouldBeClosed, hHandle); @@ -98,7 +87,7 @@ stock Handle Karyuu_LazyCloseHandle(Handle hHandle) return hHandle; } -static void Karyuu_OnHandleShouldBeClosed(Handle hHandle) +static void Karyuu_OnHandleShouldBeClosed(Handle &hHandle) { - hHandle.Close(); + hHandle.Close(); } \ No newline at end of file diff --git a/src/karyuu/variable/strings.inc b/src/karyuu/variable/strings.inc index 1fa8c52..0bdf04f 100644 --- a/src/karyuu/variable/strings.inc +++ b/src/karyuu/variable/strings.inc @@ -79,6 +79,42 @@ stock char[] Karyuu_StringBuilder(const char[] cFormat, any...) return cBuiltString; } +stock char[] Karyuu_IntDotBuilder(int iValue) +{ + char cValue[MAX_INTEGER_LENGTH + 1]; + FormatEx(STRING(cValue), "%d", iValue); + + char cBuffer[32]; + int iLength = strlen(cValue); + + if (iLength <= 3) + { + strcopy(STRING(cBuffer), cValue); + return cBuffer; + } + + int iCounter = iLength % 3; + + if (iCounter == 0) + iCounter = 3; + + for (int i = 0, j = 0; i < iLength; i++, j++) + { + if (iCounter == 0) + { + cBuffer[j] = '.'; + j++; + iCounter = 2; + } + else + iCounter--; + + cBuffer[j] = cValue[i]; + } + + return cBuffer; +} + stock int Karyuu_FlagIntToString(int iFlag) { AdminFlag aFlag; @@ -88,7 +124,7 @@ stock int Karyuu_FlagIntToString(int iFlag) stock char Karyuu_IntToString(int iInt) { - char cBuffer[64]; + char cBuffer[MAX_INTEGER_LENGTH + 1]; FormatEx(STRING(cBuffer), "%d", iInt); return cBuffer; }