mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Implement/match LegoAnimationManager::Resume (#869)
* Implement/match LegoAnimationManager::FUN_1005f0b0 * Rename
This commit is contained in:
parent
e7670f9a81
commit
599d8c91c8
5 changed files with 29 additions and 20 deletions
|
@ -67,8 +67,8 @@ class LegoAnimationManager : public MxCore {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset(MxBool p_und);
|
void Reset(MxBool p_und);
|
||||||
void FUN_1005ef10();
|
void Suspend();
|
||||||
void FUN_1005f0b0();
|
void Resume();
|
||||||
void FUN_1005f6d0(MxBool);
|
void FUN_1005f6d0(MxBool);
|
||||||
void FUN_1005f700(MxBool);
|
void FUN_1005f700(MxBool);
|
||||||
MxResult LoadScriptInfo(MxS32 p_scriptIndex);
|
MxResult LoadScriptInfo(MxS32 p_scriptIndex);
|
||||||
|
@ -154,7 +154,7 @@ class LegoAnimationManager : public MxCore {
|
||||||
undefined m_unk0x428; // 0x428
|
undefined m_unk0x428; // 0x428
|
||||||
undefined m_unk0x429; // 0x429
|
undefined m_unk0x429; // 0x429
|
||||||
undefined m_unk0x42a; // 0x42a
|
undefined m_unk0x42a; // 0x42a
|
||||||
undefined m_unk0x42b; // 0x42b
|
MxBool m_suspended; // 0x42b
|
||||||
undefined4 m_unk0x42c; // 0x42c
|
undefined4 m_unk0x42c; // 0x42c
|
||||||
undefined m_unk0x430; // 0x430
|
undefined m_unk0x430; // 0x430
|
||||||
undefined4 m_unk0x434[2]; // 0x434
|
undefined4 m_unk0x434[2]; // 0x434
|
||||||
|
|
|
@ -158,8 +158,8 @@ void LegoAnimationManager::Reset(MxBool p_und)
|
||||||
m_animState->SetFlag();
|
m_animState->SetFlag();
|
||||||
}
|
}
|
||||||
|
|
||||||
undefined unk0x42b = m_unk0x42b;
|
MxBool suspended = m_suspended;
|
||||||
FUN_1005ef10();
|
Suspend();
|
||||||
|
|
||||||
if (m_tranInfoList != NULL) {
|
if (m_tranInfoList != NULL) {
|
||||||
delete m_tranInfoList;
|
delete m_tranInfoList;
|
||||||
|
@ -172,22 +172,31 @@ void LegoAnimationManager::Reset(MxBool p_und)
|
||||||
DeleteAnimations();
|
DeleteAnimations();
|
||||||
Init();
|
Init();
|
||||||
|
|
||||||
m_unk0x42b = unk0x42b;
|
m_suspended = suspended;
|
||||||
m_unk0x428 = m_unk0x3a;
|
m_unk0x428 = m_unk0x3a;
|
||||||
m_unk0x429 = m_unk0x400;
|
m_unk0x429 = m_unk0x400;
|
||||||
m_unk0x42a = m_unk0x402;
|
m_unk0x42a = m_unk0x402;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1005ef10
|
// STUB: LEGO1 0x1005ef10
|
||||||
void LegoAnimationManager::FUN_1005ef10()
|
// FUNCTION: BETA10 0x1003fc7a
|
||||||
|
void LegoAnimationManager::Suspend()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1005f0b0
|
// FUNCTION: LEGO1 0x1005f0b0
|
||||||
void LegoAnimationManager::FUN_1005f0b0()
|
// FUNCTION: BETA10 0x1003fefe
|
||||||
|
void LegoAnimationManager::Resume()
|
||||||
{
|
{
|
||||||
// TODO
|
if (m_suspended) {
|
||||||
|
m_unk0x408 = m_unk0x40c = m_unk0x404 = Timer()->GetTime();
|
||||||
|
m_unk0x410 = 5000;
|
||||||
|
m_unk0x3a = m_unk0x428;
|
||||||
|
m_unk0x400 = m_unk0x429;
|
||||||
|
m_unk0x402 = m_unk0x42a;
|
||||||
|
m_suspended = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1005f130
|
// FUNCTION: LEGO1 0x1005f130
|
||||||
|
@ -227,7 +236,7 @@ void LegoAnimationManager::Init()
|
||||||
m_unk0x0e = 0;
|
m_unk0x0e = 0;
|
||||||
m_unk0x10 = 0;
|
m_unk0x10 = 0;
|
||||||
m_unk0x401 = 0;
|
m_unk0x401 = 0;
|
||||||
m_unk0x42b = 0;
|
m_suspended = FALSE;
|
||||||
m_unk0x430 = 0;
|
m_unk0x430 = 0;
|
||||||
m_unk0x42c = 0;
|
m_unk0x42c = 0;
|
||||||
m_unk0x408 = m_unk0x40c = m_unk0x404 = Timer()->GetTime();
|
m_unk0x408 = m_unk0x40c = m_unk0x404 = Timer()->GetTime();
|
||||||
|
@ -402,7 +411,7 @@ MxResult LegoAnimationManager::LoadScriptInfo(MxS32 p_scriptIndex)
|
||||||
result = SUCCESS;
|
result = SUCCESS;
|
||||||
m_unk0x402 = 1;
|
m_unk0x402 = 1;
|
||||||
|
|
||||||
if (m_unk0x42b) {
|
if (m_suspended) {
|
||||||
m_unk0x428 = m_unk0x3a;
|
m_unk0x428 = m_unk0x3a;
|
||||||
m_unk0x429 = m_unk0x400;
|
m_unk0x429 = m_unk0x400;
|
||||||
m_unk0x42a = 1;
|
m_unk0x42a = 1;
|
||||||
|
@ -541,7 +550,7 @@ MxResult LegoAnimationManager::ReadModelInfo(LegoFile* p_file, ModelInfo* p_info
|
||||||
// FUNCTION: LEGO1 0x100603c0
|
// FUNCTION: LEGO1 0x100603c0
|
||||||
void LegoAnimationManager::DeleteAnimations()
|
void LegoAnimationManager::DeleteAnimations()
|
||||||
{
|
{
|
||||||
undefined unk0x42b = m_unk0x42b;
|
MxBool suspended = m_suspended;
|
||||||
|
|
||||||
if (m_anims != NULL) {
|
if (m_anims != NULL) {
|
||||||
for (MxS32 i = 0; i < m_animCount; i++) {
|
for (MxS32 i = 0; i < m_animCount; i++) {
|
||||||
|
@ -560,7 +569,7 @@ void LegoAnimationManager::DeleteAnimations()
|
||||||
}
|
}
|
||||||
|
|
||||||
Init();
|
Init();
|
||||||
m_unk0x42b = unk0x42b;
|
m_suspended = suspended;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10060570
|
// STUB: LEGO1 0x10060570
|
||||||
|
|
|
@ -791,7 +791,7 @@ void LegoGameState::SwitchArea(Area p_area)
|
||||||
|
|
||||||
FUN_10015820(TRUE, LegoOmni::c_disableInput | LegoOmni::c_disable3d);
|
FUN_10015820(TRUE, LegoOmni::c_disableInput | LegoOmni::c_disable3d);
|
||||||
BackgroundAudioManager()->Stop();
|
BackgroundAudioManager()->Stop();
|
||||||
AnimationManager()->FUN_1005ef10();
|
AnimationManager()->Suspend();
|
||||||
VideoManager()->SetUnk0x554(FALSE);
|
VideoManager()->SetUnk0x554(FALSE);
|
||||||
|
|
||||||
switch (p_area) {
|
switch (p_area) {
|
||||||
|
@ -896,7 +896,7 @@ void LegoGameState::SwitchArea(Area p_area)
|
||||||
else {
|
else {
|
||||||
SetCameraControllerFromIsle();
|
SetCameraControllerFromIsle();
|
||||||
CurrentActor()->ResetWorldTransform(TRUE);
|
CurrentActor()->ResetWorldTransform(TRUE);
|
||||||
AnimationManager()->FUN_1005f0b0();
|
AnimationManager()->Resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentActor()->VTable0xe8(p_area, TRUE, 7);
|
CurrentActor()->VTable0xe8(p_area, TRUE, 7);
|
||||||
|
@ -910,7 +910,7 @@ void LegoGameState::SwitchArea(Area p_area)
|
||||||
LoadIsle();
|
LoadIsle();
|
||||||
SetCameraControllerFromIsle();
|
SetCameraControllerFromIsle();
|
||||||
CurrentActor()->ResetWorldTransform(TRUE);
|
CurrentActor()->ResetWorldTransform(TRUE);
|
||||||
AnimationManager()->FUN_1005f0b0();
|
AnimationManager()->Resume();
|
||||||
CurrentActor()->VTable0xe8(p_area, TRUE, 7);
|
CurrentActor()->VTable0xe8(p_area, TRUE, 7);
|
||||||
break;
|
break;
|
||||||
case e_police:
|
case e_police:
|
||||||
|
|
|
@ -630,7 +630,7 @@ void LegoWorld::Enable(MxBool p_enable)
|
||||||
PlantManager()->FUN_10026360(m_scriptIndex);
|
PlantManager()->FUN_10026360(m_scriptIndex);
|
||||||
AnimationManager()->LoadScriptInfo(m_scriptIndex);
|
AnimationManager()->LoadScriptInfo(m_scriptIndex);
|
||||||
BuildingManager()->FUN_1002fa00();
|
BuildingManager()->FUN_1002fa00();
|
||||||
AnimationManager()->FUN_1005f0b0();
|
AnimationManager()->Resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
GameState()->ResetROI();
|
GameState()->ResetROI();
|
||||||
|
|
|
@ -857,7 +857,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||||
GameState()->StopArea(LegoGameState::e_previousArea);
|
GameState()->StopArea(LegoGameState::e_previousArea);
|
||||||
m_destLocation = LegoGameState::e_undefined;
|
m_destLocation = LegoGameState::e_undefined;
|
||||||
VariableTable()->SetVariable("VISIBILITY", "Show Gas");
|
VariableTable()->SetVariable("VISIBILITY", "Show Gas");
|
||||||
AnimationManager()->FUN_1005f0b0();
|
AnimationManager()->Resume();
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||||
SetAppCursor(0);
|
SetAppCursor(0);
|
||||||
SetIsWorldActive(TRUE);
|
SetIsWorldActive(TRUE);
|
||||||
|
@ -867,7 +867,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||||
GameState()->StopArea(LegoGameState::e_previousArea);
|
GameState()->StopArea(LegoGameState::e_previousArea);
|
||||||
m_destLocation = LegoGameState::e_undefined;
|
m_destLocation = LegoGameState::e_undefined;
|
||||||
VariableTable()->SetVariable("VISIBILITY", "Show Policsta");
|
VariableTable()->SetVariable("VISIBILITY", "Show Policsta");
|
||||||
AnimationManager()->FUN_1005f0b0();
|
AnimationManager()->Resume();
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||||
SetAppCursor(0);
|
SetAppCursor(0);
|
||||||
SetIsWorldActive(TRUE);
|
SetIsWorldActive(TRUE);
|
||||||
|
|
Loading…
Reference in a new issue