From d6b1870b5b55a87d8561ea495503a62143964cef Mon Sep 17 00:00:00 2001 From: mduval76 <9343789@etu.cegepsth.qc.ca> Date: Fri, 8 Dec 2023 19:55:59 -0500 Subject: [PATCH] Push fake keyboard - Simulatekeyboard --- SQCSim2021/engine.cpp | 169 +++++++++++++++++++++++++++++++++++++++++- SQCSim2021/engine.h | 2 + 2 files changed, 170 insertions(+), 1 deletion(-) diff --git a/SQCSim2021/engine.cpp b/SQCSim2021/engine.cpp index 30a6cac..a7e4a29 100644 --- a/SQCSim2021/engine.cpp +++ b/SQCSim2021/engine.cpp @@ -607,7 +607,7 @@ void Engine::StartMultiplayerGame() { } delete[] input; - + } delete[] ch;*/ @@ -1540,6 +1540,9 @@ void Engine::KeyPressEvent(unsigned char key) { } //Stop(); break; + case 38: // Shift + m_keyShift = true; + break; case 57: // Space - Sauter if (!m_keySpace) { m_keySpace = true; @@ -1661,6 +1664,9 @@ void Engine::KeyReleaseEvent(unsigned char key) { case 28: // 2 m_key2 = true; break; + case 38: // Shift + m_keyShift = false; + break; case 57: // Espace - Stop sauter m_keySpace = false; break; @@ -1704,6 +1710,167 @@ void Engine::MouseMoveEvent(int x, int y) { } } +char Engine::SimulateKeyboard(unsigned char key) { + switch (key) { + case 0: // A + if (!m_keyShift) { return 'a'; } + else { return 'A'; } + break; + case 1: // B + if (!m_keyShift) { return 'b'; } + else { return 'B'; } + break; + case 2: // C + if (!m_keyShift) { return 'c'; } + else { return 'C'; } + break; + case 3: // D + if (!m_keyShift) { return 'd'; } + else { return 'D'; } + break; + case 4: // E + if (!m_keyShift) { return 'e'; } + else { return 'E'; } + break; + case 5: // F + if (!m_keyShift) { return 'f'; } + else { return 'F'; } + break; + case 6: // G + if (!m_keyShift) { return 'g'; } + else { return 'G'; } + break; + case 7: // H + if (!m_keyShift) { return 'h'; } + else { return 'H'; } + break; + case 8: // I + if (!m_keyShift) { return 'i'; } + else { return 'I'; } + break; + case 9: // J + if (!m_keyShift) { return 'j'; } + else { return 'J'; } + break; + case 10: // K + if (!m_keyShift) { return 'k'; } + else { return 'K'; } + break; + case 11: // L + if (!m_keyShift) { return 'l'; } + else { return 'L'; } + break; + case 12: // M + if (!m_keyShift) { return 'm'; } + else { return 'M'; } + break; + case 13: // N + if (!m_keyShift) { return 'n'; } + else { return 'N'; } + break; + case 14: // O + if (!m_keyShift) { return 'o'; } + else { return 'O'; } + break; + case 15: // P + if (!m_keyShift) { return 'p'; } + else { return 'P'; } + break; + case 16: // Q + if (!m_keyShift) { return 'q'; } + else { return 'Q'; } + break; + case 17: // R + if (!m_keyShift) { return 'r'; } + else { return 'R'; } + break; + case 18: // S + if (!m_keyShift) { return 's'; } + else { return 'S'; } + break; + case 19: // T + if (!m_keyShift) { return 't'; } + else { return 'T'; } + break; + case 20: // U + if (!m_keyShift) { return 'u'; } + else { return 'U'; } + break; + case 21: // V + if (!m_keyShift) { return 'v'; } + else { return 'V'; } + break; + case 22: // W + if (!m_keyShift) { return 'w'; } + else { return 'W'; } + break; + case 23: // X + if (!m_keyShift) { return 'x'; } + else { return 'X'; } + break; + case 24: // Y + if (!m_keyShift) { return 'y'; } + else { return 'Y'; } + break; + case 25: // Z + if (!m_keyShift) { return 'z'; } + else { return 'Z'; } + break; + case 26: // 0 + if (!m_keyShift) { return '0'; } + else { return ')'; } + break; + case 27: // 1 + if (!m_keyShift) { return '1'; } + else { return '!'; } + break; + case 28: // 2 + if (!m_keyShift) { return '2'; } + else { return '\"'; } + break; + case 29: // 3 + if (!m_keyShift) { return '3'; } + else { return '/'; } + break; + case 30: // 4 + if (!m_keyShift) { return '4'; } + else { return '$'; } + break; + case 31: // 5 + if (!m_keyShift) { return '5'; } + else { return '%'; } + break; + case 32: // 6 + if (!m_keyShift) { return '6'; } + else { return '?'; } + break; + case 33: // 7 + if (!m_keyShift) { return '7'; } + else { return '&'; } + break; + case 34: // 8 + if (!m_keyShift) { return '8'; } + else { return '*'; } + break; + case 35: // 9 + if (!m_keyShift) { return '9'; } + else { return '(A)'; } + break; + case 36: // SPACE + return ' '; + break; + case 50: // . (Period) + return '.'; + break; + case 56: // _ (Underscore) + if (!m_keyShift) { return '-'; } + else { return '_'; } + break; + default: + break; + } +} + void Engine::MousePressEvent(const MOUSE_BUTTON& button, int x, int y) { m_mousemx = x; m_mousemy = y; diff --git a/SQCSim2021/engine.h b/SQCSim2021/engine.h index 399e783..ca82411 100644 --- a/SQCSim2021/engine.h +++ b/SQCSim2021/engine.h @@ -80,6 +80,7 @@ private: void PrintText(float x, float y, const std::string& t, float charSizeMultiplier = 1.0f); void ProcessNotificationQueue(); + char SimulateKeyboard(unsigned char key); Connector m_conn; @@ -211,6 +212,7 @@ private: bool m_keyS = false; bool m_keyD = false; bool m_keySpace = false; + bool m_keyShift = false; bool m_mouseL = false; bool m_mouseR = false;