add more MxString functions (#31)

This commit is contained in:
MS 2023-06-21 03:30:07 -04:00 committed by GitHub
parent 290c006d14
commit 6207d1f775
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 58 additions and 6 deletions

View file

@ -11,6 +11,60 @@ MxString::MxString()
this->m_length = 0;
}
// OFFSET: LEGO1 0x100ae2a0
MxString::MxString(const MxString &str)
{
this->m_length = str.m_length;
this->m_data = (char *)malloc(this->m_length + 1);
strcpy(this->m_data, str.m_data);
}
// OFFSET: LEGO1 0x100ae350
MxString::MxString(const char *str)
{
if (str) {
this->m_length = strlen(str);
this->m_data = (char *)malloc(this->m_length + 1);
strcpy(this->m_data, str);
} else {
this->m_data = (char *)malloc(1);
this->m_data[0] = 0;
this->m_length = 0;
}
}
// OFFSET: LEGO1 0x100ae420
MxString::~MxString()
{
free(this->m_data);
}
// OFFSET: LEGO1 0x100ae490
void MxString::ToUpperCase()
{
strupr(this->m_data);
}
// OFFSET: LEGO1 0x100ae4a0
void MxString::ToLowerCase()
{
strlwr(this->m_data);
}
// OFFSET: LEGO1 0x100ae4b0
const MxString &MxString::operator=(MxString *param)
{
if (this->m_data != param->m_data)
{
free(this->m_data);
this->m_length = param->m_length;
this->m_data = (char *)malloc(this->m_length + 1);
strcpy(this->m_data, param->m_data);
}
return *this;
}
// TODO: this *mostly* matches, again weird with the comparison
// OFFSET: LEGO1 0x100ae510
const MxString &MxString::operator=(const char *param)
@ -25,9 +79,3 @@ const MxString &MxString::operator=(const char *param)
return *this;
}
// OFFSET: LEGO1 0x100ae420
MxString::~MxString()
{
free(this->m_data);
}

View file

@ -11,6 +11,10 @@ class MxString : public MxCore
__declspec(dllexport) const MxString &operator=(const char *);
MxString();
MxString(const char *);
void ToUpperCase();
void ToLowerCase();
const MxString &operator=(MxString *);
private:
char *m_data;