ElevatorBottom ctor/dtor (#436)

* ElevatorBottom ctor

* ElevatorBottom destructor

* Use setters

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Joshua Peisach 2024-01-14 16:58:00 -05:00 committed by GitHub
parent dd72bcc666
commit 763fcf8980
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 9 deletions

View file

@ -614,8 +614,8 @@ MxResult IsleApp::SetupWindow(HINSTANCE hInstance, LPSTR lpCmdLine)
LegoAnimationManager::configureLegoAnimationManager(m_islandQuality);
if (LegoOmni::GetInstance()) {
if (LegoOmni::GetInstance()->GetInputManager()) {
LegoOmni::GetInstance()->GetInputManager()->m_useJoystick = m_useJoystick;
LegoOmni::GetInstance()->GetInputManager()->m_joystickIndex = m_joystickIndex;
LegoOmni::GetInstance()->GetInputManager()->SetUseJoystick(m_useJoystick);
LegoOmni::GetInstance()->GetInputManager()->SetJoystickIndex(m_joystickIndex);
}
}
if (m_fullScreen) {

View file

@ -1,9 +1,11 @@
#ifndef ELEVATORBOTTOM_H
#define ELEVATORBOTTOM_H
#include "decomp.h"
#include "legoworld.h"
// VTABLE: LEGO1 0x100d5f20
// SIZE: 0xfc (from inlined ctor at 0x1000a8aa)
class ElevatorBottom : public LegoWorld {
public:
ElevatorBottom();
@ -23,6 +25,9 @@ class ElevatorBottom : public LegoWorld {
{
return !strcmp(p_name, ElevatorBottom::ClassName()) || LegoWorld::IsA(p_name);
}
private:
undefined4 m_unk0xf8; // 0xf8
};
#endif // ELEVATORBOTTOM_H

View file

@ -53,6 +53,8 @@ class LegoInputManager : public MxPresenter {
inline void SetUnknown88(MxBool p_unk0x88) { m_unk0x88 = p_unk0x88; }
inline void SetUnknown336(MxBool p_unk0x336) { m_unk0x336 = p_unk0x336; }
inline void SetUseJoystick(MxBool p_useJoystick) { m_useJoystick = p_useJoystick; }
inline void SetJoystickIndex(MxS32 p_joystickIndex) { m_joystickIndex = p_joystickIndex; }
inline LegoControlManager* GetControlManager() { return m_controlManager; }
inline LegoWorld* GetWorld() { return m_world; }
@ -61,7 +63,7 @@ class LegoInputManager : public MxPresenter {
void ProcessEvents();
MxBool ProcessOneEvent(LegoEventNotificationParam& p_param);
// private:
private:
MxCriticalSection m_criticalSection;
MxList<undefined4>* m_unk0x5c; // list or hash table
LegoCameraController* m_camera;

View file

@ -1,15 +1,28 @@
#include "elevatorbottom.h"
// STUB: LEGO1 0x10017e90
DECOMP_SIZE_ASSERT(ElevatorBottom, 0xfc)
#include "legocontrolmanager.h"
#include "legoinputmanager.h"
#include "legoomni.h"
#include "mxnotificationmanager.h"
#include "mxomni.h"
// FUNCTION: LEGO1 0x10017e90
ElevatorBottom::ElevatorBottom()
{
// TODO
NotificationManager()->Register(this);
this->m_unk0xf8 = 0;
}
// STUB: LEGO1 0x10018060
// FUNCTION: LEGO1 0x10018060
ElevatorBottom::~ElevatorBottom()
{
// TODO
if (InputManager()->GetWorld() == this) {
InputManager()->ClearWorld();
}
ControlManager()->Unregister(this);
NotificationManager()->Unregister(this);
}
// STUB: LEGO1 0x10018150

View file

@ -114,8 +114,8 @@ MxResult MxTransitionManager::StartTransition(
tickleManager->RegisterClient(this, p_speed);
LegoInputManager* inputManager = InputManager();
inputManager->m_unk0x88 = TRUE;
inputManager->m_unk0x336 = FALSE;
inputManager->SetUnknown88(TRUE);
inputManager->SetUnknown336(FALSE);
LegoVideoManager* videoManager = VideoManager();
videoManager->SetRender3D(FALSE);