mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-22 15:48:09 -05:00
Implement rest of Infocenter::HandleClick (#542)
This commit is contained in:
parent
897f9a3371
commit
c17ef9a805
1 changed files with 51 additions and 3 deletions
|
@ -863,7 +863,7 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
|
||||||
StopCurrentAction();
|
StopCurrentAction();
|
||||||
InfomainScript characterBitmap = c_noInfomain;
|
InfomainScript characterBitmap = c_noInfomain;
|
||||||
|
|
||||||
GameState();
|
LegoGameState* state = GameState();
|
||||||
|
|
||||||
switch (p_param.GetClickedObjectId()) {
|
switch (p_param.GetClickedObjectId()) {
|
||||||
case c_leftArrowCtl:
|
case c_leftArrowCtl:
|
||||||
|
@ -933,14 +933,62 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
break;
|
break;
|
||||||
case c_bigInfoCtl:
|
case c_bigInfoCtl:
|
||||||
// TODO
|
switch (state->GetUnknown10()) {
|
||||||
|
case 0:
|
||||||
|
switch (state->GetPreviousArea()) {
|
||||||
|
case 3:
|
||||||
|
case 12:
|
||||||
|
case 13:
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
m_transitionDestination = state->GetPreviousArea();
|
||||||
|
actionToPlay =
|
||||||
|
(InfomainScript) m_infocenterState->GetUnknown0x44()[GameState()->GetUnknown10()].Next();
|
||||||
|
m_radio.Stop();
|
||||||
|
InputManager()->DisableInputProcessing();
|
||||||
|
InputManager()->SetUnknown336(TRUE);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
if (state->GetUnknownC()) {
|
||||||
|
if (m_infocenterState->GetInfocenterBufferElement(0)) {
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
m_transitionDestination = state->GetPreviousArea();
|
||||||
|
actionToPlay =
|
||||||
|
(InfomainScript) m_infocenterState->GetUnknown0x44()[GameState()->GetUnknown10()].Next(
|
||||||
|
);
|
||||||
|
m_radio.Stop();
|
||||||
|
InputManager()->DisableInputProcessing();
|
||||||
|
InputManager()->SetUnknown336(TRUE);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PlayAction(c_registerToContinueDialogue);
|
||||||
|
m_infocenterState->SetUnknown0x74(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
m_transitionDestination = 0x2e;
|
||||||
|
actionToPlay = (InfomainScript) m_infocenterState->GetUnknown0x44()[GameState()->GetUnknown10()].Next();
|
||||||
|
InputManager()->DisableInputProcessing();
|
||||||
|
InputManager()->SetUnknown336(TRUE);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
m_transitionDestination = 0x2f;
|
||||||
|
actionToPlay = (InfomainScript) m_infocenterState->GetUnknown0x44()[GameState()->GetUnknown10()].Next();
|
||||||
|
InputManager()->DisableInputProcessing();
|
||||||
|
InputManager()->SetUnknown336(TRUE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case c_bookCtl:
|
case c_bookCtl:
|
||||||
m_transitionDestination = 12;
|
m_transitionDestination = 12;
|
||||||
m_infocenterState->SetUnknown0x74(4);
|
m_infocenterState->SetUnknown0x74(4);
|
||||||
actionToPlay = GameState()->GetUnknown10() ? c_goToRegBookRed : c_goToRegBook;
|
actionToPlay = GameState()->GetUnknown10() ? c_goToRegBookRed : c_goToRegBook;
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
GameState()->SetCurrentArea(GameState()->GetPreviousArea());
|
GameState()->SetUnknown0x42c(GameState()->GetPreviousArea());
|
||||||
InputManager()->DisableInputProcessing();
|
InputManager()->DisableInputProcessing();
|
||||||
break;
|
break;
|
||||||
case c_mamaCtl:
|
case c_mamaCtl:
|
||||||
|
|
Loading…
Reference in a new issue