Implement/match LegoAnimationManager::Reset (#863)

* Implement/match LegoAnimationManager::Init

* Rename function

* fix hex val
This commit is contained in:
Christian Semmler 2024-04-27 10:31:50 -04:00 committed by GitHub
parent 659599b635
commit ec7df356cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 32 additions and 8 deletions

View file

@ -66,7 +66,7 @@ class LegoAnimationManager : public MxCore {
return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name); return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name);
} }
void FUN_1005ee80(MxBool); void Reset(MxBool p_und);
void FUN_1005ef10(); void FUN_1005ef10();
void FUN_1005f0b0(); void FUN_1005f0b0();
void FUN_1005f6d0(MxBool); void FUN_1005f6d0(MxBool);

View file

@ -18,7 +18,7 @@
DECOMP_SIZE_ASSERT(LegoAnimationManager, 0x500) DECOMP_SIZE_ASSERT(LegoAnimationManager, 0x500)
DECOMP_SIZE_ASSERT(Character, 0x18) DECOMP_SIZE_ASSERT(Character, 0x18)
DECOMP_SIZE_ASSERT(Vehicle, 0x8) DECOMP_SIZE_ASSERT(Vehicle, 0x08)
DECOMP_SIZE_ASSERT(Unknown0x3c, 0x18) DECOMP_SIZE_ASSERT(Unknown0x3c, 0x18)
DECOMP_SIZE_ASSERT(LegoTranInfo, 0x78) DECOMP_SIZE_ASSERT(LegoTranInfo, 0x78)
@ -148,10 +148,34 @@ LegoAnimationManager::~LegoAnimationManager()
NotificationManager()->Unregister(this); NotificationManager()->Unregister(this);
} }
// STUB: LEGO1 0x1005ee80 // FUNCTION: LEGO1 0x1005ee80
void LegoAnimationManager::FUN_1005ee80(MxBool) // FUNCTION: BETA10 0x1003fbc0
void LegoAnimationManager::Reset(MxBool p_und)
{ {
// TODO m_unk0x402 = 0;
if (p_und && m_animState != NULL) {
m_animState->SetFlag();
}
undefined unk0x42b = m_unk0x42b;
FUN_1005ef10();
if (m_tranInfoList != NULL) {
delete m_tranInfoList;
}
if (m_tranInfoList2 != NULL) {
delete m_tranInfoList2;
}
DeleteAnimations();
Init();
m_unk0x42b = unk0x42b;
m_unk0x428 = m_unk0x3a;
m_unk0x429 = m_unk0x400;
m_unk0x42a = m_unk0x402;
} }
// STUB: LEGO1 0x1005ef10 // STUB: LEGO1 0x1005ef10

View file

@ -1072,7 +1072,7 @@ void LegoGameState::Init()
PlantManager()->Init(); PlantManager()->Init();
BuildingManager()->Init(); BuildingManager()->Init();
CharacterManager()->Init(); CharacterManager()->Init();
AnimationManager()->FUN_1005ee80(TRUE); AnimationManager()->Reset(TRUE);
SetColors(); SetColors();
RemoveActor(); RemoveActor();
DeleteState(); DeleteState();

View file

@ -646,7 +646,7 @@ void LegoWorld::Enable(MxBool p_enable)
FUN_1001fc80(actor); FUN_1001fc80(actor);
} }
AnimationManager()->FUN_1005ee80(FALSE); AnimationManager()->Reset(FALSE);
m_set0xd0.insert(this); m_set0xd0.insert(this);
if (m_scriptIndex != -1) { if (m_scriptIndex != -1) {

View file

@ -1303,7 +1303,7 @@ void Infocenter::Reset()
PlantManager()->FUN_10027120(); PlantManager()->FUN_10027120();
BuildingManager()->FUN_10030590(); BuildingManager()->FUN_10030590();
AnimationManager()->FUN_1005ee80(FALSE); AnimationManager()->Reset(FALSE);
CharacterManager()->FUN_100832a0(); CharacterManager()->FUN_100832a0();
GameState()->SetCurrentAct(LegoGameState::e_act1); GameState()->SetCurrentAct(LegoGameState::e_act1);
GameState()->SetPreviousArea(LegoGameState::e_undefined); GameState()->SetPreviousArea(LegoGameState::e_undefined);