321 lines
7.3 KiB
C#
321 lines
7.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
// Token: 0x02000091 RID: 145
|
|
public class StringFast
|
|
{
|
|
// Token: 0x06000E18 RID: 3608 RVA: 0x0010F638 File Offset: 0x0010D838
|
|
public StringFast(int initialCapacity = 32)
|
|
{
|
|
this.m_charsCapacity = initialCapacity;
|
|
this.m_buffer = new char[initialCapacity];
|
|
}
|
|
|
|
// Token: 0x06000E19 RID: 3609 RVA: 0x0010F676 File Offset: 0x0010D876
|
|
public bool IsEmpty()
|
|
{
|
|
if (!this.m_isStringGenerated)
|
|
{
|
|
return this.m_bufferPos == 0;
|
|
}
|
|
return this.m_stringGenerated == null;
|
|
}
|
|
|
|
// Token: 0x06000E1A RID: 3610 RVA: 0x0010F693 File Offset: 0x0010D893
|
|
public override string ToString()
|
|
{
|
|
if (!this.m_isStringGenerated)
|
|
{
|
|
this.m_stringGenerated = new string(this.m_buffer, 0, this.m_bufferPos);
|
|
this.m_isStringGenerated = true;
|
|
}
|
|
return this.m_stringGenerated;
|
|
}
|
|
|
|
// Token: 0x06000E1B RID: 3611 RVA: 0x0010F6C2 File Offset: 0x0010D8C2
|
|
public bool IsModified(int newControlValue)
|
|
{
|
|
bool flag = newControlValue != this.m_valueControlInt;
|
|
if (flag)
|
|
{
|
|
this.m_valueControlInt = newControlValue;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x06000E1C RID: 3612 RVA: 0x0010F6DA File Offset: 0x0010D8DA
|
|
public bool IsModified(object newControlValue)
|
|
{
|
|
bool flag = !newControlValue.Equals(this.m_valueControl);
|
|
if (flag)
|
|
{
|
|
this.m_valueControl = newControlValue;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x06000E1D RID: 3613 RVA: 0x0010F6F5 File Offset: 0x0010D8F5
|
|
public void Set(string str)
|
|
{
|
|
this.Clear();
|
|
this.Append(str);
|
|
this.m_stringGenerated = str;
|
|
this.m_isStringGenerated = true;
|
|
}
|
|
|
|
// Token: 0x06000E1E RID: 3614 RVA: 0x0010F714 File Offset: 0x0010D914
|
|
public void Set(object str)
|
|
{
|
|
this.Set(str.ToString());
|
|
}
|
|
|
|
// Token: 0x06000E1F RID: 3615 RVA: 0x0010F722 File Offset: 0x0010D922
|
|
public void Set<T1, T2>(T1 str1, T2 str2)
|
|
{
|
|
this.Clear();
|
|
this.Append(str1);
|
|
this.Append(str2);
|
|
}
|
|
|
|
// Token: 0x06000E20 RID: 3616 RVA: 0x0010F745 File Offset: 0x0010D945
|
|
public void Set<T1, T2, T3>(T1 str1, T2 str2, T3 str3)
|
|
{
|
|
this.Clear();
|
|
this.Append(str1);
|
|
this.Append(str2);
|
|
this.Append(str3);
|
|
}
|
|
|
|
// Token: 0x06000E21 RID: 3617 RVA: 0x0010F775 File Offset: 0x0010D975
|
|
public void Set<T1, T2, T3, T4>(T1 str1, T2 str2, T3 str3, T4 str4)
|
|
{
|
|
this.Clear();
|
|
this.Append(str1);
|
|
this.Append(str2);
|
|
this.Append(str3);
|
|
this.Append(str4);
|
|
}
|
|
|
|
// Token: 0x06000E22 RID: 3618 RVA: 0x0010F7B4 File Offset: 0x0010D9B4
|
|
public void Set(params object[] str)
|
|
{
|
|
this.Clear();
|
|
for (int i = 0; i < str.Length; i++)
|
|
{
|
|
this.Append(str[i]);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000E23 RID: 3619 RVA: 0x0010F7E0 File Offset: 0x0010D9E0
|
|
public StringFast Clear()
|
|
{
|
|
this.m_bufferPos = 0;
|
|
this.m_isStringGenerated = false;
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06000E24 RID: 3620 RVA: 0x0010F7F4 File Offset: 0x0010D9F4
|
|
public StringFast Append(string value)
|
|
{
|
|
if (value == null)
|
|
{
|
|
value = "";
|
|
}
|
|
this.ReallocateIFN(value.Length);
|
|
int length = value.Length;
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
this.m_buffer[this.m_bufferPos + i] = value[i];
|
|
}
|
|
this.m_bufferPos += length;
|
|
this.m_isStringGenerated = false;
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06000E25 RID: 3621 RVA: 0x0010F856 File Offset: 0x0010DA56
|
|
public StringFast Append(object value)
|
|
{
|
|
this.Append(value.ToString());
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06000E26 RID: 3622 RVA: 0x0010F868 File Offset: 0x0010DA68
|
|
public StringFast Append(int value)
|
|
{
|
|
this.ReallocateIFN(16);
|
|
if (value < 0)
|
|
{
|
|
value = -value;
|
|
char[] buffer = this.m_buffer;
|
|
int num = this.m_bufferPos;
|
|
this.m_bufferPos = num + 1;
|
|
buffer[num] = 45;
|
|
}
|
|
int num2 = 0;
|
|
do
|
|
{
|
|
char[] buffer2 = this.m_buffer;
|
|
int num = this.m_bufferPos;
|
|
this.m_bufferPos = num + 1;
|
|
buffer2[num] = (ushort)(48 + value % 10);
|
|
value /= 10;
|
|
num2++;
|
|
}
|
|
while (value != 0);
|
|
for (int i = num2 / 2 - 1; i >= 0; i--)
|
|
{
|
|
char c = this.m_buffer[this.m_bufferPos - i - 1];
|
|
this.m_buffer[this.m_bufferPos - i - 1] = this.m_buffer[this.m_bufferPos - num2 + i];
|
|
this.m_buffer[this.m_bufferPos - num2 + i] = c;
|
|
}
|
|
this.m_isStringGenerated = false;
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06000E27 RID: 3623 RVA: 0x0010F92C File Offset: 0x0010DB2C
|
|
public StringFast Append(float valueF)
|
|
{
|
|
double num = (double)valueF;
|
|
this.m_isStringGenerated = false;
|
|
this.ReallocateIFN(32);
|
|
if (num == 0.0)
|
|
{
|
|
char[] buffer = this.m_buffer;
|
|
int num2 = this.m_bufferPos;
|
|
this.m_bufferPos = num2 + 1;
|
|
buffer[num2] = 48;
|
|
return this;
|
|
}
|
|
if (num < 0.0)
|
|
{
|
|
num = -num;
|
|
char[] buffer2 = this.m_buffer;
|
|
int num2 = this.m_bufferPos;
|
|
this.m_bufferPos = num2 + 1;
|
|
buffer2[num2] = 45;
|
|
}
|
|
int num3 = 0;
|
|
while (num < 1000000.0)
|
|
{
|
|
num *= 10.0;
|
|
num3++;
|
|
}
|
|
long num4 = (long)Math.Round(num);
|
|
int num5 = 0;
|
|
bool flag = true;
|
|
while (num4 != 0L || num3 >= 0)
|
|
{
|
|
if (num4 % 10L != 0L || num3 <= 0)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (!flag)
|
|
{
|
|
this.m_buffer[this.m_bufferPos + num5++] = (char)(48L + num4 % 10L);
|
|
}
|
|
if (--num3 == 0 && !flag)
|
|
{
|
|
this.m_buffer[this.m_bufferPos + num5++] = '.';
|
|
}
|
|
num4 /= 10L;
|
|
}
|
|
this.m_bufferPos += num5;
|
|
for (int i = num5 / 2 - 1; i >= 0; i--)
|
|
{
|
|
char c = this.m_buffer[this.m_bufferPos - i - 1];
|
|
this.m_buffer[this.m_bufferPos - i - 1] = this.m_buffer[this.m_bufferPos - num5 + i];
|
|
this.m_buffer[this.m_bufferPos - num5 + i] = c;
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06000E28 RID: 3624 RVA: 0x0010FA9C File Offset: 0x0010DC9C
|
|
public StringFast Replace(string oldStr, string newStr)
|
|
{
|
|
if (this.m_bufferPos == 0)
|
|
{
|
|
return this;
|
|
}
|
|
if (this.m_replacement == null)
|
|
{
|
|
this.m_replacement = new List<char>();
|
|
}
|
|
for (int i = 0; i < this.m_bufferPos; i++)
|
|
{
|
|
bool flag = false;
|
|
if (this.m_buffer[i] == oldStr[0])
|
|
{
|
|
int num = 1;
|
|
while (num < oldStr.Length && this.m_buffer[i + num] == oldStr[num])
|
|
{
|
|
num++;
|
|
}
|
|
flag = num >= oldStr.Length;
|
|
}
|
|
if (flag)
|
|
{
|
|
i += oldStr.Length - 1;
|
|
if (newStr != null)
|
|
{
|
|
for (int j = 0; j < newStr.Length; j++)
|
|
{
|
|
this.m_replacement.Add(newStr[j]);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.m_replacement.Add(this.m_buffer[i]);
|
|
}
|
|
}
|
|
this.ReallocateIFN(this.m_replacement.Count - this.m_bufferPos);
|
|
for (int k = 0; k < this.m_replacement.Count; k++)
|
|
{
|
|
this.m_buffer[k] = this.m_replacement[k];
|
|
}
|
|
this.m_bufferPos = this.m_replacement.Count;
|
|
this.m_replacement.Clear();
|
|
this.m_isStringGenerated = false;
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06000E29 RID: 3625 RVA: 0x0010FBD8 File Offset: 0x0010DDD8
|
|
private void ReallocateIFN(int nbCharsToAdd)
|
|
{
|
|
if (this.m_bufferPos + nbCharsToAdd > this.m_charsCapacity)
|
|
{
|
|
this.m_charsCapacity = Math.Max(this.m_charsCapacity + nbCharsToAdd, this.m_charsCapacity * 2);
|
|
this.newChars = new char[this.m_charsCapacity];
|
|
this.m_buffer.CopyTo(this.newChars, 0);
|
|
this.m_buffer = this.newChars;
|
|
}
|
|
}
|
|
|
|
// Token: 0x04001686 RID: 5766
|
|
private string m_stringGenerated = "";
|
|
|
|
// Token: 0x04001687 RID: 5767
|
|
private bool m_isStringGenerated;
|
|
|
|
// Token: 0x04001688 RID: 5768
|
|
private char[] newChars;
|
|
|
|
// Token: 0x04001689 RID: 5769
|
|
private char[] m_buffer;
|
|
|
|
// Token: 0x0400168A RID: 5770
|
|
private int m_bufferPos;
|
|
|
|
// Token: 0x0400168B RID: 5771
|
|
private int m_charsCapacity;
|
|
|
|
// Token: 0x0400168C RID: 5772
|
|
private List<char> m_replacement;
|
|
|
|
// Token: 0x0400168D RID: 5773
|
|
private object m_valueControl;
|
|
|
|
// Token: 0x0400168E RID: 5774
|
|
private int m_valueControlInt = int.MinValue;
|
|
}
|