diff --git a/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp b/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp index c0e6d1ed..8f152f91 100644 --- a/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp +++ b/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp @@ -223,11 +223,15 @@ MxLong RegistrationBook::HandleKeyPress(SDL_Keycode p_key) // FUNCTION: LEGO1 0x100774a0 MxLong RegistrationBook::HandleControl(LegoControlManagerNotificationParam& p_param) { - MxS16 unk0x28 = p_param.m_unk0x28; + MxS16 buttonId = p_param.m_unk0x28; - if (unk0x28 >= 1 && unk0x28 <= 28) { + if (buttonId >= 1 && buttonId <= 28) { if (p_param.m_clickedObjectId == RegbookScript::c_Alphabet_Ctl) { - if (unk0x28 == 28) { + // buttonId: + // - [1, 26]: alphabet + // - 27: backspace + // - 28: go back to information center + if (buttonId == 28) { DeleteObjects(&m_atomId, RegbookScript::c_iic006in_RunAnim, RegbookScript::c_iic008in_PlayWav); if (GameState()->GetCurrentAct() == LegoGameState::e_act1) { @@ -240,14 +244,15 @@ MxLong RegistrationBook::HandleControl(LegoControlManagerNotificationParam& p_pa TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE); } else { - if (unk0x28 > 28) { + if (buttonId > 28) { return 1; } - HandleKeyPress(unk0x28 < 27 ? unk0x28 + 64 : 8); + HandleKeyPress(buttonId < 27 ? SDLK_A + buttonId - 1 : SDLK_BACKSPACE); } } else { + // Select another profile (buttonId is always 1) InputManager()->DisableInputProcessing(); DeleteObjects(&m_atomId, RegbookScript::c_iic006in_RunAnim, RegbookScript::c_iic008in_PlayWav);