Start optimizing memory usage

This commit is contained in:
Joshua Peisach 2025-08-06 10:21:03 -04:00
parent f2b6188d89
commit 41de1b8cf2
No known key found for this signature in database
GPG Key ID: 41C3D4189AFEDB5A
26 changed files with 19 additions and 45 deletions

View File

@ -84,7 +84,7 @@ MxU8 g_mousedown = FALSE;
MxU8 g_mousemoved = FALSE;
// GLOBAL: ISLE 0x41003c
MxS32 g_closed = FALSE;
MxBool g_closed = FALSE;
// GLOBAL: ISLE 0x410050
MxS32 g_rmDisabled = FALSE;

View File

@ -73,20 +73,20 @@ class IsleApp {
char* m_deviceId; // 0x08
char* m_savePath; // 0x0c
MxBool m_fullScreen; // 0x10
MxS32 m_flipSurfaces; // 0x14
MxS32 m_backBuffersInVram; // 0x18
MxS32 m_using8bit; // 0x1c
MxS32 m_using16bit; // 0x20
MxS32 m_hasLightSupport; // 0x24
MxS32 m_use3dSound; // 0x28
MxS32 m_useMusic; // 0x2c
MxS32 m_wideViewAngle; // 0x38
MxBool m_flipSurfaces; // 0x14
MxBool m_backBuffersInVram; // 0x18
MxBool m_using8bit; // 0x1c
MxBool m_using16bit; // 0x20
MxBool m_hasLightSupport; // 0x24
MxBool m_use3dSound; // 0x28
MxBool m_useMusic; // 0x2c
MxBool m_wideViewAngle; // 0x38
MxS32 m_islandQuality; // 0x3c
MxS32 m_islandTexture; // 0x40
MxS32 m_gameStarted; // 0x44
MxLong m_frameDelta; // 0x48
MxVideoParam m_videoParam; // 0x4c
MxS32 m_windowActive; // 0x70
MxBool m_windowActive; // 0x70
HWND m_windowHandle; // 0x74
MxS32 m_drawCursor; // 0x78
SDL_Cursor* m_cursorArrow; // 0x7c
@ -119,7 +119,7 @@ class IsleApp {
};
extern IsleApp* g_isle;
extern MxS32 g_closed;
extern MxBool g_closed;
extern IDirect3DRMMiniwinDevice* GetD3DRMMiniwinDevice();

View File

@ -49,7 +49,7 @@ class Act2Brick : public LegoPathActor {
undefined4 m_unk0x164; // 0x164
Mx3DPointFloat m_unk0x168; // 0x168
Mx3DPointFloat m_unk0x17c; // 0x17c
MxS32 m_unk0x190; // 0x190
MxU8 m_unk0x190; // 0x190
};
#endif // ACT2BRICK_H

View File

@ -96,7 +96,6 @@ class LegoVideoManager : public MxVideoManager {
LegoROI* m_viewROI; // 0x6c
undefined4 m_unk0x70; // 0x70
MxDirect3D* m_direct3d; // 0x74
undefined4 m_unk0x78[27]; // 0x78
MxBool m_render3d; // 0xe4
MxBool m_unk0xe5; // 0xe5
MxBool m_unk0xe6; // 0xe6

View File

@ -14,10 +14,10 @@ DECOMP_SIZE_ASSERT(LegoPathController::CtrlBoundary, 0x08)
DECOMP_SIZE_ASSERT(LegoPathController::CtrlEdge, 0x08)
// GLOBAL: LEGO1 0x100d7cc8
MxU32 g_unk0x100d7cc8[] = {2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0};
MxU8 g_unk0x100d7cc8[] = {2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0};
// GLOBAL: LEGO1 0x100d7d08
MxU32 g_unk0x100d7d08[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
MxU8 g_unk0x100d7d08[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
// GLOBAL: LEGO1 0x100f42e8
// GLOBAL: BETA10 0x101f25f0

View File

@ -1,6 +1,7 @@
#include "legoanimpresenter.h"
#include "3dmanager/lego3dmanager.h"
#include "SDL3/SDL_log.h"
#include "anim/legoanim.h"
#include "define.h"
#include "legoanimactor.h"

View File

@ -36,8 +36,6 @@ LegoVideoManager::LegoVideoManager()
m_viewROI = NULL;
m_direct3d = NULL;
m_unk0xe6 = FALSE;
memset(m_unk0x78, 0, sizeof(m_unk0x78));
m_unk0x78[0] = 0x6c;
m_phonemeRefList = NULL;
m_isFullscreenMovie = FALSE;
m_palette = NULL;

View File

@ -15,7 +15,6 @@ Lego3DView::Lego3DView()
{
m_pViewManager = 0;
m_previousRenderTime = 0;
m_unk0x98 = 0;
m_pPointOfView = 0;
}
@ -50,7 +49,6 @@ BOOL Lego3DView::Create(const TglSurface::CreateStruct& rCreateStruct, Tgl::Rend
m_pViewManager->SetResolution(GetWidth(), GetHeight());
m_pViewManager->SetFrustrum(viewAngle, frontClippingDistance, backClippingDistance);
m_previousRenderTime = 0;
m_unk0x98 = 0;
// // NOTE: a derived class must inform view manager when it configures
// // its (Tgl) view: calling Tgl::View::SetFrustrum() should be

View File

@ -35,7 +35,6 @@ class Lego3DView : public LegoView1 {
private:
ViewManager* m_pViewManager; // 0x88
double m_previousRenderTime; // 0x90
double m_unk0x98; // 0x98
ViewROI* m_pPointOfView; // 0xa0
};

View File

@ -64,7 +64,6 @@ class MxDirect3D : public MxDirectDraw {
IDirect3D2* m_pDirect3d; // 0x884
IDirect3DDevice2* m_pDirect3dDevice; // 0x888
BOOL m_bTexturesDisabled; // 0x88c
undefined4 m_unk0x890; // 0x890
std::string m_deviceName;
std::string m_deviceDesc;
};

View File

@ -102,7 +102,6 @@ class MxDirectDraw {
BOOL m_bIgnoreWMSIZE; // 0x844
BOOL m_bPrimaryPalettized; // 0x848
BOOL m_bFullScreen; // 0x84c
void* m_unk0x850; // 0x850
BOOL m_bOnlySystemMemory; // 0x854
BOOL m_bIsOnPrimaryDevice; // 0x858
ErrorHandler m_pErrorHandler; // 0x85c

View File

@ -28,10 +28,9 @@ struct DeviceModesInfo {
DeviceModesInfo();
~DeviceModesInfo();
GUID* m_guid; // 0x00
int m_count; // 0x08
DDCAPS m_ddcaps; // 0x0c
void* m_unk0x178; // 0x178
GUID* m_guid; // 0x00
int m_count; // 0x08
DDCAPS m_ddcaps; // 0x0c
// SYNTHETIC: BETA10 0x1011c650
// DeviceModesInfo::`scalar deleting destructor'

View File

@ -129,7 +129,6 @@ class MxDSAction : public MxDSObject {
char* m_extraData; // 0x7c
MxU16 m_extraLength; // 0x80
MxCore* m_notificationObject; // 0x84
undefined4 m_unk0x88; // 0x88
MxCore* m_origin; // 0x8c
MxLong m_timeStarted; // 0x90
};

View File

@ -100,7 +100,6 @@ class MxDSBuffer : public MxCore {
MxU8* m_pIntoBuffer; // 0x0c
MxU8* m_pIntoBuffer2; // 0x10
undefined4 m_unk0x14; // 0x14
undefined4 m_unk0x18; // 0x18
undefined4 m_unk0x1c; // 0x1c
MxU16 m_referenceCount; // 0x20
Type m_mode; // 0x24

View File

@ -77,7 +77,6 @@ class MxDSMediaAction : public MxDSAction {
MxS32 m_mediaFormat; // 0xa8
MxS32 m_paletteManagement; // 0xac
MxLong m_sustainTime; // 0xb0
undefined4 m_unk0xb4; // 0xb4
};
#endif // MXDSMEDIAACTION_H

View File

@ -42,7 +42,6 @@ class MxDSSerialAction : public MxDSMultiAction {
private:
MxDSActionListCursor* m_cursor; // 0x9c
undefined4 m_unk0xa0; // 0xa0
undefined4 m_unk0xa4; // 0xa4
};
#endif // MXDSSERIALACTION_H

View File

@ -71,7 +71,6 @@ class MxDSStreamingAction : public MxDSAction {
MxDSBuffer* m_unk0xa0; // 0xa0
MxDSBuffer* m_unk0xa4; // 0xa4
MxLong m_unk0xa8; // 0xa8
undefined2 m_unk0xac; // 0xac
MxDSAction* m_internalAction; // 0xb0
};

View File

@ -31,7 +31,6 @@ class MxNotificationManager : public MxCore {
MxNotificationPtrList* m_queue; // 0x08
MxNotificationPtrList* m_sendList; // 0x0c
MxCriticalSection m_lock; // 0x10
MxS32 m_unk0x2c; // 0x2c
MxIdList m_listenerIds; // 0x30
MxBool m_active; // 0x3c

View File

@ -64,7 +64,6 @@ class MxVideoParam {
MxPalette* m_palette; // 0x10
MxU32 m_backBuffers; // 0x14
MxVideoParamFlags m_flags; // 0x18
int m_unk0x1c; // 0x1c
char* m_deviceId; // 0x20
MxU32 m_msaaSamples;
MxFloat m_anisotropic;

View File

@ -29,7 +29,6 @@ MxDSAction::MxDSAction()
m_direction.Fill(FLT_MAX);
m_up.Fill(FLT_MAX);
m_notificationObject = NULL;
m_unk0x88 = 0;
m_origin = NULL;
m_timeStarted = INT_MIN;
}
@ -90,7 +89,6 @@ void MxDSAction::CopyFrom(MxDSAction& p_dsAction)
m_up = p_dsAction.m_up;
AppendExtra(p_dsAction.m_extraLength, p_dsAction.m_extraData);
m_notificationObject = p_dsAction.m_notificationObject;
m_unk0x88 = p_dsAction.m_unk0x88;
m_origin = p_dsAction.m_origin;
m_timeStarted = p_dsAction.m_timeStarted;
}

View File

@ -15,7 +15,6 @@ MxDSMediaAction::MxDSMediaAction()
m_unk0x9c.SetUnk0x04(0);
m_framesPerSecond = 0;
m_mediaFormat = 0;
m_unk0xb4 = -1;
m_paletteManagement = 1;
m_sustainTime = 0;
}

View File

@ -55,7 +55,6 @@ void MxDSStreamingAction::Init()
m_unk0xa0 = NULL;
m_unk0xa4 = NULL;
m_unk0xa8 = 0;
m_unk0xac = 2;
m_internalAction = NULL;
}
@ -69,7 +68,6 @@ MxDSStreamingAction* MxDSStreamingAction::CopyFrom(MxDSStreamingAction& p_dsStre
m_unk0x9c = p_dsStreamingAction.m_unk0x9c;
m_unk0xa0 = NULL;
m_unk0xa4 = NULL;
m_unk0xac = p_dsStreamingAction.m_unk0xac;
m_unk0xa8 = p_dsStreamingAction.m_unk0xa8;
SetInternalAction(p_dsStreamingAction.m_internalAction ? p_dsStreamingAction.m_internalAction->Clone() : NULL);

View File

@ -14,7 +14,7 @@
DECOMP_SIZE_ASSERT(MxSoundManager, 0x3c);
// GLOBAL LEGO1 0x10101420
MxS32 g_volumeAttenuation[100] = {-6643, -5643, -5058, -4643, -4321, -4058, -3836, -3643, -3473, -3321, -3184, -3058,
MxS16 g_volumeAttenuation[100] = {-6643, -5643, -5058, -4643, -4321, -4058, -3836, -3643, -3473, -3321, -3184, -3058,
-2943, -2836, -2736, -2643, -2556, -2473, -2395, -2321, -2251, -2184, -2120, -2058,
-2000, -1943, -1888, -1836, -1785, -1736, -1689, -1643, -1599, -1556, -1514, -1473,
-1434, -1395, -1358, -1321, -1286, -1251, -1217, -1184, -1152, -1120, -1089, -1058,

View File

@ -29,7 +29,6 @@ MxNotification::~MxNotification()
// FUNCTION: BETA10 0x10125805
MxNotificationManager::MxNotificationManager() : MxCore(), m_lock(), m_listenerIds()
{
m_unk0x2c = 0;
m_queue = NULL;
m_active = TRUE;
m_sendList = NULL;

View File

@ -22,7 +22,6 @@ MxDSBuffer::MxDSBuffer()
m_pIntoBuffer2 = NULL;
m_referenceCount = 0;
m_unk0x14 = 0;
m_unk0x18 = 0;
m_unk0x1c = 0;
m_writeOffset = 0;
m_bytesRemaining = 0;

View File

@ -14,7 +14,6 @@ MxVideoParam::MxVideoParam()
m_rect = MxRect32(0, 0, 640, 480);
m_palette = NULL;
m_backBuffers = 0;
m_unk0x1c = 0;
m_deviceId = NULL;
}
@ -26,7 +25,6 @@ MxVideoParam::MxVideoParam(MxRect32& p_rect, MxPalette* p_palette, MxULong p_bac
m_palette = p_palette;
m_backBuffers = p_backBuffers;
m_flags = p_flags;
m_unk0x1c = 0;
m_deviceId = NULL;
m_msaaSamples = 0;
m_anisotropic = 0.0f;
@ -40,7 +38,6 @@ MxVideoParam::MxVideoParam(MxVideoParam& p_videoParam)
m_palette = p_videoParam.m_palette;
m_backBuffers = p_videoParam.m_backBuffers;
m_flags = p_videoParam.m_flags;
m_unk0x1c = p_videoParam.m_unk0x1c;
m_deviceId = NULL;
SetDeviceName(p_videoParam.m_deviceId);
m_msaaSamples = p_videoParam.m_msaaSamples;
@ -84,7 +81,6 @@ MxVideoParam& MxVideoParam::operator=(const MxVideoParam& p_videoParam)
m_palette = p_videoParam.m_palette;
m_backBuffers = p_videoParam.m_backBuffers;
m_flags = p_videoParam.m_flags;
m_unk0x1c = p_videoParam.m_unk0x1c;
SetDeviceName(p_videoParam.m_deviceId);
m_msaaSamples = p_videoParam.m_msaaSamples;
m_anisotropic = p_videoParam.m_anisotropic;