diff --git a/LEGO1/lego/legoomni/include/act3ammo.h b/LEGO1/lego/legoomni/include/act3ammo.h index 379971b4..122618cd 100644 --- a/LEGO1/lego/legoomni/include/act3ammo.h +++ b/LEGO1/lego/legoomni/include/act3ammo.h @@ -61,6 +61,7 @@ class Act3Ammo : public LegoPathActor { void SetUnknown0x158(MxFloat p_unk0x158) { m_unk0x158 = p_unk0x158; } + MxResult Remove(); MxResult Create(Act3* p_a3, MxU32 p_isPizza, MxS32 p_index); MxResult FUN_10053b40(Vector3& p_srcLoc, Vector3& p_srcDir, Vector3& p_srcUp); MxResult FUN_10053cb0(LegoPathController* p_p, LegoPathBoundary* p_boundary, MxFloat p_unk0x19c); diff --git a/LEGO1/lego/legoomni/src/actors/act3ammo.cpp b/LEGO1/lego/legoomni/src/actors/act3ammo.cpp index bf214ded..a2e655a2 100644 --- a/LEGO1/lego/legoomni/src/actors/act3ammo.cpp +++ b/LEGO1/lego/legoomni/src/actors/act3ammo.cpp @@ -2,6 +2,8 @@ #include "legocachesoundmanager.h" #include "legocharactermanager.h" +#include "legopathboundary.h" +#include "legopathcontroller.h" #include "legosoundmanager.h" #include "misc.h" #include "roi/legoroi.h" @@ -39,6 +41,25 @@ void Act3Ammo::Destroy(MxBool p_fromDestructor) } } +// FUNCTION: LEGO1 0x10053930 +// FUNCTION: BETA10 0x1001d7d0 +MxResult Act3Ammo::Remove() +{ + assert(IsValid()); + assert(m_roi && m_pathController); + + CharacterManager()->ReleaseActor(m_roi->GetName()); + m_roi = NULL; + + if (m_boundary != NULL) { + m_boundary->RemoveActor(this); + } + + m_pathController->RemoveActor(this); + m_ammoFlag = 0; + return SUCCESS; +} + // FUNCTION: LEGO1 0x10053980 // FUNCTION: BETA10 0x1001d8b3 MxResult Act3Ammo::Create(Act3* p_a3, MxU32 p_isPizza, MxS32 p_index)