void CInput::SetDefaultInputBindings() { for (int i = 0; i < INPUT_SLOT_MAX; i++) { m_inputBindings[i].primary = m_inputBindings[i].secondary = KEY_INVALID; } for (int i = 0; i < JOY_AXIS_SLOT_MAX; i++) { m_joyAxisBindings[i].axis = AXIS_INVALID; m_joyAxisBindings[i].invert = false; } m_inputBindings[INPUT_SLOT_LEFT ].primary = KEY(LEFT); m_inputBindings[INPUT_SLOT_RIGHT ].primary = KEY(RIGHT); m_inputBindings[INPUT_SLOT_UP ].primary = KEY(UP); m_inputBindings[INPUT_SLOT_DOWN ].primary = KEY(DOWN); m_inputBindings[INPUT_SLOT_LEFT ].secondary = KEY(a); m_inputBindings[INPUT_SLOT_RIGHT ].secondary = KEY(d); m_inputBindings[INPUT_SLOT_UP ].secondary = KEY(w); m_inputBindings[INPUT_SLOT_DOWN ].secondary = KEY(s); m_inputBindings[INPUT_SLOT_GUP ].primary = VIRTUAL_KMOD(SHIFT); m_inputBindings[INPUT_SLOT_GDOWN ].primary = VIRTUAL_KMOD(CTRL); m_inputBindings[INPUT_SLOT_CAMERA ].primary = KEY(SPACE); m_inputBindings[INPUT_SLOT_DESEL ].primary = KEY(KP_0); m_inputBindings[INPUT_SLOT_ACTION ].primary = KEY(RETURN); m_inputBindings[INPUT_SLOT_ACTION ].secondary = KEY(e); m_inputBindings[INPUT_SLOT_NEAR ].primary = KEY(KP_PLUS); m_inputBindings[INPUT_SLOT_AWAY ].primary = KEY(KP_MINUS); m_inputBindings[INPUT_SLOT_NEXT ].primary = KEY(TAB); m_inputBindings[INPUT_SLOT_HUMAN ].primary = KEY(HOME); m_inputBindings[INPUT_SLOT_QUIT ].primary = KEY(ESCAPE); m_inputBindings[INPUT_SLOT_HELP ].primary = KEY(F1); m_inputBindings[INPUT_SLOT_PROG ].primary = KEY(F2); m_inputBindings[INPUT_SLOT_VISIT ].primary = KEY(KP_PERIOD); m_inputBindings[INPUT_SLOT_SPEED05].primary = KEY(F3); m_inputBindings[INPUT_SLOT_SPEED10].primary = KEY(F4); m_inputBindings[INPUT_SLOT_SPEED15].primary = KEY(F5); m_inputBindings[INPUT_SLOT_SPEED20].primary = KEY(F6); m_inputBindings[INPUT_SLOT_SPEED30].primary = KEY(F7); m_inputBindings[INPUT_SLOT_SPEED40].primary = KEY(F8); m_inputBindings[INPUT_SLOT_SPEED60].primary = KEY(F9); m_inputBindings[INPUT_SLOT_CAMERA_UP].primary = KEY(PAGEUP); m_inputBindings[INPUT_SLOT_CAMERA_DOWN].primary = KEY(PAGEDOWN); m_inputBindings[INPUT_SLOT_PAUSE].primary = KEY(PAUSE); m_inputBindings[INPUT_SLOT_PAUSE].secondary = KEY(p); m_inputBindings[INPUT_SLOT_CMDLINE].primary = KEY(BACKQUOTE); m_joyAxisBindings[JOY_AXIS_SLOT_X].axis = 0; m_joyAxisBindings[JOY_AXIS_SLOT_Y].axis = 1; m_joyAxisBindings[JOY_AXIS_SLOT_Z].axis = 2; }
Event CApplication::CreateVirtualEvent(const Event& sourceEvent) { Event virtualEvent; virtualEvent.systemEvent = true; if ((sourceEvent.type == EVENT_KEY_DOWN) || (sourceEvent.type == EVENT_KEY_UP)) { virtualEvent.type = sourceEvent.type; virtualEvent.key = sourceEvent.key; virtualEvent.key.virt = true; if (sourceEvent.key.key == KEY(LCTRL) || sourceEvent.key.key == KEY(RCTRL)) virtualEvent.key.key = VIRTUAL_KMOD(CTRL); else if (sourceEvent.key.key == KEY(LSHIFT) || sourceEvent.key.key == KEY(RSHIFT)) virtualEvent.key.key = VIRTUAL_KMOD(SHIFT); else if (sourceEvent.key.key == KEY(LALT) || sourceEvent.key.key == KEY(RALT)) virtualEvent.key.key = VIRTUAL_KMOD(ALT); else if (sourceEvent.key.key == KEY(LMETA) || sourceEvent.key.key == KEY(RMETA)) virtualEvent.key.key = VIRTUAL_KMOD(META); else virtualEvent.type = EVENT_NULL; } else if ((sourceEvent.type == EVENT_JOY_BUTTON_DOWN) || (sourceEvent.type == EVENT_JOY_BUTTON_UP)) { if (sourceEvent.type == EVENT_JOY_BUTTON_DOWN) virtualEvent.type = EVENT_KEY_DOWN; else virtualEvent.type = EVENT_KEY_UP; virtualEvent.key.virt = true; virtualEvent.key.key = VIRTUAL_JOY(sourceEvent.joyButton.button); virtualEvent.key.unicode = 0; } else { virtualEvent.type = EVENT_NULL; } return virtualEvent; }