mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-25 09:24:17 +00:00
(Proposal) Introduce arithmetic operators to Vector2 (#1193)
This commit is contained in:
committed by
GitHub
parent
4d8098a6c2
commit
94ce89cbaa
@@ -97,7 +97,7 @@ MxU32 LegoExtraActor::VTable0x90(float p_time, Matrix4& p_transform)
|
||||
else {
|
||||
m_state = 0;
|
||||
m_scheduledTime = 0.0f;
|
||||
((Vector3&) positionRef).Sub(g_unk0x10104c18); // TODO: Fix call
|
||||
positionRef -= g_unk0x10104c18;
|
||||
m_roi->FUN_100a58f0(p_transform);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -136,8 +136,7 @@ MxResult LegoExtraActor::FUN_1002aae0()
|
||||
Vector3 dirRef(m_unk0xec[2]);
|
||||
Vector3 positionRef(m_unk0xec[3]);
|
||||
|
||||
// TODO: Fix call
|
||||
((Vector3&) dirRef).Mul(-1.0f);
|
||||
dirRef *= -1.0f;
|
||||
rightRef.EqualsCross(&upRef, &dirRef);
|
||||
|
||||
if (m_boundary == m_destEdge->m_faceA) {
|
||||
@@ -216,9 +215,8 @@ MxResult LegoExtraActor::VTable0x94(LegoPathActor* p_actor, MxBool p_bool)
|
||||
Vector3 positionRef(matrix2[3]);
|
||||
Mx3DPointFloat dir(matrix[2]);
|
||||
|
||||
// TODO: Fix calls
|
||||
((Mx3DPointFloat&) dir).Mul(2.0f);
|
||||
((Vector3&) positionRef).Add(dir);
|
||||
dir *= 2.0f;
|
||||
positionRef += dir;
|
||||
|
||||
for (MxS32 i = 0; i < m_boundary->GetNumEdges(); i++) {
|
||||
Mx4DPointFloat* normal = m_boundary->GetEdgeNormal(i);
|
||||
@@ -251,7 +249,7 @@ MxResult LegoExtraActor::VTable0x94(LegoPathActor* p_actor, MxBool p_bool)
|
||||
Mx3DPointFloat dir = p_actor->GetWorldDirection();
|
||||
MxMatrix matrix3 = MxMatrix(roi->GetLocal2World());
|
||||
Vector3 positionRef(matrix3[3]);
|
||||
((Vector3&) positionRef).Add(g_unk0x10104c18);
|
||||
positionRef += g_unk0x10104c18;
|
||||
roi->FUN_100a58f0(matrix3);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
@@ -463,7 +461,7 @@ MxU32 LegoExtraActor::VTable0x6c(
|
||||
Vector3 local60(local2world[3]);
|
||||
Mx3DPointFloat local54(p_v1);
|
||||
|
||||
((Vector3&) local54).Sub(local60);
|
||||
local54 -= local60;
|
||||
float local1c = p_v2.Dot(&p_v2, &p_v2);
|
||||
float local24 = p_v2.Dot(&p_v2, &local54) * 2.0f;
|
||||
float local20 = local54.Dot(&local54, &local54);
|
||||
|
||||
@@ -72,7 +72,7 @@ MxResult LegoPathActor::VTable0x80(const Vector3& p_point1, Vector3& p_point2, V
|
||||
Mx3DPointFloat p1, p2, p3;
|
||||
|
||||
p1 = p_point3;
|
||||
((Vector3&) p1).Sub(p_point1);
|
||||
p1 -= p_point1;
|
||||
m_BADuration = p1.LenSquared();
|
||||
|
||||
if (m_BADuration > 0.0f) {
|
||||
@@ -106,14 +106,14 @@ MxResult LegoPathActor::VTable0x88(
|
||||
Mx3DPointFloat p1, p2, p3, p4, p5;
|
||||
|
||||
p1 = *v2;
|
||||
((Vector3&) p1).Sub(*v1);
|
||||
((Vector3&) p1).Mul(p_srcScale);
|
||||
((Vector3&) p1).Add(*v1);
|
||||
p1 -= *v1;
|
||||
p1 *= p_srcScale;
|
||||
p1 += *v1;
|
||||
|
||||
p2 = *v4;
|
||||
((Vector3&) p2).Sub(*v3);
|
||||
((Vector3&) p2).Mul(p_destScale);
|
||||
((Vector3&) p2).Add(*v3);
|
||||
p2 -= *v3;
|
||||
p2 *= p_destScale;
|
||||
p2 += *v3;
|
||||
|
||||
m_boundary = p_boundary;
|
||||
m_destEdge = &p_destEdge;
|
||||
@@ -124,7 +124,7 @@ MxResult LegoPathActor::VTable0x88(
|
||||
p_destEdge.FUN_1002ddc0(*p_boundary, p3);
|
||||
|
||||
p4 = p2;
|
||||
((Vector3&) p4).Sub(p1);
|
||||
p4 -= p1;
|
||||
p4.Unitize();
|
||||
|
||||
MxMatrix matrix;
|
||||
@@ -139,7 +139,7 @@ MxResult LegoPathActor::VTable0x88(
|
||||
up = *m_boundary->GetUnknown0x14();
|
||||
|
||||
if (!m_cameraFlag || !m_userNavFlag) {
|
||||
((Vector3&) dir).Mul(-1.0f);
|
||||
dir *= -1.0f;
|
||||
}
|
||||
|
||||
right.EqualsCross(&up, &dir);
|
||||
@@ -181,9 +181,9 @@ MxResult LegoPathActor::VTable0x84(
|
||||
Mx3DPointFloat p2, p3, p5;
|
||||
|
||||
p2 = *v4;
|
||||
((Vector3&) p2).Sub(*v3);
|
||||
((Vector3&) p2).Mul(p_destScale);
|
||||
((Vector3&) p2).Add(*v3);
|
||||
p2 -= *v3;
|
||||
p2 *= p_destScale;
|
||||
p2 += *v3;
|
||||
|
||||
m_boundary = p_boundary;
|
||||
m_destEdge = &p_destEdge;
|
||||
@@ -205,7 +205,7 @@ MxResult LegoPathActor::VTable0x84(
|
||||
up = *m_boundary->GetUnknown0x14();
|
||||
|
||||
if (!m_cameraFlag || !m_userNavFlag) {
|
||||
((Vector3&) dir).Mul(-1.0f);
|
||||
dir *= -1.0f;
|
||||
}
|
||||
|
||||
right.EqualsCross(&up, &dir);
|
||||
@@ -289,12 +289,12 @@ MxS32 LegoPathActor::VTable0x8c(float p_time, Matrix4& p_transform)
|
||||
m_worldSpeed *= m_unk0x144;
|
||||
nav->SetLinearVel(m_worldSpeed);
|
||||
Mx3DPointFloat p7(p2);
|
||||
((Vector3&) p7).Sub(p6);
|
||||
p7 -= p6;
|
||||
|
||||
if (p7.Unitize() == 0) {
|
||||
float f = sqrt(p1.LenSquared()) * m_unk0x140;
|
||||
((Vector3&) p7).Mul(f);
|
||||
((Vector3&) p1).Add(p7);
|
||||
p7 *= f;
|
||||
p1 += p7;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -479,7 +479,7 @@ MxU32 LegoPathActor::VTable0x6c(
|
||||
MxS32 LegoPathActor::VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3)
|
||||
{
|
||||
Mx3DPointFloat v2(p_v2);
|
||||
((Vector3&) v2).Sub(p_v1);
|
||||
v2 -= p_v1;
|
||||
|
||||
float len = v2.LenSquared();
|
||||
|
||||
@@ -488,7 +488,7 @@ MxS32 LegoPathActor::VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3)
|
||||
}
|
||||
|
||||
len = sqrt(len);
|
||||
((Vector3&) v2).Div(len);
|
||||
v2 /= len;
|
||||
|
||||
float radius = m_roi->GetWorldBoundingSphere().Radius();
|
||||
list<LegoPathBoundary*> boundaries;
|
||||
@@ -655,16 +655,16 @@ MxResult LegoPathActor::VTable0x9c()
|
||||
Mx3DPointFloat local84(m_unk0xec[2]);
|
||||
Mx3DPointFloat local70(local34);
|
||||
|
||||
((Vector3&) local70).Sub(localc0);
|
||||
local70 -= localc0;
|
||||
float len = local70.LenSquared();
|
||||
if (len >= 0.0f) {
|
||||
len = sqrt(len);
|
||||
((Vector3&) local84).Mul(len);
|
||||
((Vector3&) local48).Mul(len);
|
||||
local84 *= len;
|
||||
local48 *= len;
|
||||
}
|
||||
|
||||
if (!m_userNavFlag) {
|
||||
((Vector3&) local84).Mul(-1.0f);
|
||||
local84 *= -1.0f;
|
||||
}
|
||||
|
||||
if (VTable0x80(localc0, local84, local34, local48) != SUCCESS) {
|
||||
|
||||
@@ -53,11 +53,11 @@ void LegoPathBoundary::FUN_100575b0(Vector3& p_point1, Vector3& p_point2, LegoPa
|
||||
Mx3DPointFloat v;
|
||||
|
||||
v = p_point1;
|
||||
((Vector3&) v).Sub(*ccwV);
|
||||
v -= *ccwV;
|
||||
float dot1 = v.Dot(&v, m_unk0x50);
|
||||
|
||||
v = p_point2;
|
||||
((Vector3&) v).Sub(*ccwV);
|
||||
v -= *ccwV;
|
||||
float dot2 = v.Dot(&v, m_unk0x50);
|
||||
|
||||
if (dot2 > dot1) {
|
||||
@@ -201,7 +201,7 @@ MxU32 LegoPathBoundary::Intersect(
|
||||
if (local10 == 0) {
|
||||
local10 = 1;
|
||||
vec = p_point2;
|
||||
((Vector3&) vec).Sub(p_point1);
|
||||
vec -= p_point1;
|
||||
|
||||
len = vec.LenSquared();
|
||||
if (len <= 0.0f) {
|
||||
@@ -209,7 +209,7 @@ MxU32 LegoPathBoundary::Intersect(
|
||||
}
|
||||
|
||||
len = sqrt(len);
|
||||
((Vector3&) vec).Div(len);
|
||||
vec /= len;
|
||||
}
|
||||
|
||||
float dot = vec.Dot(&vec, &m_edgeNormals[i]);
|
||||
@@ -234,11 +234,11 @@ MxU32 LegoPathBoundary::Intersect(
|
||||
Vector3* local5c = e->CWVertex(*this);
|
||||
|
||||
p_point3 = vec;
|
||||
p_point3.Mul(localc);
|
||||
p_point3.Add(p_point1);
|
||||
p_point3 *= localc;
|
||||
p_point3 += p_point1;
|
||||
|
||||
local50 = p_point2;
|
||||
((Vector3&) local50).Sub(*local5c);
|
||||
local50 -= *local5c;
|
||||
|
||||
e->FUN_1002ddc0(*this, local70);
|
||||
|
||||
@@ -258,7 +258,7 @@ MxU32 LegoPathBoundary::Intersect(
|
||||
|
||||
Vector3* local90 = local88->CWVertex(*this);
|
||||
Mx3DPointFloat locala4(p_point3);
|
||||
((Vector3&) locala4).Sub(*local90);
|
||||
locala4 -= *local90;
|
||||
|
||||
float local8c = locala4.Dot(&locala4, &local84);
|
||||
|
||||
@@ -285,7 +285,7 @@ MxU32 LegoPathBoundary::Intersect(
|
||||
|
||||
Vector3* localc4 = locala8->CWVertex(*this);
|
||||
Mx3DPointFloat locald8(p_point3);
|
||||
((Vector3&) locald8).Sub(*localc4);
|
||||
locald8 -= *localc4;
|
||||
|
||||
float localc0 = locald8.Dot(&locald8, &localbc);
|
||||
|
||||
@@ -316,8 +316,8 @@ MxU32 LegoPathBoundary::Intersect(
|
||||
}
|
||||
else if (local58 > 0.0f && e->m_unk0x3c > local58) {
|
||||
p_point3 = local70;
|
||||
p_point3.Mul(local58);
|
||||
p_point3.Add(*local5c);
|
||||
p_point3 *= local58;
|
||||
p_point3 += *local5c;
|
||||
p_edge = e;
|
||||
return 1;
|
||||
}
|
||||
@@ -345,7 +345,7 @@ MxU32 LegoPathBoundary::FUN_10057fe0(LegoAnimPresenter* p_presenter)
|
||||
Mx3DPointFloat unk0x30;
|
||||
|
||||
unk0x30 = m_unk0x30;
|
||||
((Vector3&) unk0x30).Sub(p_presenter->m_unk0xa8);
|
||||
unk0x30 -= p_presenter->m_unk0xa8;
|
||||
|
||||
float len = unk0x30.LenSquared();
|
||||
float local20 = p_presenter->m_unk0xa4 + m_unk0x44;
|
||||
|
||||
@@ -95,8 +95,7 @@ MxResult LegoPathController::Create(MxU8* p_data, const Vector3& p_location, con
|
||||
}
|
||||
|
||||
for (i = 0; i < m_numN; i++) {
|
||||
// TODO: Fix call
|
||||
((Vector3&) m_unk0x10[i]).Add(p_location);
|
||||
m_unk0x10[i] += p_location;
|
||||
}
|
||||
|
||||
for (i = 0; i < m_numL; i++) {
|
||||
@@ -950,9 +949,9 @@ MxS32 LegoPathController::FUN_1004a240(
|
||||
|
||||
Mx3DPointFloat vec;
|
||||
p_v1 = *p_edge->CCWVertex(*p_boundary);
|
||||
p_v1.Sub(*p_edge->CWVertex(*p_boundary));
|
||||
p_v1.Mul(p_f1);
|
||||
p_v1.Add(*p_edge->CWVertex(*p_boundary));
|
||||
p_v1 -= *p_edge->CWVertex(*p_boundary);
|
||||
p_v1 *= p_f1;
|
||||
p_v1 += *p_edge->CWVertex(*p_boundary);
|
||||
p_edge->FUN_1002ddc0(*p_boundary, vec);
|
||||
p_v2.EqualsCross(p_boundary->GetUnknown0x14(), &vec);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user