15 this->m_data =
new char[1];
24 this->m_length = p_str.m_length;
25 this->m_data =
new char[this->m_length + 1];
26 strcpy(this->m_data, p_str.m_data);
34 this->m_length = strlen(p_str);
35 this->m_data =
new char[this->m_length + 1];
36 strcpy(this->m_data, p_str);
39 this->m_data =
new char[1];
49 if (strlen(p_str) <= p_maxlen) {
50 this->m_length = strlen(p_str);
53 this->m_length = p_maxlen;
57 this->m_data =
new char[this->m_length + 1];
58 memcpy(this->m_data, p_str, this->m_length);
59 this->m_data[this->m_length] =
'\0';
62 this->m_data =
new char[1];
72 delete[] this->m_data;
78 char* start = this->m_data;
79 char* end = this->m_data + this->m_length - 1;
106 if (this->m_data != p_str.m_data) {
107 delete[] this->m_data;
108 this->m_length = p_str.m_length;
109 this->m_data =
new char[this->m_length + 1];
110 strcpy(this->m_data, p_str.m_data);
120 if (this->m_data != p_str) {
121 delete[] this->m_data;
122 this->m_length = strlen(p_str);
123 this->m_data =
new char[this->m_length + 1];
124 strcpy(this->m_data, p_str);
136 tmp.m_length = p_str.m_length + this->m_length;
137 tmp.m_data =
new char[tmp.m_length + 1];
139 strcpy(tmp.m_data, this->m_data);
140 strcpy(tmp.m_data + this->m_length, p_str.m_data);
155 tmp.m_length = strlen(p_str) + this->m_length;
156 tmp.m_data =
new char[tmp.m_length + 1];
158 strcpy(tmp.m_data, this->m_data);
159 strcpy(tmp.m_data + this->m_length, p_str);
168 int newlen = this->m_length + strlen(p_str);
170 char* tmp =
new char[newlen + 1];
171 strcpy(tmp, this->m_data);
172 strcpy(tmp + this->m_length, p_str);
174 delete[] this->m_data;
176 this->m_length = newlen;
Mindscape custom string class for managing dynamic C-strings within the game engine.
static void CharSwap(char *p_a, char *p_b)
Utility to swap the values of two characters.
void ToLowerCase()
Converts the string contents to lowercase in-place.
MxString()
Default constructor which creates an empty string.
void Reverse()
Reverses the contents of the string in-place.
MxString operator+(const MxString &p_str) const
Concatenation operator for two MxString instances.
~MxString() override
Destructor.
void ToUpperCase()
Converts the string contents to uppercase in-place.
MxString & operator=(const MxString &p_str)
Assignment operator from another MxString.
MxString & operator+=(const char *p_str)
Append a C-string to this MxString.
#define DECOMP_SIZE_ASSERT(T, S)