mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 23:01:16 +00:00
Improve UnknownMx4DPointFloat::Unknown7 match, add BETA10
This commit is contained in:
parent
cc041a7976
commit
80f0433346
@ -48,6 +48,7 @@ class HelicopterState : public LegoState {
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d40f8
|
||||
// VTABLE: BETA10 0x101b9880
|
||||
// SIZE 0x230
|
||||
class Helicopter : public IslePathActor {
|
||||
public:
|
||||
@ -55,6 +56,7 @@ class Helicopter : public IslePathActor {
|
||||
~Helicopter() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10003070
|
||||
// FUNCTION: BETA10 0x1002b300
|
||||
const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0130
|
||||
@ -62,6 +64,7 @@ class Helicopter : public IslePathActor {
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003080
|
||||
// FUNCTION: BETA10 0x1002b330
|
||||
MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Helicopter::ClassName()) || IslePathActor::IsA(p_name);
|
||||
|
||||
@ -115,6 +115,7 @@ class UnknownMx4DPointFloat {
|
||||
m_unk0x30 |= c_bit1;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10004620
|
||||
// FUNCTION: BETA10 0x1004aa30
|
||||
void Unknown3(Matrix4& p_m)
|
||||
{
|
||||
@ -141,7 +142,7 @@ class UnknownMx4DPointFloat {
|
||||
undefined4 GetUnknown0x30() const { return m_unk0x30; }
|
||||
|
||||
inline int Unknown6(Matrix4& p_matrix, float p_f);
|
||||
inline void Unknown7();
|
||||
inline long Unknown7();
|
||||
|
||||
private:
|
||||
inline int FUN_100040a0(Vector4& p_v, float p_f);
|
||||
@ -165,22 +166,27 @@ int UnknownMx4DPointFloat::Unknown6(Matrix4& p_matrix, float p_f)
|
||||
}
|
||||
}
|
||||
|
||||
inline void UnknownMx4DPointFloat::Unknown7()
|
||||
// FUNCTION: LEGO1 0x10004520
|
||||
inline long UnknownMx4DPointFloat::Unknown7()
|
||||
{
|
||||
if (m_unk0x30) {
|
||||
Mx4DPointFloat v1;
|
||||
Mx4DPointFloat v2;
|
||||
|
||||
v1 = m_unk0x00;
|
||||
v1 += m_unk0x18;
|
||||
|
||||
v2 = m_unk0x00;
|
||||
v2 -= m_unk0x18;
|
||||
|
||||
if (v1.Dot(&v1, &v1) < v2.Dot(&v2, &v2)) {
|
||||
m_unk0x18 *= -1.0f;
|
||||
}
|
||||
if (!m_unk0x30) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
Mx4DPointFloat v1;
|
||||
Mx4DPointFloat v2;
|
||||
|
||||
v1 = m_unk0x00;
|
||||
v1 += m_unk0x18;
|
||||
|
||||
v2 = m_unk0x00;
|
||||
v2 -= m_unk0x18;
|
||||
|
||||
if (v1.Dot(&v1, &v1) < v2.Dot(&v2, &v2)) {
|
||||
m_unk0x18 *= -1.0f;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100040a0
|
||||
|
||||
@ -31,5 +31,6 @@ targets:
|
||||
- LegoWorld
|
||||
ignore-functions:
|
||||
# strcpy, strlen, ... (arguments are imported incorrectly)
|
||||
- 0x100f8ad0
|
||||
- 0x100fa200
|
||||
- 0x100f9780
|
||||
|
||||
Loading…
Reference in New Issue
Block a user