diff --git a/LEGO1/lego/legoomni/include/legogamestate.h b/LEGO1/lego/legoomni/include/legogamestate.h index 05f24c5f..b1a9051f 100644 --- a/LEGO1/lego/legoomni/include/legogamestate.h +++ b/LEGO1/lego/legoomni/include/legogamestate.h @@ -16,6 +16,8 @@ class MxVariable; class MxVariableTable; class MxString; +extern const char* g_actorNames[7]; + // SIZE 0x08 struct ColorStringStruct { const char* m_targetName; // 0x00 @@ -164,6 +166,10 @@ class LegoGameState { void Init(); inline MxU8 GetActorId() { return m_actorId; } + + // FUNCTION: BETA10 0x1004a2d0 + inline const char* GetActorName() { return g_actorNames[GetActorId()]; } + inline Act GetCurrentAct() { return m_currentAct; } inline Act GetLoadedAct() { return m_loadedAct; } inline Area GetCurrentArea() { return m_currentArea; } diff --git a/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp b/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp index c633364f..d6f5760f 100644 --- a/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp +++ b/LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp @@ -1492,11 +1492,25 @@ MxBool LegoAnimationManager::FUN_10062650(Vector3& p_position, float p_und, Lego return FALSE; } -// STUB: LEGO1 0x10062710 +// FUNCTION: LEGO1 0x10062710 // FUNCTION: BETA10 0x10043787 MxBool LegoAnimationManager::FUN_10062710(AnimInfo& p_info) { - // TODO + MxU8 und = 0; + MxU8 actorId = GameState()->GetActorId(); + + if (actorId <= 5) { + und = g_unk0x100d8b28[actorId]; + } + + if (!(und & p_info.m_unk0x0c)) { + return TRUE; + } + + if (ModelExists(p_info, GameState()->GetActorName())) { + return TRUE; + } + return FALSE; }