NiGeometry: HasUVs/HasTangents setters honor value argument#26
Merged
ousnius merged 1 commit intoousnius:mainfrom Apr 25, 2026
Merged
NiGeometry: HasUVs/HasTangents setters honor value argument#26ousnius merged 1 commit intoousnius:mainfrom
ousnius merged 1 commit intoousnius:mainfrom
Conversation
Both setters were hardcoded to `= true`, ignoring the caller's argument. `destShape.HasUVs = false` and `destShape.HasTangents = false` were silent no-ops, which broke CloneShape's ModelSpace path: it does `destShape.HasTangents = false` (mirroring C++ NifFile.cpp:1349 `bsOptShape->SetTangents(false)`) but the assignment never propagated to GeometryData. C++ reference: NiShape::SetUVs / NiShape::SetTangents in Geometry.cpp:288-292 and 316-320 pass `enable` straight through to `geomData->SetUVs(enable)` / `geomData->SetTangents(enable)`. HasNormals and HasVertexColors were already correct; only HasUVs and HasTangents had this typo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both setters are hardcoded to
= true, ignoring the caller's argument.destShape.HasUVs = falseanddestShape.HasTangents = falsewere silent no-ops.This breaks
CloneShape's ModelSpace path, which doesdestShape.HasTangents = false(mirroring C++NifFile.cpp:1349bsOptShape->SetTangents(false)) — the assignment never propagated toGeometryData.C++ reference:
nifly/Geometry.cpp:288-292and:316-320—NiShape::SetUVs/NiShape::SetTangentspassenablestraight through togeomData->SetUVs(enable)/geomData->SetTangents(enable).HasNormalsandHasVertexColorswere already correct; onlyHasUVsandHasTangentshad the typo.Maps to issue #15 items E12 and E13.