Use Windows virtual key macros for keys (#1302)

* Use Windows virtual key macros for keys

* Add `VK_OEM_MINUS`

* Fix missing key

* Name variable
This commit is contained in:
Christian Semmler 2024-12-29 09:14:36 -07:00 committed by GitHub
parent 9b96f3c338
commit d97ce96768
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -30,6 +30,11 @@
DECOMP_SIZE_ASSERT(LegoNavController, 0x70) DECOMP_SIZE_ASSERT(LegoNavController, 0x70)
// MSVC 4.20 didn't define a macro for this key
#ifndef VK_OEM_MINUS
#define VK_OEM_MINUS 0xBD
#endif
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
#ifndef M_PI #ifndef M_PI
@ -109,7 +114,7 @@ char g_debugPassword[] = "OGEL";
char* g_currentInput = g_debugPassword; char* g_currentInput = g_debugPassword;
// GLOBAL: LEGO1 0x100f66cc // GLOBAL: LEGO1 0x100f66cc
MxS32 g_unk0x100f66cc = -1; MxS32 g_nextCharacter = -1;
// GLOBAL: LEGO1 0x100f66d0 // GLOBAL: LEGO1 0x100f66d0
MxBool g_enableMusic = TRUE; MxBool g_enableMusic = TRUE;
@ -697,29 +702,29 @@ MxLong LegoNavController::Notify(MxParam& p_param)
} }
break; break;
} }
case 'k': case VK_ADD:
case 'm': { // Keys need to be uppercased to trigger this code, but seems dysfunctional case VK_SUBTRACT: { // Cycles through characters and puts them in front of you
if (g_unk0x100f66cc == -1) { if (g_nextCharacter == -1) {
g_unk0x100f66cc = 0; g_nextCharacter = 0;
} }
else { else {
CharacterManager()->ReleaseActor(CharacterManager()->GetActorName(g_unk0x100f66cc)); CharacterManager()->ReleaseActor(CharacterManager()->GetActorName(g_nextCharacter));
if (key == 'k') { if (key == VK_ADD) {
g_unk0x100f66cc++; g_nextCharacter++;
if (g_unk0x100f66cc >= CharacterManager()->GetNumActors()) { if (g_nextCharacter >= CharacterManager()->GetNumActors()) {
g_unk0x100f66cc = 0; g_nextCharacter = 0;
} }
} }
else { else {
g_unk0x100f66cc--; g_nextCharacter--;
if (g_unk0x100f66cc < 0) { if (g_nextCharacter < 0) {
g_unk0x100f66cc = CharacterManager()->GetNumActors() - 1; g_nextCharacter = CharacterManager()->GetNumActors() - 1;
} }
} }
} }
LegoROI* roi = CharacterManager()->GetActorROI(CharacterManager()->GetActorName(g_unk0x100f66cc), TRUE); LegoROI* roi = CharacterManager()->GetActorROI(CharacterManager()->GetActorName(g_nextCharacter), TRUE);
if (roi != NULL) { if (roi != NULL) {
MxMatrix mat; MxMatrix mat;
ViewROI* viewRoi = LegoOmni::GetInstance()->GetVideoManager()->GetViewROI(); ViewROI* viewRoi = LegoOmni::GetInstance()->GetVideoManager()->GetViewROI();
@ -732,7 +737,7 @@ MxLong LegoNavController::Notify(MxParam& p_param)
} }
break; break;
} }
case '{': { // Saves the game. Can't actually be triggered case VK_F12: { // Saves the game
InfocenterState* state = (InfocenterState*) GameState()->GetState("InfocenterState"); InfocenterState* state = (InfocenterState*) GameState()->GetState("InfocenterState");
if (state && state->HasRegistered()) { if (state && state->HasRegistered()) {
GameState()->Save(0); GameState()->Save(0);
@ -998,7 +1003,7 @@ MxLong LegoNavController::Notify(MxParam& p_param)
case 'X': case 'X':
RealtimeView::SetUserMaxLOD(3.6); RealtimeView::SetUserMaxLOD(3.6);
break; break;
case 'j': { case VK_MULTIPLY: {
MxU8 newActor = GameState()->GetActorId() + 1; MxU8 newActor = GameState()->GetActorId() + 1;
if (newActor > LegoActor::c_laura) { if (newActor > LegoActor::c_laura) {
@ -1008,10 +1013,10 @@ MxLong LegoNavController::Notify(MxParam& p_param)
GameState()->SetActorId(newActor); GameState()->SetActorId(newActor);
break; break;
} }
case 'o': case VK_DIVIDE:
GameState()->SetActorId(LegoActor::c_brickster); GameState()->SetActorId(LegoActor::c_brickster);
break; break;
case 'z': case VK_F11:
if (GameState()->m_isDirty) { if (GameState()->m_isDirty) {
GameState()->m_isDirty = FALSE; GameState()->m_isDirty = FALSE;
} }
@ -1019,7 +1024,7 @@ MxLong LegoNavController::Notify(MxParam& p_param)
GameState()->m_isDirty = TRUE; GameState()->m_isDirty = TRUE;
} }
break; break;
case 0xbd: case VK_OEM_MINUS:
g_unk0x100f66bc = LegoAnimationManager::e_unk1; g_unk0x100f66bc = LegoAnimationManager::e_unk1;
break; break;
} }