mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Matching spree (#98)
* LegoNavController: Match CalculateNewTargetSpeed Ghidra showed this correctly too, but the asm showed the problem simply, an incorrect comparison * Match a MxPresenter vtable function * Match known functions in LegoPhonemePresenter * Revert "LegoNavController: Match CalculateNewTargetSpeed" This reverts commit 718489923b4dd5a3f12d53510d299033924c5dea. * MxPresenter: rename tickle flag fields * LegoPhonemePresenter: add size assert --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>
This commit is contained in:
parent
1d104141b5
commit
23457da730
4 changed files with 36 additions and 24 deletions
|
@ -1,19 +1,23 @@
|
|||
#include "legophonemepresenter.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoPhonemePresenter, 0x88);
|
||||
|
||||
// OFFSET: LEGO1 0x1004e180
|
||||
LegoPhonemePresenter::LegoPhonemePresenter()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1004e3b0 STUB
|
||||
// OFFSET: LEGO1 0x1004e3b0
|
||||
void LegoPhonemePresenter::Init()
|
||||
{
|
||||
// TODO
|
||||
m_unk68 = 0;
|
||||
m_unk6c = 0;
|
||||
m_unk70 = 0;
|
||||
m_unk84 = 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1004e340 STUB
|
||||
// OFFSET: LEGO1 0x1004e340
|
||||
LegoPhonemePresenter::~LegoPhonemePresenter()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
#ifndef LEGOPHONEMEPRESENTER_H
|
||||
#define LEGOPHONEMEPRESENTER_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxflcpresenter.h"
|
||||
#include "mxstring.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// VTABLE 0x100d8040
|
||||
// SIZE 0x88
|
||||
|
@ -20,7 +23,11 @@ class LegoPhonemePresenter : public MxFlcPresenter
|
|||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
int m_unk68;
|
||||
int m_unk6c;
|
||||
undefined m_unk70;
|
||||
MxString m_string; // 0x74
|
||||
undefined m_unk84;
|
||||
};
|
||||
|
||||
#endif // LEGOPHONEMEPRESENTER_H
|
||||
|
|
|
@ -4,20 +4,21 @@
|
|||
|
||||
DECOMP_SIZE_ASSERT(MxPresenter, 0x40);
|
||||
|
||||
// OFFSET: LEGO1 0x1000bee0 STUB
|
||||
// OFFSET: LEGO1 0x1000bee0
|
||||
void MxPresenter::DoneTickle()
|
||||
{
|
||||
// TODO
|
||||
m_previousTickleFlags |= 1 << m_currentTickleFlag;
|
||||
m_currentTickleFlag = 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b4d50
|
||||
void MxPresenter::Init()
|
||||
{
|
||||
m_unk0x8 = 0;
|
||||
m_currentTickleFlag = 0;
|
||||
m_action = NULL;
|
||||
m_unk0x18 = 0;
|
||||
m_unk0x3c = 0;
|
||||
m_unk0xc = 0;
|
||||
m_previousTickleFlags = 0;
|
||||
m_unk0x10 = 0;
|
||||
m_unk0x14 = 0;
|
||||
}
|
||||
|
@ -70,36 +71,36 @@ void MxPresenter::VTable0x14()
|
|||
void MxPresenter::VTable0x18()
|
||||
{
|
||||
ParseExtra();
|
||||
m_unk0xc |= 1 << (unsigned char)m_unk0x8;
|
||||
m_unk0x8 = 2;
|
||||
m_previousTickleFlags |= 1 << (unsigned char)m_currentTickleFlag;
|
||||
m_currentTickleFlag = 2;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000be60
|
||||
void MxPresenter::VTable0x1c()
|
||||
{
|
||||
m_unk0xc |= 1 << (unsigned char)m_unk0x8;
|
||||
m_unk0x8 = 3;
|
||||
m_previousTickleFlags |= 1 << (unsigned char)m_currentTickleFlag;
|
||||
m_currentTickleFlag = 3;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000be80
|
||||
void MxPresenter::VTable0x20()
|
||||
{
|
||||
m_unk0xc |= 1 << (unsigned char)m_unk0x8;
|
||||
m_unk0x8 = 4;
|
||||
m_previousTickleFlags |= 1 << (unsigned char)m_currentTickleFlag;
|
||||
m_currentTickleFlag = 4;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000bea0
|
||||
void MxPresenter::VTable0x24()
|
||||
{
|
||||
m_unk0xc |= 1 << (unsigned char)m_unk0x8;
|
||||
m_unk0x8 = 5;
|
||||
m_previousTickleFlags |= 1 << (unsigned char)m_currentTickleFlag;
|
||||
m_currentTickleFlag = 5;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000bec0
|
||||
void MxPresenter::VTable0x28()
|
||||
{
|
||||
m_unk0xc |= 1 << (unsigned char)m_unk0x8;
|
||||
m_unk0x8 = 6;
|
||||
m_previousTickleFlags |= 1 << (unsigned char)m_currentTickleFlag;
|
||||
m_currentTickleFlag = 6;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000bf70
|
||||
|
@ -116,14 +117,14 @@ void MxPresenter::InitVirtual()
|
|||
// OFFSET: LEGO1 0x1000bf90
|
||||
void MxPresenter::VTable0x44(undefined4 param)
|
||||
{
|
||||
m_unk0xc |= 1 << (unsigned char)m_unk0x8;
|
||||
m_unk0x8 = param;
|
||||
m_previousTickleFlags |= 1 << (unsigned char)m_currentTickleFlag;
|
||||
m_currentTickleFlag = param;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000bfb0
|
||||
unsigned char MxPresenter::VTable0x48(unsigned char param)
|
||||
{
|
||||
return m_unk0xc & (1 << param);
|
||||
return m_previousTickleFlags & (1 << param);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000bfc0
|
||||
|
|
|
@ -55,8 +55,8 @@ class MxPresenter : public MxCore
|
|||
__declspec(dllexport) void Init();
|
||||
public:
|
||||
|
||||
undefined4 m_unk0x8;
|
||||
undefined4 m_unk0xc;
|
||||
MxS32 m_currentTickleFlag; // 0x8
|
||||
MxU32 m_previousTickleFlags;
|
||||
undefined4 m_unk0x10;
|
||||
undefined4 m_unk0x14;
|
||||
undefined4 m_unk0x18;
|
||||
|
|
Loading…
Reference in a new issue