mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Implement Lego3DManager
This commit is contained in:
parent
d5854a46ae
commit
50d15ec3f2
@ -47,6 +47,7 @@ add_library(lego1 SHARED
|
|||||||
LEGO1/jukebox.cpp
|
LEGO1/jukebox.cpp
|
||||||
LEGO1/jukeboxentity.cpp
|
LEGO1/jukeboxentity.cpp
|
||||||
LEGO1/jukeboxstate.cpp
|
LEGO1/jukeboxstate.cpp
|
||||||
|
LEGO1/lego3dmanager.cpp
|
||||||
LEGO1/lego3dview.cpp
|
LEGO1/lego3dview.cpp
|
||||||
LEGO1/legoact2state.cpp
|
LEGO1/legoact2state.cpp
|
||||||
LEGO1/legoactioncontrolpresenter.cpp
|
LEGO1/legoactioncontrolpresenter.cpp
|
||||||
@ -161,6 +162,7 @@ add_library(lego1 SHARED
|
|||||||
LEGO1/mxramstreamcontroller.cpp
|
LEGO1/mxramstreamcontroller.cpp
|
||||||
LEGO1/mxramstreamprovider.cpp
|
LEGO1/mxramstreamprovider.cpp
|
||||||
LEGO1/mxregion.cpp
|
LEGO1/mxregion.cpp
|
||||||
|
LEGO1/mxrendersettings.cpp
|
||||||
LEGO1/mxscheduler.cpp
|
LEGO1/mxscheduler.cpp
|
||||||
LEGO1/mxsemaphore.cpp
|
LEGO1/mxsemaphore.cpp
|
||||||
LEGO1/mxsmack.cpp
|
LEGO1/mxsmack.cpp
|
||||||
|
|||||||
46
LEGO1/lego3dmanager.cpp
Normal file
46
LEGO1/lego3dmanager.cpp
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#include "lego3dmanager.h"
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "mxrendersettings.h"
|
||||||
|
#include "mxunknown100dbdbc.h"
|
||||||
|
#include "tgl/tgl.h"
|
||||||
|
|
||||||
|
DECOMP_SIZE_ASSERT(Lego3DManager, 0x10);
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100ab320
|
||||||
|
Lego3DManager::Lego3DManager()
|
||||||
|
{
|
||||||
|
m_render = NULL;
|
||||||
|
m_3dView = NULL;
|
||||||
|
m_unk0x0c = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100ab360
|
||||||
|
Lego3DManager::~Lego3DManager()
|
||||||
|
{
|
||||||
|
Destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100ab370
|
||||||
|
void Lego3DManager::Init(MxRenderSettings& p_settings)
|
||||||
|
{
|
||||||
|
m_unk0x0c = new MxUnknown100dbdbc();
|
||||||
|
m_render = Tgl::CreateRenderer();
|
||||||
|
m_3dView = new Lego3DView();
|
||||||
|
|
||||||
|
MxRenderSettings settings;
|
||||||
|
settings = p_settings;
|
||||||
|
|
||||||
|
m_3dView->Init(settings, *m_render);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100ab460
|
||||||
|
void Lego3DManager::Destroy()
|
||||||
|
{
|
||||||
|
delete m_3dView;
|
||||||
|
m_3dView = NULL;
|
||||||
|
delete m_render;
|
||||||
|
m_render = NULL;
|
||||||
|
delete m_unk0x0c;
|
||||||
|
m_unk0x0c = NULL;
|
||||||
|
}
|
||||||
@ -3,14 +3,24 @@
|
|||||||
|
|
||||||
#include "lego3dview.h"
|
#include "lego3dview.h"
|
||||||
|
|
||||||
|
class MxUnknown100dbdbc;
|
||||||
|
|
||||||
|
// VTABLE: 0x100ab320
|
||||||
|
// SIZE: 0x10
|
||||||
class Lego3DManager {
|
class Lego3DManager {
|
||||||
public:
|
public:
|
||||||
|
Lego3DManager();
|
||||||
|
virtual ~Lego3DManager();
|
||||||
|
|
||||||
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined4 m_unk0x00; // 0x00
|
Tgl::Renderer* m_render; // 0x04
|
||||||
undefined4 m_unk0x04; // 0x04
|
Lego3DView* m_3dView; // 0x08
|
||||||
Lego3DView* m_3dView; // 0x08
|
MxUnknown100dbdbc* m_unk0x0c; // 0x0c
|
||||||
|
|
||||||
|
void Init(MxRenderSettings& p_settings);
|
||||||
|
void Destroy();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGO3DMANAGER_H
|
#endif // LEGO3DMANAGER_H
|
||||||
|
|||||||
@ -1,6 +1,25 @@
|
|||||||
#include "lego3dview.h"
|
#include "lego3dview.h"
|
||||||
|
|
||||||
#include "legoroi.h"
|
#include "legoroi.h"
|
||||||
|
#include "tgl/tgl.h"
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x100aae90
|
||||||
|
Lego3DView::Lego3DView()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x100aaf30
|
||||||
|
Lego3DView::~Lego3DView()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x
|
||||||
|
MxBool Lego3DView::Init(MxRenderSettings& p_renderSettings, Tgl::Renderer& render)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100ab2b0
|
// STUB: LEGO1 0x100ab2b0
|
||||||
LegoROI* Lego3DView::PickROI(MxLong p_a, MxLong p_b)
|
LegoROI* Lego3DView::PickROI(MxLong p_a, MxLong p_b)
|
||||||
|
|||||||
@ -6,11 +6,17 @@
|
|||||||
#include "viewmanager/viewmanager.h"
|
#include "viewmanager/viewmanager.h"
|
||||||
|
|
||||||
class LegoROI;
|
class LegoROI;
|
||||||
|
class MxRenderSettings;
|
||||||
|
class Tgl::Renderer;
|
||||||
|
|
||||||
class Lego3DView {
|
class Lego3DView {
|
||||||
public:
|
public:
|
||||||
|
Lego3DView();
|
||||||
|
virtual ~Lego3DView();
|
||||||
|
|
||||||
inline ViewManager* GetViewManager() { return this->m_viewManager; }
|
inline ViewManager* GetViewManager() { return this->m_viewManager; }
|
||||||
inline TglImpl::ViewImpl* GetViewPort() { return this->m_viewPort; }
|
inline TglImpl::ViewImpl* GetViewPort() { return this->m_viewPort; }
|
||||||
|
MxBool Init(MxRenderSettings& p_renderSettings, Tgl::Renderer& render);
|
||||||
LegoROI* PickROI(MxLong p_a, MxLong p_b);
|
LegoROI* PickROI(MxLong p_a, MxLong p_b);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
19
LEGO1/mxrendersettings.cpp
Normal file
19
LEGO1/mxrendersettings.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include "mxrendersettings.h"
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100ab2d0
|
||||||
|
MxU32 MxRenderSettings::operator=(const MxRenderSettings& p_settings)
|
||||||
|
{
|
||||||
|
this->m_unk0x00 = p_settings.m_unk0x00;
|
||||||
|
this->m_hwnd = p_settings.m_hwnd;
|
||||||
|
this->m_directDraw = p_settings.m_directDraw;
|
||||||
|
this->m_ddSurface1 = p_settings.m_ddSurface1;
|
||||||
|
this->m_ddSurface2 = p_settings.m_ddSurface2;
|
||||||
|
this->m_flags = p_settings.m_flags;
|
||||||
|
this->m_unk0x18 = p_settings.m_unk0x18;
|
||||||
|
this->m_flags2 = p_settings.m_flags2;
|
||||||
|
this->m_direct3d = p_settings.m_direct3d;
|
||||||
|
this->m_d3dDevice = p_settings.m_d3dDevice;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
26
LEGO1/mxrendersettings.h
Normal file
26
LEGO1/mxrendersettings.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef MXRENDERSETTINGS_H
|
||||||
|
#define MXRENDERSETTING_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "mxtypes.h"
|
||||||
|
|
||||||
|
#include <d3d.h>
|
||||||
|
#include <ddraw.h>
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
class MxRenderSettings {
|
||||||
|
public:
|
||||||
|
MxU32 operator=(const MxRenderSettings& p_settings);
|
||||||
|
|
||||||
|
undefined4 m_unk0x00; // 0x00
|
||||||
|
HWND m_hwnd; // 0x04
|
||||||
|
IDirectDraw* m_directDraw; // 0x08
|
||||||
|
IDirectDrawSurface* m_ddSurface1; // 0x0c
|
||||||
|
IDirectDrawSurface* m_ddSurface2; // 0x10
|
||||||
|
MxU32 m_flags; // 0x14
|
||||||
|
undefined4 m_unk0x18; // 0x18
|
||||||
|
MxU32 m_flags2; // 0x1c
|
||||||
|
IDirect3D* m_direct3d; // 0x20
|
||||||
|
IDirect3DDevice* m_d3dDevice; // 0x24
|
||||||
|
};
|
||||||
|
#endif // MXRENDERSETTINGS_H
|
||||||
@ -9,3 +9,9 @@ MxUnknown100dbdbc::MxUnknown100dbdbc()
|
|||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x100a7130
|
||||||
|
MxUnknown100dbdbc::~MxUnknown100dbdbc()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|||||||
@ -9,9 +9,10 @@
|
|||||||
class MxUnknown100dbdbc {
|
class MxUnknown100dbdbc {
|
||||||
public:
|
public:
|
||||||
MxUnknown100dbdbc();
|
MxUnknown100dbdbc();
|
||||||
|
virtual ~MxUnknown100dbdbc();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined m_unk0x4[0x14]; // TODO: change to 0x10 once scalar deconstructor is added
|
undefined m_unk0x4[0x10];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXUNKNOWN100DBDBC_H
|
#endif // MXUNKNOWN100DBDBC_H
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user