From 7eb52b153e8e7a31156604aa95a9cd5b86a51140 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Fri, 20 Dec 2024 16:50:27 +0100 Subject: [PATCH] Implement GroupImpl::RemoveAll (81.30%) --- LEGO1/tgl/d3drm/group.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/LEGO1/tgl/d3drm/group.cpp b/LEGO1/tgl/d3drm/group.cpp index a9df8fd6..cb995c44 100644 --- a/LEGO1/tgl/d3drm/group.cpp +++ b/LEGO1/tgl/d3drm/group.cpp @@ -106,10 +106,24 @@ Result GroupImpl::Remove(const Group* pGroup) return ResultVal(m_data->DeleteVisual(pGroupImpl->m_data)); } -// STUB: LEGO1 0x100a34b0 +// FUNCTION: LEGO1 0x100a34b0 Result GroupImpl::RemoveAll() { - return Error; + IDirect3DRMVisualArray *visuals; + int i; + IDirect3DRMFrame2 *frame = m_data; + Result result = (Result)SUCCEEDED(frame->GetVisuals(&visuals)); + if (result) { + for (i = 0; i < (int)visuals->GetSize(); ) { + IDirect3DRMVisual *visual; + result = (Result)SUCCEEDED(visuals->GetElement(i, &visual)); + frame->DeleteVisual(visual); + i += 1; + visual->Release(); + } + visuals->Release(); + } + return result; } // STUB: LEGO1 0x100a3540