mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-26 01:17:55 -05:00
Implement/match LegoPathController::FUN_10047b30 (#906)
* Implement/match LegoPathController::FUN_10047b30 * Fix delete
This commit is contained in:
parent
b3d6319656
commit
09394c3512
2 changed files with 32 additions and 7 deletions
|
@ -5,22 +5,26 @@
|
||||||
#include "mxatom.h"
|
#include "mxatom.h"
|
||||||
#include "mxtypes.h"
|
#include "mxtypes.h"
|
||||||
|
|
||||||
|
class LegoPathController;
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d7d9c
|
// VTABLE: LEGO1 0x100d7d9c
|
||||||
// SIZE 0x0c
|
// SIZE 0x0c
|
||||||
class LegoPathStructBase {
|
class LegoPathStructBase {
|
||||||
public:
|
public:
|
||||||
LegoPathStructBase() : m_unk0x04(NULL), m_unk0x08(0) {}
|
LegoPathStructBase() : m_name(NULL), m_unk0x08(0) {}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10047420
|
// FUNCTION: LEGO1 0x10047420
|
||||||
virtual ~LegoPathStructBase()
|
virtual ~LegoPathStructBase()
|
||||||
{
|
{
|
||||||
if (m_unk0x04 != NULL) {
|
if (m_name != NULL) {
|
||||||
delete m_unk0x04;
|
delete[] m_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
friend class LegoPathController;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined* m_unk0x04; // 0x04
|
char* m_name; // 0x04
|
||||||
undefined4 m_unk0x08; // 0x08
|
undefined4 m_unk0x08; // 0x08
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -181,16 +181,37 @@ MxResult LegoPathController::Read(LegoStorage* p_storage)
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10047b30
|
// FUNCTION: LEGO1 0x10047b30
|
||||||
// FUNCTION: BETA10 0x100b7cd6
|
// FUNCTION: BETA10 0x100b7cd6
|
||||||
MxResult LegoPathController::FUN_10047b30(LegoStorage* p_storage)
|
MxResult LegoPathController::FUN_10047b30(LegoStorage* p_storage)
|
||||||
{
|
{
|
||||||
// TODO
|
for (MxS32 i = 0; i < m_numT; i++) {
|
||||||
|
MxU8 length = 0;
|
||||||
|
|
||||||
|
if (p_storage->Read(&length, sizeof(length)) != SUCCESS) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (length > 0) {
|
||||||
|
m_unk0x14[i].m_name = new char[length + 1];
|
||||||
|
|
||||||
|
if (p_storage->Read(m_unk0x14[i].m_name, length) != SUCCESS) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_unk0x14[i].m_name[length] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p_storage->Read(&m_unk0x14[i].m_unk0x08, sizeof(m_unk0x14[i].m_unk0x08)) != SUCCESS) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10047c10
|
// STUB: LEGO1 0x10047c10
|
||||||
// FUNCTION: BETA10 0x1100b7df3
|
// FUNCTION: BETA10 0x100b7df3
|
||||||
MxResult LegoPathController::FUN_10047c10(LegoStorage* p_storage)
|
MxResult LegoPathController::FUN_10047c10(LegoStorage* p_storage)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
|
|
Loading…
Reference in a new issue