Implement/match LegoAnimPresenter::FUN_10069150 (#600)

This commit is contained in:
Christian Semmler 2024-02-27 10:13:00 -05:00 committed by GitHub
parent 9d65812c13
commit 68893d67ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 33 additions and 5 deletions

View file

@ -48,7 +48,7 @@ class LegoAnimPresenter : public MxVideoPresenter {
protected: protected:
void Init(); void Init();
void Destroy(MxBool p_fromDestructor); void Destroy(MxBool p_fromDestructor);
LegoChar* FUN_10069150(const LegoChar*); LegoChar* FUN_10069150(const LegoChar* p_und1);
void FUN_100692b0(); void FUN_100692b0();
void FUN_100695c0(); void FUN_100695c0();
LegoChar* FUN_100697c0(const LegoChar* p_und1, const LegoChar* p_und2); LegoChar* FUN_100697c0(const LegoChar* p_und1, const LegoChar* p_und2);

View file

@ -60,6 +60,7 @@ class LegoUnkSaveDataWriter {
static void InitSaveData(); static void InitSaveData();
static void SetCustomizeAnimFile(const char* p_value); static void SetCustomizeAnimFile(const char* p_value);
static MxBool FUN_10084c00(const LegoChar*);
void FUN_100832a0(); void FUN_100832a0();
void FUN_10083db0(LegoROI* p_roi); void FUN_10083db0(LegoROI* p_roi);

View file

@ -110,6 +110,13 @@ void LegoUnkSaveDataWriter::FUN_10083f10(LegoROI* p_roi)
// TODO // TODO
} }
// STUB: LEGO1 0x10084c00
MxBool LegoUnkSaveDataWriter::FUN_10084c00(const LegoChar*)
{
// TODO
return FALSE;
}
// FUNCTION: LEGO1 0x100851a0 // FUNCTION: LEGO1 0x100851a0
void LegoUnkSaveDataWriter::SetCustomizeAnimFile(const char* p_value) void LegoUnkSaveDataWriter::SetCustomizeAnimFile(const char* p_value)
{ {

View file

@ -106,11 +106,31 @@ MxResult LegoAnimPresenter::CreateAnim(MxStreamChunk* p_chunk)
return result; return result;
} }
// STUB: LEGO1 0x10069150 // FUNCTION: LEGO1 0x10069150
LegoChar* LegoAnimPresenter::FUN_10069150(const LegoChar*) LegoChar* LegoAnimPresenter::FUN_10069150(const LegoChar* p_und1)
{ {
// TODO LegoChar* str;
return NULL;
if (LegoUnkSaveDataWriter::FUN_10084c00(p_und1 + 1)) {
str = new LegoChar[strlen(p_und1)];
if (str != NULL) {
strcpy(str, p_und1 + 1);
}
}
else {
LegoChar buffer[32];
sprintf(buffer, "%d", m_action->GetUnknown24());
str = new LegoChar[strlen(p_und1) + strlen(buffer) + strlen(GetActionObjectName()) + 1];
if (str != NULL) {
strcpy(str, p_und1);
strcat(str, buffer);
strcat(str, GetActionObjectName());
}
}
return str;
} }
// FUNCTION: LEGO1 0x100692b0 // FUNCTION: LEGO1 0x100692b0