mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-26 22:21:50 -04:00
Implement/match LegoVideoManager::Tickle (#409)
* Implement LegoVideoManager::Tickle * Match * Remove duplicate annotations * Add missing annotations * Rename list functions * Fix * Rename some symbols
This commit is contained in:
parent
27269647f8
commit
dac2a517c3
@ -63,3 +63,10 @@ void Lego3DManager::Destroy()
|
|||||||
delete m_viewLODListManager;
|
delete m_viewLODListManager;
|
||||||
m_viewLODListManager = NULL;
|
m_viewLODListManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0xx100ab4b0
|
||||||
|
double Lego3DManager::FUN_100ab4b0(double p_und)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
@ -27,6 +27,7 @@ public:
|
|||||||
virtual ~Lego3DManager();
|
virtual ~Lego3DManager();
|
||||||
|
|
||||||
BOOL Create(CreateStruct& p_createStruct);
|
BOOL Create(CreateStruct& p_createStruct);
|
||||||
|
double FUN_100ab4b0(double p_und);
|
||||||
|
|
||||||
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
||||||
inline ViewLODListManager* GetViewLODListManager() { return this->m_viewLODListManager; }
|
inline ViewLODListManager* GetViewLODListManager() { return this->m_viewLODListManager; }
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#include "legoomni.h"
|
#include "legoomni.h"
|
||||||
#include "legoroi.h"
|
#include "legoroi.h"
|
||||||
#include "mxtimer.h"
|
#include "mxtimer.h"
|
||||||
|
#include "mxtransitionmanager.h"
|
||||||
#include "realtime/matrix.h"
|
#include "realtime/matrix.h"
|
||||||
#include "viewmanager/viewroi.h"
|
#include "viewmanager/viewroi.h"
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ LegoVideoManager::LegoVideoManager()
|
|||||||
m_isFullscreenMovie = FALSE;
|
m_isFullscreenMovie = FALSE;
|
||||||
m_palette = NULL;
|
m_palette = NULL;
|
||||||
m_stopWatch = NULL;
|
m_stopWatch = NULL;
|
||||||
m_cursorMoved = FALSE;
|
m_drawCursor = FALSE;
|
||||||
m_cursorX = m_cursorY;
|
m_cursorX = m_cursorY;
|
||||||
m_cursorYCopy = m_cursorY;
|
m_cursorYCopy = m_cursorY;
|
||||||
m_cursorXCopy = m_cursorY;
|
m_cursorXCopy = m_cursorY;
|
||||||
@ -33,7 +34,7 @@ LegoVideoManager::LegoVideoManager()
|
|||||||
m_unk0x528 = 0;
|
m_unk0x528 = 0;
|
||||||
m_arialFont = NULL;
|
m_arialFont = NULL;
|
||||||
m_unk0xe5 = FALSE;
|
m_unk0xe5 = FALSE;
|
||||||
m_unk0x554 = 0;
|
m_unk0x554 = FALSE;
|
||||||
m_initialized = FALSE;
|
m_initialized = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,7 +215,7 @@ void LegoVideoManager::MoveCursor(MxS32 p_cursorX, MxS32 p_cursorY)
|
|||||||
{
|
{
|
||||||
m_cursorX = p_cursorX;
|
m_cursorX = p_cursorX;
|
||||||
m_cursorY = p_cursorY;
|
m_cursorY = p_cursorY;
|
||||||
m_cursorMoved = TRUE;
|
m_drawCursor = TRUE;
|
||||||
|
|
||||||
if (623 < p_cursorX)
|
if (623 < p_cursorX)
|
||||||
m_cursorX = 623;
|
m_cursorX = 623;
|
||||||
@ -223,11 +224,107 @@ void LegoVideoManager::MoveCursor(MxS32 p_cursorX, MxS32 p_cursorY)
|
|||||||
m_cursorY = 463;
|
m_cursorY = 463;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1007b770
|
inline void LegoVideoManager::DrawCursor()
|
||||||
|
{
|
||||||
|
if (m_cursorX != m_cursorXCopy || m_cursorY != m_cursorYCopy) {
|
||||||
|
if (m_cursorX >= 0 && m_cursorY >= 0) {
|
||||||
|
m_cursorXCopy = m_cursorX;
|
||||||
|
m_cursorYCopy = m_cursorY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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_unk0x514)
|
||||||
|
m_drawCursor = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
ddSurface2->BltFast(m_cursorXCopy, m_cursorYCopy, m_unk0x514, &m_unk0x518, DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1007b770
|
||||||
MxResult LegoVideoManager::Tickle()
|
MxResult LegoVideoManager::Tickle()
|
||||||
|
{
|
||||||
|
if (m_unk0x554 && !m_videoParam.Flags().GetFlipSurfaces() &&
|
||||||
|
TransitionManager()->GetTransitionType() == MxTransitionManager::NOT_TRANSITIONING)
|
||||||
|
Sleep(30);
|
||||||
|
|
||||||
|
m_stopWatch->Stop();
|
||||||
|
m_elapsedSeconds = m_stopWatch->ElapsedSeconds();
|
||||||
|
m_stopWatch->Reset();
|
||||||
|
m_stopWatch->Start();
|
||||||
|
|
||||||
|
m_direct3d->RestoreSurfaces();
|
||||||
|
|
||||||
|
SortPresenterList();
|
||||||
|
|
||||||
|
MxPresenter* presenter;
|
||||||
|
MxPresenterListCursor cursor(m_presenters);
|
||||||
|
|
||||||
|
while (cursor.Next(presenter))
|
||||||
|
presenter->Tickle();
|
||||||
|
|
||||||
|
if (m_unk0xe4 && !m_initialized)
|
||||||
|
m_3dManager->GetLego3DView()->GetView()->Clear();
|
||||||
|
|
||||||
|
MxRect32 rect(0, 0, m_videoParam.GetRect().GetWidth() - 1, m_videoParam.GetRect().GetHeight() - 1);
|
||||||
|
InvalidateRect(rect);
|
||||||
|
|
||||||
|
if (!m_initialized && (m_unk0xe4 || m_unk0xe5)) {
|
||||||
|
cursor.Reset();
|
||||||
|
|
||||||
|
while (cursor.Next(presenter) && presenter->GetDisplayZ() >= 0)
|
||||||
|
presenter->PutData();
|
||||||
|
|
||||||
|
if (!m_unk0xe5) {
|
||||||
|
m_3dManager->FUN_100ab4b0(0.0);
|
||||||
|
m_3dManager->GetLego3DView()->GetDevice()->Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor.Prev();
|
||||||
|
|
||||||
|
while (cursor.Next(presenter))
|
||||||
|
presenter->PutData();
|
||||||
|
|
||||||
|
if (m_drawCursor)
|
||||||
|
DrawCursor();
|
||||||
|
|
||||||
|
if (m_drawFPS)
|
||||||
|
DrawFPS();
|
||||||
|
}
|
||||||
|
else if (m_unk0x500) {
|
||||||
|
MxPresenter* presenter;
|
||||||
|
MxPresenterListCursor cursor(m_presenters);
|
||||||
|
|
||||||
|
if (cursor.Last(presenter))
|
||||||
|
presenter->PutData();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!m_initialized) {
|
||||||
|
if (m_unk0xe4 && m_videoParam.Flags().GetFlipSurfaces()) {
|
||||||
|
m_3dManager->GetLego3DView()
|
||||||
|
->GetView()
|
||||||
|
->ForceUpdate(0, 0, m_videoParam.GetRect().GetWidth(), m_videoParam.GetRect().GetHeight());
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateRegion();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_region->Reset();
|
||||||
|
return SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x1007bbc0
|
||||||
|
void LegoVideoManager::DrawFPS()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
return MxVideoManager::Tickle();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1007c080
|
// STUB: LEGO1 0x1007c080
|
||||||
|
@ -43,40 +43,46 @@ public:
|
|||||||
private:
|
private:
|
||||||
MxResult CreateDirect3D();
|
MxResult CreateDirect3D();
|
||||||
MxResult ConfigureD3DRM();
|
MxResult ConfigureD3DRM();
|
||||||
|
void DrawFPS();
|
||||||
|
|
||||||
Tgl::Renderer* m_renderer;
|
inline void DrawCursor();
|
||||||
Lego3DManager* m_3dManager; // 0x68
|
|
||||||
LegoROI* m_viewROI; // 0x6c
|
Tgl::Renderer* m_renderer; // 0x64
|
||||||
undefined4 m_unk0x70;
|
Lego3DManager* m_3dManager; // 0x68
|
||||||
MxDirect3D* m_direct3d; // 0x74
|
LegoROI* m_viewROI; // 0x6c
|
||||||
undefined4 m_unk0x78[27];
|
undefined4 m_unk0x70; // 0x70
|
||||||
MxBool m_unk0xe4;
|
MxDirect3D* m_direct3d; // 0x74
|
||||||
MxBool m_unk0xe5;
|
undefined4 m_unk0x78[27]; // 0x78
|
||||||
MxBool m_unk0xe6;
|
MxBool m_unk0xe4; // 0xe4
|
||||||
|
MxBool m_unk0xe5; // 0xe5
|
||||||
|
MxBool m_unk0xe6; // 0xe6
|
||||||
PALETTEENTRY m_paletteEntries[256]; // 0xe7
|
PALETTEENTRY m_paletteEntries[256]; // 0xe7
|
||||||
undefined m_padding0x4e7;
|
undefined m_padding0x4e7; // 0x4e7
|
||||||
MxUnknown100d9d00* m_unk0x100d9d00; // 0x4e8
|
MxUnknown100d9d00* m_unk0x100d9d00; // 0x4e8
|
||||||
MxBool m_isFullscreenMovie; // 0x4ec
|
MxBool m_isFullscreenMovie; // 0x4ec
|
||||||
MxPalette* m_palette; // 0x4f0
|
MxPalette* m_palette; // 0x4f0
|
||||||
MxStopWatch* m_stopWatch; // 0x4f4
|
MxStopWatch* m_stopWatch; // 0x4f4
|
||||||
undefined m_padding0x4f4[8];
|
double m_elapsedSeconds; // 0x4f8
|
||||||
MxBool m_unk0x500;
|
MxBool m_unk0x500; // 0x500
|
||||||
MxBool m_cursorMoved; // 0x501
|
MxBool m_drawCursor; // 0x501
|
||||||
MxS32 m_cursorXCopy; // 0x504
|
MxS32 m_cursorXCopy; // 0x504
|
||||||
MxS32 m_cursorYCopy; // 0x508
|
MxS32 m_cursorYCopy; // 0x508
|
||||||
MxS32 m_cursorX; // 0x50c
|
MxS32 m_cursorX; // 0x50c
|
||||||
MxS32 m_cursorY; // 0x510
|
MxS32 m_cursorY; // 0x510
|
||||||
undefined4 m_unk0x514;
|
LPDIRECTDRAWSURFACE m_unk0x514; // 0x514
|
||||||
undefined m_pad0x518[0x10];
|
RECT m_unk0x518; // 0x518
|
||||||
undefined4 m_unk0x528;
|
undefined4 m_unk0x528; // 0x528
|
||||||
MxBool m_drawFPS; // 0x52c
|
MxBool m_drawFPS; // 0x52c
|
||||||
RECT m_fpsRect; // 0x530
|
RECT m_fpsRect; // 0x530
|
||||||
HFONT m_arialFont; // 0x540
|
HFONT m_arialFont; // 0x540
|
||||||
SIZE m_fpsSize; // 0x544
|
SIZE m_fpsSize; // 0x544
|
||||||
undefined m_pad0x54c[8];
|
undefined m_pad0x54c[8]; // 0x54c
|
||||||
undefined m_unk0x554;
|
MxBool m_unk0x554; // 0x554
|
||||||
MxBool m_initialized; // 0x555
|
MxBool m_initialized; // 0x555
|
||||||
undefined m_pad0x556[0x39];
|
undefined m_pad0x556[0x39]; // 0x556
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1007ab20
|
||||||
|
// LegoVideoManager::`scalar deleting destructor'
|
||||||
|
|
||||||
#endif // LEGOVIDEOMANAGER_H
|
#endif // LEGOVIDEOMANAGER_H
|
||||||
|
@ -84,4 +84,7 @@ protected:
|
|||||||
// FUNCTION: LEGO1 0x1001f0c0
|
// FUNCTION: LEGO1 0x1001f0c0
|
||||||
// MxPresenterListCursor::~MxPresenterListCursor
|
// MxPresenterListCursor::~MxPresenterListCursor
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10020760
|
||||||
|
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
||||||
|
|
||||||
#endif // LEGOWORLD_H
|
#endif // LEGOWORLD_H
|
||||||
|
@ -39,6 +39,55 @@ public:
|
|||||||
void* m_unk0x178; // 0x178
|
void* m_unk0x178; // 0x178
|
||||||
};
|
};
|
||||||
|
|
||||||
|
__declspec(dllexport) int FlipToGDISurface();
|
||||||
|
__declspec(dllexport) static int GetPrimaryBitDepth();
|
||||||
|
__declspec(dllexport) int Pause(int);
|
||||||
|
|
||||||
|
MxDirectDraw();
|
||||||
|
virtual ~MxDirectDraw();
|
||||||
|
|
||||||
|
virtual BOOL Create(
|
||||||
|
HWND hWnd,
|
||||||
|
BOOL fullscreen_1,
|
||||||
|
BOOL surface_fullscreen,
|
||||||
|
BOOL onlySystemMemory,
|
||||||
|
int width,
|
||||||
|
int height,
|
||||||
|
int bpp,
|
||||||
|
const PALETTEENTRY* pPaletteEntries,
|
||||||
|
int paletteEntryCount
|
||||||
|
); // vtable+0x04
|
||||||
|
virtual void Destroy(); // vtable+0x08
|
||||||
|
virtual void DestroyButNotDirectDraw(); // vtable+0x0c
|
||||||
|
virtual const char* ErrorToString(HRESULT p_error); // vtable+0x10
|
||||||
|
|
||||||
|
BOOL CacheOriginalPaletteEntries();
|
||||||
|
HRESULT CreateDDSurface(LPDDSURFACEDESC a2, LPDIRECTDRAWSURFACE* a3, IUnknown* a4);
|
||||||
|
BOOL CreateTextSurfaces();
|
||||||
|
BOOL CreateZBuffer(DWORD memorytype, DWORD depth);
|
||||||
|
BOOL DDCreateSurfaces();
|
||||||
|
BOOL DDInit(BOOL fullscreen);
|
||||||
|
BOOL DDSetMode(int width, int height, int bpp);
|
||||||
|
void Error(const char* p_message, MxS32 p_error);
|
||||||
|
|
||||||
|
BOOL GetDDSurfaceDesc(LPDDSURFACEDESC lpDDSurfDesc, LPDIRECTDRAWSURFACE lpDDSurf);
|
||||||
|
BOOL IsSupportedMode(int width, int height, int bpp);
|
||||||
|
BOOL RecreateDirectDraw(GUID** a2);
|
||||||
|
BOOL RestoreOriginalPaletteEntries();
|
||||||
|
BOOL RestorePaletteEntries();
|
||||||
|
BOOL RestoreSurfaces();
|
||||||
|
BOOL SetPaletteEntries(const PALETTEENTRY* pPaletteEntries, int paletteEntryCount, BOOL fullscreen);
|
||||||
|
BOOL TextToTextSurface(const char* text, IDirectDrawSurface* pSurface, SIZE& textSizeOnSurface);
|
||||||
|
BOOL TextToTextSurface1(const char* text);
|
||||||
|
BOOL TextToTextSurface2(const char* lpString);
|
||||||
|
void FUN_1009e020();
|
||||||
|
void FUN_1009d920();
|
||||||
|
|
||||||
|
inline IDirectDraw* GetDirectDraw() { return m_pDirectDraw; }
|
||||||
|
inline IDirectDrawSurface* GetFrontBuffer() { return m_pFrontBuffer; }
|
||||||
|
inline IDirectDrawSurface* GetBackBuffer() { return m_pBackBuffer; }
|
||||||
|
inline IDirectDrawClipper* GetClipper() { return m_pClipper; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BOOL m_bOnlySoftRender; // 0x04
|
BOOL m_bOnlySoftRender; // 0x04
|
||||||
BOOL m_bFlipSurfaces; // 0x08
|
BOOL m_bFlipSurfaces; // 0x08
|
||||||
@ -69,57 +118,6 @@ protected:
|
|||||||
int m_pauseCount; // 0x86c
|
int m_pauseCount; // 0x86c
|
||||||
DeviceModesInfo* m_pCurrentDeviceModesList; // 0x870
|
DeviceModesInfo* m_pCurrentDeviceModesList; // 0x870
|
||||||
Mode m_currentMode; // 0x874
|
Mode m_currentMode; // 0x874
|
||||||
|
|
||||||
public:
|
|
||||||
__declspec(dllexport) int FlipToGDISurface();
|
|
||||||
__declspec(dllexport) static int GetPrimaryBitDepth();
|
|
||||||
__declspec(dllexport) int Pause(int);
|
|
||||||
|
|
||||||
MxDirectDraw();
|
|
||||||
virtual ~MxDirectDraw();
|
|
||||||
|
|
||||||
virtual BOOL Create(
|
|
||||||
HWND hWnd,
|
|
||||||
BOOL fullscreen_1,
|
|
||||||
BOOL surface_fullscreen,
|
|
||||||
BOOL onlySystemMemory,
|
|
||||||
int width,
|
|
||||||
int height,
|
|
||||||
int bpp,
|
|
||||||
const PALETTEENTRY* pPaletteEntries,
|
|
||||||
int paletteEntryCount
|
|
||||||
); // vtable+0x04
|
|
||||||
virtual void Destroy(); // vtable+0x08
|
|
||||||
virtual void DestroyButNotDirectDraw(); // vtable+0x0c
|
|
||||||
virtual const char* ErrorToString(HRESULT p_error); // vtable+0x10
|
|
||||||
|
|
||||||
inline IDirectDraw* GetDirectDraw() { return m_pDirectDraw; }
|
|
||||||
inline IDirectDrawSurface* GetFrontBuffer() { return m_pFrontBuffer; }
|
|
||||||
inline IDirectDrawSurface* GetBackBuffer() { return m_pBackBuffer; }
|
|
||||||
inline IDirectDrawClipper* GetClipper() { return m_pClipper; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
BOOL CacheOriginalPaletteEntries();
|
|
||||||
HRESULT CreateDDSurface(LPDDSURFACEDESC a2, LPDIRECTDRAWSURFACE* a3, IUnknown* a4);
|
|
||||||
BOOL CreateTextSurfaces();
|
|
||||||
BOOL CreateZBuffer(DWORD memorytype, DWORD depth);
|
|
||||||
BOOL DDCreateSurfaces();
|
|
||||||
BOOL DDInit(BOOL fullscreen);
|
|
||||||
BOOL DDSetMode(int width, int height, int bpp);
|
|
||||||
void Error(const char* p_message, MxS32 p_error);
|
|
||||||
|
|
||||||
BOOL GetDDSurfaceDesc(LPDDSURFACEDESC lpDDSurfDesc, LPDIRECTDRAWSURFACE lpDDSurf);
|
|
||||||
BOOL IsSupportedMode(int width, int height, int bpp);
|
|
||||||
BOOL RecreateDirectDraw(GUID** a2);
|
|
||||||
BOOL RestoreOriginalPaletteEntries();
|
|
||||||
BOOL RestorePaletteEntries();
|
|
||||||
BOOL RestoreSurfaces();
|
|
||||||
BOOL SetPaletteEntries(const PALETTEENTRY* pPaletteEntries, int paletteEntryCount, BOOL fullscreen);
|
|
||||||
BOOL TextToTextSurface(const char* text, IDirectDrawSurface* pSurface, SIZE& textSizeOnSurface);
|
|
||||||
BOOL TextToTextSurface1(const char* text);
|
|
||||||
BOOL TextToTextSurface2(const char* lpString);
|
|
||||||
void FUN_1009e020();
|
|
||||||
void FUN_1009d920();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDIRECTDRAW_H
|
#endif // MXDIRECTDRAW_H
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
// NOTE: MxStopWatch measures elapsed (wall clock) time.
|
// NOTE: MxStopWatch measures elapsed (wall clock) time.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#define HUGE_VAL_IMMEDIATE 1.7976931348623157e+308
|
||||||
|
|
||||||
class MxStopWatch {
|
class MxStopWatch {
|
||||||
public:
|
public:
|
||||||
MxStopWatch();
|
MxStopWatch();
|
||||||
@ -54,7 +56,7 @@ inline void MxStopWatch::Stop()
|
|||||||
|
|
||||||
if (endTick.HighPart != m_startTick.HighPart) {
|
if (endTick.HighPart != m_startTick.HighPart) {
|
||||||
// LARGE_INTEGER arithmetic not yet provided
|
// LARGE_INTEGER arithmetic not yet provided
|
||||||
m_elapsedSeconds = HUGE_VAL;
|
m_elapsedSeconds = HUGE_VAL_IMMEDIATE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_elapsedSeconds += ((endTick.LowPart - m_startTick.LowPart) / (double) m_ticksPerSeconds);
|
m_elapsedSeconds += ((endTick.LowPart - m_startTick.LowPart) / (double) m_ticksPerSeconds);
|
||||||
|
@ -569,6 +569,12 @@ LPDIRECTDRAWSURFACE MxDisplaySurface::VTable0x44(MxBitmap*, undefined4*, undefin
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x100bc070
|
||||||
|
LPDIRECTDRAWSURFACE MxDisplaySurface::FUN_100bc070()
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100bc200
|
// STUB: LEGO1 0x100bc200
|
||||||
void MxDisplaySurface::VTable0x24(
|
void MxDisplaySurface::VTable0x24(
|
||||||
LPDDSURFACEDESC,
|
LPDDSURFACEDESC,
|
||||||
|
@ -86,6 +86,7 @@ public:
|
|||||||
virtual LPDIRECTDRAWSURFACE VTable0x44(MxBitmap*, undefined4*, undefined4, undefined4); // vtable+0x44
|
virtual LPDIRECTDRAWSURFACE VTable0x44(MxBitmap*, undefined4*, undefined4, undefined4); // vtable+0x44
|
||||||
|
|
||||||
void FUN_100ba640();
|
void FUN_100ba640();
|
||||||
|
static LPDIRECTDRAWSURFACE FUN_100bc070();
|
||||||
|
|
||||||
inline LPDIRECTDRAWSURFACE GetDirectDrawSurface1() { return this->m_ddSurface1; }
|
inline LPDIRECTDRAWSURFACE GetDirectDrawSurface1() { return this->m_ddSurface1; }
|
||||||
inline LPDIRECTDRAWSURFACE GetDirectDrawSurface2() { return this->m_ddSurface2; }
|
inline LPDIRECTDRAWSURFACE GetDirectDrawSurface2() { return this->m_ddSurface2; }
|
||||||
|
@ -91,12 +91,13 @@ public:
|
|||||||
MxBool Find(T p_obj);
|
MxBool Find(T p_obj);
|
||||||
void Detach();
|
void Detach();
|
||||||
void Destroy();
|
void Destroy();
|
||||||
|
MxBool Next();
|
||||||
MxBool Next(T& p_obj);
|
MxBool Next(T& p_obj);
|
||||||
|
MxBool Prev();
|
||||||
MxBool Prev(T& p_obj);
|
MxBool Prev(T& p_obj);
|
||||||
MxBool Current(T& p_obj);
|
MxBool Current(T& p_obj);
|
||||||
MxBool First(T& p_obj);
|
MxBool First(T& p_obj);
|
||||||
MxBool Last(T& p_obj);
|
MxBool Last(T& p_obj);
|
||||||
MxBool Advance();
|
|
||||||
MxBool HasMatch() { return m_match != NULL; }
|
MxBool HasMatch() { return m_match != NULL; }
|
||||||
void SetValue(T p_obj);
|
void SetValue(T p_obj);
|
||||||
MxBool Head()
|
MxBool Head()
|
||||||
@ -222,6 +223,17 @@ inline void MxListCursor<T>::Destroy()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline MxBool MxListCursor<T>::Next()
|
||||||
|
{
|
||||||
|
if (!m_match)
|
||||||
|
m_match = m_list->m_first;
|
||||||
|
else
|
||||||
|
m_match = m_match->GetNext();
|
||||||
|
|
||||||
|
return m_match != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
inline MxBool MxListCursor<T>::Next(T& p_obj)
|
inline MxBool MxListCursor<T>::Next(T& p_obj)
|
||||||
{
|
{
|
||||||
@ -236,6 +248,17 @@ inline MxBool MxListCursor<T>::Next(T& p_obj)
|
|||||||
return m_match != NULL;
|
return m_match != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline MxBool MxListCursor<T>::Prev()
|
||||||
|
{
|
||||||
|
if (!m_match)
|
||||||
|
m_match = m_list->m_last;
|
||||||
|
else
|
||||||
|
m_match = m_match->GetPrev();
|
||||||
|
|
||||||
|
return m_match != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
inline MxBool MxListCursor<T>::Prev(T& p_obj)
|
inline MxBool MxListCursor<T>::Prev(T& p_obj)
|
||||||
{
|
{
|
||||||
@ -279,17 +302,6 @@ inline MxBool MxListCursor<T>::Last(T& p_obj)
|
|||||||
return m_match != NULL;
|
return m_match != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
|
||||||
inline MxBool MxListCursor<T>::Advance()
|
|
||||||
{
|
|
||||||
if (!m_match)
|
|
||||||
m_match = m_list->m_first;
|
|
||||||
else
|
|
||||||
m_match = m_match->GetNext();
|
|
||||||
|
|
||||||
return m_match != NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
inline void MxListCursor<T>::SetValue(T p_obj)
|
inline void MxListCursor<T>::SetValue(T p_obj)
|
||||||
{
|
{
|
||||||
|
@ -99,7 +99,7 @@ void MxLoopingSmkPresenter::RepeatingTickle()
|
|||||||
while (cursor.Next(chunk))
|
while (cursor.Next(chunk))
|
||||||
chunk->SetTime(chunk->GetTime() + time);
|
chunk->SetTime(chunk->GetTime() + time);
|
||||||
|
|
||||||
m_cursor->Advance();
|
m_cursor->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
MxStreamChunk* chunk;
|
MxStreamChunk* chunk;
|
||||||
|
@ -146,7 +146,7 @@ void MxRegionTopBottom::FUN_100c5280(MxS32 p_left, MxS32 p_right)
|
|||||||
p_right = leftRight->GetRight();
|
p_right = leftRight->GetRight();
|
||||||
|
|
||||||
b = a;
|
b = a;
|
||||||
b.Advance();
|
b.Next();
|
||||||
a.Destroy();
|
a.Destroy();
|
||||||
|
|
||||||
if (!b.Current(leftRight))
|
if (!b.Current(leftRight))
|
||||||
|
@ -43,6 +43,8 @@ public:
|
|||||||
|
|
||||||
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_doCopy, MxBool p_playMusicInAnim);
|
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_doCopy, MxBool p_playMusicInAnim);
|
||||||
|
|
||||||
|
inline TransitionType GetTransitionType() { return m_transitionType; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void EndTransition(MxBool p_notifyWorld);
|
void EndTransition(MxBool p_notifyWorld);
|
||||||
void TransitionNone();
|
void TransitionNone();
|
||||||
@ -55,21 +57,19 @@ private:
|
|||||||
void SubmitCopyRect(LPDDSURFACEDESC p_ddsc);
|
void SubmitCopyRect(LPDDSURFACEDESC p_ddsc);
|
||||||
void SetupCopyRect(LPDDSURFACEDESC p_ddsc);
|
void SetupCopyRect(LPDDSURFACEDESC p_ddsc);
|
||||||
|
|
||||||
MxVideoPresenter* m_waitIndicator;
|
MxVideoPresenter* m_waitIndicator; // 0x08
|
||||||
RECT m_copyRect;
|
RECT m_copyRect; // 0x0c
|
||||||
MxU8* m_copyBuffer;
|
MxU8* m_copyBuffer; // 0x1c
|
||||||
|
FlagBitfield m_copyFlags; // 0x20
|
||||||
FlagBitfield m_copyFlags;
|
undefined4 m_unk0x24; // 0x24
|
||||||
undefined4 m_unk0x24;
|
FlagBitfield m_unk0x28; // 0x28
|
||||||
FlagBitfield m_unk0x28;
|
TransitionType m_transitionType; // 0x2c
|
||||||
|
LPDIRECTDRAWSURFACE m_ddSurface; // 0x30
|
||||||
TransitionType m_transitionType;
|
MxU16 m_animationTimer; // 0x34
|
||||||
LPDIRECTDRAWSURFACE m_ddSurface;
|
MxU16 m_columnOrder[640]; // 0x36
|
||||||
MxU16 m_animationTimer;
|
MxU16 m_randomShift[480]; // 0x536
|
||||||
MxU16 m_columnOrder[640]; // 0x36
|
MxULong m_systemTime; // 0x8f8
|
||||||
MxU16 m_randomShift[480]; // 0x536
|
MxS32 m_animationSpeed; // 0x8fc
|
||||||
MxULong m_systemTime; // 0x8f8
|
|
||||||
MxS32 m_animationSpeed; // 0x8fc
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXTRANSITIONMANAGER_H
|
#endif // MXTRANSITIONMANAGER_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user