Fix Vector2/Vector3 order (#1272)

* Fix Vector2/Vector3 order

* Refactor vector classes to be const and reference param consistent

* Add BETA10 annotations and fixes
This commit is contained in:
Christian Semmler
2024-12-24 14:21:26 -07:00
committed by GitHub
parent 7c41ff4569
commit c2c9c75f1a
26 changed files with 223 additions and 217 deletions

View File

@@ -231,10 +231,10 @@ LegoResult LegoAnimScene::FUN_1009f490(LegoFloat p_time, Matrix4& p_matrix)
local54 -= localb8;
if (local54.Unitize() == 0) {
local5c.EqualsCross(&local68, &local54);
local5c.EqualsCross(local68, local54);
if (local5c.Unitize() == 0) {
local68.EqualsCross(&local54, &local5c);
local68.EqualsCross(local54, local5c);
localcc = p_matrix[3];
localcc += localb0[3];

View File

@@ -139,10 +139,10 @@ LegoS32 LegoWEGEdge::VTable0x04()
Mx3DPointFloat local58;
Vector3 local64(&m_edgeNormals[i][0]);
edge->FUN_1002ddc0(*this, local58);
local64.EqualsCross(&local58, &m_unk0x14);
local64.EqualsCross(local58, m_unk0x14);
m_edgeNormals[i][3] = -local64.Dot(m_edges[i]->m_pointA, &local64);
if (m_edgeNormals[i][3] + m_unk0x30.Dot(&m_unk0x30, &local64) < 0.0f) {
m_edgeNormals[i][3] = -local64.Dot(*m_edges[i]->m_pointA, local64);
if (m_edgeNormals[i][3] + m_unk0x30.Dot(m_unk0x30, local64) < 0.0f) {
m_edgeNormals[i] *= -1.0f;
}
@@ -178,12 +178,12 @@ LegoS32 LegoWEGEdge::VTable0x04()
localb8 -= *vTrig1;
local80 -= *vTrig1;
float locala4 = localb8.Dot(m_unk0x50, &localb8);
float locala4 = localb8.Dot(*m_unk0x50, localb8);
if (local98 < locala4) {
local98 = locala4;
}
locala4 = local80.Dot(m_unk0x50, &local80);
locala4 = local80.Dot(*m_unk0x50, local80);
if (locala4 < local9c) {
local9c = locala4;
}
@@ -244,7 +244,7 @@ LegoS32 LegoWEGEdge::FUN_1009aea0()
local50 = *local8[i - 2];
local50 -= *local8[i - 1];
local24.EqualsCross(&local50, &local3c);
local24.EqualsCross(local50, local3c);
local28 = local24.LenSquared();
if (local28 < 0.00001f) {
@@ -255,7 +255,7 @@ LegoS32 LegoWEGEdge::FUN_1009aea0()
local24 /= local58;
if (localc) {
float local54 = local24.Dot(&m_unk0x14, &local24);
float local54 = local24.Dot(m_unk0x14, local24);
if (local54 < 0.98) {
delete[] local8;
return -2;
@@ -265,7 +265,7 @@ LegoS32 LegoWEGEdge::FUN_1009aea0()
m_unk0x14[0] = local24[0];
m_unk0x14[1] = local24[1];
m_unk0x14[2] = local24[2];
m_unk0x14[3] = -local8[i]->Dot(local8[i], &local24);
m_unk0x14[3] = -local8[i]->Dot(*local8[i], local24);
localc = TRUE;
}
}

View File

@@ -68,11 +68,11 @@ LegoResult LegoUnknown::FUN_1009a1e0(float p_f1, Matrix4& p_mat, Vector3& p_v, L
return FAILURE;
}
v2.EqualsCross(&p_v, &v4);
v2.EqualsCross(p_v, v4);
if (v2.Unitize() != 0) {
return FAILURE;
}
v3.EqualsCross(&v4, &v2);
v3.EqualsCross(v4, v2);
return SUCCESS;
}

View File

@@ -626,13 +626,13 @@ LegoU32 LegoROI::FUN_100a9410(
local38 *= 0.5f;
local70 = localc0;
localc0.SetMatrixProduct(&local70, (float*) m_local2world.GetData());
localc0.SetMatrixProduct(local70, (float*) m_local2world.GetData());
local70 = local9c;
local9c.SetMatrixProduct(&local70, (float*) m_local2world.GetData());
local9c.SetMatrixProduct(local70, (float*) m_local2world.GetData());
local70 = local168;
local168.SetMatrixProduct(&local70, (float*) m_local2world.GetData());
local168.SetMatrixProduct(local70, (float*) m_local2world.GetData());
p_v3 = m_local2world[3];
@@ -641,22 +641,22 @@ LegoU32 LegoROI::FUN_100a9410(
local150[i] = m_local2world[i % 3];
if (i > 2) {
local150[i][3] = -local58.Dot(&local58, &local150[i]);
local150[i][3] = -local58.Dot(local58, local150[i]);
}
else {
local150[i][3] = -locala8.Dot(&locala8, &local150[i]);
local150[i][3] = -locala8.Dot(locala8, local150[i]);
}
if (local150[i][3] + local38.Dot(&local38, &local150[i]) < 0.0f) {
if (local150[i][3] + local38.Dot(local38, local150[i]) < 0.0f) {
local150[i] *= -1.0f;
}
}
for (i = 0; i < 6; i++) {
float local50 = p_v2.Dot(&p_v2, &local150[i]);
float local50 = p_v2.Dot(p_v2, local150[i]);
if (local50 >= 0.01 || local50 < -0.01) {
local50 = -((local150[i][3] + local4c.Dot(&local4c, &local150[i])) / local50);
local50 = -((local150[i][3] + local4c.Dot(local4c, local150[i])) / local50);
if (local50 >= 0.0f && local50 <= p_f1) {
Mx3DPointFloat local17c(p_v2);
@@ -666,7 +666,7 @@ LegoU32 LegoROI::FUN_100a9410(
LegoS32 j;
for (j = 0; j < 6; j++) {
if (i != j && i - j != 3 && j - i != 3) {
if (local150[j][3] + local17c.Dot(&local17c, &local150[j]) < 0.0f) {
if (local150[j][3] + local17c.Dot(local17c, local150[j]) < 0.0f) {
break;
}
}
@@ -684,9 +684,9 @@ LegoU32 LegoROI::FUN_100a9410(
v1 -= GetWorldBoundingSphere().Center();
float local10 = GetWorldBoundingSphere().Radius();
float local8 = p_v2.Dot(&p_v2, &p_v2);
float localc = p_v2.Dot(&p_v2, &v1) * 2.0f;
float local14 = v1.Dot(&v1, &v1) - (local10 * local10);
float local8 = p_v2.Dot(p_v2, p_v2);
float localc = p_v2.Dot(p_v2, v1) * 2.0f;
float local14 = v1.Dot(v1, v1) - (local10 * local10);
if (local8 >= 0.001 || local8 <= -0.001) {
float local1c = -1.0f;