#include "PRO_Sys.h" #include "4J_Input.h" bool s_bProfileIsFullVersion = true; char fakeGamerTag[16] = "PlayerName"; wchar_t fakeGamerTagW[16] = L"PlayerName"; bool CSys::IsSignedIn(int iQuadrant) { return InputManager.IsPadConnected(iQuadrant); //str1k3r - since we dont sign in like consoles just check if the pad is connected } bool CSys::IsSignedInLive(int iProf) { return InputManager.IsPadConnected(iProf); } //str1k3r - set every pad that isnt pad 0 as a guest bool CSys::IsGuest(int iQuadrant) { if(iQuadrant == 0) { return false; } return true; } void CSys::LoadGamertag() { wchar_t exeDir[MAX_PATH] = {}; GetModuleFileNameW(NULL, exeDir, MAX_PATH); wchar_t *lastSlash = wcsrchr(exeDir, '\\'); if (lastSlash) *(lastSlash + 1) = '\0'; wchar_t filePath[MAX_PATH] = {}; if(wcscpy_s(filePath, _countof(filePath), exeDir) != 0 || wcsncat_s(filePath, _countof(filePath), L"username.txt", _TRUNCATE) != 0) { return; } FILE *file = NULL; if (_wfopen_s(&file, filePath, L"r") == 0 && file) { wchar_t buffer[128] = {}; if(fgetws(buffer, _countof(buffer), file)) { size_t len = wcslen(buffer); while (len > 0 && (buffer[len-1] == '\n' || buffer[len-1] == '\r' || buffer[len-1] == ' ')) buffer[--len] = '\0'; if (len > 0) { wcscpy_s(fakeGamerTagW, _countof(fakeGamerTagW), buffer); WideCharToMultiByte(CP_UTF8, 0, fakeGamerTagW, -1, fakeGamerTag, sizeof(fakeGamerTag), nullptr, nullptr); } } fclose(file); } } void CSys::SetFakeGamertag(char *name) { size_t chars = 0; strcpy_s(fakeGamerTag, name); mbstowcs_s(&chars, fakeGamerTagW, 16, name, _TRUNCATE); } char* CSys::GetGamertag(int iPad) { if(iPad == 0) { return fakeGamerTag; } static char iPadGamertag[32]; _snprintf_s(iPadGamertag, sizeof(iPadGamertag), "%s (%d)", fakeGamerTag, iPad); return iPadGamertag; } wstring CSys::GetDisplayName(int iPad) { if(iPad == 0) { return fakeGamerTagW; } wchar_t iPadGamertagW[16]; _snwprintf_s(iPadGamertagW, _countof(iPadGamertagW), L"%s (%d)", fakeGamerTagW, iPad); return iPadGamertagW; } bool CSys::AllowedToPlayMultiplayer(int iProf) { return InputManager.IsPadConnected(iProf); } int CSys::GetPrimaryPad() { return 0; } void CSys::SetPrimaryPad(int iPad) { ; //str1k3r - stubbed out } bool CSys::IsFullVersion() { return s_bProfileIsFullVersion; } void CSys::SetDebugFullOverride(bool bVal) { s_bProfileIsFullVersion = bVal; }