Files
glitchy-engine-beef/GlitchLog/src/GlitchLog.bf
T
2020-11-05 22:20:09 +01:00

66 lines
1.3 KiB
Beef

using System;
using System.Text;
using System.Diagnostics;
namespace GlitchLog
{
public static class GlitchLog
{
private static String _format;
internal static String _preparedFormat ~ delete _;
internal static StringView _preMsgFormat;
internal static StringView _postMsgFormat;
public static String Format
{
get => _format;
set
{
_format = value;
PrepareFormat();
}
}
static void PrepareFormat()
{
delete _preparedFormat;
// Length = 0 -> no format -> only print msg
if(_format.Length == 0)
{
_preMsgFormat.Ptr = null;
_postMsgFormat.Ptr = null;
}
_preparedFormat = new .(_format);
// Todo: this is utter garbage
_preparedFormat.Replace("{l", "{0");
_preparedFormat.Replace("{t", "{1");
_preparedFormat.Replace("{n", "{2");
int index = _preparedFormat.IndexOf("{m}");
// {m} not in format-string -> format is pre msg
if(index == -1)
{
_preMsgFormat = _preparedFormat;
_postMsgFormat.Ptr = null;
}
else
{
if(index == 0)
_preMsgFormat.Ptr = null;
else
_preMsgFormat = .(_preparedFormat, 0, index);
if(index == _preparedFormat.Length - 3)
_postMsgFormat.Ptr = null;
else
_postMsgFormat = .(_preparedFormat, index + 3, _preparedFormat.Length - index - 3);
}
}
}
}