mirror of
https://github.com/isledecomp/isle.git
synced 2026-02-03 13:41:15 +00:00
More fixes
This commit is contained in:
parent
78c37ada37
commit
13b5d95512
@ -3,7 +3,7 @@
|
|||||||
DECOMP_SIZE_ASSERT(MxAudioManager, 0x30);
|
DECOMP_SIZE_ASSERT(MxAudioManager, 0x30);
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10102108
|
// GLOBAL: LEGO1 0x10102108
|
||||||
MxS32 MxAudioManager::g_count = 0;
|
MxS32 MxAudioManager::s_count = 0;
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10029910
|
// FUNCTION: LEGO1 0x10029910
|
||||||
MxS32 MxAudioManager::GetVolume()
|
MxS32 MxAudioManager::GetVolume()
|
||||||
@ -33,7 +33,7 @@ void MxAudioManager::Init()
|
|||||||
void MxAudioManager::Destroy(MxBool p_fromDestructor)
|
void MxAudioManager::Destroy(MxBool p_fromDestructor)
|
||||||
{
|
{
|
||||||
this->m_criticalSection.Enter();
|
this->m_criticalSection.Enter();
|
||||||
g_count--;
|
s_count--;
|
||||||
Init();
|
Init();
|
||||||
this->m_criticalSection.Leave();
|
this->m_criticalSection.Leave();
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ MxResult MxAudioManager::InitPresenters()
|
|||||||
this->m_criticalSection.Enter();
|
this->m_criticalSection.Enter();
|
||||||
success = TRUE;
|
success = TRUE;
|
||||||
result = SUCCESS;
|
result = SUCCESS;
|
||||||
g_count++;
|
s_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
|
|||||||
@ -18,7 +18,7 @@ class MxAudioManager : public MxMediaManager {
|
|||||||
private:
|
private:
|
||||||
void Destroy(MxBool p_fromDestructor);
|
void Destroy(MxBool p_fromDestructor);
|
||||||
|
|
||||||
static MxS32 g_count;
|
static MxS32 s_count;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void Init();
|
void Init();
|
||||||
|
|||||||
@ -378,8 +378,8 @@ MxResult MxBitmap::ImportColorsToPalette(RGBQUAD* p_rgbquad, MxPalette* p_palett
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
MxPalette local_pal;
|
MxPalette palette;
|
||||||
if (local_pal.GetEntries(entries))
|
if (palette.GetEntries(entries))
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ BOOL MxDirect3D::Create(
|
|||||||
success = TRUE;
|
success = TRUE;
|
||||||
|
|
||||||
if (!success)
|
if (!success)
|
||||||
FUN_1009D920();
|
FUN_1009d920();
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
@ -164,10 +164,10 @@ void MxDirect3D::BuildErrorString(const char* p_format, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009c6c0
|
// FUNCTION: LEGO1 0x1009c6c0
|
||||||
MxResult MxDeviceEnumerate::_DoEnumerate()
|
MxResult MxDeviceEnumerate::DoEnumerate()
|
||||||
{
|
{
|
||||||
// TODO: what does ECX refer to in this context?
|
// TODO: what does ECX refer to in this context?
|
||||||
if (m_unk0x010_flag)
|
if (m_unk0x010)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
HRESULT ret = DirectDrawEnumerate(EnumerateCallback, this);
|
HRESULT ret = DirectDrawEnumerate(EnumerateCallback, this);
|
||||||
@ -176,7 +176,7 @@ MxResult MxDeviceEnumerate::_DoEnumerate()
|
|||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_unk0x010_flag = TRUE;
|
m_unk0x010 = TRUE;
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,8 @@ class MxDeviceModeFinder {
|
|||||||
class MxDeviceEnumerate {
|
class MxDeviceEnumerate {
|
||||||
public:
|
public:
|
||||||
MxDeviceEnumerate();
|
MxDeviceEnumerate();
|
||||||
virtual MxResult _DoEnumerate();
|
virtual MxResult DoEnumerate();
|
||||||
|
|
||||||
BOOL FUN_1009c070();
|
BOOL FUN_1009c070();
|
||||||
|
|
||||||
const char* EnumerateErrorToString(HRESULT p_error);
|
const char* EnumerateErrorToString(HRESULT p_error);
|
||||||
@ -31,9 +32,9 @@ class MxDeviceEnumerate {
|
|||||||
undefined4 m_unk0x004;
|
undefined4 m_unk0x004;
|
||||||
undefined4 m_unk0x008;
|
undefined4 m_unk0x008;
|
||||||
undefined4 m_unk0x00c;
|
undefined4 m_unk0x00c;
|
||||||
MxBool m_unk0x010_flag; // +0x10
|
MxBool m_unk0x010; // +0x10
|
||||||
|
|
||||||
undefined4 m_unk0xnown[97];
|
undefined4 m_unk0x014[97];
|
||||||
};
|
};
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100db800
|
// VTABLE: LEGO1 0x100db800
|
||||||
|
|||||||
@ -10,7 +10,7 @@ DECOMP_SIZE_ASSERT(MxDirectDraw::DeviceModesInfo, 0x17c);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10100c68
|
// GLOBAL: LEGO1 0x10100c68
|
||||||
BOOL g_is_PALETTEINDEXED8 = 0;
|
BOOL g_isPaletteIndexed8 = 0;
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009d490
|
// FUNCTION: LEGO1 0x1009d490
|
||||||
MxDirectDraw::MxDirectDraw()
|
MxDirectDraw::MxDirectDraw()
|
||||||
@ -24,7 +24,7 @@ MxDirectDraw::MxDirectDraw()
|
|||||||
m_pText1Surface = NULL;
|
m_pText1Surface = NULL;
|
||||||
m_pText2Surface = NULL;
|
m_pText2Surface = NULL;
|
||||||
m_hWndMain = NULL;
|
m_hWndMain = NULL;
|
||||||
m_bIgnoreWM_SIZE = FALSE;
|
m_bIgnoreWMSIZE = FALSE;
|
||||||
m_bPrimaryPalettized = FALSE;
|
m_bPrimaryPalettized = FALSE;
|
||||||
m_bOnlySystemMemory = FALSE;
|
m_bOnlySystemMemory = FALSE;
|
||||||
m_bFullScreen = FALSE;
|
m_bFullScreen = FALSE;
|
||||||
@ -65,7 +65,7 @@ int MxDirectDraw::GetPrimaryBitDepth()
|
|||||||
|
|
||||||
pDDraw->GetDisplayMode(&ddsd);
|
pDDraw->GetDisplayMode(&ddsd);
|
||||||
dwRGBBitCount = ddsd.ddpfPixelFormat.dwRGBBitCount;
|
dwRGBBitCount = ddsd.ddpfPixelFormat.dwRGBBitCount;
|
||||||
g_is_PALETTEINDEXED8 = (ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) != 0;
|
g_isPaletteIndexed8 = (ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) != 0;
|
||||||
pDDraw->Release();
|
pDDraw->Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,13 +89,13 @@ BOOL MxDirectDraw::Create(
|
|||||||
|
|
||||||
CacheOriginalPaletteEntries();
|
CacheOriginalPaletteEntries();
|
||||||
|
|
||||||
if (!RecreateDirectDraw(&m_pCurrentDeviceModesList->p_guid)) {
|
if (!RecreateDirectDraw(&m_pCurrentDeviceModesList->m_guid)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bFlipSurfaces = surface_fullscreen;
|
m_bFlipSurfaces = surface_fullscreen;
|
||||||
m_bOnlySystemMemory = onlySystemMemory;
|
m_bOnlySystemMemory = onlySystemMemory;
|
||||||
m_bIsOnPrimaryDevice = !m_pCurrentDeviceModesList->p_guid;
|
m_bIsOnPrimaryDevice = !m_pCurrentDeviceModesList->m_guid;
|
||||||
BOOL fullscreen = 1;
|
BOOL fullscreen = 1;
|
||||||
|
|
||||||
if (m_bIsOnPrimaryDevice) {
|
if (m_bIsOnPrimaryDevice) {
|
||||||
@ -131,12 +131,12 @@ BOOL MxDirectDraw::RecreateDirectDraw(GUID** ppGUID)
|
|||||||
// FUNCTION: LEGO1 0x1009d6c0
|
// FUNCTION: LEGO1 0x1009d6c0
|
||||||
BOOL MxDirectDraw::CacheOriginalPaletteEntries()
|
BOOL MxDirectDraw::CacheOriginalPaletteEntries()
|
||||||
{
|
{
|
||||||
HDC DC;
|
HDC dc;
|
||||||
|
|
||||||
if (g_is_PALETTEINDEXED8) {
|
if (g_isPaletteIndexed8) {
|
||||||
DC = GetDC(0);
|
dc = GetDC(0);
|
||||||
GetSystemPaletteEntries(DC, 0, _countof(m_originalPaletteEntries), m_originalPaletteEntries);
|
GetSystemPaletteEntries(dc, 0, _countof(m_originalPaletteEntries), m_originalPaletteEntries);
|
||||||
ReleaseDC(0, DC);
|
ReleaseDC(0, dc);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -150,7 +150,7 @@ BOOL MxDirectDraw::SetPaletteEntries(const PALETTEENTRY* pPaletteEntries, int pa
|
|||||||
HDC hdc;
|
HDC hdc;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (g_is_PALETTEINDEXED8) {
|
if (g_isPaletteIndexed8) {
|
||||||
hdc = GetDC(NULL);
|
hdc = GetDC(NULL);
|
||||||
GetSystemPaletteEntries(hdc, 0, arraySize, m_paletteEntries);
|
GetSystemPaletteEntries(hdc, 0, arraySize, m_paletteEntries);
|
||||||
ReleaseDC(NULL, hdc);
|
ReleaseDC(NULL, hdc);
|
||||||
@ -197,7 +197,7 @@ void MxDirectDraw::Destroy()
|
|||||||
{
|
{
|
||||||
DestroyButNotDirectDraw();
|
DestroyButNotDirectDraw();
|
||||||
|
|
||||||
FUN_1009D920();
|
FUN_1009d920();
|
||||||
|
|
||||||
if (m_pDirectDraw != NULL) {
|
if (m_pDirectDraw != NULL) {
|
||||||
m_pDirectDraw->Release();
|
m_pDirectDraw->Release();
|
||||||
@ -218,9 +218,9 @@ void MxDirectDraw::DestroyButNotDirectDraw()
|
|||||||
RestoreOriginalPaletteEntries();
|
RestoreOriginalPaletteEntries();
|
||||||
if (m_bFullScreen) {
|
if (m_bFullScreen) {
|
||||||
if (m_pDirectDraw != NULL) {
|
if (m_pDirectDraw != NULL) {
|
||||||
m_bIgnoreWM_SIZE = TRUE;
|
m_bIgnoreWMSIZE = TRUE;
|
||||||
m_pDirectDraw->RestoreDisplayMode();
|
m_pDirectDraw->RestoreDisplayMode();
|
||||||
m_bIgnoreWM_SIZE = FALSE;
|
m_bIgnoreWMSIZE = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,14 +261,14 @@ void MxDirectDraw::DestroyButNotDirectDraw()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009d920
|
// FUNCTION: LEGO1 0x1009d920
|
||||||
void MxDirectDraw::FUN_1009D920()
|
void MxDirectDraw::FUN_1009d920()
|
||||||
{
|
{
|
||||||
RestoreOriginalPaletteEntries();
|
RestoreOriginalPaletteEntries();
|
||||||
if (m_pDirectDraw != NULL) {
|
if (m_pDirectDraw != NULL) {
|
||||||
m_bIgnoreWM_SIZE = TRUE;
|
m_bIgnoreWMSIZE = TRUE;
|
||||||
m_pDirectDraw->RestoreDisplayMode();
|
m_pDirectDraw->RestoreDisplayMode();
|
||||||
m_pDirectDraw->SetCooperativeLevel(NULL, DDSCL_NORMAL);
|
m_pDirectDraw->SetCooperativeLevel(NULL, DDSCL_NORMAL);
|
||||||
m_bIgnoreWM_SIZE = FALSE;
|
m_bIgnoreWMSIZE = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,9 +278,9 @@ BOOL MxDirectDraw::DDInit(BOOL fullscreen)
|
|||||||
HRESULT result;
|
HRESULT result;
|
||||||
|
|
||||||
if (fullscreen) {
|
if (fullscreen) {
|
||||||
m_bIgnoreWM_SIZE = 1;
|
m_bIgnoreWMSIZE = TRUE;
|
||||||
result = m_pDirectDraw->SetCooperativeLevel(m_hWndMain, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
|
result = m_pDirectDraw->SetCooperativeLevel(m_hWndMain, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
|
||||||
m_bIgnoreWM_SIZE = 0;
|
m_bIgnoreWMSIZE = FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result = m_pDirectDraw->SetCooperativeLevel(m_hWndMain, DDSCL_NORMAL);
|
result = m_pDirectDraw->SetCooperativeLevel(m_hWndMain, DDSCL_NORMAL);
|
||||||
@ -302,7 +302,7 @@ BOOL MxDirectDraw::IsSupportedMode(int width, int height, int bpp)
|
|||||||
Mode mode = {width, height, bpp};
|
Mode mode = {width, height, bpp};
|
||||||
|
|
||||||
for (int i = 0; i < m_pCurrentDeviceModesList->count; i++) {
|
for (int i = 0; i < m_pCurrentDeviceModesList->count; i++) {
|
||||||
if (m_pCurrentDeviceModesList->m_mode_ARRAY[i] == mode) {
|
if (m_pCurrentDeviceModesList->m_modeArray[i] == mode) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -311,18 +311,18 @@ BOOL MxDirectDraw::IsSupportedMode(int width, int height, int bpp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009da20
|
// FUNCTION: LEGO1 0x1009da20
|
||||||
void EnableResizing(HWND hwnd, BOOL flag)
|
void EnableResizing(HWND p_hwnd, BOOL p_flag)
|
||||||
{
|
{
|
||||||
static DWORD dwStyle;
|
static DWORD s_dwStyle;
|
||||||
|
|
||||||
if (!flag) {
|
if (!p_flag) {
|
||||||
dwStyle = GetWindowLong(hwnd, GWL_STYLE);
|
s_dwStyle = GetWindowLong(p_hwnd, GWL_STYLE);
|
||||||
if (dwStyle & WS_THICKFRAME) {
|
if (s_dwStyle & WS_THICKFRAME) {
|
||||||
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) ^ WS_THICKFRAME);
|
SetWindowLong(p_hwnd, GWL_STYLE, GetWindowLong(p_hwnd, GWL_STYLE) ^ WS_THICKFRAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SetWindowLong(hwnd, GWL_STYLE, dwStyle);
|
SetWindowLong(p_hwnd, GWL_STYLE, s_dwStyle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,14 +348,14 @@ BOOL MxDirectDraw::DDSetMode(int width, int height, int bpp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!IsSupportedMode(width, height, bpp)) {
|
if (!IsSupportedMode(width, height, bpp)) {
|
||||||
width = m_pCurrentDeviceModesList->m_mode_ARRAY[0].width;
|
width = m_pCurrentDeviceModesList->m_modeArray[0].m_width;
|
||||||
height = m_pCurrentDeviceModesList->m_mode_ARRAY[0].height;
|
height = m_pCurrentDeviceModesList->m_modeArray[0].m_height;
|
||||||
bpp = m_pCurrentDeviceModesList->m_mode_ARRAY[0].bitsPerPixel;
|
bpp = m_pCurrentDeviceModesList->m_modeArray[0].m_bitsPerPixel;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bIgnoreWM_SIZE = TRUE;
|
m_bIgnoreWMSIZE = TRUE;
|
||||||
result = m_pDirectDraw->SetDisplayMode(width, height, bpp);
|
result = m_pDirectDraw->SetDisplayMode(width, height, bpp);
|
||||||
m_bIgnoreWM_SIZE = FALSE;
|
m_bIgnoreWMSIZE = FALSE;
|
||||||
if (result != DD_OK) {
|
if (result != DD_OK) {
|
||||||
Error("SetDisplayMode failed", result);
|
Error("SetDisplayMode failed", result);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -370,7 +370,7 @@ BOOL MxDirectDraw::DDSetMode(int width, int height, int bpp)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bIgnoreWM_SIZE = TRUE;
|
m_bIgnoreWMSIZE = TRUE;
|
||||||
dwStyle = GetWindowLong(m_hWndMain, GWL_STYLE);
|
dwStyle = GetWindowLong(m_hWndMain, GWL_STYLE);
|
||||||
dwStyle &= ~(WS_POPUP | WS_CAPTION | WS_THICKFRAME | WS_OVERLAPPED);
|
dwStyle &= ~(WS_POPUP | WS_CAPTION | WS_THICKFRAME | WS_OVERLAPPED);
|
||||||
dwStyle |= WS_CAPTION | WS_THICKFRAME | WS_OVERLAPPED;
|
dwStyle |= WS_CAPTION | WS_THICKFRAME | WS_OVERLAPPED;
|
||||||
@ -393,12 +393,12 @@ BOOL MxDirectDraw::DDSetMode(int width, int height, int bpp)
|
|||||||
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE
|
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE
|
||||||
);
|
);
|
||||||
SetWindowPos(m_hWndMain, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
|
SetWindowPos(m_hWndMain, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
|
||||||
m_bIgnoreWM_SIZE = FALSE;
|
m_bIgnoreWMSIZE = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_currentMode.width = width;
|
m_currentMode.m_width = width;
|
||||||
m_currentMode.height = height;
|
m_currentMode.m_height = height;
|
||||||
m_currentMode.bitsPerPixel = bpp;
|
m_currentMode.m_bitsPerPixel = bpp;
|
||||||
|
|
||||||
if (!DDCreateSurfaces()) {
|
if (!DDCreateSurfaces()) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -406,7 +406,7 @@ BOOL MxDirectDraw::DDSetMode(int width, int height, int bpp)
|
|||||||
|
|
||||||
DDSURFACEDESC ddsd;
|
DDSURFACEDESC ddsd;
|
||||||
|
|
||||||
FUN_1009E020();
|
FUN_1009e020();
|
||||||
|
|
||||||
if (!GetDDSurfaceDesc(&ddsd, m_pBackBuffer)) {
|
if (!GetDDSurfaceDesc(&ddsd, m_pBackBuffer)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -506,8 +506,8 @@ BOOL MxDirectDraw::DDCreateSurfaces()
|
|||||||
Error("CreateSurface for window front buffer failed", result);
|
Error("CreateSurface for window front buffer failed", result);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
ddsd.dwHeight = m_currentMode.height;
|
ddsd.dwHeight = m_currentMode.m_height;
|
||||||
ddsd.dwWidth = m_currentMode.width;
|
ddsd.dwWidth = m_currentMode.m_width;
|
||||||
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS;
|
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS;
|
||||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE;
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE;
|
||||||
if (m_bOnlySystemMemory)
|
if (m_bOnlySystemMemory)
|
||||||
@ -543,7 +543,7 @@ BOOL MxDirectDraw::DDCreateSurfaces()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009e020
|
// FUNCTION: LEGO1 0x1009e020
|
||||||
void MxDirectDraw::FUN_1009E020()
|
void MxDirectDraw::FUN_1009e020()
|
||||||
{
|
{
|
||||||
HRESULT result;
|
HRESULT result;
|
||||||
byte* line;
|
byte* line;
|
||||||
@ -631,7 +631,7 @@ BOOL MxDirectDraw::CreateTextSurfaces()
|
|||||||
HRESULT result;
|
HRESULT result;
|
||||||
DDCOLORKEY ddck;
|
DDCOLORKEY ddck;
|
||||||
DDSURFACEDESC ddsd;
|
DDSURFACEDESC ddsd;
|
||||||
HDC DC;
|
HDC dc;
|
||||||
char dummyinfo[] = "000x000x00 (RAMP) 0000";
|
char dummyinfo[] = "000x000x00 (RAMP) 0000";
|
||||||
char dummyfps[] = "000.00 fps (000.00 fps (000.00 fps) 00000 tps)";
|
char dummyfps[] = "000.00 fps (000.00 fps (000.00 fps) 00000 tps)";
|
||||||
|
|
||||||
@ -640,7 +640,7 @@ BOOL MxDirectDraw::CreateTextSurfaces()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_hFont = CreateFontA(
|
m_hFont = CreateFontA(
|
||||||
m_currentMode.width <= 600 ? 12 : 24,
|
m_currentMode.m_width <= 600 ? 12 : 24,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@ -656,11 +656,11 @@ BOOL MxDirectDraw::CreateTextSurfaces()
|
|||||||
"Arial"
|
"Arial"
|
||||||
);
|
);
|
||||||
|
|
||||||
DC = GetDC(NULL);
|
dc = GetDC(NULL);
|
||||||
SelectObject(DC, m_hFont);
|
SelectObject(dc, m_hFont);
|
||||||
GetTextExtentPointA(DC, dummyfps, strlen(dummyfps), &m_text1SizeOnSurface);
|
GetTextExtentPointA(dc, dummyfps, strlen(dummyfps), &m_text1SizeOnSurface);
|
||||||
GetTextExtentPointA(DC, dummyinfo, strlen(dummyinfo), &m_text2SizeOnSurface);
|
GetTextExtentPointA(dc, dummyinfo, strlen(dummyinfo), &m_text2SizeOnSurface);
|
||||||
ReleaseDC(NULL, DC);
|
ReleaseDC(NULL, dc);
|
||||||
|
|
||||||
memset(&ddsd, 0, sizeof(ddsd));
|
memset(&ddsd, 0, sizeof(ddsd));
|
||||||
ddsd.dwSize = sizeof(ddsd);
|
ddsd.dwSize = sizeof(ddsd);
|
||||||
@ -774,8 +774,8 @@ BOOL MxDirectDraw::CreateZBuffer(DWORD memorytype, DWORD depth)
|
|||||||
|
|
||||||
memset(&ddsd, 0, sizeof(ddsd));
|
memset(&ddsd, 0, sizeof(ddsd));
|
||||||
ddsd.dwSize = sizeof(ddsd);
|
ddsd.dwSize = sizeof(ddsd);
|
||||||
ddsd.dwHeight = m_currentMode.height;
|
ddsd.dwHeight = m_currentMode.m_height;
|
||||||
ddsd.dwWidth = m_currentMode.width;
|
ddsd.dwWidth = m_currentMode.m_width;
|
||||||
ddsd.dwZBufferBitDepth = depth;
|
ddsd.dwZBufferBitDepth = depth;
|
||||||
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS | DDSD_ZBUFFERBITDEPTH;
|
ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS | DDSD_ZBUFFERBITDEPTH;
|
||||||
ddsd.ddsCaps.dwCaps = DDSCAPS_ZBUFFER | memorytype;
|
ddsd.ddsCaps.dwCaps = DDSCAPS_ZBUFFER | memorytype;
|
||||||
@ -889,17 +889,17 @@ int MxDirectDraw::FlipToGDISurface()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009e830
|
// FUNCTION: LEGO1 0x1009e830
|
||||||
void MxDirectDraw::Error(const char* message, int error)
|
void MxDirectDraw::Error(const char* p_message, MxS32 p_error)
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x10100c70
|
// GLOBAL: LEGO1 0x10100c70
|
||||||
static BOOL isInsideError = FALSE;
|
static BOOL s_isInsideError = FALSE;
|
||||||
if (!isInsideError) {
|
if (!s_isInsideError) {
|
||||||
isInsideError = TRUE;
|
s_isInsideError = TRUE;
|
||||||
Destroy();
|
Destroy();
|
||||||
if (m_pErrorHandler) {
|
if (m_pErrorHandler) {
|
||||||
m_pErrorHandler(message, error, m_pErrorHandlerArg);
|
m_pErrorHandler(p_message, p_error, m_pErrorHandlerArg);
|
||||||
}
|
}
|
||||||
isInsideError = FALSE;
|
s_isInsideError = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1122,11 +1122,11 @@ MxDirectDraw::DeviceModesInfo::DeviceModesInfo()
|
|||||||
// FUNCTION: LEGO1 0x1009efd0
|
// FUNCTION: LEGO1 0x1009efd0
|
||||||
MxDirectDraw::DeviceModesInfo::~DeviceModesInfo()
|
MxDirectDraw::DeviceModesInfo::~DeviceModesInfo()
|
||||||
{
|
{
|
||||||
if (p_guid != NULL) {
|
if (m_guid != NULL) {
|
||||||
delete p_guid;
|
delete m_guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_mode_ARRAY != NULL) {
|
if (m_modeArray != NULL) {
|
||||||
delete m_mode_ARRAY;
|
delete m_modeArray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
#ifndef MXDIRECTDRAW_H
|
#ifndef MXDIRECTDRAW_H
|
||||||
#define MXDIRECTDRAW_H
|
#define MXDIRECTDRAW_H
|
||||||
|
|
||||||
|
#include "mxtypes.h"
|
||||||
|
|
||||||
#include <ddraw.h>
|
#include <ddraw.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
extern BOOL g_is_PALETTEINDEXED8;
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100db818
|
// VTABLE: LEGO1 0x100db818
|
||||||
// SIZE 0x880
|
// SIZE 0x880
|
||||||
class MxDirectDraw {
|
class MxDirectDraw {
|
||||||
@ -14,23 +14,26 @@ class MxDirectDraw {
|
|||||||
|
|
||||||
// size 0x0c
|
// size 0x0c
|
||||||
struct Mode {
|
struct Mode {
|
||||||
int width;
|
MxS32 m_width;
|
||||||
int height;
|
MxS32 m_height;
|
||||||
int bitsPerPixel;
|
MxS32 m_bitsPerPixel;
|
||||||
|
|
||||||
int operator==(const Mode& rMode) const
|
MxS32 operator==(const Mode& p_mode) const
|
||||||
{
|
{
|
||||||
return ((width == rMode.width) && (height == rMode.height) && (bitsPerPixel == rMode.bitsPerPixel));
|
return (
|
||||||
|
(m_width == p_mode.m_width) && (m_height == p_mode.m_height) &&
|
||||||
|
(m_bitsPerPixel == p_mode.m_bitsPerPixel)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// size 0x17c
|
// SIZE 0x17c
|
||||||
struct DeviceModesInfo {
|
struct DeviceModesInfo {
|
||||||
GUID* p_guid;
|
GUID* m_guid;
|
||||||
Mode* m_mode_ARRAY;
|
Mode* m_modeArray;
|
||||||
int count;
|
MxS32 count;
|
||||||
DDCAPS m_ddcaps;
|
DDCAPS m_ddcaps;
|
||||||
void* a_178;
|
void* m_178;
|
||||||
|
|
||||||
DeviceModesInfo();
|
DeviceModesInfo();
|
||||||
~DeviceModesInfo();
|
~DeviceModesInfo();
|
||||||
@ -53,10 +56,10 @@ class MxDirectDraw {
|
|||||||
SIZE m_text2SizeOnSurface;
|
SIZE m_text2SizeOnSurface;
|
||||||
HWND m_hWndMain;
|
HWND m_hWndMain;
|
||||||
HFONT m_hFont;
|
HFONT m_hFont;
|
||||||
BOOL m_bIgnoreWM_SIZE;
|
BOOL m_bIgnoreWMSIZE;
|
||||||
BOOL m_bPrimaryPalettized;
|
BOOL m_bPrimaryPalettized;
|
||||||
BOOL m_bFullScreen;
|
BOOL m_bFullScreen;
|
||||||
void* a_850;
|
void* m_850;
|
||||||
BOOL m_bOnlySystemMemory;
|
BOOL m_bOnlySystemMemory;
|
||||||
BOOL m_bIsOnPrimaryDevice;
|
BOOL m_bIsOnPrimaryDevice;
|
||||||
ErrorHandler m_pErrorHandler;
|
ErrorHandler m_pErrorHandler;
|
||||||
@ -98,7 +101,7 @@ class MxDirectDraw {
|
|||||||
BOOL DDCreateSurfaces();
|
BOOL DDCreateSurfaces();
|
||||||
BOOL DDInit(BOOL fullscreen);
|
BOOL DDInit(BOOL fullscreen);
|
||||||
BOOL DDSetMode(int width, int height, int bpp);
|
BOOL DDSetMode(int width, int height, int bpp);
|
||||||
void Error(const char* message, int error);
|
void Error(const char* p_message, MxS32 p_error);
|
||||||
|
|
||||||
BOOL GetDDSurfaceDesc(LPDDSURFACEDESC lpDDSurfDesc, LPDIRECTDRAWSURFACE lpDDSurf);
|
BOOL GetDDSurfaceDesc(LPDDSURFACEDESC lpDDSurfDesc, LPDIRECTDRAWSURFACE lpDDSurf);
|
||||||
BOOL IsSupportedMode(int width, int height, int bpp);
|
BOOL IsSupportedMode(int width, int height, int bpp);
|
||||||
@ -110,8 +113,8 @@ class MxDirectDraw {
|
|||||||
BOOL TextToTextSurface(const char* text, IDirectDrawSurface* pSurface, SIZE& textSizeOnSurface);
|
BOOL TextToTextSurface(const char* text, IDirectDrawSurface* pSurface, SIZE& textSizeOnSurface);
|
||||||
BOOL TextToTextSurface1(const char* text);
|
BOOL TextToTextSurface1(const char* text);
|
||||||
BOOL TextToTextSurface2(const char* lpString);
|
BOOL TextToTextSurface2(const char* lpString);
|
||||||
void FUN_1009E020();
|
void FUN_1009e020();
|
||||||
void FUN_1009D920();
|
void FUN_1009d920();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDIRECTDRAW_H
|
#endif // MXDIRECTDRAW_H
|
||||||
|
|||||||
@ -58,13 +58,13 @@ MxResult MxDiskStreamController::Open(const char* p_filename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c7880
|
// FUNCTION: LEGO1 0x100c7880
|
||||||
MxResult MxDiskStreamController::VTable0x18(undefined4 p_unknown, undefined4 p_unknown2)
|
MxResult MxDiskStreamController::VTable0x18(undefined4, undefined4)
|
||||||
{
|
{
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c7960
|
// FUNCTION: LEGO1 0x100c7960
|
||||||
MxResult MxDiskStreamController::VTable0x34(undefined4 p_unknown)
|
MxResult MxDiskStreamController::VTable0x34(undefined4)
|
||||||
{
|
{
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
@ -77,7 +77,7 @@ MxResult MxDiskStreamController::VTable0x28()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100c7c00
|
// STUB: LEGO1 0x100c7c00
|
||||||
MxResult MxDiskStreamController::VTable0x30(undefined4 p_unknown)
|
MxResult MxDiskStreamController::VTable0x30(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
@ -91,7 +91,7 @@ MxResult MxDiskStreamController::VTable0x20(MxDSAction* p_action)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100c8160
|
// STUB: LEGO1 0x100c8160
|
||||||
MxResult MxDiskStreamController::VTable0x24(undefined4 p_unknown)
|
MxResult MxDiskStreamController::VTable0x24(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|||||||
@ -16,14 +16,14 @@ class MxDiskStreamController : public MxStreamController {
|
|||||||
MxDiskStreamController();
|
MxDiskStreamController();
|
||||||
virtual ~MxDiskStreamController() override;
|
virtual ~MxDiskStreamController() override;
|
||||||
|
|
||||||
virtual MxResult Tickle() override; // vtable+0x8
|
virtual MxResult Tickle() override; // vtable+0x8
|
||||||
virtual MxResult Open(const char* p_filename) override; // vtable+0x14
|
virtual MxResult Open(const char* p_filename) override; // vtable+0x14
|
||||||
virtual MxResult VTable0x18(undefined4 p_unknown, undefined4 p_unknown2) override; // vtable+0x18
|
virtual MxResult VTable0x18(undefined4, undefined4) override; // vtable+0x18
|
||||||
virtual MxResult VTable0x20(MxDSAction* p_action) override; // vtable+0x20
|
virtual MxResult VTable0x20(MxDSAction* p_action) override; // vtable+0x20
|
||||||
virtual MxResult VTable0x24(undefined4 p_unknown) override; // vtable+0x24
|
virtual MxResult VTable0x24(MxDSAction* p_action) override; // vtable+0x24
|
||||||
virtual MxResult VTable0x28() override; // vtable+0x28
|
virtual MxResult VTable0x28() override; // vtable+0x28
|
||||||
virtual MxResult VTable0x30(undefined4 p_unknown) override; // vtable+0x30
|
virtual MxResult VTable0x30(MxDSAction* p_action) override; // vtable+0x30
|
||||||
virtual MxResult VTable0x34(undefined4 p_unknown); // vtable+0x34
|
virtual MxResult VTable0x34(undefined4); // vtable+0x34
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c7360
|
// FUNCTION: LEGO1 0x100c7360
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
DECOMP_SIZE_ASSERT(MxDSAction, 0x94)
|
DECOMP_SIZE_ASSERT(MxDSAction, 0x94)
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10101410
|
// GLOBAL: LEGO1 0x10101410
|
||||||
MxU16 g_unkSep = TWOCC(',', ' ');
|
MxU16 g_sep = TWOCC(',', ' ');
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ad810
|
// FUNCTION: LEGO1 0x100ad810
|
||||||
MxDSAction::MxDSAction()
|
MxDSAction::MxDSAction()
|
||||||
@ -29,7 +29,7 @@ MxDSAction::MxDSAction()
|
|||||||
this->m_unk0x84 = NULL;
|
this->m_unk0x84 = NULL;
|
||||||
this->m_unk0x88 = 0;
|
this->m_unk0x88 = 0;
|
||||||
this->m_origin = NULL;
|
this->m_origin = NULL;
|
||||||
this->m_unk0xTimingField = INT_MIN;
|
this->m_unk0x90 = INT_MIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ad940
|
// FUNCTION: LEGO1 0x100ad940
|
||||||
@ -51,15 +51,15 @@ MxBool MxDSAction::HasId(MxU32 p_objectId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ada40
|
// FUNCTION: LEGO1 0x100ada40
|
||||||
void MxDSAction::SetUnkTimingField(MxLong p_unkTimingField)
|
void MxDSAction::SetUnknown90(MxLong p_unk0x90)
|
||||||
{
|
{
|
||||||
this->m_unk0xTimingField = p_unkTimingField;
|
this->m_unk0x90 = p_unk0x90;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ada50
|
// FUNCTION: LEGO1 0x100ada50
|
||||||
MxLong MxDSAction::GetUnkTimingField()
|
MxLong MxDSAction::GetUnknown90()
|
||||||
{
|
{
|
||||||
return this->m_unk0xTimingField;
|
return this->m_unk0x90;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ada80
|
// FUNCTION: LEGO1 0x100ada80
|
||||||
@ -85,7 +85,7 @@ void MxDSAction::CopyFrom(MxDSAction& p_dsAction)
|
|||||||
this->m_unk0x84 = p_dsAction.m_unk0x84;
|
this->m_unk0x84 = p_dsAction.m_unk0x84;
|
||||||
this->m_unk0x88 = p_dsAction.m_unk0x88;
|
this->m_unk0x88 = p_dsAction.m_unk0x88;
|
||||||
this->m_origin = p_dsAction.m_origin;
|
this->m_origin = p_dsAction.m_origin;
|
||||||
this->m_unk0xTimingField = p_dsAction.m_unk0xTimingField;
|
this->m_unk0x90 = p_dsAction.m_unk0x90;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100adbe0
|
// FUNCTION: LEGO1 0x100adbe0
|
||||||
@ -124,7 +124,7 @@ MxDSAction* MxDSAction::Clone()
|
|||||||
// FUNCTION: LEGO1 0x100adcd0
|
// FUNCTION: LEGO1 0x100adcd0
|
||||||
MxLong MxDSAction::GetElapsedTime()
|
MxLong MxDSAction::GetElapsedTime()
|
||||||
{
|
{
|
||||||
return Timer()->GetTime() - this->m_unk0xTimingField;
|
return Timer()->GetTime() - this->m_unk0x90;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100add00
|
// FUNCTION: LEGO1 0x100add00
|
||||||
@ -165,8 +165,8 @@ void MxDSAction::MergeFrom(MxDSAction& p_dsAction)
|
|||||||
|
|
||||||
// Taking those references forces the compiler to move the values onto the stack.
|
// Taking those references forces the compiler to move the values onto the stack.
|
||||||
// The original code most likely looked different, but this yields a 100% match.
|
// The original code most likely looked different, but this yields a 100% match.
|
||||||
MxU16& _extraLength = extraLength;
|
MxU16& extraLengthRef = extraLength;
|
||||||
char*& _extraData = extraData;
|
char*& extraDataRef = extraData;
|
||||||
if (extraLength && extraData) {
|
if (extraLength && extraData) {
|
||||||
if (!this->m_extraData || !strncmp("XXX", this->m_extraData, 3)) {
|
if (!this->m_extraData || !strncmp("XXX", this->m_extraData, 3)) {
|
||||||
delete[] this->m_extraData;
|
delete[] this->m_extraData;
|
||||||
@ -183,13 +183,13 @@ void MxDSAction::AppendData(MxU16 p_extraLength, const char* p_extraData)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (this->m_extraLength) {
|
if (this->m_extraLength) {
|
||||||
char* concat = new char[p_extraLength + this->m_extraLength + sizeof(g_unkSep)];
|
char* concat = new char[p_extraLength + this->m_extraLength + sizeof(g_sep)];
|
||||||
memcpy(concat, this->m_extraData, this->m_extraLength);
|
memcpy(concat, this->m_extraData, this->m_extraLength);
|
||||||
|
|
||||||
*(MxU16*) &concat[this->m_extraLength] = g_unkSep;
|
*(MxU16*) &concat[this->m_extraLength] = g_sep;
|
||||||
memcpy(&concat[this->m_extraLength + sizeof(g_unkSep)], p_extraData, p_extraLength);
|
memcpy(&concat[this->m_extraLength + sizeof(g_sep)], p_extraData, p_extraLength);
|
||||||
|
|
||||||
this->m_extraLength += p_extraLength + sizeof(g_unkSep);
|
this->m_extraLength += p_extraLength + sizeof(g_sep);
|
||||||
delete[] this->m_extraData;
|
delete[] this->m_extraData;
|
||||||
this->m_extraData = concat;
|
this->m_extraData = concat;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,8 +49,8 @@ class MxDSAction : public MxDSObject {
|
|||||||
virtual MxDSAction* Clone(); // vtable+2c;
|
virtual MxDSAction* Clone(); // vtable+2c;
|
||||||
virtual void MergeFrom(MxDSAction& p_dsAction); // vtable+30;
|
virtual void MergeFrom(MxDSAction& p_dsAction); // vtable+30;
|
||||||
virtual MxBool HasId(MxU32 p_objectId); // vtable+34;
|
virtual MxBool HasId(MxU32 p_objectId); // vtable+34;
|
||||||
virtual void SetUnkTimingField(MxLong p_unkTimingField); // vtable+38;
|
virtual void SetUnknown90(MxLong p_unk0x90); // vtable+38;
|
||||||
virtual MxLong GetUnkTimingField(); // vtable+3c;
|
virtual MxLong GetUnknown90(); // vtable+3c;
|
||||||
virtual MxLong GetElapsedTime(); // vtable+40;
|
virtual MxLong GetElapsedTime(); // vtable+40;
|
||||||
|
|
||||||
void AppendData(MxU16 p_extraLength, const char* p_extraData);
|
void AppendData(MxU16 p_extraLength, const char* p_extraData);
|
||||||
@ -79,20 +79,20 @@ class MxDSAction : public MxDSObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MxU32 m_sizeOnDisk; // 0x2c
|
MxU32 m_sizeOnDisk; // 0x2c
|
||||||
MxU32 m_flags; // 0x30
|
MxU32 m_flags; // 0x30
|
||||||
MxLong m_startTime; // 0x34
|
MxLong m_startTime; // 0x34
|
||||||
MxLong m_duration; // 0x38
|
MxLong m_duration; // 0x38
|
||||||
MxS32 m_loopCount; // 0x3c
|
MxS32 m_loopCount; // 0x3c
|
||||||
Vector3Data m_location; // 0x40
|
Vector3Data m_location; // 0x40
|
||||||
Vector3Data m_direction; // 0x54
|
Vector3Data m_direction; // 0x54
|
||||||
Vector3Data m_up; // 0x68
|
Vector3Data m_up; // 0x68
|
||||||
char* m_extraData; // 0x7c
|
char* m_extraData; // 0x7c
|
||||||
MxU16 m_extraLength; // 0x80
|
MxU16 m_extraLength; // 0x80
|
||||||
MxCore* m_unk0x84; // 0x84
|
MxCore* m_unk0x84; // 0x84
|
||||||
undefined4 m_unk0x88; // 0x88
|
undefined4 m_unk0x88; // 0x88
|
||||||
MxCore* m_origin; // 0x8c
|
MxCore* m_origin; // 0x8c
|
||||||
MxLong m_unk0xTimingField; // 0x90
|
MxLong m_unk0x90; // 0x90
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDSACTION_H
|
#endif // MXDSACTION_H
|
||||||
|
|||||||
@ -53,14 +53,14 @@ MxDSMultiAction& MxDSMultiAction::operator=(MxDSMultiAction& p_dsMultiAction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca290
|
// FUNCTION: LEGO1 0x100ca290
|
||||||
void MxDSMultiAction::SetUnkTimingField(MxLong p_unkTimingField)
|
void MxDSMultiAction::SetUnknown90(MxLong p_unkTimingField)
|
||||||
{
|
{
|
||||||
this->m_unk0xTimingField = p_unkTimingField;
|
this->m_unk0x90 = p_unkTimingField;
|
||||||
|
|
||||||
MxDSActionListCursor cursor(this->m_actions);
|
MxDSActionListCursor cursor(this->m_actions);
|
||||||
MxDSAction* action;
|
MxDSAction* action;
|
||||||
while (cursor.Next(action))
|
while (cursor.Next(action))
|
||||||
action->SetUnkTimingField(p_unkTimingField);
|
action->SetUnknown90(p_unkTimingField);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100ca370
|
// FUNCTION: LEGO1 0x100ca370
|
||||||
|
|||||||
@ -34,7 +34,7 @@ class MxDSMultiAction : public MxDSAction {
|
|||||||
virtual MxDSAction* Clone() override; // vtable+2c;
|
virtual MxDSAction* Clone() override; // vtable+2c;
|
||||||
virtual void MergeFrom(MxDSAction& p_dsAction) override; // vtable+30;
|
virtual void MergeFrom(MxDSAction& p_dsAction) override; // vtable+30;
|
||||||
virtual MxBool HasId(MxU32 p_objectId) override; // vtable+34;
|
virtual MxBool HasId(MxU32 p_objectId) override; // vtable+34;
|
||||||
virtual void SetUnkTimingField(MxLong p_unkTimingField) override; // vtable+38;
|
virtual void SetUnknown90(MxLong p_unkTimingField) override; // vtable+38;
|
||||||
|
|
||||||
inline MxDSActionList* GetActionList() const { return m_actions; };
|
inline MxDSActionList* GetActionList() const { return m_actions; };
|
||||||
|
|
||||||
|
|||||||
@ -268,7 +268,7 @@ void MxMediaPresenter::Enable(MxBool p_enable)
|
|||||||
|
|
||||||
if (p_enable) {
|
if (p_enable) {
|
||||||
MxLong time = Timer()->GetTime();
|
MxLong time = Timer()->GetTime();
|
||||||
m_action->SetUnkTimingField(time);
|
m_action->SetUnknown90(time);
|
||||||
SetTickleState(TickleState_Repeating);
|
SetTickleState(TickleState_Repeating);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -9,13 +9,13 @@ DECOMP_SIZE_ASSERT(MxStreamController, 0x64)
|
|||||||
DECOMP_SIZE_ASSERT(MxNextActionDataStart, 0x14)
|
DECOMP_SIZE_ASSERT(MxNextActionDataStart, 0x14)
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b9400
|
// FUNCTION: LEGO1 0x100b9400
|
||||||
MxResult MxStreamController::VTable0x18(undefined4 p_unknown, undefined4 p_unknown2)
|
MxResult MxStreamController::VTable0x18(undefined4, undefined4)
|
||||||
{
|
{
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b9410
|
// FUNCTION: LEGO1 0x100b9410
|
||||||
MxResult MxStreamController::vtable0x1C(undefined4 p_unknown, undefined4 p_unknown2)
|
MxResult MxStreamController::vtable0x1C(undefined4, undefined4)
|
||||||
{
|
{
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
@ -163,11 +163,11 @@ MxResult MxStreamController::VTable0x2c(MxDSAction* p_action, MxU32 p_bufferval)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c1ce0
|
// FUNCTION: LEGO1 0x100c1ce0
|
||||||
MxResult MxStreamController::VTable0x30(MxDSAction* p_unknown)
|
MxResult MxStreamController::VTable0x30(MxDSAction* p_action)
|
||||||
{
|
{
|
||||||
MxAutoLocker locker(&m_criticalSection);
|
MxAutoLocker locker(&m_criticalSection);
|
||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
MxDSAction* action = m_unk0xList0x3c.Find(p_unknown, TRUE);
|
MxDSAction* action = m_unk0xList0x3c.Find(p_action, TRUE);
|
||||||
if (action != NULL) {
|
if (action != NULL) {
|
||||||
MxNextActionDataStart* data = m_nextActionList.Find(action->GetObjectId(), action->GetUnknown24());
|
MxNextActionDataStart* data = m_nextActionList.Find(action->GetObjectId(), action->GetUnknown24());
|
||||||
delete action;
|
delete action;
|
||||||
|
|||||||
@ -36,12 +36,12 @@ class MxStreamController : public MxCore {
|
|||||||
virtual MxResult VTable0x18(undefined4 p_unknown, undefined4 p_unknown2); // vtable+0x18
|
virtual MxResult VTable0x18(undefined4 p_unknown, undefined4 p_unknown2); // vtable+0x18
|
||||||
virtual MxResult vtable0x1C(undefined4 p_unknown, undefined4 p_unknown2); // vtable+0x1c
|
virtual MxResult vtable0x1C(undefined4 p_unknown, undefined4 p_unknown2); // vtable+0x1c
|
||||||
virtual MxResult VTable0x20(MxDSAction* p_action); // vtable+0x20
|
virtual MxResult VTable0x20(MxDSAction* p_action); // vtable+0x20
|
||||||
virtual MxResult VTable0x24(MxDSAction* p_unknown); // vtable+0x24
|
virtual MxResult VTable0x24(MxDSAction* p_action); // vtable+0x24
|
||||||
MxResult FUN_100c1800(MxDSAction* p_action, MxU32 p_val);
|
virtual MxResult VTable0x28(); // vtable+0x28
|
||||||
virtual MxResult VTable0x28(); // vtable+0x28
|
virtual MxResult VTable0x2c(MxDSAction* p_action, MxU32 p_bufferval); // vtable+0x2c
|
||||||
virtual MxResult VTable0x2c(MxDSAction* p_action, MxU32 p_bufferval); // vtable+0x2c
|
virtual MxResult VTable0x30(MxDSAction* p_action); // vtable+0x30
|
||||||
virtual MxResult VTable0x30(MxDSAction* p_unknown); // vtable+0x30
|
|
||||||
|
|
||||||
|
MxResult FUN_100c1800(MxDSAction* p_action, MxU32 p_val);
|
||||||
MxBool FUN_100c20d0(MxDSObject& p_obj);
|
MxBool FUN_100c20d0(MxDSObject& p_obj);
|
||||||
MxResult FUN_100c1a00(MxDSAction* p_action, MxU32 p_bufferval);
|
MxResult FUN_100c1a00(MxDSAction* p_action, MxU32 p_bufferval);
|
||||||
MxResult FUN_100c1f00(MxDSAction* p_action);
|
MxResult FUN_100c1f00(MxDSAction* p_action);
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#ifndef MXTYPE_H
|
#ifndef MXTYPES_H
|
||||||
#define MXTYPE_H
|
#define MXTYPES_H
|
||||||
|
|
||||||
typedef unsigned char MxU8;
|
typedef unsigned char MxU8;
|
||||||
typedef signed char MxS8;
|
typedef signed char MxS8;
|
||||||
@ -70,4 +70,4 @@ typedef union {
|
|||||||
// BYTE all; // ?
|
// BYTE all; // ?
|
||||||
} flag_bitfield;
|
} flag_bitfield;
|
||||||
|
|
||||||
#endif // MXTYPE_H
|
#endif // MXTYPES_H
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user