Implement/match LegoAnimationManager::FUN_10064120 (#932)

* Implement/match LegoAnimationManager::FUN_10064120

* Fix naming

* Fix parentheses
This commit is contained in:
Christian Semmler
2024-05-18 11:48:07 -04:00
committed by GitHub
parent c92341527e
commit aab6a17d2f
4 changed files with 125 additions and 5 deletions

View File

@@ -2,7 +2,7 @@
#define __LEGOUNKNOWN100DB7F4_H
#include "legoedge.h"
#include "legoweedge.h"
#include "legowegedge.h"
#include "mxgeometry/mxgeometry3d.h"
// VTABLE: LEGO1 0x100db7f4
@@ -34,6 +34,24 @@ public:
return SUCCESS;
}
// FUNCTION: BETA10 0x1004a830
LegoU32 Unknown(LegoWEGEdge& p_face, LegoU8 p_mask)
{
return (p_face.IsEqual(*m_faceB) && (m_flags & c_bit1) && (p_face.GetMask0x03() & p_mask) == p_mask) ||
(p_face.IsEqual(*m_faceA) && (m_flags & c_bit2) && (p_face.GetMask0x03() & p_mask) == p_mask);
}
// FUNCTION: BETA10 0x1001cbe0
LegoWEEdge* OtherFace(LegoWEEdge* p_other)
{
if (m_faceA == p_other) {
return m_faceB;
}
else {
return m_faceA;
}
}
LegoU32 GetMask0x03() { return m_flags & (c_bit1 | c_bit2); }
// SYNTHETIC: LEGO1 0x1009a6c0

View File

@@ -13,6 +13,8 @@ struct LegoPathStruct;
class LegoWEGEdge : public LegoWEEdge {
public:
enum {
c_bit1 = 0x01,
c_bit2 = 0x02,
c_bit3 = 0x04,
c_bit5 = 0x10
};
@@ -53,6 +55,8 @@ public:
}
}
inline LegoU8 GetMask0x03() { return m_flags & (c_bit1 | c_bit2); }
// SYNTHETIC: LEGO1 0x1009a7e0
// LegoWEGEdge::`scalar deleting destructor'