From e9b98b8c6916f00a5f3b1335ac9251504299cdd4 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Thu, 29 Oct 2026 12:33:14 +0100 Subject: [PATCH] Rename AffineMatrix -> matrix (DHXJ); clashes with variables named matrix use the elaborated form 'struct matrix'. Pure rename, codegen unchanged (383/383 functions identical with includers). --- Source/Contents/Camera/CameraFrame.cpp | 2 +- Source/Contents/Camera/CameraFrame.h | 6 +-- Source/Contents/Camera/CameraQueries.cpp | 4 +- .../Effects/EffectPrimitiveMotion.cpp | 32 +++++++-------- Source/Contents/Models/ModelActor.cpp | 8 ++-- Source/Contents/Models/ModelActor.h | 4 +- Source/Contents/Models/ModelActorBounds.cpp | 12 +++--- Source/Contents/Models/ModelAnimation.cpp | 18 ++++----- Source/Contents/Models/ModelAnimation.h | 14 +++---- Source/Contents/Models/ModelLighting.cpp | 4 +- Source/Contents/Models/ModelNode.cpp | 14 +++---- Source/Contents/Models/ModelNode.h | 6 +-- Source/Contents/Models/ModelNodeBounds.cpp | 4 +- Source/Contents/Models/ModelQuaternion.cpp | 2 +- Source/Contents/Models/ModelRendering.cpp | 4 +- Source/Resource/Models/GrannyModelResource.h | 4 +- Source/Resource/Models/ModelResource.cpp | 4 +- Source/Resource/World/WorldResource.cpp | 2 +- Source/Utility/Math/AffineLookAt.cpp | 2 +- Source/Utility/Math/AffineMatrix.cpp | 40 +++++++++---------- Source/Utility/Math/AffineMatrix.h | 10 ++--- 21 files changed, 98 insertions(+), 98 deletions(-) diff --git a/Source/Contents/Camera/CameraFrame.cpp b/Source/Contents/Camera/CameraFrame.cpp index 38e58475..f29c1566 100644 --- a/Source/Contents/Camera/CameraFrame.cpp +++ b/Source/Contents/Camera/CameraFrame.cpp @@ -14,7 +14,7 @@ void ResetCamera(CameraState& camera, CameraFrame& frame) { // INLINED void CameraFrame::Build(const CameraState& camera, const TerrainHeight& terrain) { constexpr float pi = 3.141592f; - AffineMatrix orbit; + matrix orbit; orbit.MakeXRotation((camera.pitch / 180.0f) * pi); orbit.AppendYRotation((camera.yaw / 180.0f) * pi); const float distance = -camera.distance; diff --git a/Source/Contents/Camera/CameraFrame.h b/Source/Contents/Camera/CameraFrame.h index 1a0f7bf3..43fe8696 100644 --- a/Source/Contents/Camera/CameraFrame.h +++ b/Source/Contents/Camera/CameraFrame.h @@ -12,13 +12,13 @@ class CRenderer; struct CameraFrame { /* 0080 */ float eye[3]; /* 008C */ float up[3]; - /* 0098 */ AffineMatrix view; - /* 00C8 */ AffineMatrix inverse; + /* 0098 */ matrix view; + /* 00C8 */ matrix inverse; void Build(const CameraState& camera, const TerrainHeight& terrain); void Refresh(const CameraState& camera, const TerrainHeight& terrain, CRenderer& renderer); void Forward(const CameraState& camera, float* output) const; - void AlternateView(const CameraState& camera, float yaw, const TerrainHeight& terrain, AffineMatrix& output) const; + void AlternateView(const CameraState& camera, float yaw, const TerrainHeight& terrain, matrix& output) const; }; void ResetCamera(CameraState& camera, CameraFrame& frame); diff --git a/Source/Contents/Camera/CameraQueries.cpp b/Source/Contents/Camera/CameraQueries.cpp index fed26519..a20e4369 100644 --- a/Source/Contents/Camera/CameraQueries.cpp +++ b/Source/Contents/Camera/CameraQueries.cpp @@ -30,9 +30,9 @@ void CameraFrame::Forward(const CameraState& camera, float* output) const { // OFFSET: 0x00ADBB60 // FUNCTION: fn_17925 -void CameraFrame::AlternateView(const CameraState& camera, float yaw, const TerrainHeight& terrain, AffineMatrix& output) const { +void CameraFrame::AlternateView(const CameraState& camera, float yaw, const TerrainHeight& terrain, matrix& output) const { constexpr float pi = 3.141592f; - AffineMatrix orbit; + matrix orbit; orbit.MakeXRotation((camera.pitch / 180.0f) * pi); orbit.AppendYRotation((yaw / 180.0f) * pi); const float distance = -camera.distance; diff --git a/Source/Contents/Effects/EffectPrimitiveMotion.cpp b/Source/Contents/Effects/EffectPrimitiveMotion.cpp index 96b3b2ec..8b1138c0 100644 --- a/Source/Contents/Effects/EffectPrimitiveMotion.cpp +++ b/Source/Contents/Effects/EffectPrimitiveMotion.cpp @@ -200,7 +200,7 @@ bool MoveEffectPrimitive(EffectPrimitiveState& particle, RenderObjectState& rend particle.unknown_0364 = 0; } - AffineMatrix matrix; + struct matrix matrix; if ((particle.flags & 0x200u) != 0) { matrix.SetZRotation(context.cameraPitch); @@ -438,7 +438,7 @@ bool Prim3DCylinder(EffectPrimitiveState& particle, RenderObjectState& render, E particle.unknown_0330 = particle.unknown_033C + particle.unknown_0330; particle.unknown_030C = particle.unknown_0330 + particle.unknown_030C; - AffineMatrix& matrix = *reinterpret_cast(particle.matrix1); + struct matrix& matrix = *reinterpret_cast(particle.matrix1); matrix.MakeXRotation(GetRadian(static_cast(particle.unknown_0310))); matrix.AppendYRotation(GetRadian(static_cast(particle.unknown_030C))); @@ -491,7 +491,7 @@ bool Prim3DCylinderHalf(EffectPrimitiveState& particle, RenderObjectState& rende particle.unknown_02FC = particle.unknown_0304 + particle.unknown_02FC; particle.unknown_0364 = particle.unknown_0368 + particle.unknown_0364; - AffineMatrix& matrix = *reinterpret_cast(particle.matrix1); + struct matrix& matrix = *reinterpret_cast(particle.matrix1); matrix.MakeXRotation(GetRadian(static_cast(particle.unknown_0310))); matrix.AppendYRotation(GetRadian(static_cast(particle.unknown_030C))); @@ -827,8 +827,8 @@ void CEffectPrim::Prim3DCircle() { this->state.unknown_0348 = side; this->state.unknown_02F4 = vertical; - reinterpret_cast(this->state.matrix1)->MakeXRotation(GetRadian(static_cast(this->state.unknown_0310))); - reinterpret_cast(this->state.matrix1)->AppendYRotation(GetRadian(static_cast(this->state.unknown_030C))); + reinterpret_cast(this->state.matrix1)->MakeXRotation(GetRadian(static_cast(this->state.unknown_0310))); + reinterpret_cast(this->state.matrix1)->AppendYRotation(GetRadian(static_cast(this->state.unknown_030C))); const float distance = this->state.unknown_02BC; this->state.unknown_0370 = Forward(distance, this->state.matrix1); @@ -2353,8 +2353,8 @@ bool CEffectPrim::UpdateHit6() { this->state.unknown_02BC = static_cast(rand() % 35 + 15) / 100.0f; this->state.unknown_030C = static_cast(rand() % 80) + (this->state.unknown_030C - 40.0f); this->state.unknown_0310 = static_cast(rand() % 80) + (this->state.unknown_0310 - 40.0f); - reinterpret_cast(this->state.matrix1)->SetYRotation(GetRadian(static_cast(this->state.unknown_030C))); - reinterpret_cast(this->state.matrix1)->RotateX(GetRadian(static_cast(this->state.unknown_0310))); + reinterpret_cast(this->state.matrix1)->SetYRotation(GetRadian(static_cast(this->state.unknown_030C))); + reinterpret_cast(this->state.matrix1)->RotateX(GetRadian(static_cast(this->state.unknown_0310))); flags = this->state.flags; this->state.unknown_01D4 = rand() % 10 + 5; } @@ -2362,8 +2362,8 @@ bool CEffectPrim::UpdateHit6() { if ((flags & 8u) != 0 && this->state.unknown_01E0 % this->state.unknown_01D4 == 0) { this->state.unknown_030C = static_cast(rand() % 10) + (this->state.unknown_030C - 5.0f); this->state.unknown_0310 = static_cast(rand() % 10) + (this->state.unknown_0310 - 5.0f); - reinterpret_cast(this->state.matrix1)->MakeXRotation(GetRadian(static_cast(this->state.unknown_0310))); - reinterpret_cast(this->state.matrix1)->AppendYRotation(GetRadian(static_cast(this->state.unknown_030C))); + reinterpret_cast(this->state.matrix1)->MakeXRotation(GetRadian(static_cast(this->state.unknown_0310))); + reinterpret_cast(this->state.matrix1)->AppendYRotation(GetRadian(static_cast(this->state.unknown_030C))); this->state.unknown_01D4 = rand() % 15 + 5; } @@ -2494,8 +2494,8 @@ bool CEffectPrim::UpdateDetoxication() { this->state.unknown_02BC = static_cast(rand() % 35 + 15) / 100.0f; this->state.unknown_030C = static_cast(rand() % 80) + (this->state.unknown_030C - 40.0f); this->state.unknown_0310 = static_cast(rand() % 80) + (this->state.unknown_0310 - 40.0f); - reinterpret_cast(this->state.matrix1)->SetYRotation(GetRadian(static_cast(this->state.unknown_030C))); - reinterpret_cast(this->state.matrix1)->RotateX(GetRadian(static_cast(this->state.unknown_0310))); + reinterpret_cast(this->state.matrix1)->SetYRotation(GetRadian(static_cast(this->state.unknown_030C))); + reinterpret_cast(this->state.matrix1)->RotateX(GetRadian(static_cast(this->state.unknown_0310))); this->state.unknown_01D4 = rand() % 10 + 5; flags = this->state.flags; } @@ -2503,8 +2503,8 @@ bool CEffectPrim::UpdateDetoxication() { if ((flags & 8u) != 0 && this->state.unknown_01E0 % this->state.unknown_01D4 == 0) { this->state.unknown_030C = static_cast(rand() % 10) + (this->state.unknown_030C - 5.0f); this->state.unknown_0310 = static_cast(rand() % 10) + (this->state.unknown_0310 - 5.0f); - reinterpret_cast(this->state.matrix1)->MakeXRotation(GetRadian(static_cast(this->state.unknown_0310))); - reinterpret_cast(this->state.matrix1)->AppendYRotation(GetRadian(static_cast(this->state.unknown_030C))); + reinterpret_cast(this->state.matrix1)->MakeXRotation(GetRadian(static_cast(this->state.unknown_0310))); + reinterpret_cast(this->state.matrix1)->AppendYRotation(GetRadian(static_cast(this->state.unknown_030C))); this->state.unknown_01D4 = rand() % 15 + 5; flags = this->state.flags; } @@ -2568,7 +2568,7 @@ bool CEffectPrim::UpdateExit() { } } - reinterpret_cast(this->state.matrix1)->SetYRotation(GetRadian(static_cast(this->state.unknown_030C))); + reinterpret_cast(this->state.matrix1)->SetYRotation(GetRadian(static_cast(this->state.unknown_030C))); const float distance = this->state.unknown_0348; this->state.offset = Forward(distance, this->state.matrix1); @@ -2579,7 +2579,7 @@ bool CEffectPrim::UpdateExit() { this->state.scale = this->state.unknown_031C + this->state.scale; const float rotation = this->state.unknown_0334 + this->state.unknown_0310; this->state.unknown_0310 = rotation; - reinterpret_cast(this->state.matrix1)->RotateZ(rotation); + reinterpret_cast(this->state.matrix1)->RotateZ(rotation); this->state.ProcessAlpha(); this->ShiftSegment(); @@ -2604,7 +2604,7 @@ bool CEffectPrim::Prim3DParticleSpline() { const float distance = this->state.unknown_02BC - this->state.unknown_02EC; this->state.unknown_0370 = Forward(distance, this->state.matrix1); - reinterpret_cast(this->state.matrix2)->MakeTransform(this->state.unknown_0290, GetRadian(angle)); + reinterpret_cast(this->state.matrix2)->MakeTransform(this->state.unknown_0290, GetRadian(angle)); const float move = this->state.unknown_0310; this->state.unknown_03A0 = Lift(move, this->state.matrix2); diff --git a/Source/Contents/Models/ModelActor.cpp b/Source/Contents/Models/ModelActor.cpp index b234b219..65af48e4 100644 --- a/Source/Contents/Models/ModelActor.cpp +++ b/Source/Contents/Models/ModelActor.cpp @@ -286,9 +286,9 @@ void C3dActorV1::Draw(const float* matrix, bool clip, ModelRenderContext& contex this->UpdateMatrix(); } - AffineMatrix camera; + struct matrix camera; std::memcpy(camera.values, matrix, sizeof(camera.values)); - AffineMatrix combined; + struct matrix combined; combined.Compose(this->transform, camera); this->root->Draw(combined.values, this->Reversed(), clip, this->commandMode, context); @@ -304,9 +304,9 @@ void C3dActorV2::Draw(const float* matrix, bool clip, ModelRenderContext& contex this->UpdateMatrix(); } - AffineMatrix camera; + struct matrix camera; std::memcpy(camera.values, matrix, sizeof(camera.values)); - AffineMatrix combined; + struct matrix combined; combined.Compose(this->transform, camera); const bool reversed = this->Reversed(); diff --git a/Source/Contents/Models/ModelActor.h b/Source/Contents/Models/ModelActor.h index 0c300129..6f218167 100644 --- a/Source/Contents/Models/ModelActor.h +++ b/Source/Contents/Models/ModelActor.h @@ -27,8 +27,8 @@ public: /* 0010 */ float rotation[3]; /* 001C */ float scale[3]; /* 0028 */ float offset[3]; - /* 0034 */ AffineMatrix transform; - /* 0064 */ AffineMatrix inverseTransform; + /* 0034 */ matrix transform; + /* 0064 */ matrix inverseTransform; /* 0094 */ unsigned char dirty; /* 0095 */ unsigned char unknown_0095[3]; /* 0098 */ OrientedBounds oriented; diff --git a/Source/Contents/Models/ModelActorBounds.cpp b/Source/Contents/Models/ModelActorBounds.cpp index f4caef2d..0354eba2 100644 --- a/Source/Contents/Models/ModelActorBounds.cpp +++ b/Source/Contents/Models/ModelActorBounds.cpp @@ -30,7 +30,7 @@ namespace { // FUNCTION: fn_17512 void C3dActorV1::UpdateBounds() { float bounds[6] = {100000, 100000, 100000, -100000, -100000, -100000}; - AffineMatrix identity; + matrix identity; identity.Identity(); this->root->AccumulateBounds(bounds, identity.values); this->offset[0] = -(bounds[3] + bounds[0]) * 0.5f; @@ -49,7 +49,7 @@ void C3dActorV1::UpdateBounds() { // FUNCTION: fn_17513 void C3dActorV2::UpdateBounds() { float bounds[6] = {100000, 100000, 100000, -100000, -100000, -100000}; - AffineMatrix identity; + matrix identity; identity.Identity(); for (C3dNodeV2* root : this->roots) { @@ -93,7 +93,7 @@ void C3dActor::FinishBounds(const float* bounds, bool modern) { this->oriented.halfSize[axis] = Absolute((bounds[axis + 3] - bounds[axis]) * this->scale[axis]) * 0.5f; } - AffineMatrix axes; + matrix axes; axes.SetScale(this->scale[0], this->scale[1], this->scale[2]); axes.AppendYRotation(Radians(this->rotation[1])); axes.RotateX(Radians(this->rotation[0])); @@ -111,16 +111,16 @@ void C3dActor::FinishBounds(const float* bounds, bool modern) { } for (ModelVolume* volume : this->volumes) { - AffineMatrix rotation; + matrix rotation; rotation.MakeXRotation(Radians(volume->rotation[0])); rotation.AppendYRotation(Radians(volume->rotation[1])); rotation.RotateZ(Radians(volume->rotation[2])); rotation.Translate(volume->position); std::memcpy(volume->unknown_0084, rotation.values, sizeof(rotation.values)); - AffineMatrix inverse; + matrix inverse; inverse.MakeInverse(rotation); std::memcpy(volume->unknown_0084 + 48, inverse.values, sizeof(inverse.values)); - AffineMatrix combined; + matrix combined; combined.Compose(rotation, this->transform); for (unsigned corner = 0; corner < 8; ++corner) { diff --git a/Source/Contents/Models/ModelAnimation.cpp b/Source/Contents/Models/ModelAnimation.cpp index 36f6c3fe..04a8ca23 100644 --- a/Source/Contents/Models/ModelAnimation.cpp +++ b/Source/Contents/Models/ModelAnimation.cpp @@ -5,7 +5,7 @@ namespace { // OFFSET: 0x00554340 // FUNCTION: fn_02022 - ModelRotationKey MatrixQuaternion(const AffineMatrix& matrix) { + ModelRotationKey MatrixQuaternion(const matrix& matrix) { ModelRotationKey result{0, {0, 0, 0, 1}}; const float trace = ((matrix.values[0] + 1.0f) + matrix.values[4]) + matrix.values[8]; const float root = std::sqrt(trace); @@ -22,7 +22,7 @@ namespace { // OFFSET: 0x00540370 // FUNCTION: fn_01721 -void SampleLegacyPosition(std::span keys, int frame, AffineMatrix& output) { +void SampleLegacyPosition(std::span keys, int frame, matrix& output) { if (keys.empty()) { output.Identity(); } else if (keys.size() == 1) { @@ -48,7 +48,7 @@ void SampleLegacyPosition(std::span keys, int frame, Aff // OFFSET: 0x00540670 // FUNCTION: fn_01723 -void SampleLegacyRotation(std::span keys, int frame, AffineMatrix& output) { +void SampleLegacyRotation(std::span keys, int frame, matrix& output) { if (keys.empty()) { output.Identity(); return; @@ -83,7 +83,7 @@ void SampleLegacyRotation(std::span keys, int frame, Aff // OFFSET: 0x00540BF0 // FUNCTION: fn_01725 -void SampleLegacyScale(std::span keys, int, AffineMatrix& output) { +void SampleLegacyScale(std::span keys, int, matrix& output) { if (keys.empty()) { output.Identity(); } else if (keys.size() == 1) { @@ -93,7 +93,7 @@ void SampleLegacyScale(std::span keys, int, AffineMatrix& o // OFFSET: 0x00540C60 // FUNCTION: fn_01726 -void SampleModelScale(std::span keys, float frame, AffineMatrix& output) { +void SampleModelScale(std::span keys, float frame, matrix& output) { if (keys.empty()) { output.Identity(); return; @@ -125,7 +125,7 @@ void SampleModelScale(std::span keys, float frame, Affin // OFFSET: 0x005404A0 // FUNCTION: fn_01722 -void SampleModelPosition(std::span keys, float frame, const AffineMatrix& base, AffineMatrix& output) { +void SampleModelPosition(std::span keys, float frame, const matrix& base, matrix& output) { if (keys.empty()) { output.values[9] = base.values[9]; output.values[10] = base.values[10]; @@ -161,8 +161,8 @@ void SampleModelPosition(std::span keys, float frame, co // OFFSET: 0x005407A0 // FUNCTION: fn_01724 -void SampleModelRotation(std::span keys, float frame, const AffineMatrix& base, AffineMatrix& output) { - AffineMatrix rotation; +void SampleModelRotation(std::span keys, float frame, const matrix& base, matrix& output) { + matrix rotation; if (keys.empty()) { rotation = base; @@ -218,6 +218,6 @@ void SampleModelRotation(std::span keys, float frame, co QuaternionMatrix(result, rotation); } - AffineMatrix previous = output; + matrix previous = output; output.Compose(previous, rotation); } diff --git a/Source/Contents/Models/ModelAnimation.h b/Source/Contents/Models/ModelAnimation.h index 28904dc9..434dedc4 100644 --- a/Source/Contents/Models/ModelAnimation.h +++ b/Source/Contents/Models/ModelAnimation.h @@ -6,13 +6,13 @@ #include -void SampleLegacyPosition(std::span keys, int frame, AffineMatrix& output); -void SampleLegacyRotation(std::span keys, int frame, AffineMatrix& output); -void SampleLegacyScale(std::span keys, int frame, AffineMatrix& output); -void SampleModelScale(std::span keys, float frame, AffineMatrix& output); -void SampleModelPosition(std::span keys, float frame, const AffineMatrix& base, AffineMatrix& output); -void SampleModelRotation(std::span keys, float frame, const AffineMatrix& base, AffineMatrix& output); -void QuaternionMatrix(const ModelRotationKey& key, AffineMatrix& output); +void SampleLegacyPosition(std::span keys, int frame, matrix& output); +void SampleLegacyRotation(std::span keys, int frame, matrix& output); +void SampleLegacyScale(std::span keys, int frame, matrix& output); +void SampleModelScale(std::span keys, float frame, matrix& output); +void SampleModelPosition(std::span keys, float frame, const matrix& base, matrix& output); +void SampleModelRotation(std::span keys, float frame, const matrix& base, matrix& output); +void QuaternionMatrix(const ModelRotationKey& key, matrix& output); void InterpolateModelRotation(float amount, const ModelRotationKey& first, const ModelRotationKey& second, int spins, ModelRotationKey& output); #endif diff --git a/Source/Contents/Models/ModelLighting.cpp b/Source/Contents/Models/ModelLighting.cpp index c2c2f25b..ba29ed91 100644 --- a/Source/Contents/Models/ModelLighting.cpp +++ b/Source/Contents/Models/ModelLighting.cpp @@ -102,9 +102,9 @@ void C3dNode::SampleGroundColors(const float* matrix, const float* position, con // OFFSET: 0x00ABBB00 // FUNCTION: fn_17521 void C3dNode::Prepare(const float* matrix, ModelLightingContext& context) { - AffineMatrix parentMatrix; + struct matrix parentMatrix; std::memcpy(parentMatrix.values, matrix, sizeof(parentMatrix.values)); - AffineMatrix combined; + struct matrix combined; combined.Compose(this->transform, parentMatrix); for (int index = 0; index < this->mesh->faceCount; ++index) { diff --git a/Source/Contents/Models/ModelNode.cpp b/Source/Contents/Models/ModelNode.cpp index 77ab8477..37b7b891 100644 --- a/Source/Contents/Models/ModelNode.cpp +++ b/Source/Contents/Models/ModelNode.cpp @@ -93,9 +93,9 @@ void C3dNodeV2::Initialize(const ModelNode& base) { std::memcpy(this->resourceTransform.values, resource.transform, sizeof(resource.transform)); if (this->parent) { - const AffineMatrix world = this->resourceTransform; - const AffineMatrix parentWorld = static_cast(this->parent)->resourceTransform; - AffineMatrix inverse; + const matrix world = this->resourceTransform; + const matrix parentWorld = static_cast(this->parent)->resourceTransform; + matrix inverse; inverse.MakeInverse(parentWorld); this->localTransform.Compose(world, inverse); } else { @@ -126,16 +126,16 @@ void C3dNodeV2::Initialize(const ModelNode& base) { // FUNCTION: fn_17507 void C3dNodeV1::Animate(double frame) { const int selected = TruncateToInt(frame); - AffineMatrix position; - AffineMatrix scale; - AffineMatrix rotation; + matrix position; + matrix scale; + matrix rotation; position.Identity(); scale.Identity(); rotation.Identity(); SampleLegacyPosition(this->positionKeys, selected, position); SampleLegacyRotation(this->rotationKeys, selected, rotation); SampleLegacyScale(this->scaleKeys, selected, scale); - AffineMatrix combined; + matrix combined; combined.Compose(scale, rotation); this->transform.Compose(combined, position); diff --git a/Source/Contents/Models/ModelNode.h b/Source/Contents/Models/ModelNode.h index cab2bbf9..86afe5aa 100644 --- a/Source/Contents/Models/ModelNode.h +++ b/Source/Contents/Models/ModelNode.h @@ -35,7 +35,7 @@ public: /* 0020 */ C3dNode* parent; /* 0024 */ std::list children; /* 002C */ ModelMesh* mesh; - /* 0030 */ AffineMatrix transform; + /* 0030 */ matrix transform; /* 0060 */ std::vector textures; /* 006C */ float alpha; /* 0070 */ std::vector faceState; @@ -64,8 +64,8 @@ public: void Animate(double frame) override; void Draw(const float* matrix, unsigned char reversed, bool clip, unsigned char commandMode, ModelRenderContext& context) override; - /* 008C */ AffineMatrix resourceTransform; - /* 00BC */ AffineMatrix localTransform; + /* 008C */ matrix resourceTransform; + /* 00BC */ matrix localTransform; /* 00EC */ std::vector scaleKeys; /* 00F8 */ std::vector rotationKeys; /* 0104 */ std::vector positionKeys; diff --git a/Source/Contents/Models/ModelNodeBounds.cpp b/Source/Contents/Models/ModelNodeBounds.cpp index 935cc605..93c61946 100644 --- a/Source/Contents/Models/ModelNodeBounds.cpp +++ b/Source/Contents/Models/ModelNodeBounds.cpp @@ -5,9 +5,9 @@ // OFFSET: 0x00ABB300 // FUNCTION: fn_17514 void C3dNode::AccumulateBounds(float* bounds, const float* matrix) { - AffineMatrix parentMatrix; + struct matrix parentMatrix; std::memcpy(parentMatrix.values, matrix, sizeof(parentMatrix.values)); - AffineMatrix combined; + struct matrix combined; combined.Compose(this->transform, parentMatrix); for (int index = 0; index < this->mesh->vertexCount; ++index) { diff --git a/Source/Contents/Models/ModelQuaternion.cpp b/Source/Contents/Models/ModelQuaternion.cpp index ed482b6a..b8af9007 100644 --- a/Source/Contents/Models/ModelQuaternion.cpp +++ b/Source/Contents/Models/ModelQuaternion.cpp @@ -7,7 +7,7 @@ // OFFSET: 0x00554B90 // FUNCTION: fn_02030 // FUNCTION: fn_02029 -void QuaternionMatrix(const ModelRotationKey& key, AffineMatrix& output) { +void QuaternionMatrix(const ModelRotationKey& key, matrix& output) { const float x = key.rotation[0]; const float y = key.rotation[1]; const float z = key.rotation[2]; diff --git a/Source/Contents/Models/ModelRendering.cpp b/Source/Contents/Models/ModelRendering.cpp index 1799c329..dd38265d 100644 --- a/Source/Contents/Models/ModelRendering.cpp +++ b/Source/Contents/Models/ModelRendering.cpp @@ -98,9 +98,9 @@ inline void TransformModelUV(float& u, float& v, const ModelTextureTransform& tr // INLINED void DrawModelNode(C3dNode& node, const float* matrix, unsigned char reversed, bool clip, unsigned char commandMode, ModelRenderContext& context, bool modern) { - AffineMatrix camera; + struct matrix camera; std::memcpy(camera.values, matrix, sizeof(camera.values)); - AffineMatrix combined; + struct matrix combined; combined.Compose(node.transform, camera); const float overrideScale[3] = {context.overrideScale[0], context.overrideScale[1], context.overrideScale[2]}; const float colorScale[3] = {context.colorScale[0], context.colorScale[1], context.colorScale[2]}; diff --git a/Source/Resource/Models/GrannyModelResource.h b/Source/Resource/Models/GrannyModelResource.h index 28f146f0..6efc8695 100644 --- a/Source/Resource/Models/GrannyModelResource.h +++ b/Source/Resource/Models/GrannyModelResource.h @@ -8,7 +8,7 @@ #include class CTexture; -struct AffineMatrix; +struct matrix; struct granny_animation; struct granny_control; @@ -184,7 +184,7 @@ public: CTexture* CreateTexture(const granny_texture* texture, int option); void FreeControl(granny_control* control); granny_control* PlayAnimation(unsigned action, granny_model_instance* instance, granny_control* control, int loopCount); - bool ProjectBounds(float* rect, const AffineMatrix& view, const AffineMatrix& world, const float* eye) const; + bool ProjectBounds(float* rect, const matrix& view, const matrix& world, const float* eye) const; int GetTriangleCount(int mesh) const; unsigned char* GetRigidVertices(int mesh) const; diff --git a/Source/Resource/Models/ModelResource.cpp b/Source/Resource/Models/ModelResource.cpp index 43a47a85..dbfdb154 100644 --- a/Source/Resource/Models/ModelResource.cpp +++ b/Source/Resource/Models/ModelResource.cpp @@ -710,8 +710,8 @@ granny_control* C3dGrannyModelRes::PlayAnimation(unsigned action, granny_model_i // OFFSET: 0x00758710 // FUNCTION: fn_08008 -bool C3dGrannyModelRes::ProjectBounds(float* rect, const AffineMatrix& view, const AffineMatrix& world, const float* eye) const { - AffineMatrix matrix; +bool C3dGrannyModelRes::ProjectBounds(float* rect, const matrix& view, const matrix& world, const float* eye) const { + matrix matrix; matrix.SetZRotation(3.141592f); const float* m = matrix.values; const float x = this->position[1] * m[3] + this->position[0] * m[0] + this->position[2] * m[6] + m[9]; diff --git a/Source/Resource/World/WorldResource.cpp b/Source/Resource/World/WorldResource.cpp index 22653c8e..6758ec44 100644 --- a/Source/Resource/World/WorldResource.cpp +++ b/Source/Resource/World/WorldResource.cpp @@ -152,7 +152,7 @@ inline void C3dWorldRes::ReadEnvironment(CFile& input, unsigned version) { } constexpr float pi = 3.141592f; - AffineMatrix matrix; + matrix matrix; matrix.MakeXRotation((static_cast(this->latitude) / 180.0f) * pi); matrix.AppendYRotation((static_cast(this->longitude) / 180.0f) * pi); diff --git a/Source/Utility/Math/AffineLookAt.cpp b/Source/Utility/Math/AffineLookAt.cpp index 72bcf478..27b94986 100644 --- a/Source/Utility/Math/AffineLookAt.cpp +++ b/Source/Utility/Math/AffineLookAt.cpp @@ -12,7 +12,7 @@ namespace { // OFFSET: 0x00555110 // FUNCTION: fn_02033 -void AffineMatrix::LookAt(const float* origin, const float* target, const float* up) { +void matrix::LookAt(const float* origin, const float* target, const float* up) { this->Identity(); const float dx = target[0] - origin[0]; const float dy = target[1] - origin[1]; diff --git a/Source/Utility/Math/AffineMatrix.cpp b/Source/Utility/Math/AffineMatrix.cpp index b7a4f884..8cfc5867 100644 --- a/Source/Utility/Math/AffineMatrix.cpp +++ b/Source/Utility/Math/AffineMatrix.cpp @@ -27,13 +27,13 @@ namespace { } // INLINED -void AffineMatrix::Identity() { +void matrix::Identity() { std::memcpy(this->values, g_identityMatrix, sizeof(g_identityMatrix)); } // OFFSET: 0x00555360 // FUNCTION: fn_02034 -void AffineMatrix::MakeXRotation(float radians) { +void matrix::MakeXRotation(float radians) { this->Identity(); const float sine = ClientSin(radians); @@ -46,7 +46,7 @@ void AffineMatrix::MakeXRotation(float radians) { // OFFSET: 0x005553D0 // FUNCTION: fn_02035 -void AffineMatrix::SetYRotation(float radians) { +void matrix::SetYRotation(float radians) { this->Identity(); const float sine = ClientSin(radians); @@ -59,7 +59,7 @@ void AffineMatrix::SetYRotation(float radians) { // OFFSET: 0x00555440 // FUNCTION: fn_02036 -void AffineMatrix::SetZRotation(float radians) { +void matrix::SetZRotation(float radians) { this->Identity(); const float sine = ClientSin(radians); @@ -72,31 +72,31 @@ void AffineMatrix::SetZRotation(float radians) { // OFFSET: 0x00552F70 // FUNCTION: fn_02016 -void AffineMatrix::RotateX(float radians) { - AffineMatrix rotation; +void matrix::RotateX(float radians) { + matrix rotation; rotation.MakeXRotation(radians); Rotate(this->values, rotation.values); } // OFFSET: 0x00553270 // FUNCTION: fn_02017 -void AffineMatrix::AppendYRotation(float radians) { - AffineMatrix rotation; +void matrix::AppendYRotation(float radians) { + matrix rotation; rotation.SetYRotation(radians); Rotate(this->values, rotation.values); } // OFFSET: 0x00553570 // FUNCTION: fn_02018 -void AffineMatrix::RotateZ(float radians) { - AffineMatrix rotation; +void matrix::RotateZ(float radians) { + matrix rotation; rotation.SetZRotation(radians); Rotate(this->values, rotation.values); } // OFFSET: 0x005550C0 // FUNCTION: fn_02032 -void AffineMatrix::MakeTranslate(float x, float y, float z) { +void matrix::MakeTranslate(float x, float y, float z) { std::memcpy(this->values, g_identityMatrix, sizeof(g_identityMatrix)); this->values[9] = x; this->values[10] = y; @@ -105,7 +105,7 @@ void AffineMatrix::MakeTranslate(float x, float y, float z) { // OFFSET: 0x00554B40 // FUNCTION: fn_02028 -void AffineMatrix::SetScale(float x, float y, float z) { +void matrix::SetScale(float x, float y, float z) { std::memcpy(this->values, g_identityMatrix, sizeof(g_identityMatrix)); this->values[0] = x; this->values[4] = y; @@ -114,23 +114,23 @@ void AffineMatrix::SetScale(float x, float y, float z) { // OFFSET: 0x005529C0 // FUNCTION: fn_02014 -void AffineMatrix::Scale(float x, float y, float z) { - AffineMatrix scale; +void matrix::Scale(float x, float y, float z) { + matrix scale; scale.SetScale(x, y, z); Rotate(this->values, scale.values); } // OFFSET: 0x00552CA0 // FUNCTION: fn_02015 -void AffineMatrix::Translate(const float* position) { - AffineMatrix translation; +void matrix::Translate(const float* position) { + matrix translation; translation.MakeTranslate(position[0], position[1], position[2]); Rotate(this->values, translation.values); } // OFFSET: 0x005554B0 // FUNCTION: fn_02037 -void AffineMatrix::Compose(const AffineMatrix& first, const AffineMatrix& second) { +void matrix::Compose(const matrix& first, const matrix& second) { const float* a = first.values; const float* b = second.values; float* output = this->values; @@ -153,7 +153,7 @@ void AffineMatrix::Compose(const AffineMatrix& first, const AffineMatrix& second // OFFSET: 0x00554920 // FUNCTION: fn_02027 -void AffineMatrix::MakeInverse(const AffineMatrix& source) { +void matrix::MakeInverse(const matrix& source) { const float* a = source.values; float* output = this->values; const float minor = a[4] * a[8] - a[5] * a[7]; @@ -183,7 +183,7 @@ void AffineMatrix::MakeInverse(const AffineMatrix& source) { } // FUNCTION: fn_02026 -int AffineMatrix::IsIdentity() const { +int matrix::IsIdentity() const { const auto absolute = [](float value) { return std::bit_cast(std::bit_cast(value) & 0x7FFFFFFFu); }; @@ -201,7 +201,7 @@ int AffineMatrix::IsIdentity() const { // OFFSET: 0x00554F70 // FUNCTION: fn_02031 -void AffineMatrix::MakeTransform(const float* rotaxis, float rotangle) { +void matrix::MakeTransform(const float* rotaxis, float rotangle) { const float omega = rotangle / 2.0f; const float s = static_cast(sin(static_cast(omega))); const float qx = rotaxis[0] * s; diff --git a/Source/Utility/Math/AffineMatrix.h b/Source/Utility/Math/AffineMatrix.h index 41c7a9d1..e4bda095 100644 --- a/Source/Utility/Math/AffineMatrix.h +++ b/Source/Utility/Math/AffineMatrix.h @@ -17,7 +17,7 @@ float ClientSine(int degrees); float ClientCosine(int degrees); float SquareRoot(float value); -struct AffineMatrix { +struct matrix { /* 0000 */ float values[12]; void Identity(); @@ -33,15 +33,15 @@ struct AffineMatrix { void SetScale(float x, float y, float z); void Scale(float x, float y, float z); void Translate(const float* position); - void Compose(const AffineMatrix& first, const AffineMatrix& second); - void MakeInverse(const AffineMatrix& source); + void Compose(const matrix& first, const matrix& second); + void MakeInverse(const matrix& source); void LookAt(const float* origin, const float* target, const float* up); }; -static_assert(sizeof(AffineMatrix) == 48); +static_assert(sizeof(matrix) == 48); #if defined(_WIN32) && !defined(_WIN64) -static_assert(offsetof(AffineMatrix, values) == 0x0000); +static_assert(offsetof(matrix, values) == 0x0000); #endif #endif