Implement MxDisplaySurface::CreateCursorSurface (#471)

* Update mxdisplaysurface.cpp

* Fixes

* Update legovideomanager.cpp

* Match to 100%

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2024-01-20 16:12:35 -05:00
committed by GitHub
parent 67fa5e7cca
commit 93012b62f4
4 changed files with 85 additions and 14 deletions

View File

@@ -30,7 +30,7 @@ LegoVideoManager::LegoVideoManager()
m_cursorX = m_cursorY;
m_cursorYCopy = m_cursorY;
m_cursorXCopy = m_cursorY;
m_unk0x514 = NULL;
m_cursorSurface = NULL;
m_fullScreenMovie = FALSE;
m_drawFPS = FALSE;
m_unk0x528 = 0;
@@ -309,18 +309,19 @@ inline void LegoVideoManager::DrawCursor()
LPDIRECTDRAWSURFACE ddSurface2 = m_displaySurface->GetDirectDrawSurface2();
if (!m_unk0x514) {
m_unk0x518.top = 0;
m_unk0x518.left = 0;
m_unk0x518.bottom = 16;
m_unk0x518.right = 16;
m_unk0x514 = MxDisplaySurface::FUN_100bc070();
if (!m_cursorSurface) {
m_cursorRect.top = 0;
m_cursorRect.left = 0;
m_cursorRect.bottom = 16;
m_cursorRect.right = 16;
m_cursorSurface = MxDisplaySurface::CreateCursorSurface();
if (!m_unk0x514)
if (!m_cursorSurface)
m_drawCursor = FALSE;
}
ddSurface2->BltFast(m_cursorXCopy, m_cursorYCopy, m_unk0x514, &m_unk0x518, DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY);
ddSurface2
->BltFast(m_cursorXCopy, m_cursorYCopy, m_cursorSurface, &m_cursorRect, DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY);
}
// STUB: LEGO1 0x1007bbc0