diff --git a/OpenParrot/src/Functions/Games/Other/FNF.cpp b/OpenParrot/src/Functions/Games/Other/FNF.cpp index fb7e34b..798584e 100644 --- a/OpenParrot/src/Functions/Games/Other/FNF.cpp +++ b/OpenParrot/src/Functions/Games/Other/FNF.cpp @@ -190,13 +190,13 @@ DWORD WINAPI InputRT3(LPVOID lpParam) } // BUTTON 2/ VIEW 2 if (*ffbOffset & 0x400) + { if (button3pressed == false) { - { - injector::WriteMemory((keyboardBuffer + DIK_B), 2, true); - keybd_event(0x71, MapVirtualKey(0x71, MAPVK_VK_TO_VSC), 0, 0); - button3pressed = true; - } + injector::WriteMemory((keyboardBuffer + DIK_B), 2, true); + keybd_event(0x71, MapVirtualKey(0x71, MAPVK_VK_TO_VSC), 0, 0); + button3pressed = true; + } } else { diff --git a/OpenParrot/src/Functions/Games/Other/FNFSB.cpp b/OpenParrot/src/Functions/Games/Other/FNFSB.cpp index c708a1e..c618685 100644 --- a/OpenParrot/src/Functions/Games/Other/FNFSB.cpp +++ b/OpenParrot/src/Functions/Games/Other/FNFSB.cpp @@ -107,221 +107,221 @@ DWORD WINAPI InputRT4(LPVOID lpParam) exit(0); } -// buttons see bitwise values in TPui//RawThrills.cs + // buttons see bitwise values in TPui//RawThrills.cs - // START - if (*ffbOffset & 0x08) + // START + if (*ffbOffset & 0x08) + { + injector::WriteMemory((keyboardBuffer + DIK_SPACE), 2, true); + } + // TEST + if (*ffbOffset & 0x01) + { + injector::WriteMemory((0x4C424 + BaseAddress4), 0xEB, true); + } + // NITRO ( = START too) + if (*ffbOffset & 0x100) + { + if (button1pressed == false) { + injector::WriteMemory((keyboardBuffer + DIK_N), 2, true); injector::WriteMemory((keyboardBuffer + DIK_SPACE), 2, true); + button1pressed = true; } - // TEST - if (*ffbOffset & 0x01) + } + else + { + if (button1pressed == true) { - injector::WriteMemory((0x4C424 + BaseAddress4), 0xEB, true); + button1pressed = false; } - // NITRO ( = START too) - if (*ffbOffset & 0x100) + } + // SHIFT DOWN + if (*ffbOffset & 0x2000) + { + if (previousDown == false) { - if (button1pressed == false) - { - injector::WriteMemory((keyboardBuffer + DIK_N), 2, true); - injector::WriteMemory((keyboardBuffer + DIK_SPACE), 2, true); - button1pressed = true; - } + injector::WriteMemory((keyboardBuffer + DIK_DOWN), 2, true); + previousDown = true; } - else + } + else + { + if (previousDown == true) { - if (button1pressed == true) - { - button1pressed = false; - } + previousDown = false; } - // SHIFT DOWN - if (*ffbOffset & 0x2000) + } + // SHIFT UP + if (*ffbOffset & 0x1000) + { + if (previousUp == false) { - if (previousDown == false) - { - injector::WriteMemory((keyboardBuffer + DIK_DOWN), 2, true); - previousDown = true; - } + injector::WriteMemory((keyboardBuffer + DIK_UP), 2, true); + previousUp = true; } - else + } + else + { + if (previousUp == true) { - if (previousDown == true) - { - previousDown = false; - } + previousUp = false; } - // SHIFT UP - if (*ffbOffset & 0x1000) + } + // BUTTON 1/ VIEW + if (*ffbOffset & 0x200) + { + if (button2pressed == false) { - if (previousUp == false) - { - injector::WriteMemory((keyboardBuffer + DIK_UP), 2, true); - previousUp = true; - } + injector::MakeNOP((0x35BA5 + BaseAddress4), 2); + injector::WriteMemory((keyboardBuffer + DIK_F), 2, true); + keybd_event(0x70, MapVirtualKey(0x70, MAPVK_VK_TO_VSC), 0, 0); + button2pressed = true; } - else + } + else + { + if (button2pressed == true) { - if (previousUp == true) - { - previousUp = false; - } + injector::WriteMemoryRaw((0x35BA5 + BaseAddress4), "\x74\x46", 2, true); + keybd_event(0x70, MapVirtualKey(0x70, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); + button2pressed = false; } - // BUTTON 1/ VIEW 1 - if (*ffbOffset & 0x200) + } + // BUTTON 2/ MUSIC + if (*ffbOffset & 0x400) + { + if (button3pressed == false) { - if (button2pressed == false) - { - injector::MakeNOP((0x35BA5 + BaseAddress4), 2); - keybd_event(0x70, MapVirtualKey(0x70, MAPVK_VK_TO_VSC), 0, 0); - button2pressed = true; - } + injector::WriteMemory((keyboardBuffer + DIK_B), 2, true); + keybd_event(0xDC, MapVirtualKey(0xDC, MAPVK_VK_TO_VSC), 0, 0); + button3pressed = true; } - else + } + else + { + if (button3pressed == true) { - if (button2pressed == true) - { - injector::WriteMemoryRaw((0x35BA5 + BaseAddress4), "\x74\x46", 2, true); - keybd_event(0x70, MapVirtualKey(0x70, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - button2pressed = false; - } + keybd_event(0xDC, MapVirtualKey(0xDC, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); + button3pressed = false; } - // BUTTON 2/ VIEW 2 - if (*ffbOffset & 0x400) - if (button3pressed == false) - { - { - injector::WriteMemory((keyboardBuffer + DIK_B), 2, true); - keybd_event(0x71, MapVirtualKey(0x71, MAPVK_VK_TO_VSC), 0, 0); - button3pressed = true; - } - } - else - { - if (button3pressed == true) - { - keybd_event(0x70, MapVirtualKey(0x71, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - button3pressed = false; - } - } - // BUTTON 3/ VIEW 3 - if (*ffbOffset & 0x800) + } + // BUTTON 3/ OTHER + if (*ffbOffset & 0x800) + { + if (button4pressed == false) { - if (button4pressed == false) - { - injector::WriteMemory((keyboardBuffer + DIK_E), 2, true); - keybd_event(0x73, MapVirtualKey(0x73, MAPVK_VK_TO_VSC), 0, 0); - button4pressed = true; - } + injector::WriteMemory((keyboardBuffer + DIK_E), 2, true); + injector::WriteMemory((keyboardBuffer + DIK_J), 2, true); + button4pressed = true; } - else + } + else + { + if (button4pressed == true) { - if (button4pressed == true) - { - keybd_event(0x73, MapVirtualKey(0x73, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - button4pressed = false; - } + button4pressed = false; } - // MENU LEFT - if (*ffbOffset & 0x4000) + } + // MENU LEFT + if (*ffbOffset & 0x4000) + { + if (previousLeft == false) { - if (previousLeft == false) - { - injector::WriteMemory((keyboardBuffer + DIK_LEFT), 2, true); - previousLeft = true; - } + injector::WriteMemory((keyboardBuffer + DIK_LEFT), 2, true); + previousLeft = true; } - else + } + else + { + if (previousLeft == true) { - if (previousLeft == true) - { - previousLeft = false; - } + previousLeft = false; } - // MENU RIGHT - if (*ffbOffset & 0x8000) + } + // MENU RIGHT + if (*ffbOffset & 0x8000) + { + if (previousRight == false) { - if (previousRight == false) - { - injector::WriteMemory((keyboardBuffer + DIK_RIGHT), 2, true); - previousRight = true; - } + injector::WriteMemory((keyboardBuffer + DIK_RIGHT), 2, true); + previousRight = true; } - else + } + else + { + if (previousRight == true) { - if (previousRight == true) - { - previousRight = false; - } + previousRight = false; } + } - RECT rect; - GetWindowRect(hWndRT4, &rect); - int width = rect.right - rect.left; - int height = rect.bottom - rect.top; - int windowcenterx = (rect.left + (width * 0.5)); - int windowcentery = (rect.top + (height * 0.5)); - // WHEEL - int iWheel0 = (((float)*ffbOffset2) - 128); - float wheel = (iWheel0 * 0.0078125f); - int iWheel = (int)((width - 20) * 0.5 * wheel); - double fx = (float)((wheel) * (65535.0f / horizontal4)); + RECT rect; + GetWindowRect(hWndRT4, &rect); + int width = rect.right - rect.left; + int height = rect.bottom - rect.top; + int windowcenterx = (rect.left + (width * 0.5)); + int windowcentery = (rect.top + (height * 0.5)); + // WHEEL + int iWheel0 = (((float)*ffbOffset2) - 128); + float wheel = (iWheel0 * 0.0078125f); + int iWheel = (int)((width - 20) * 0.5 * wheel); + double fx = (float)((wheel) * (65535.0f / horizontal4)); - if (movable4 == false) - { - polling4 = true; - mouse_event(MOUSEEVENTF_MOVE, fx, 0, 0, 0); - polling4 = false; - } + if (movable4 == false) + { + polling4 = true; + mouse_event(MOUSEEVENTF_MOVE, fx, 0, 0, 0); + polling4 = false; + } - // GAS - if (*ffbOffset3 >= 5) + // GAS + if (*ffbOffset3 >= 5) + { + if (gaspressed == false) { - if (gaspressed == false) - { - keybd_event(0x51, MapVirtualKey(0x51, MAPVK_VK_TO_VSC), 0, 0); // Q key (qwerty A) - keybd_event(0x41, MapVirtualKey(0x41, MAPVK_VK_TO_VSC), 0, 0); // A key - gaspressed = true; - } + keybd_event(0x51, MapVirtualKey(0x51, MAPVK_VK_TO_VSC), 0, 0); // Q key (qwerty A) + keybd_event(0x41, MapVirtualKey(0x41, MAPVK_VK_TO_VSC), 0, 0); // A key + gaspressed = true; } - else + } + else + { + if (gaspressed == true) { - if (gaspressed == true) - { - keybd_event(0x51, MapVirtualKey(0x51, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - keybd_event(0x41, MapVirtualKey(0x41, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - gaspressed = false; - } + keybd_event(0x51, MapVirtualKey(0x51, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); + keybd_event(0x41, MapVirtualKey(0x41, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); + gaspressed = false; } + } - // BRAKE - if (*ffbOffset4 >= 5) + // BRAKE + if (*ffbOffset4 >= 5) + { + if (brakepressed == false) { - if (brakepressed == false) - { - keybd_event(0x57, MapVirtualKey(0x57, MAPVK_VK_TO_VSC), 0, 0); // W key (qwerty Z) - keybd_event(0x5A, MapVirtualKey(0x5A, MAPVK_VK_TO_VSC), 0, 0); // Z key - brakepressed = true; - } + keybd_event(0x57, MapVirtualKey(0x57, MAPVK_VK_TO_VSC), 0, 0); // W key (qwerty Z) + keybd_event(0x5A, MapVirtualKey(0x5A, MAPVK_VK_TO_VSC), 0, 0); // Z key + brakepressed = true; } - else + } + else + { + if (brakepressed == true) { - if (brakepressed == true) - { - keybd_event(0x57, MapVirtualKey(0x57, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - keybd_event(0x5A, MapVirtualKey(0x5A, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); - brakepressed = false; - } + keybd_event(0x57, MapVirtualKey(0x57, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); + keybd_event(0x5A, MapVirtualKey(0x5A, MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0); + brakepressed = false; } + } - //DEBUG////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // info(true, "test values *ffbOffset2=0x%02X / *iWheel=%d / *wheel=%f ", *ffbOffset2, iWheel, fx); - //DEBUG////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //DEBUG////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // info(true, "test values *ffbOffset2=0x%02X / *iWheel=%d / *wheel=%f ", *ffbOffset2, iWheel, fx); + //DEBUG////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - Sleep(deltaTimer); + SleepEx(deltaTimer,1); } - return 0; +// return 0; } @@ -354,7 +354,7 @@ DWORD WINAPI CreateWindowExART4(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWi DWORD WINAPI SetCursorPosRT4(int X, int Y) { - return 0; + return 0; } DWORD WINAPI SetWindowPosRT4(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags) diff --git a/OpenParrot/src/Functions/WindowedDx8.cpp b/OpenParrot/src/Functions/WindowedDx8.cpp index 10a4321..e50356a 100644 --- a/OpenParrot/src/Functions/WindowedDx8.cpp +++ b/OpenParrot/src/Functions/WindowedDx8.cpp @@ -80,7 +80,7 @@ static InitFunction initFunc([]() { if (GameDetect::currentGame == GameID::BG4) return; - if (GameDetect::currentGame == GameID::FNFSC) // FORCE BORDERLESS WINDOW MODE FOR FULLSCREEN + if (GameDetect::currentGame == GameID::FNFSC) InitD3D8WindowHook(); if (ToBool(config["General"]["Windowed"])) {