From b338a66a7727a4028a8dfe6bf54c06801c490c91 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Fri, 20 Dec 2024 17:50:33 +0100 Subject: [PATCH] Implement GroupImpl::RemoveAll (#1244) * Implement GroupImpl::RemoveAll (81.30%) * Minor improvement * Add 2 to total function count --------- Co-authored-by: Christian Semmler --- .github/workflows/build.yml | 2 +- LEGO1/tgl/d3drm/group.cpp | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 36a7db9a..a946f005 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -139,7 +139,7 @@ jobs: run: | reccmp-reccmp -S CONFIGPROGRESS.SVG --svg-icon assets/config.png --target CONFIG | tee CONFIGPROGRESS.TXT reccmp-reccmp -S ISLEPROGRESS.SVG --svg-icon assets/isle.png --target ISLE | tee ISLEPROGRESS.TXT - reccmp-reccmp -S LEGO1PROGRESS.SVG -T 4352 --svg-icon assets/lego1.png --target LEGO1 | tee LEGO1PROGRESS.TXT + reccmp-reccmp -S LEGO1PROGRESS.SVG -T 4354 --svg-icon assets/lego1.png --target LEGO1 | tee LEGO1PROGRESS.TXT - name: Compare Accuracy With Current Master shell: bash diff --git a/LEGO1/tgl/d3drm/group.cpp b/LEGO1/tgl/d3drm/group.cpp index a9df8fd6..854788b8 100644 --- a/LEGO1/tgl/d3drm/group.cpp +++ b/LEGO1/tgl/d3drm/group.cpp @@ -106,10 +106,26 @@ 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; + IDirect3DRMFrame2* frame = m_data; + Result result = (Result) SUCCEEDED(frame->GetVisuals(&visuals)); + + if (result == Success) { + for (int i = 0; i < (int) visuals->GetSize(); i++) { + IDirect3DRMVisual* visual; + + result = (Result) SUCCEEDED(visuals->GetElement(i, &visual)); + frame->DeleteVisual(visual); + visual->Release(); + } + + visuals->Release(); + } + + return result; } // STUB: LEGO1 0x100a3540