redefinir tecles

This commit is contained in:
2026-04-05 00:41:04 +02:00
parent a328681365
commit f8b60cb641
11 changed files with 167 additions and 24 deletions

View File

@@ -20,12 +20,12 @@ void JI_SetInputBlocked(bool blocked) {
input_blocked = blocked;
}
static Uint8 virtual_keystates[SDL_SCANCODE_COUNT] = {0};
static Uint8 virtual_keystates[JI_VSRC_COUNT][SDL_SCANCODE_COUNT] = {{0}};
void JI_SetVirtualKey(int scancode, bool pressed) {
if (scancode >= 0 && scancode < SDL_SCANCODE_COUNT) {
virtual_keystates[scancode] = pressed ? 1 : 0;
}
void JI_SetVirtualKey(int scancode, int source, bool pressed) {
if (scancode < 0 || scancode >= SDL_SCANCODE_COUNT) return;
if (source < 0 || source >= JI_VSRC_COUNT) return;
virtual_keystates[source][scancode] = pressed ? 1 : 0;
}
void JI_moveCheats(Uint8 new_key) {
@@ -56,7 +56,11 @@ bool JI_KeyPressed(int key) {
// ESC bloquejada pel Director (primera pulsació mostra notificació)
if (key == SDL_SCANCODE_ESCAPE && Director::get()->isEscBlocked()) return false;
if (key < 0 || key >= SDL_SCANCODE_COUNT) return false;
return keystates[key] != 0 || virtual_keystates[key] != 0;
if (keystates[key] != 0) return true;
for (int src = 0; src < JI_VSRC_COUNT; src++) {
if (virtual_keystates[src][key] != 0) return true;
}
return false;
}
bool JI_CheatActivated(const char* cheat_code) {