mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-26 17:46:38 -05:00
Isle & Radio constructors (#330)
This commit is contained in:
parent
deaed23e41
commit
53caf30ab0
4 changed files with 75 additions and 4 deletions
|
@ -1,7 +1,27 @@
|
||||||
#include "isle.h"
|
#include "isle.h"
|
||||||
|
|
||||||
// STUB: LEGO1 0x10030820
|
#include "legoomni.h"
|
||||||
|
#include "mxnotificationmanager.h"
|
||||||
|
|
||||||
|
DECOMP_SIZE_ASSERT(Isle, 0x140);
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10030820
|
||||||
Isle::Isle()
|
Isle::Isle()
|
||||||
{
|
{
|
||||||
// TODO
|
m_unk0xfc = 0;
|
||||||
|
m_unk0x100 = 0;
|
||||||
|
m_unk0x104 = 0;
|
||||||
|
m_unk0x108 = 0;
|
||||||
|
m_unk0x10c = 0;
|
||||||
|
m_unk0x110 = 0;
|
||||||
|
m_unk0x114 = 0;
|
||||||
|
m_unk0x118 = 0;
|
||||||
|
m_unk0x11c = 0;
|
||||||
|
m_unk0x120 = 0;
|
||||||
|
m_unk0x124 = 0;
|
||||||
|
m_unk0x128 = 0;
|
||||||
|
m_unk0xf8 = 0;
|
||||||
|
m_unk0x13c = 0;
|
||||||
|
|
||||||
|
NotificationManager()->Register(this);
|
||||||
}
|
}
|
||||||
|
|
18
LEGO1/isle.h
18
LEGO1/isle.h
|
@ -2,6 +2,7 @@
|
||||||
#define ISLE_H
|
#define ISLE_H
|
||||||
|
|
||||||
#include "legoworld.h"
|
#include "legoworld.h"
|
||||||
|
#include "radio.h"
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d6fb8
|
// VTABLE: LEGO1 0x100d6fb8
|
||||||
// SIZE 0x140
|
// SIZE 0x140
|
||||||
|
@ -25,8 +26,21 @@ class Isle : public LegoWorld {
|
||||||
inline void SetUnknown13c(MxU32 p_unk0x13c) { m_unk0x13c = p_unk0x13c; }
|
inline void SetUnknown13c(MxU32 p_unk0x13c) { m_unk0x13c = p_unk0x13c; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
undefined m_unk0xf8[0x44]; // 0xf8
|
undefined4 m_unk0xf8; // 0xf8
|
||||||
MxU32 m_unk0x13c; // 0x13c
|
undefined4 m_unk0xfc; // 0xfc
|
||||||
|
undefined4 m_unk0x100; // 0x100
|
||||||
|
undefined4 m_unk0x104; // 0x104
|
||||||
|
undefined4 m_unk0x108; // 0x108
|
||||||
|
undefined4 m_unk0x10c; // 0x10c
|
||||||
|
undefined4 m_unk0x110; // 0x110
|
||||||
|
undefined4 m_unk0x114; // 0x114
|
||||||
|
undefined4 m_unk0x118; // 0x118
|
||||||
|
undefined4 m_unk0x11c; // 0x11c
|
||||||
|
undefined4 m_unk0x120; // 0x120
|
||||||
|
undefined4 m_unk0x124; // 0x124
|
||||||
|
undefined4 m_unk0x128; // 0x128
|
||||||
|
Radio m_radio; // 0x12c
|
||||||
|
MxU32 m_unk0x13c; // 0x13c
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ISLE_H
|
#endif // ISLE_H
|
||||||
|
|
|
@ -1,7 +1,36 @@
|
||||||
#include "radio.h"
|
#include "radio.h"
|
||||||
|
|
||||||
|
#include "legocontrolmanager.h"
|
||||||
|
#include "legogamestate.h"
|
||||||
|
#include "legoomni.h"
|
||||||
|
#include "mxnotificationmanager.h"
|
||||||
|
|
||||||
|
DECOMP_SIZE_ASSERT(Radio, 0x10);
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1002c850
|
||||||
|
Radio::Radio()
|
||||||
|
{
|
||||||
|
NotificationManager()->Register(this);
|
||||||
|
ControlManager()->Register(this);
|
||||||
|
|
||||||
|
m_unk0xc = TRUE;
|
||||||
|
CreateRadioState();
|
||||||
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1002c990
|
// STUB: LEGO1 0x1002c990
|
||||||
Radio::~Radio()
|
Radio::~Radio()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1002cde0
|
||||||
|
void Radio::CreateRadioState()
|
||||||
|
{
|
||||||
|
LegoGameState* gameState = GameState();
|
||||||
|
RadioState* state = (RadioState*) gameState->GetState("RadioState");
|
||||||
|
if (state == NULL) {
|
||||||
|
state = (RadioState*) gameState->CreateState("RadioState");
|
||||||
|
}
|
||||||
|
|
||||||
|
m_state = state;
|
||||||
|
}
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
#define RADIO_H
|
#define RADIO_H
|
||||||
|
|
||||||
#include "mxcore.h"
|
#include "mxcore.h"
|
||||||
|
#include "radiostate.h"
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d6d10
|
// VTABLE: LEGO1 0x100d6d10
|
||||||
class Radio : public MxCore {
|
class Radio : public MxCore {
|
||||||
public:
|
public:
|
||||||
|
Radio();
|
||||||
virtual ~Radio() override;
|
virtual ~Radio() override;
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1002c8e0
|
// FUNCTION: LEGO1 0x1002c8e0
|
||||||
|
@ -20,6 +22,12 @@ class Radio : public MxCore {
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, Radio::ClassName()) || MxCore::IsA(p_name);
|
return !strcmp(p_name, Radio::ClassName()) || MxCore::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
RadioState* m_state; // 0x08
|
||||||
|
MxBool m_unk0xc; // 0x0c
|
||||||
|
|
||||||
|
void CreateRadioState();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // RADIO_H
|
#endif // RADIO_H
|
||||||
|
|
Loading…
Reference in a new issue