120 lines
2.4 KiB
C++
120 lines
2.4 KiB
C++
#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;
|
|
} |