mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-26 18:04:06 +00:00
Implement/match Radio, RadioState (#509)
* WIP RadioState * WIP * WIP * Implement/match Radio/RadioState * Fix naming * Use sizeof
This commit is contained in:
committed by
GitHub
parent
743e042564
commit
cdf76754f7
@@ -34,6 +34,7 @@ public:
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005d810
|
||||
// JukeBox::`scalar deleting destructor'
|
||||
|
||||
enum JukeBoxScript {
|
||||
e_mamaPapaBrickolini,
|
||||
e_jailUnused,
|
||||
@@ -65,29 +66,18 @@ public:
|
||||
e_legoRadioReminder2,
|
||||
|
||||
e_legoRadioRacingAd,
|
||||
|
||||
e_legoRadioNews1,
|
||||
e_legoRadioNews2,
|
||||
|
||||
e_legoRadioPizzaAd1,
|
||||
|
||||
e_legoRadioBricksterPSA,
|
||||
|
||||
e_legoRadioSports1,
|
||||
|
||||
e_legoRadioIntermission1,
|
||||
e_legoRadioIntermission2,
|
||||
|
||||
e_legoRadioPizzaAd2,
|
||||
|
||||
e_legoRadioWeatherReport,
|
||||
|
||||
e_legoRadioSports2,
|
||||
|
||||
e_legoRadioPizzaAd3,
|
||||
|
||||
e_legoRadioIntermission3,
|
||||
|
||||
e_legoRadioSuperStoreAd,
|
||||
|
||||
e_legoRadioLuckyYou,
|
||||
|
||||
@@ -43,6 +43,19 @@ public:
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006160
|
||||
// LegoState::`scalar deleting destructor'
|
||||
|
||||
// SIZE 0x0c
|
||||
struct StateStruct {
|
||||
void* m_unk0x00; // 0x00
|
||||
undefined2 m_unk0x04; // 0x04
|
||||
undefined2 m_unk0x06; // 0x06
|
||||
MxU16 m_unk0x08; // 0x08
|
||||
|
||||
StateStruct();
|
||||
|
||||
MxU32 FUN_10014d00();
|
||||
MxBool FUN_10014de0(MxU32 p_objectId);
|
||||
};
|
||||
};
|
||||
|
||||
#endif // LEGOSTATE_H
|
||||
|
||||
@@ -28,18 +28,8 @@ public:
|
||||
// SYNTHETIC: LEGO1 0x100260a0
|
||||
// LegoVehicleBuildState::`scalar deleting destructor'
|
||||
|
||||
public:
|
||||
struct UnkStruct {
|
||||
undefined4 m_unk0x00; // 0x00
|
||||
undefined2 m_unk0x04; // 0x04
|
||||
undefined2 m_unk0x06; // 0x06
|
||||
undefined2 m_unk0x08; // 0x08
|
||||
|
||||
UnkStruct();
|
||||
};
|
||||
|
||||
private:
|
||||
UnkStruct m_unk0x08[4]; // 0x08
|
||||
StateStruct m_unk0x08[4]; // 0x08
|
||||
|
||||
// This can be one of the following:
|
||||
// * LegoRaceCarBuildState
|
||||
|
||||
@@ -31,6 +31,8 @@ public:
|
||||
return !strcmp(p_name, MxBackgroundAudioManager::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
inline MxBool GetMusicEnabled() { return m_musicEnabled; }
|
||||
|
||||
void StartAction(MxParam& p_param);
|
||||
void StopAction(MxParam& p_param);
|
||||
MxResult PlayMusic(MxDSAction& p_action, undefined4 p_unk0x140, undefined4 p_unk0x13c);
|
||||
|
||||
@@ -43,7 +43,6 @@ public:
|
||||
|
||||
private:
|
||||
MxBool FUN_10044270(MxS32 p_x, MxS32 p_y, MxVideoPresenter* p_presenter);
|
||||
void FUN_10044540(undefined2);
|
||||
|
||||
undefined2 m_unk0x4c; // 0x4c
|
||||
MxS16 m_unk0x4e; // 0x4e
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
#ifndef RADIO_H
|
||||
#define RADIO_H
|
||||
|
||||
#include "legocontrolmanager.h"
|
||||
#include "mxactionnotificationparam.h"
|
||||
#include "mxcore.h"
|
||||
#include "radiostate.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d6d10
|
||||
// SIZE 0x10
|
||||
class Radio : public MxCore {
|
||||
public:
|
||||
Radio();
|
||||
@@ -31,10 +34,15 @@ public:
|
||||
// Radio::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
RadioState* m_state; // 0x08
|
||||
MxBool m_unk0x0c; // 0x0c
|
||||
RadioState* m_state; // 0x08
|
||||
MxBool m_unk0x0c; // 0x0c
|
||||
MxBool m_bgAudioPreviouslyEnabled; // 0x0d
|
||||
|
||||
void CreateRadioState();
|
||||
void Play();
|
||||
void Stop();
|
||||
MxLong HandleEndAction(MxEndActionNotificationParam& p_param);
|
||||
MxLong HandleNotification17(LegoControlManagerEvent& p_param);
|
||||
};
|
||||
|
||||
#endif // RADIO_H
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define RADIOSTATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
#include "mxdsaction.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d6d28
|
||||
// SIZE 0x30
|
||||
@@ -26,6 +27,18 @@ public:
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002d020
|
||||
// RadioState::`scalar deleting destructor'
|
||||
|
||||
inline MxBool IsActive() { return m_active; }
|
||||
|
||||
inline void SetActive(MxBool p_active) { m_active = p_active; }
|
||||
|
||||
undefined4 FUN_1002d090();
|
||||
MxBool FUN_1002d0c0(const MxAtomId& p_atom, MxU32 p_objectId);
|
||||
|
||||
private:
|
||||
StateStruct m_unk0x08[3]; // 0x08
|
||||
MxS16 m_unk0x2c; // 0x2c
|
||||
MxBool m_active; // 0x2e
|
||||
};
|
||||
|
||||
#endif // RADIOSTATE_H
|
||||
|
||||
Reference in New Issue
Block a user