diff --git a/4J_Input/Windows64/4J_Input.cpp b/4J_Input/Windows64/4J_Input.cpp index b5eccad..cfd5344 100644 --- a/4J_Input/Windows64/4J_Input.cpp +++ b/4J_Input/Windows64/4J_Input.cpp @@ -175,9 +175,12 @@ void C_4JInput::GetText(uint16_t *UTF16String) InternalKeyboard.GetText(UTF16String); } -const char* C_4JInput::GetControllerType(int ipad) +EControllerType C_4JInput::GetControllerType(int iPad) { - return InternalInputManager.GetControllerType(ipad); //strk13r - mrow mrow mrow mrowwwwwwwwwww, i am silly kitty + if(InternalInputManager.IsPadConnected(iPad)) + { + return InternalInputManager.GetControllerType(iPad); //strk13r - mrow mrow mrow mrowwwwwwwwwww, i am silly kitty + } } bool C_4JInput::VerifyStrings(WCHAR **pwStringA, int iStringC, int (*Func)(LPVOID, STRING_VERIFY_RESPONSE *), LPVOID lpParam) diff --git a/4J_Input/Windows64/INP_Main.cpp b/4J_Input/Windows64/INP_Main.cpp index 4172f54..65413b9 100644 --- a/4J_Input/Windows64/INP_Main.cpp +++ b/4J_Input/Windows64/INP_Main.cpp @@ -315,13 +315,8 @@ unsigned int CInput::GetGameJoypadMaps(unsigned char ucMap, unsigned char ucActi } //str1k3r - renamed to match the Orbis Input lib, why did i rename it cause tism -const char* CInput::GetControllerType(int iPad) +EControllerType CInput::GetControllerType(int iPad) { - if (!m_Joypads[iPad].m_pGamepad) - { - return "UNKNOWN"; - } - return GetControllerName(SDL_GetGamepadType(m_Joypads[iPad].m_pGamepad)); // str1k3r - magic we return it :shocked: } diff --git a/4J_Input/Windows64/INP_Main.h b/4J_Input/Windows64/INP_Main.h index ddaaae9..a688453 100644 --- a/4J_Input/Windows64/INP_Main.h +++ b/4J_Input/Windows64/INP_Main.h @@ -101,7 +101,7 @@ public: void SetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction, unsigned int uiActionVal); unsigned int GetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction); - const char* GetControllerType(int iPad); + EControllerType GetControllerType(int iPad); void SetJoypadMapVal(int iPad, unsigned char ucMap); unsigned char GetJoypadMapVal(int iPad); @@ -186,24 +186,23 @@ public: LPVOID m_pDebugSequenceParam; private: - const char* GetControllerName(SDL_GamepadType type) + EControllerType GetControllerName(SDL_GamepadType type) { switch (type) { - case SDL_GAMEPAD_TYPE_UNKNOWN: return "UNKNOWN"; - case SDL_GAMEPAD_TYPE_GAMECUBE: return "GAMECUBE"; - case SDL_GAMEPAD_TYPE_STANDARD: return "STANDARD"; - case SDL_GAMEPAD_TYPE_XBOX360: return "XBOX360"; - case SDL_GAMEPAD_TYPE_XBOXONE: return "XBOXONE"; - case SDL_GAMEPAD_TYPE_PS3: return "PS3"; - case SDL_GAMEPAD_TYPE_PS4: return "PS4"; - case SDL_GAMEPAD_TYPE_PS5: return "PS5"; - //str1k3r - we are ALL FROM THE SWITCH JUST RETURN THE SAMETHING, mrow + case SDL_GAMEPAD_TYPE_XBOX360: return EControllerType_Xbox360; + case SDL_GAMEPAD_TYPE_XBOXONE: return EControllerType_XboxOne; + case SDL_GAMEPAD_TYPE_PS3: return EControllerType_PS3; + case SDL_GAMEPAD_TYPE_PS4: return EControllerType_PS4; + case SDL_GAMEPAD_TYPE_PS5: return EControllerType_PS5; case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO: case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: - case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return "SWITCH"; - default: return "UNKNOWN"; + case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return EControllerType_Switch; + case SDL_GAMEPAD_TYPE_GAMECUBE: return EControllerType_Gamecube; + case SDL_GAMEPAD_TYPE_STANDARD: + case SDL_GAMEPAD_TYPE_UNKNOWN: + default: return EControllerType_Default; } } }; diff --git a/Headers/Windows64/4J_Input.h b/Headers/Windows64/4J_Input.h index 017e3b8..545e7a7 100644 --- a/Headers/Windows64/4J_Input.h +++ b/Headers/Windows64/4J_Input.h @@ -82,6 +82,18 @@ enum EMSgBoxType EMSgBoxType_OK, }; +enum EControllerType +{ + EControllerType_Default, + EControllerType_Xbox360, + EControllerType_XboxOne, + EControllerType_PS3, + EControllerType_PS4, + EControllerType_PS5, + EControllerType_Switch, + EControllerType_Gamecube +}; + class C_4JInput { public: @@ -136,7 +148,7 @@ public: EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode); void DestroyKeyboard(); void GetText(uint16_t *UTF16String); - const char* GetControllerType(int ipad); + EControllerType GetControllerType(int ipad); void SetLostInputControlCallback(void( *Func)(LPVOID, bool),LPVOID lpParam);