diff --git a/4J_Input/Windows64/4J_Input.cpp b/4J_Input/Windows64/4J_Input.cpp index cfd5344..5fbd8c6 100644 --- a/4J_Input/Windows64/4J_Input.cpp +++ b/4J_Input/Windows64/4J_Input.cpp @@ -177,10 +177,7 @@ void C_4JInput::GetText(uint16_t *UTF16String) EControllerType C_4JInput::GetControllerType(int iPad) { - if(InternalInputManager.IsPadConnected(iPad)) - { - return InternalInputManager.GetControllerType(iPad); //strk13r - mrow mrow mrow mrowwwwwwwwwww, i am silly kitty - } + 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 65413b9..45d9923 100644 --- a/4J_Input/Windows64/INP_Main.cpp +++ b/4J_Input/Windows64/INP_Main.cpp @@ -317,7 +317,21 @@ 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 EControllerType CInput::GetControllerType(int iPad) { - return GetControllerName(SDL_GetGamepadType(m_Joypads[iPad].m_pGamepad)); // str1k3r - magic we return it :shocked: + //str1k3r - if the pad is connected then check the type, if we are the same type or we arent connected return the last type + if(InternalInputManager.IsPadConnected(iPad)) + { + EControllerType ControllerType = GetControllerName(SDL_GetGamepadType(m_Joypads[iPad].m_pGamepad)); + + if(ControllerType != m_LastControllerType) + { + m_LastControllerType = ControllerType; + return ControllerType; + } + + return m_LastControllerType; + } + + return m_LastControllerType; } void CInput::SetJoypadMapVal(int iPad, unsigned char ucMap) diff --git a/4J_Input/Windows64/INP_Main.h b/4J_Input/Windows64/INP_Main.h index a688453..2d80ec0 100644 --- a/4J_Input/Windows64/INP_Main.h +++ b/4J_Input/Windows64/INP_Main.h @@ -170,6 +170,7 @@ public: unsigned int m_uiSigninJoypadMask; bool m_bIsMenuDisplayed[MAX_JOYPADS]; + EControllerType m_LastControllerType; CForceFeedback m_ForceFeedback; CKeyboard m_Keyboard; diff --git a/Headers/Windows64/4J_Profile.h b/Headers/Windows64/4J_Profile.h index 90d41c9..ed00f24 100644 --- a/Headers/Windows64/4J_Profile.h +++ b/Headers/Windows64/4J_Profile.h @@ -82,8 +82,8 @@ public: bool IsFullVersion(); void SetSignInChangeCallback(void ( *Func)(LPVOID, bool, unsigned int),LPVOID lpParam); void SetNotificationsCallback(void ( *Func)(LPVOID, DWORD, unsigned int),LPVOID lpParam); - bool RegionIsNorthAmerica(void); bool LocaleIsUSorCanada(void); + bool LocaleIsChina(void); HRESULT GetLiveConnectionStatus(); bool IsSystemUIDisplayed(); void SetProfileReadErrorCallback(void ( *Func)(LPVOID), LPVOID lpParam);