2023-06-18 07:45:39 -04:00
|
|
|
#ifndef LEGO3DMANAGER_H
|
|
|
|
#define LEGO3DMANAGER_H
|
|
|
|
|
|
|
|
#include "lego3dview.h"
|
|
|
|
|
2024-01-01 19:17:38 -05:00
|
|
|
class ViewLODListManager;
|
2023-12-28 12:38:37 -05:00
|
|
|
|
|
|
|
// VTABLE: LEGO1 0x100dbfa4
|
|
|
|
// SIZE 0x10
|
2023-10-24 19:38:27 -04:00
|
|
|
class Lego3DManager {
|
2023-06-18 07:45:39 -04:00
|
|
|
public:
|
2024-01-01 19:17:38 -05:00
|
|
|
// SIZE 0x28
|
|
|
|
struct CreateStruct {
|
|
|
|
undefined4 m_unk0x00; // 0x00
|
|
|
|
HWND m_hwnd; // 0x04
|
|
|
|
IDirectDraw* m_directDraw; // 0x08
|
|
|
|
IDirectDrawSurface* m_ddSurface1; // 0x0c
|
|
|
|
IDirectDrawSurface* m_ddSurface2; // 0x10
|
|
|
|
IDirectDrawPalette* m_ddPalette; // 0x14
|
|
|
|
BOOL m_isFullScreen; // 0x18
|
|
|
|
MxU32 m_flags; // 0x1c
|
|
|
|
IDirect3D* m_direct3d; // 0x20
|
|
|
|
IDirect3DDevice* m_d3dDevice; // 0x24
|
|
|
|
};
|
|
|
|
|
2023-12-28 12:38:37 -05:00
|
|
|
Lego3DManager();
|
|
|
|
virtual ~Lego3DManager();
|
|
|
|
|
2024-01-01 19:17:38 -05:00
|
|
|
BOOL Create(CreateStruct& p_createStruct);
|
|
|
|
|
2023-10-24 19:38:27 -04:00
|
|
|
inline Lego3DView* GetLego3DView() { return this->m_3dView; }
|
2024-01-01 19:17:38 -05:00
|
|
|
inline ViewLODListManager* GetViewLODListManager() { return this->m_viewLODListManager; }
|
2023-06-18 07:45:39 -04:00
|
|
|
|
|
|
|
private:
|
2024-01-01 19:17:38 -05:00
|
|
|
Tgl::Renderer* m_renderer; // 0x04
|
|
|
|
Lego3DView* m_3dView; // 0x08
|
|
|
|
ViewLODListManager* m_viewLODListManager; // 0x0c
|
2023-12-28 12:38:37 -05:00
|
|
|
|
|
|
|
void Destroy();
|
2023-06-18 07:45:39 -04:00
|
|
|
};
|
|
|
|
|
2023-12-28 12:38:37 -05:00
|
|
|
// SYNTHETIC: LEGO1 0x100ab340
|
|
|
|
// Lego3DManager::`scalar deleting destructor'
|
|
|
|
|
2023-06-18 07:45:39 -04:00
|
|
|
#endif // LEGO3DMANAGER_H
|