From 12c9027d741fe0ea2dd521544982cf9b831cfd85 Mon Sep 17 00:00:00 2001 From: Ramen2X <64166386+Ramen2X@users.noreply.github.com> Date: Fri, 29 Sep 2023 10:42:50 -0400 Subject: [PATCH] address feedback --- LEGO1/legoinputmanager.h | 10 ++--- LEGO1/legovideomanager.h | 3 ++ LEGO1/mxtransitionmanager.cpp | 67 +++++++++++++++++---------------- LEGO1/mxtransitionmanager.h | 71 +++++++++++++++++------------------ LEGO1/mxvideomanager.h | 3 -- 5 files changed, 76 insertions(+), 78 deletions(-) diff --git a/LEGO1/legoinputmanager.h b/LEGO1/legoinputmanager.h index 4f5bcaff..56b77445 100644 --- a/LEGO1/legoinputmanager.h +++ b/LEGO1/legoinputmanager.h @@ -31,11 +31,7 @@ class LegoInputManager : public MxPresenter undefined m_pad40[0x48]; MxBool m_unk88; - MxU8 m_unk89; - MxU8 m_unk8a; - MxU8 m_unk8b; - - undefined m_pad8c[0x110]; + undefined m_unk89[0x113]; // 0x19C int m_joystickIndex; @@ -45,9 +41,9 @@ class LegoInputManager : public MxPresenter // 0x334 MxBool m_useJoystick; - MxU8 m_unk335; + undefined m_unk335; MxBool m_unk336; - MxU8 m_unk337; + undefined m_unk337; }; #endif // LEGOINPUTMANAGER_H diff --git a/LEGO1/legovideomanager.h b/LEGO1/legovideomanager.h index 60f670fb..d71c39a1 100644 --- a/LEGO1/legovideomanager.h +++ b/LEGO1/legovideomanager.h @@ -23,6 +23,7 @@ class LegoVideoManager : public MxVideoManager inline MxDirect3D *GetDirect3D() { return this->m_direct3d; } void SetSkyColor(float r, float g, float b); + inline void SetUnkE4(MxBool p_value) { this->m_unke4 = p_value; } private: undefined4 m_unk64; @@ -30,6 +31,8 @@ class LegoVideoManager : public MxVideoManager undefined4 m_unk6c; undefined4 m_unk70; MxDirect3D *m_direct3d; + undefined m_pad78[0x6c]; + MxBool m_unke4; }; #endif // LEGOVIDEOMANAGER_H diff --git a/LEGO1/mxtransitionmanager.cpp b/LEGO1/mxtransitionmanager.cpp index bca3c9c5..ea295dda 100644 --- a/LEGO1/mxtransitionmanager.cpp +++ b/LEGO1/mxtransitionmanager.cpp @@ -1,4 +1,7 @@ #include "mxtransitionmanager.h" +#include "legovideomanager.h" + +DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900); // OFFSET: LEGO1 0x1004b8d0 STUB MxTransitionManager::MxTransitionManager() @@ -29,43 +32,43 @@ void MxTransitionManager::SetWaitIndicator(MxVideoPresenter *videoPresenter) // OFFSET: LEGO1 0x1004baa0 MxResult MxTransitionManager::GetDDrawSurfaceFromVideoManager() // vtable+0x14 { - LegoVideoManager *videoManager = VideoManager(); - this->m_ddSurface = videoManager->GetDisplaySurface()->GetDirectDrawSurface2(); - return SUCCESS; + LegoVideoManager *videoManager = VideoManager(); + this->m_ddSurface = videoManager->GetDisplaySurface()->GetDirectDrawSurface2(); + return SUCCESS; } // OFFSET: LEGO1 0x1004bb70 MxResult MxTransitionManager::StartTransition(TransitionType p_animationType, MxS32 p_speed, - MxU8 p_unk, MxBool p_playMusicInAnim) + undefined p_unk, MxBool p_playMusicInAnim) { - // TODO: Incomplete and far from matching + // TODO: Incomplete and far from matching - if (this->m_transitionType == NOT_TRANSITIONING) { - if (!p_playMusicInAnim) { - MxBackgroundAudioManager *backgroundAudioManager = BackgroundAudioManager(); - backgroundAudioManager->Stop(); - } - this->m_transitionType = p_animationType; - - // TODO: This part of the function is mangled and I can't make out what it's doing right now - - MxU32 time = timeGetTime(); - this->m_systemTime = time; - - this->m_animationSpeed = p_speed; - - MxTickleManager *tickleManager = TickleManager(); - tickleManager->RegisterClient(this, p_speed); - - LegoInputManager *inputManager = InputManager(); - inputManager->m_unk88 = TRUE; - inputManager->m_unk336 = FALSE; - - MxVideoManager *videoManager = VideoManager(); - videoManager->SetUnkE4(FALSE); - - SetAppCursor(1); - return SUCCESS; + if (this->m_transitionType == NOT_TRANSITIONING) { + if (!p_playMusicInAnim) { + MxBackgroundAudioManager *backgroundAudioManager = BackgroundAudioManager(); + backgroundAudioManager->Stop(); } - return FAILURE; + this->m_transitionType = p_animationType; + + // TODO: This part of the function is mangled and I can't make out what it's doing right now + + MxU32 time = timeGetTime(); + this->m_systemTime = time; + + this->m_animationSpeed = p_speed; + + MxTickleManager *tickleManager = TickleManager(); + tickleManager->RegisterClient(this, p_speed); + + LegoInputManager *inputManager = InputManager(); + inputManager->m_unk88 = TRUE; + inputManager->m_unk336 = FALSE; + + LegoVideoManager *videoManager = VideoManager(); + videoManager->SetUnkE4(FALSE); + + SetAppCursor(1); + return SUCCESS; + } + return FAILURE; } \ No newline at end of file diff --git a/LEGO1/mxtransitionmanager.h b/LEGO1/mxtransitionmanager.h index be720446..b424e3c2 100644 --- a/LEGO1/mxtransitionmanager.h +++ b/LEGO1/mxtransitionmanager.h @@ -3,7 +3,6 @@ #include "mxcore.h" #include "mxvideopresenter.h" -#include "legovideomanager.h" #include "legoomni.h" @@ -11,49 +10,49 @@ class MxTransitionManager : public MxCore { public: - MxTransitionManager(); - virtual ~MxTransitionManager() override; // vtable+0x0 + MxTransitionManager(); + virtual ~MxTransitionManager() override; // vtable+0x0 - __declspec(dllexport) void SetWaitIndicator(MxVideoPresenter *videoPresenter); + __declspec(dllexport) void SetWaitIndicator(MxVideoPresenter *videoPresenter); - virtual MxResult Tickle(); // vtable+0x8 + virtual MxResult Tickle(); // vtable+0x8 - // OFFSET: LEGO1 0x1004b950 - inline virtual const char *ClassName() const override // vtable+0x0c - { - return "MxTransitionManager"; - } + // OFFSET: LEGO1 0x1004b950 + inline virtual const char *ClassName() const override // vtable+0x0c + { + return "MxTransitionManager"; + } - // OFFSET: LEGO1 0x1004b960 - inline virtual MxBool IsA(const char *name) const override // vtable+0x10 - { - return !strcmp(name, MxTransitionManager::ClassName()) || MxCore::IsA(name); - } + // OFFSET: LEGO1 0x1004b960 + inline virtual MxBool IsA(const char *name) const override // vtable+0x10 + { + return !strcmp(name, MxTransitionManager::ClassName()) || MxCore::IsA(name); + } - virtual MxResult GetDDrawSurfaceFromVideoManager(); // vtable+0x14 + virtual MxResult GetDDrawSurfaceFromVideoManager(); // vtable+0x14 - enum TransitionType { - NOT_TRANSITIONING, - NO_ANIMATION, - DISSOLVE, - PIXELATION, - SCREEN_WIPE, - WINDOWS, - BROKEN // Unknown what this is supposed to be, it locks the game up - }; - - MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxU8 p_unk, MxBool p_playMusicInAnim); + enum TransitionType { + NOT_TRANSITIONING, + NO_ANIMATION, + DISSOLVE, + PIXELATION, + SCREEN_WIPE, + WINDOWS, + BROKEN // Unknown what this is supposed to be, it locks the game up + }; + + MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, undefined p_unk, MxBool p_playMusicInAnim); private: - undefined m_pad00[0x20]; - MxU8 m_unk20; - undefined m_pad21[0x03]; - TransitionType m_transitionType; - LPDIRECTDRAWSURFACE m_ddSurface; - MxU16 m_animationTimer; - undefined m_pad36[0x8c2]; - MxULong m_systemTime; - MxS32 m_animationSpeed; + undefined m_pad00[0x20]; + MxU8 m_unk20; + undefined m_pad21[0x03]; + TransitionType m_transitionType; + LPDIRECTDRAWSURFACE m_ddSurface; + MxU16 m_animationTimer; + undefined m_pad36[0x8c2]; + MxULong m_systemTime; + MxS32 m_animationSpeed; }; #endif // MXTRANSITIONMANAGER_H diff --git a/LEGO1/mxvideomanager.h b/LEGO1/mxvideomanager.h index c65203d2..7888f7e7 100644 --- a/LEGO1/mxvideomanager.h +++ b/LEGO1/mxvideomanager.h @@ -27,7 +27,6 @@ class MxVideoManager : public MxMediaManager inline MxVideoParam& GetVideoParam() { return this->m_videoParam; } inline LPDIRECTDRAW GetDirectDraw() { return this->m_pDirectDraw; } inline MxDisplaySurface *GetDisplaySurface() { return this->m_displaySurface; } - inline void SetUnkE4(MxBool p_value) { this->m_unke4 = p_value; } private: MxVideoParam m_videoParam; LPDIRECTDRAW m_pDirectDraw; @@ -35,8 +34,6 @@ class MxVideoManager : public MxMediaManager MxDisplaySurface *m_displaySurface; MxRegion *m_region; MxBool m_unk60; - undefined m_pad61[84]; - MxBool m_unke4; }; #endif // MXVIDEOMANAGER_H