mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Implement/match LegoEntity::SetROI (#628)
This commit is contained in:

committed by
GitHub

parent
f6e44b1c1b
commit
3b2bd0e9d4
@@ -63,6 +63,7 @@ public:
|
||||
inline MxU8 GetFlags() { return m_flags; }
|
||||
|
||||
inline void SetFlags(MxU8 p_flags) { m_flags = p_flags; }
|
||||
inline void SetFlag(MxU8 p_flag) { m_flags |= p_flag; }
|
||||
inline void ClearFlag(MxU8 p_flag) { m_flags &= ~p_flag; }
|
||||
|
||||
protected:
|
||||
|
@@ -52,7 +52,7 @@ void LegoEntity::Destroy(MxBool p_fromDestructor)
|
||||
if (m_roi) {
|
||||
if (m_flags & c_bit1) {
|
||||
if (m_roi->GetUnknown0x104() == this) {
|
||||
m_roi->SetUnknown0x104(NULL);
|
||||
m_roi->SetEntity(NULL);
|
||||
}
|
||||
|
||||
UnkSaveDataWriter()->FUN_10083db0(m_roi);
|
||||
@@ -76,10 +76,34 @@ void LegoEntity::SetWorld()
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100108a0
|
||||
// FUNCTION: LEGO1 0x100108a0
|
||||
void LegoEntity::SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2)
|
||||
{
|
||||
// TODO
|
||||
m_roi = p_roi;
|
||||
|
||||
if (m_roi != NULL) {
|
||||
if (p_bool2) {
|
||||
MxMatrix mat;
|
||||
CalcLocalTransform(
|
||||
Mx3DPointFloat(m_worldLocation.GetX(), m_worldLocation.GetY(), m_worldLocation.GetZ()),
|
||||
Mx3DPointFloat(m_worldDirection.GetX(), m_worldDirection.GetY(), m_worldDirection.GetZ()),
|
||||
Mx3DPointFloat(m_worldUp.GetX(), m_worldUp.GetY(), m_worldUp.GetZ()),
|
||||
mat
|
||||
);
|
||||
|
||||
m_roi->FUN_100a46b0(mat);
|
||||
}
|
||||
|
||||
m_roi->SetEntity(this);
|
||||
VideoManager()->Get3DManager()->GetLego3DView()->Moved(*m_roi);
|
||||
|
||||
if (p_bool1) {
|
||||
ClearFlag(c_bit1);
|
||||
}
|
||||
else {
|
||||
SetFlag(c_bit1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100109b0
|
||||
|
@@ -546,7 +546,7 @@ void LegoWorld::Enable(MxBool p_enable)
|
||||
|
||||
while (cursor.Next(entity)) {
|
||||
if (entity->GetROI()) {
|
||||
entity->GetROI()->SetUnknown0x104(entity);
|
||||
entity->GetROI()->SetEntity(entity);
|
||||
GetViewManager()->Add(entity->GetROI());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user