mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-26 17:36:12 -05:00
a6f3acf5b7
* Squashed commit of the following: commit 1fe03a4a787693616c56f59622bcaae8fd53b30b Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 21:04:15 2023 -0700 data types commit 7c8432f88236c42c17998d51e820b5e219f3c326 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 12:39:13 2023 -0700 Destroy commit f60eb3923b24bc87bb31ba783676c6a50d48e9b8 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 12:15:33 2023 -0700 compile fix commit e2f78d557f223c2552a046470578d154c29e473b Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 13:37:33 2023 -0700 Timer functions commit 447e234e6324a5b0958e9e94c5cda53703abada2 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 02:40:10 2023 -0700 fix commit 4670fd790b16a15b5797d50bc3cd1f6e2c9e890d Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 02:39:04 2023 -0700 improvements commit 7f70bce1eefe550fe6bef193e7ee54948af354b6 Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 03:42:47 2023 -0700 Update legoinputmanager.cpp commit 0d3433a75d2b20a3fff1da8147ce502b279b1e9c Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 03:38:32 2023 -0700 Add ReleaseDX commit 72d27fd402efb37da1ce8c41a3350df66c99db1d Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 02:27:12 2023 -0700 Update CMakeLists.txt commit 09626a62f9d2c56a523ca582be95a4dfb29ee188 Author: ecumber <ecumber05@gmail.com> Date: Mon Jul 3 13:48:46 2023 -0700 Move to new branch * Squashed commit of the following: commit d9148242a322ec54750c89357a0db2154310907d Author: ecumber <ecumber05@gmail.com> Date: Sun Jul 16 23:56:54 2023 -0700 Update legoinputmanager.cpp commit 983d08650eb3df0b9103761b4023a6d3395686b2 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 21:04:15 2023 -0700 data types commit 4e8aac36ece6f3d7cfff39432ebc4e731876fb75 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 12:39:13 2023 -0700 Destroy commit 907801567a8c93ebd242b25b4aa2b00d38eaedc8 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 12:15:33 2023 -0700 compile fix commit 91a5f75e938d796f153cc872e46acef2c342818c Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 13:37:33 2023 -0700 Timer functions commit e77f08f5358b6cc4ee41583f70281c40b95bea29 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 02:40:10 2023 -0700 fix commit 30d204b7734a56b4140a3bf53c9825126a1f80c7 Author: ecumber <ecumber05@gmail.com> Date: Thu Jul 6 02:39:04 2023 -0700 improvements commit dd4ff493355796c41a6fb328fda1892c0f1fec0a Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 03:42:47 2023 -0700 Update legoinputmanager.cpp commit 852658cdbc0e6f792a6a79dfc77df3539ea4a15a Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 03:38:32 2023 -0700 Add ReleaseDX commit 430d4e100811bc00dc983a9fe78aa1482fb92f7f Author: ecumber <ecumber05@gmail.com> Date: Tue Jul 4 02:27:12 2023 -0700 Update CMakeLists.txt commit 6fb94f007613e920b1d64775b7b76cb721482884 Author: ecumber <ecumber05@gmail.com> Date: Mon Jul 3 13:48:46 2023 -0700 Move to new branch * Fixes * Remove obsolete stuff * Fixes --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
96 lines
2.2 KiB
C++
96 lines
2.2 KiB
C++
#include "mxtransitionmanager.h"
|
|
#include "legoutil.h"
|
|
#include "legovideomanager.h"
|
|
|
|
DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900);
|
|
|
|
// OFFSET: LEGO1 0x1004b8d0
|
|
MxTransitionManager::MxTransitionManager()
|
|
{
|
|
m_animationTimer = 0;
|
|
m_transitionType = NOT_TRANSITIONING;
|
|
m_ddSurface = NULL;
|
|
m_unk08 = 0;
|
|
m_unk1c = 0;
|
|
m_unk20.bit0 = FALSE;
|
|
m_unk28.bit0 = FALSE;
|
|
m_unk24 = 0;
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x1004ba00
|
|
MxTransitionManager::~MxTransitionManager()
|
|
{
|
|
free(m_unk1c);
|
|
|
|
if (m_unk08 != NULL) {
|
|
delete m_unk08->m_unk1c;
|
|
delete m_unk08;
|
|
}
|
|
|
|
TickleManager()->UnregisterClient(this);
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x1004bac0 STUB
|
|
MxResult MxTransitionManager::Tickle()
|
|
{
|
|
// TODO
|
|
|
|
return 0;
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x1004c470 STUB
|
|
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,
|
|
MxBool p_unk, MxBool p_playMusicInAnim)
|
|
{
|
|
if (this->m_transitionType == NOT_TRANSITIONING) {
|
|
if (!p_playMusicInAnim) {
|
|
MxBackgroundAudioManager *backgroundAudioManager = BackgroundAudioManager();
|
|
backgroundAudioManager->Stop();
|
|
}
|
|
|
|
this->m_transitionType = p_animationType;
|
|
|
|
m_unk20.bit0 = p_unk;
|
|
|
|
if (m_unk20.bit0 && m_unk08 != NULL) {
|
|
m_unk08->vtable54(1);
|
|
|
|
MxTransitionManagerUnknownSubclass2 *iVar2 = m_unk08->m_unk1c;
|
|
iVar2->m_unk3c = 10000;
|
|
iVar2->m_unk30 |= 0x200;
|
|
}
|
|
|
|
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_unk0x88 = TRUE;
|
|
inputManager->m_unk0x336 = FALSE;
|
|
|
|
LegoVideoManager *videoManager = VideoManager();
|
|
videoManager->SetUnkE4(FALSE);
|
|
|
|
SetAppCursor(1);
|
|
return SUCCESS;
|
|
}
|
|
return FAILURE;
|
|
}
|