mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 23:01:16 +00:00
Infocenter::HandleControl maybe down to entropy
This commit is contained in:
parent
4cccf35d4a
commit
bcdcb9d0fc
@ -630,6 +630,7 @@ MxCore* LegoWorld::Find(const char* p_class, const char* p_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10021790
|
// FUNCTION: LEGO1 0x10021790
|
||||||
|
// FUNCTION: BETA10 0x100db3de
|
||||||
MxCore* LegoWorld::Find(const MxAtomId& p_atom, MxS32 p_entityId)
|
MxCore* LegoWorld::Find(const MxAtomId& p_atom, MxS32 p_entityId)
|
||||||
{
|
{
|
||||||
LegoEntityListCursor entityCursor(m_entityList);
|
LegoEntityListCursor entityCursor(m_entityList);
|
||||||
|
|||||||
@ -38,6 +38,7 @@ MxAtomId* g_elevbottScript = NULL;
|
|||||||
MxAtomId* g_infodoorScript = NULL;
|
MxAtomId* g_infodoorScript = NULL;
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x100f4548
|
// GLOBAL: LEGO1 0x100f4548
|
||||||
|
// GLOBAL: BETA10 0x102114dc
|
||||||
MxAtomId* g_infomainScript = NULL;
|
MxAtomId* g_infomainScript = NULL;
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x100f454c
|
// GLOBAL: LEGO1 0x100f454c
|
||||||
|
|||||||
@ -1050,37 +1050,47 @@ MxU8 Infocenter::HandleControl(LegoControlManagerNotificationParam& p_param)
|
|||||||
case InfomainScript::c_BigInfo_Ctl:
|
case InfomainScript::c_BigInfo_Ctl:
|
||||||
switch (state->GetCurrentAct()) {
|
switch (state->GetCurrentAct()) {
|
||||||
case LegoGameState::e_act1:
|
case LegoGameState::e_act1:
|
||||||
switch (state->GetPreviousArea()) {
|
if (state->GetPreviousArea()) {
|
||||||
case LegoGameState::e_infodoor:
|
switch (state->GetPreviousArea()) {
|
||||||
case LegoGameState::e_regbook:
|
case LegoGameState::e_infodoor:
|
||||||
case LegoGameState::e_infoscor:
|
case LegoGameState::e_regbook:
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
case LegoGameState::e_infoscor:
|
||||||
m_destLocation = state->GetPreviousArea();
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
actionToPlay =
|
m_destLocation = state->GetPreviousArea();
|
||||||
(InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct())
|
actionToPlay =
|
||||||
.Next();
|
(InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct())
|
||||||
m_radio.Stop();
|
.Next();
|
||||||
InputManager()->DisableInputProcessing();
|
m_radio.Stop();
|
||||||
InputManager()->SetUnknown336(TRUE);
|
InputManager()->DisableInputProcessing();
|
||||||
break;
|
InputManager()->SetUnknown336(TRUE);
|
||||||
case LegoGameState::e_unk4:
|
break;
|
||||||
if (state->GetActorId() != LegoActor::c_none) {
|
case LegoGameState::e_elevbott:
|
||||||
if (m_infocenterState->HasRegistered()) {
|
case LegoGameState::e_elevride:
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
case LegoGameState::e_elevride2:
|
||||||
m_destLocation = state->GetPreviousArea();
|
case LegoGameState::e_elevopen:
|
||||||
actionToPlay = (InfomainScript::Script) m_infocenterState
|
case LegoGameState::e_seaview:
|
||||||
->GetLeaveDialogue(GameState()->GetCurrentAct())
|
case LegoGameState::e_observe:
|
||||||
.Next();
|
case LegoGameState::e_elevdown:
|
||||||
m_radio.Stop();
|
break;
|
||||||
InputManager()->DisableInputProcessing();
|
default:
|
||||||
InputManager()->SetUnknown336(TRUE);
|
if (state->GetActorId() != LegoActor::c_none) {
|
||||||
}
|
if (!m_infocenterState->HasRegistered()) {
|
||||||
else {
|
PlayAction(InfomainScript::c_iic007in_PlayWav);
|
||||||
PlayAction(InfomainScript::c_iic007in_PlayWav);
|
m_infocenterState->SetUnknown0x74(2);
|
||||||
m_infocenterState->SetUnknown0x74(2);
|
}
|
||||||
|
else {
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
m_destLocation = state->GetPreviousArea();
|
||||||
|
actionToPlay = (InfomainScript::Script) m_infocenterState
|
||||||
|
->GetLeaveDialogue(GameState()->GetCurrentAct())
|
||||||
|
.Next();
|
||||||
|
m_radio.Stop();
|
||||||
|
InputManager()->DisableInputProcessing();
|
||||||
|
InputManager()->SetUnknown336(TRUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case LegoGameState::e_act2:
|
case LegoGameState::e_act2:
|
||||||
@ -1523,6 +1533,7 @@ void Infocenter::StopCredits()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10071300
|
// FUNCTION: LEGO1 0x10071300
|
||||||
|
// FUNCTION: BETA10 0x1002ee8c
|
||||||
void Infocenter::PlayAction(InfomainScript::Script p_script)
|
void Infocenter::PlayAction(InfomainScript::Script p_script)
|
||||||
{
|
{
|
||||||
MxDSAction action;
|
MxDSAction action;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user