mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-02-18 04:30:36 -05:00
implement/match MxTransitionManager::Transition_Broken() (#210)
This commit is contained in:
parent
0580b2870c
commit
0c8705a9df
1 changed files with 21 additions and 3 deletions
|
@ -347,17 +347,35 @@ void MxTransitionManager::Transition_Pixelation()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1004c270 STUB
|
// OFFSET: LEGO1 0x1004c270 STUB
|
||||||
void MxTransitionManager::Transition_Windows()
|
void MxTransitionManager::Transition_Windows()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1004c3e0 STUB
|
// OFFSET: LEGO1 0x1004c3e0
|
||||||
void MxTransitionManager::Transition_Broken()
|
void MxTransitionManager::Transition_Broken()
|
||||||
{
|
{
|
||||||
// TODO
|
// This function has no actual animation logic.
|
||||||
|
// It also never calls EndTransition to
|
||||||
|
// properly terminate the transition, so
|
||||||
|
// the game just hangs forever.
|
||||||
|
|
||||||
|
DDSURFACEDESC ddsd;
|
||||||
|
ZeroMemory(&ddsd, sizeof(ddsd));
|
||||||
|
ddsd.dwSize = sizeof(ddsd);
|
||||||
|
|
||||||
|
HRESULT res = m_ddSurface->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL);
|
||||||
|
if (res == DDERR_SURFACELOST) {
|
||||||
|
m_ddSurface->Restore();
|
||||||
|
res = m_ddSurface->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (res == DD_OK) {
|
||||||
|
SubmitCopyRect(&ddsd);
|
||||||
|
SetupCopyRect(&ddsd);
|
||||||
|
m_ddSurface->Unlock(ddsd.lpSurface);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1004c170
|
// OFFSET: LEGO1 0x1004c170
|
||||||
|
|
Loading…
Reference in a new issue