mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
implement some of MxTransitionManager (#143)
* implement some of MxTransitionManager start working on MxTransitionManager::StartTransition add TransitionType enum implement/match MxTransitionManager::GetDDrawSurfaceFromVideoManager implement/match global function SetAppCursor * remove offset comment from mxomni.h * remove misc offset comments from mxtransitionmanager.h * address feedback * merge m_unk20-24 into pad
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
#include "mxtransitionmanager.h"
|
||||
#include "legovideomanager.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900);
|
||||
|
||||
// OFFSET: LEGO1 0x1004b8d0 STUB
|
||||
MxTransitionManager::MxTransitionManager()
|
||||
@@ -25,3 +28,47 @@ void MxTransitionManager::SetWaitIndicator(MxVideoPresenter *videoPresenter)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1004baa0
|
||||
MxResult MxTransitionManager::GetDDrawSurfaceFromVideoManager() // vtable+0x14
|
||||
{
|
||||
LegoVideoManager *videoManager = VideoManager();
|
||||
this->m_ddSurface = videoManager->GetDisplaySurface()->GetDirectDrawSurface2();
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1004bb70
|
||||
MxResult MxTransitionManager::StartTransition(TransitionType p_animationType, MxS32 p_speed,
|
||||
undefined p_unk, MxBool p_playMusicInAnim)
|
||||
{
|
||||
// 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;
|
||||
|
||||
LegoVideoManager *videoManager = VideoManager();
|
||||
videoManager->SetUnkE4(FALSE);
|
||||
|
||||
SetAppCursor(1);
|
||||
return SUCCESS;
|
||||
}
|
||||
return FAILURE;
|
||||
}
|
Reference in New Issue
Block a user