mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 07:28:00 -05:00
MxDSAction/Chunk/MediaAction/Sound (#85)
* Match MxDSChunk ctor/dtor * Push work on MxDSAction/MediaAction/Sound * MxDSMediaAction constructor is matching up to a mov location * Match MxDSSound constructor by adding the missing member just four bytes in between them in ghidra.. isn't that enough for ghidra to justify a member variable? * Match MxDSMediaAction constructor Today's lesson: ecx suggests '1'
This commit is contained in:
parent
e3bf7b53b5
commit
a31626cffb
8 changed files with 80 additions and 40 deletions
|
@ -5,10 +5,12 @@ MxDSAction::MxDSAction()
|
|||
{
|
||||
// TODO
|
||||
this->SetType(MxDSType_Action);
|
||||
this->m_omni = NULL;
|
||||
this->m_someTimingField = -0x80000000;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ada80 STUB
|
||||
// OFFSET: LEGO1 0x100ada80
|
||||
MxDSAction::~MxDSAction()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
delete this->m_unk7c;
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
#define MXDSACTION_H
|
||||
|
||||
#include "mxdsobject.h"
|
||||
#include "mxomni.h"
|
||||
|
||||
// VTABLE 0x100dc098
|
||||
// SIZE 0x94
|
||||
|
@ -23,33 +24,33 @@ class MxDSAction : public MxDSObject
|
|||
{
|
||||
return !strcmp(name, MxDSAction::ClassName()) || MxDSObject::IsA(name);
|
||||
}
|
||||
|
||||
int m_unk2c;
|
||||
int m_unk30;
|
||||
int m_unk34;
|
||||
int m_unk38;
|
||||
int m_unk3c;
|
||||
int m_unk40;
|
||||
int m_unk44;
|
||||
int m_unk48;
|
||||
int m_unk4c;
|
||||
int m_unk50;
|
||||
int m_unk54;
|
||||
int m_unk58;
|
||||
int m_unk5c;
|
||||
int m_unk60;
|
||||
int m_unk64;
|
||||
int m_unk68;
|
||||
int m_unk6c;
|
||||
int m_unk70;
|
||||
int m_unk74;
|
||||
int m_unk78;
|
||||
int m_unk7c;
|
||||
int m_unk80;
|
||||
int m_unk84;
|
||||
int m_unk88;
|
||||
int m_unk8c;
|
||||
int m_unk90;
|
||||
private:
|
||||
MxLong m_unk2c;
|
||||
MxLong m_unk30;
|
||||
MxLong m_unk34;
|
||||
MxLong* m_unk38;
|
||||
MxLong m_unk3c;
|
||||
MxLong m_unk40;
|
||||
MxLong m_unk44;
|
||||
MxLong m_unk48;
|
||||
MxLong m_unk4c;
|
||||
MxLong m_unk50;
|
||||
MxLong m_unk54;
|
||||
MxLong m_unk58;
|
||||
MxLong m_unk5c;
|
||||
MxLong m_unk60;
|
||||
MxLong m_unk64;
|
||||
MxLong m_unk68;
|
||||
MxLong m_unk6c;
|
||||
MxLong m_unk70;
|
||||
MxLong m_unk74;
|
||||
MxLong m_unk78;
|
||||
MxLong* m_unk7c;
|
||||
MxLong m_unk80;
|
||||
MxLong m_unk84;
|
||||
MxLong m_unk88;
|
||||
MxOmni* m_omni; // 0x8c
|
||||
MxS32 m_someTimingField; // 0x90
|
||||
};
|
||||
|
||||
#endif // MXDSACTION_H
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
#include "mxdschunk.h"
|
||||
|
||||
// OFFSET: LEGO1 0x100be050 STUB
|
||||
// OFFSET: LEGO1 0x100be050
|
||||
MxDSChunk::MxDSChunk()
|
||||
{
|
||||
// TODO
|
||||
this->m_length = 0;
|
||||
this->m_pStuff = NULL;
|
||||
this->m_buffer = -1;
|
||||
this->m_long1FromHeader = 0;
|
||||
this->m_long2FromHeader = 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100be170 STUB
|
||||
// OFFSET: LEGO1 0x100be170
|
||||
MxDSChunk::~MxDSChunk()
|
||||
{
|
||||
// TODO
|
||||
if ((this->m_length & 1) != 0) {
|
||||
delete this->m_pStuff;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
#ifndef MXDSCHUNK_H
|
||||
#define MXDSCHUNK_H
|
||||
|
||||
#include "mxcore.h"
|
||||
|
||||
#include "mxcore.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// VTABLE 0x100dc7f8
|
||||
class MxDSChunk : public MxCore
|
||||
{
|
||||
public:
|
||||
|
@ -21,6 +24,13 @@ class MxDSChunk : public MxCore
|
|||
{
|
||||
return !strcmp(name, MxDSChunk::ClassName()) || MxCore::IsA(name);
|
||||
}
|
||||
private:
|
||||
MxS16 m_length; // 0x8
|
||||
MxLong m_buffer; // 0xc
|
||||
MxLong m_long1FromHeader; // 0x10
|
||||
MxLong m_long2FromHeader; // 0x14
|
||||
void* m_pStuff; // 0x18
|
||||
void* m_pSomething; // 0x1c
|
||||
};
|
||||
|
||||
#endif // MXDSCHUNK_H
|
||||
|
|
|
@ -3,12 +3,19 @@
|
|||
// OFFSET: LEGO1 0x100c8b40
|
||||
MxDSMediaAction::MxDSMediaAction()
|
||||
{
|
||||
// TODO
|
||||
this->m_unk98 = 0;
|
||||
this->m_unk9c = 0;
|
||||
this->m_unka0 = 0;
|
||||
this->m_unka4 = 0;
|
||||
this->m_unka8 = 0;
|
||||
this->m_unkac = 1;
|
||||
this->m_unkb4 = 0xffffffff;
|
||||
this->m_unkb0 = 0;
|
||||
this->SetType(MxDSType_MediaAction);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100c8cf0 STUB
|
||||
// OFFSET: LEGO1 0x100c8cf0
|
||||
MxDSMediaAction::~MxDSMediaAction()
|
||||
{
|
||||
// TODO
|
||||
delete this->m_unk98;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef MXDSMEDIAACTION_H
|
||||
#define MXDSMEDIAACTION_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxdsaction.h"
|
||||
|
||||
// VTABLE 0x100dcd40
|
||||
|
@ -23,7 +24,16 @@ class MxDSMediaAction : public MxDSAction
|
|||
{
|
||||
return !strcmp(name, MxDSMediaAction::ClassName()) || MxDSAction::IsA(name);
|
||||
}
|
||||
|
||||
private:
|
||||
MxS32* m_unk94;
|
||||
MxS32* m_unk98;
|
||||
MxS32* m_unk9c;
|
||||
MxS32* m_unka0;
|
||||
MxS32* m_unka4;
|
||||
MxS32* m_unka8;
|
||||
MxS32 m_unkac;
|
||||
MxS32* m_unkb0;
|
||||
MxS32 m_unkb4;
|
||||
};
|
||||
|
||||
#endif // MXDSMEDIAACTION_H
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// OFFSET: LEGO1 0x100c92c0
|
||||
MxDSSound::MxDSSound()
|
||||
{
|
||||
// TODO
|
||||
this->m_lastField = 0x4f;
|
||||
this->SetType(MxDSType_Sound);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define MXDSSOUND_H
|
||||
|
||||
#include "mxdsmediaaction.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// VTABLE 0x100dcdd0
|
||||
// SIZE 0xc0
|
||||
|
@ -23,6 +24,9 @@ class MxDSSound : public MxDSMediaAction
|
|||
{
|
||||
return !strcmp(name, MxDSSound::ClassName()) || MxDSMediaAction::IsA(name);
|
||||
}
|
||||
private:
|
||||
MxS32 m_unkb8;
|
||||
MxLong m_lastField; // 0xbc
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue