From 8a37ec07d14b5691b222ebb749cf4df32b5a8d09 Mon Sep 17 00:00:00 2001 From: Kristopher Early <1191258+MrPolymorph@users.noreply.github.com> Date: Mon, 16 Oct 2023 19:15:54 +0100 Subject: [PATCH] J3DVisibility OK (#527) * J3DVisibility OK * Addressing review comments --- configure.py | 2 +- include/JSystem/J3DGraphAnimator/J3DModel.h | 4 +-- .../J3DGraphAnimator/J3DVisibility.cpp | 33 +++++++++++-------- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/configure.py b/configure.py index 70ad8691f..9f5603ed7 100644 --- a/configure.py +++ b/configure.py @@ -875,7 +875,7 @@ config.libs = [ Object(NonMatching, "JSystem/J3DGraphAnimator/J3DModel.cpp"), Object(NonMatching, "JSystem/J3DGraphAnimator/J3DAnimation.cpp"), Object(NonMatching, "JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp"), - Object(NonMatching, "JSystem/J3DGraphAnimator/J3DVisibility.cpp"), + Object(Matching, "JSystem/J3DGraphAnimator/J3DVisibility.cpp"), Object(NonMatching, "JSystem/J3DGraphAnimator/J3DCluster.cpp"), Object(NonMatching, "JSystem/J3DGraphAnimator/J3DJoint.cpp"), Object(Matching, "JSystem/J3DGraphAnimator/J3DNode.cpp"), diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 2faabea94..58ac20a45 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -38,13 +38,13 @@ class J3DVisibilityManager { public: J3DVisibilityManager(J3DAnmVisibilityFull* visibility) { mAnmVisibility = visibility; - field_0x8 = 1; + mbActive = 1; } virtual ~J3DVisibilityManager(); virtual void setVisibility(J3DModelData*); /* 0x04 */ J3DAnmVisibilityFull* mAnmVisibility; - /* 0x08 */ int field_0x8; + /* 0x08 */ int mbActive; }; class J3DUnkCallBack { diff --git a/src/JSystem/J3DGraphAnimator/J3DVisibility.cpp b/src/JSystem/J3DGraphAnimator/J3DVisibility.cpp index 52a9da0f9..a9365b342 100644 --- a/src/JSystem/J3DGraphAnimator/J3DVisibility.cpp +++ b/src/JSystem/J3DGraphAnimator/J3DVisibility.cpp @@ -1,17 +1,24 @@ -// -// Generated by dtk -// Translation Unit: J3DVisibility.cpp -// +/* + * J3DVisibility.cpp + */ +#include "JSystem/J3DGraphAnimator/J3DModel.h" +#include "JSystem/J3DGraphAnimator/J3DModelData.h" +#include "JSystem/J3DGraphAnimator/J3DAnimation.h" -#include "JSystem/J3DGraphAnimator/J3DVisibility.h" -#include "dolphin/types.h" +void J3DVisibilityManager::setVisibility(J3DModelData* pModel) { + u8 visibility; -/* 802F36BC-802F377C .text setVisibility__20J3DVisibilityManagerFP12J3DModelData */ -void J3DVisibilityManager::setVisibility(J3DModelData*) { - /* Nonmatching */ + if ((mbActive & 1) != 0 && mAnmVisibility != NULL) { + for (u16 index = 0; index < pModel->getShapeNum(); index++) { + visibility = 0; + mAnmVisibility->getVisibility(index, &visibility); + if (visibility != 0) { + pModel->getShapeNodePointer(index)->offFlag(1); + } else { + pModel->getShapeNodePointer(index)->onFlag(1); + } + } + } } -/* 802F377C-802F37C4 .text __dt__20J3DVisibilityManagerFv */ -J3DVisibilityManager::~J3DVisibilityManager() { - /* Nonmatching */ -} +J3DVisibilityManager::~J3DVisibilityManager() {}