Skip to content
This repository has been archived by the owner on Oct 18, 2023. It is now read-only.

Commit

Permalink
Karyuu_IntDotBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
K4ryuu committed Aug 7, 2022
1 parent f419500 commit ae92a01
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 16 deletions.
19 changes: 4 additions & 15 deletions src/karyuu/variable/handles.inc
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ stock void Karyuu_DeleteArrayList(ArrayList &alArrayList)
{
if (Karyuu_IsValidArrayList(alArrayList))
{
Karyuu_ClearArraySafe(alArrayList);
alArrayList.Clear();
delete alArrayList;
}
}
Expand All @@ -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;
Expand Down Expand Up @@ -90,15 +79,15 @@ 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);

return hHandle;
}

static void Karyuu_OnHandleShouldBeClosed(Handle hHandle)
static void Karyuu_OnHandleShouldBeClosed(Handle &hHandle)
{
hHandle.Close();
hHandle.Close();
}
38 changes: 37 additions & 1 deletion src/karyuu/variable/strings.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
}
Expand Down

0 comments on commit ae92a01

Please sign in to comment.