implement LegoOmni::FUN_1005b4f0 (#450)

* push changes

* push changes

* fixes

* Changes

* Use proper values

* Name vtable function

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2024-01-17 15:48:48 -05:00
committed by GitHub
parent cf7466f901
commit c0af1dbac4
15 changed files with 72 additions and 21 deletions

View File

@@ -46,6 +46,7 @@ public:
MxResult GetJoystickState(MxU32* p_joystickX, MxU32* p_joystickY, DWORD* p_buttonsState, MxU32* p_povPosition);
void SetTimer();
void KillTimer();
void EnableInputProcessing();
void SetCamera(LegoCameraController* p_camera);
void ClearCamera();
void SetWorld(LegoWorld* p_world);
@@ -57,6 +58,12 @@ public:
inline void SetUseJoystick(MxBool p_useJoystick) { m_useJoystick = p_useJoystick; }
inline void SetJoystickIndex(MxS32 p_joystickIndex) { m_joystickIndex = p_joystickIndex; }
inline void DisableInputProcessing()
{
m_unk0x88 = TRUE;
m_unk0x336 = FALSE;
}
inline LegoControlManager* GetControlManager() { return m_controlManager; }
inline LegoWorld* GetWorld() { return m_world; }
inline LegoCameraController* GetCamera() { return m_camera; }

View File

@@ -62,6 +62,12 @@ extern MxAtomId* g_nocdSourceName;
// SIZE 0x140
class LegoOmni : public MxOmni {
public:
enum {
c_disableInput = 0x01,
c_disable3d = 0x02,
c_clearScreen = 0x04
};
__declspec(dllexport) void CreateBackgroundAudio();
__declspec(dllexport) void RemoveWorld(const MxAtomId&, MxLong);
__declspec(dllexport) static int GetCurrPathInfo(LegoPathBoundary**, MxS32&);
@@ -99,6 +105,7 @@ public:
LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid);
void AddWorld(LegoWorld* p_world);
void FUN_1005b4f0(MxBool p_disable, MxU16 p_flags);
LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; }
LegoSoundManager* GetSoundManager() { return (LegoSoundManager*) m_soundManager; }
@@ -162,7 +169,7 @@ LegoPlantManager* PlantManager();
LegoWorld* GetCurrentWorld();
LegoUnkSaveDataWriter* GetUnkSaveDataWriter();
GifManager* GetGifManager();
void FUN_10015820(MxU32, MxU32);
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
void FUN_10015860(const char*, MxU8);
LegoEntity* FindEntityByAtomIdOrEntityId(const MxAtomId& p_atom, MxS32 p_entityid);
MxDSAction& GetCurrentAction();

View File

@@ -30,7 +30,7 @@ public:
virtual MxResult Create(MxVideoParam& p_videoParam, MxU32 p_frequencyMS, MxBool p_createThread)
override; // vtable+0x2c
virtual MxResult RealizePalette(MxPalette*) override; // vtable+0x30
virtual void VTable0x34(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height) override; // vtable+0x34
virtual void UpdateView(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height) override; // vtable+0x34
virtual void VTable0x38(undefined4, undefined4); // vtable+0x38
// FUNCTION: LGEO1 0x1007ab10
virtual LegoUnknown100d9d00* VTable0x3c() { return m_unk0x100d9d00; } // vtable+0x3c