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); LegoAnimationManager::configureLegoAnimationManager(m_islandQuality);
if (LegoOmni::GetInstance()) { if (LegoOmni::GetInstance()) {
if (LegoOmni::GetInstance()->GetInputManager()) { if (LegoOmni::GetInstance()->GetInputManager()) {
LegoOmni::GetInstance()->GetInputManager()->m_useJoystick = m_useJoystick; LegoOmni::GetInstance()->GetInputManager()->SetUseJoystick(m_useJoystick);
LegoOmni::GetInstance()->GetInputManager()->m_joystickIndex = m_joystickIndex; LegoOmni::GetInstance()->GetInputManager()->SetJoystickIndex(m_joystickIndex);
} }
} }
if (m_fullScreen) { if (m_fullScreen) {

View file

@ -1,9 +1,11 @@
#ifndef ELEVATORBOTTOM_H #ifndef ELEVATORBOTTOM_H
#define ELEVATORBOTTOM_H #define ELEVATORBOTTOM_H
#include "decomp.h"
#include "legoworld.h" #include "legoworld.h"
// VTABLE: LEGO1 0x100d5f20 // VTABLE: LEGO1 0x100d5f20
// SIZE: 0xfc (from inlined ctor at 0x1000a8aa)
class ElevatorBottom : public LegoWorld { class ElevatorBottom : public LegoWorld {
public: public:
ElevatorBottom(); ElevatorBottom();
@ -23,6 +25,9 @@ class ElevatorBottom : public LegoWorld {
{ {
return !strcmp(p_name, ElevatorBottom::ClassName()) || LegoWorld::IsA(p_name); return !strcmp(p_name, ElevatorBottom::ClassName()) || LegoWorld::IsA(p_name);
} }
private:
undefined4 m_unk0xf8; // 0xf8
}; };
#endif // ELEVATORBOTTOM_H #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 SetUnknown88(MxBool p_unk0x88) { m_unk0x88 = p_unk0x88; }
inline void SetUnknown336(MxBool p_unk0x336) { m_unk0x336 = p_unk0x336; } 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 LegoControlManager* GetControlManager() { return m_controlManager; }
inline LegoWorld* GetWorld() { return m_world; } inline LegoWorld* GetWorld() { return m_world; }
@ -61,7 +63,7 @@ class LegoInputManager : public MxPresenter {
void ProcessEvents(); void ProcessEvents();
MxBool ProcessOneEvent(LegoEventNotificationParam& p_param); MxBool ProcessOneEvent(LegoEventNotificationParam& p_param);
// private: private:
MxCriticalSection m_criticalSection; MxCriticalSection m_criticalSection;
MxList<undefined4>* m_unk0x5c; // list or hash table MxList<undefined4>* m_unk0x5c; // list or hash table
LegoCameraController* m_camera; LegoCameraController* m_camera;

View file

@ -1,15 +1,28 @@
#include "elevatorbottom.h" #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() ElevatorBottom::ElevatorBottom()
{ {
// TODO NotificationManager()->Register(this);
this->m_unk0xf8 = 0;
} }
// STUB: LEGO1 0x10018060 // FUNCTION: LEGO1 0x10018060
ElevatorBottom::~ElevatorBottom() ElevatorBottom::~ElevatorBottom()
{ {
// TODO if (InputManager()->GetWorld() == this) {
InputManager()->ClearWorld();
}
ControlManager()->Unregister(this);
NotificationManager()->Unregister(this);
} }
// STUB: LEGO1 0x10018150 // STUB: LEGO1 0x10018150

View file

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