aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Extrax64Stubs.cpp
diff options
context:
space:
mode:
authorlspepinho <162769565+lspepinho@users.noreply.github.com>2026-03-02 20:30:22 -0300
committerGitHub <noreply@github.com>2026-03-03 06:30:22 +0700
commit8b28c20d7adc3824f96fbcc34ad65d778a97a05b (patch)
treee61705a557e4e064d707ec542c53dbdac1acbe09 /Minecraft.Client/Extrax64Stubs.cpp
parent15129932da9442c2815974c519258345b22d5588 (diff)
Fixes for PR #96 (#170)
* Implement basic multiplayer functionality * Update README.md --------- Co-authored-by: Slenderman <ssimulpong@outlook.com>
Diffstat (limited to 'Minecraft.Client/Extrax64Stubs.cpp')
-rw-r--r--Minecraft.Client/Extrax64Stubs.cpp526
1 files changed, 303 insertions, 223 deletions
diff --git a/Minecraft.Client/Extrax64Stubs.cpp b/Minecraft.Client/Extrax64Stubs.cpp
index f6ad76c1..f368afed 100644
--- a/Minecraft.Client/Extrax64Stubs.cpp
+++ b/Minecraft.Client/Extrax64Stubs.cpp
@@ -20,6 +20,7 @@
#include "StatsCounter.h"
#include "Windows64\Social\SocialManager.h"
#include "Windows64\Sentient\DynamicConfigurations.h"
+#include "Windows64\Network\WinsockNetLayer.h"
#elif defined __PSVITA__
#include "PSVita\Sentient\SentientManager.h"
#include "StatsCounter.h"
@@ -46,63 +47,63 @@ CXuiStringTable StringTable;
#ifndef _XBOX_ONE
ATG::XMLParser::XMLParser() {}
ATG::XMLParser::~XMLParser() {}
-HRESULT ATG::XMLParser::ParseXMLBuffer( CONST CHAR* strBuffer, UINT uBufferSize ) { return S_OK; }
-VOID ATG::XMLParser::RegisterSAXCallbackInterface( ISAXCallback *pISAXCallback ) {}
+HRESULT ATG::XMLParser::ParseXMLBuffer(CONST CHAR* strBuffer, UINT uBufferSize) { return S_OK; }
+VOID ATG::XMLParser::RegisterSAXCallbackInterface(ISAXCallback* pISAXCallback) {}
#endif
bool CSocialManager::IsTitleAllowedToPostAnything() { return false; }
bool CSocialManager::AreAllUsersAllowedToPostImages() { return false; }
bool CSocialManager::IsTitleAllowedToPostImages() { return false; }
-bool CSocialManager::PostLinkToSocialNetwork( ESocialNetwork eSocialNetwork, DWORD dwUserIndex, bool bUsingKinect ) { return false; }
-bool CSocialManager::PostImageToSocialNetwork( ESocialNetwork eSocialNetwork, DWORD dwUserIndex, bool bUsingKinect ) { return false; }
-CSocialManager *CSocialManager::Instance() { return NULL; }
+bool CSocialManager::PostLinkToSocialNetwork(ESocialNetwork eSocialNetwork, DWORD dwUserIndex, bool bUsingKinect) { return false; }
+bool CSocialManager::PostImageToSocialNetwork(ESocialNetwork eSocialNetwork, DWORD dwUserIndex, bool bUsingKinect) { return false; }
+CSocialManager* CSocialManager::Instance() { return NULL; }
void CSocialManager::SetSocialPostText(LPCWSTR Title, LPCWSTR Caption, LPCWSTR Desc) {};
DWORD XShowPartyUI(DWORD dwUserIndex) { return 0; }
DWORD XShowFriendsUI(DWORD dwUserIndex) { return 0; }
-HRESULT XPartyGetUserList(XPARTY_USER_LIST *pUserList) { return S_OK; }
-DWORD XContentGetThumbnail(DWORD dwUserIndex, const XCONTENT_DATA *pContentData, PBYTE pbThumbnail, PDWORD pcbThumbnail, PXOVERLAPPED *pOverlapped) { return 0; }
+HRESULT XPartyGetUserList(XPARTY_USER_LIST* pUserList) { return S_OK; }
+DWORD XContentGetThumbnail(DWORD dwUserIndex, const XCONTENT_DATA* pContentData, PBYTE pbThumbnail, PDWORD pcbThumbnail, PXOVERLAPPED* pOverlapped) { return 0; }
void XShowAchievementsUI(int i) {}
DWORD XBackgroundDownloadSetMode(XBACKGROUND_DOWNLOAD_MODE Mode) { return 0; }
#ifndef _DURANGO
-void PIXAddNamedCounter(int a, char *b, ...) {}
+void PIXAddNamedCounter(int a, char* b, ...) {}
//#define PS3_USE_PIX_EVENTS
//#define PS4_USE_PIX_EVENTS
-void PIXBeginNamedEvent(int a, char *b, ...)
+void PIXBeginNamedEvent(int a, char* b, ...)
{
#ifdef PS4_USE_PIX_EVENTS
char buf[512];
- va_list args;
- va_start(args,b);
- vsprintf(buf,b,args);
+ va_list args;
+ va_start(args, b);
+ vsprintf(buf, b, args);
sceRazorCpuPushMarker(buf, 0xffffffff, SCE_RAZOR_MARKER_ENABLE_HUD);
#endif
#ifdef PS3_USE_PIX_EVENTS
char buf[256];
wchar_t wbuf[256];
- va_list args;
- va_start(args,b);
- vsprintf(buf,b,args);
+ va_list args;
+ va_start(args, b);
+ vsprintf(buf, b, args);
snPushMarker(buf);
-// mbstowcs(wbuf,buf,256);
-// RenderManager.BeginEvent(wbuf);
- va_end(args);
+ // mbstowcs(wbuf,buf,256);
+ // RenderManager.BeginEvent(wbuf);
+ va_end(args);
#endif
}
#if 0//__PSVITA__
- if( PixDepth < 64 )
- {
- char buf[512];
- va_list args;
- va_start(args,b);
- vsprintf(buf,b,args);
- sceRazorCpuPushMarkerWithHud(buf, 0xffffffff, SCE_RAZOR_MARKER_ENABLE_HUD);
- }
- PixDepth += 1;
+if (PixDepth < 64)
+{
+ char buf[512];
+ va_list args;
+ va_start(args, b);
+ vsprintf(buf, b, args);
+ sceRazorCpuPushMarkerWithHud(buf, 0xffffffff, SCE_RAZOR_MARKER_ENABLE_HUD);
+}
+PixDepth += 1;
#endif
@@ -113,17 +114,17 @@ void PIXEndNamedEvent()
#endif
#ifdef PS3_USE_PIX_EVENTS
snPopMarker();
-// RenderManager.EndEvent();
+ // RenderManager.EndEvent();
#endif
#if 0//__PSVITA__
- if( PixDepth <= 64 )
+ if (PixDepth <= 64)
{
sceRazorCpuPopMarker();
}
PixDepth -= 1;
#endif
}
-void PIXSetMarkerDeprecated(int a, char *b, ...) {}
+void PIXSetMarkerDeprecated(int a, char* b, ...) {}
#else
// 4J Stu - Removed this implementation in favour of a macro that will convert our string format
// conversion at compile time rather than at runtime
@@ -175,38 +176,33 @@ bool IsEqualXUID(PlayerUID a, PlayerUID b)
#endif
}
-void XMemCpy(void *a, const void *b, size_t s) { memcpy(a, b, s); }
-void XMemSet(void *a, int t, size_t s) { memset(a, t, s); }
-void XMemSet128(void *a, int t, size_t s) { memset(a, t, s); }
-void *XPhysicalAlloc(SIZE_T a, ULONG_PTR b, ULONG_PTR c, DWORD d) { return malloc(a); }
-void XPhysicalFree(void *a) { free(a); }
+void XMemCpy(void* a, const void* b, size_t s) { memcpy(a, b, s); }
+void XMemSet(void* a, int t, size_t s) { memset(a, t, s); }
+void XMemSet128(void* a, int t, size_t s) { memset(a, t, s); }
+void* XPhysicalAlloc(SIZE_T a, ULONG_PTR b, ULONG_PTR c, DWORD d) { return malloc(a); }
+void XPhysicalFree(void* a) { free(a); }
D3DXVECTOR3::D3DXVECTOR3() {}
-D3DXVECTOR3::D3DXVECTOR3(float x,float y,float z) : x(x), y(y), z(z) {}
-D3DXVECTOR3& D3DXVECTOR3::operator += ( CONST D3DXVECTOR3& add ) { x += add.x; y += add.y; z += add.z; return *this; }
+D3DXVECTOR3::D3DXVECTOR3(float x, float y, float z) : x(x), y(y), z(z) {}
+D3DXVECTOR3& D3DXVECTOR3::operator += (CONST D3DXVECTOR3 & add) { x += add.x; y += add.y; z += add.z; return *this; }
-BYTE IQNetPlayer::GetSmallId() { return 0; }
-void IQNetPlayer::SendData(IQNetPlayer *player, const void *pvData, DWORD dwDataSize, DWORD dwFlags)
+BYTE IQNetPlayer::GetSmallId() { return m_smallId; }
+void IQNetPlayer::SendData(IQNetPlayer * player, const void* pvData, DWORD dwDataSize, DWORD dwFlags)
{
- app.DebugPrintf("Sending from 0x%x to 0x%x %d bytes\n",this,player,dwDataSize);
+ if (WinsockNetLayer::IsActive())
+ {
+ WinsockNetLayer::SendToSmallId(player->m_smallId, pvData, dwDataSize);
+ }
}
-bool IQNetPlayer::IsSameSystem(IQNetPlayer *player) { return true; }
-DWORD IQNetPlayer::GetSendQueueSize( IQNetPlayer *player, DWORD dwFlags ) { return 0; }
+bool IQNetPlayer::IsSameSystem(IQNetPlayer * player) { return (this == player) || (!m_isRemote && !player->m_isRemote); }
+DWORD IQNetPlayer::GetSendQueueSize(IQNetPlayer * player, DWORD dwFlags) { return 0; }
DWORD IQNetPlayer::GetCurrentRtt() { return 0; }
-bool IQNetPlayer::IsHost() { return this == &IQNet::m_player[0]; }
+bool IQNetPlayer::IsHost() { return m_isHostPlayer; }
bool IQNetPlayer::IsGuest() { return false; }
-bool IQNetPlayer::IsLocal() { return true; }
-PlayerUID IQNetPlayer::GetXuid() { return INVALID_XUID; }
-LPCWSTR IQNetPlayer::GetGamertag()
-{
- static wchar_t tags[4][16];
- int idx = GetUserIndex();
- if(idx < 0 || idx >= 4) idx = 0;
- mbstowcs(tags[idx], ProfileManager.GetGamertag(idx), 15);
- tags[idx][15] = L'\0';
- return tags[idx];
-}
-int IQNetPlayer::GetSessionIndex() { return 0; }
+bool IQNetPlayer::IsLocal() { return !m_isRemote; }
+PlayerUID IQNetPlayer::GetXuid() { return (PlayerUID)(0xe000d45248242f2e + m_smallId); }
+LPCWSTR IQNetPlayer::GetGamertag() { return m_gamertag; }
+int IQNetPlayer::GetSessionIndex() { return m_smallId; }
bool IQNetPlayer::IsTalking() { return false; }
bool IQNetPlayer::IsMutedByLocalUser(DWORD dwUserIndex) { return false; }
bool IQNetPlayer::HasVoice() { return false; }
@@ -219,22 +215,104 @@ ULONG_PTR IQNetPlayer::GetCustomDataValue() {
return m_customData;
}
-IQNetPlayer IQNet::m_player[4];
+IQNetPlayer IQNet::m_player[MINECRAFT_NET_MAX_PLAYERS];
+DWORD IQNet::s_playerCount = 1;
+bool IQNet::s_isHosting = true;
+
+QNET_STATE _iQNetStubState = QNET_STATE_IDLE;
-bool _bQNetStubGameRunning = false;
+void Win64_SetupRemoteQNetPlayer(IQNetPlayer * player, BYTE smallId, bool isHost, bool isLocal)
+{
+ player->m_smallId = smallId;
+ player->m_isRemote = !isLocal;
+ player->m_isHostPlayer = isHost;
+ swprintf_s(player->m_gamertag, 32, L"Player%d", smallId);
+ if (smallId >= IQNet::s_playerCount)
+ IQNet::s_playerCount = smallId + 1;
+}
-HRESULT IQNet::AddLocalPlayerByUserIndex(DWORD dwUserIndex){ return S_OK; }
-IQNetPlayer *IQNet::GetHostPlayer() { return &m_player[0]; }
-IQNetPlayer *IQNet::GetLocalPlayerByUserIndex(DWORD dwUserIndex) { return &m_player[dwUserIndex]; }
-IQNetPlayer *IQNet::GetPlayerByIndex(DWORD dwPlayerIndex) { return &m_player[0]; }
-IQNetPlayer *IQNet::GetPlayerBySmallId(BYTE SmallId){ return &m_player[0]; }
-IQNetPlayer *IQNet::GetPlayerByXuid(PlayerUID xuid){ return &m_player[0]; }
-DWORD IQNet::GetPlayerCount() { return 1; }
-QNET_STATE IQNet::GetState() { return _bQNetStubGameRunning ? QNET_STATE_GAME_PLAY : QNET_STATE_IDLE; }
-bool IQNet::IsHost() { return true; }
-HRESULT IQNet::JoinGameFromInviteInfo(DWORD dwUserIndex, DWORD dwUserMask, const INVITE_INFO *pInviteInfo) { return S_OK; }
-void IQNet::HostGame() { _bQNetStubGameRunning = true; }
-void IQNet::EndGame() { _bQNetStubGameRunning = false; }
+HRESULT IQNet::AddLocalPlayerByUserIndex(DWORD dwUserIndex) { return S_OK; }
+IQNetPlayer* IQNet::GetHostPlayer() { return &m_player[0]; }
+IQNetPlayer* IQNet::GetLocalPlayerByUserIndex(DWORD dwUserIndex)
+{
+ if (s_isHosting)
+ {
+ if (dwUserIndex < MINECRAFT_NET_MAX_PLAYERS && !m_player[dwUserIndex].m_isRemote)
+ return &m_player[dwUserIndex];
+ return NULL;
+ }
+ if (dwUserIndex != 0)
+ return NULL;
+ for (DWORD i = 0; i < s_playerCount; i++)
+ {
+ if (!m_player[i].m_isRemote)
+ return &m_player[i];
+ }
+ return NULL;
+}
+static bool Win64_IsActivePlayer(IQNetPlayer * p, DWORD index)
+{
+ if (index == 0) return true;
+ return (p->GetCustomDataValue() != 0);
+}
+
+IQNetPlayer* IQNet::GetPlayerByIndex(DWORD dwPlayerIndex)
+{
+ DWORD found = 0;
+ for (DWORD i = 0; i < s_playerCount; i++)
+ {
+ if (Win64_IsActivePlayer(&m_player[i], i))
+ {
+ if (found == dwPlayerIndex) return &m_player[i];
+ found++;
+ }
+ }
+ return &m_player[0];
+}
+IQNetPlayer* IQNet::GetPlayerBySmallId(BYTE SmallId)
+{
+ for (DWORD i = 0; i < s_playerCount; i++)
+ {
+ if (m_player[i].m_smallId == SmallId && Win64_IsActivePlayer(&m_player[i], i)) return &m_player[i];
+ }
+ return NULL;
+}
+IQNetPlayer* IQNet::GetPlayerByXuid(PlayerUID xuid)
+{
+ for (DWORD i = 0; i < s_playerCount; i++)
+ {
+ if (Win64_IsActivePlayer(&m_player[i], i) && m_player[i].GetXuid() == xuid) return &m_player[i];
+ }
+ return &m_player[0];
+}
+DWORD IQNet::GetPlayerCount()
+{
+ DWORD count = 0;
+ for (DWORD i = 0; i < s_playerCount; i++)
+ {
+ if (Win64_IsActivePlayer(&m_player[i], i)) count++;
+ }
+ return count;
+}
+QNET_STATE IQNet::GetState() { return _iQNetStubState; }
+bool IQNet::IsHost() { return s_isHosting; }
+HRESULT IQNet::JoinGameFromInviteInfo(DWORD dwUserIndex, DWORD dwUserMask, const INVITE_INFO * pInviteInfo) { return S_OK; }
+void IQNet::HostGame() { _iQNetStubState = QNET_STATE_SESSION_STARTING; s_isHosting = true; }
+void IQNet::ClientJoinGame() { _iQNetStubState = QNET_STATE_SESSION_STARTING; s_isHosting = false; }
+void IQNet::EndGame()
+{
+ _iQNetStubState = QNET_STATE_IDLE;
+ s_isHosting = false;
+ s_playerCount = 1;
+ for (int i = 1; i < MINECRAFT_NET_MAX_PLAYERS; i++)
+ {
+ m_player[i].m_smallId = 0;
+ m_player[i].m_isRemote = false;
+ m_player[i].m_isHostPlayer = false;
+ m_player[i].m_gamertag[0] = 0;
+ m_player[i].SetCustomDataValue(0);
+ }
+}
DWORD MinecraftDynamicConfigurations::GetTrialTime() { return DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME; }
@@ -244,9 +322,9 @@ void XSetThreadProcessor(HANDLE a, int b) {}
// #endif // __PS3__
DWORD XUserGetSigninInfo(
- DWORD dwUserIndex,
- DWORD dwFlags,
- PXUSER_SIGNIN_INFO pSigninInfo
+ DWORD dwUserIndex,
+ DWORD dwFlags,
+ PXUSER_SIGNIN_INFO pSigninInfo
)
{
return 0;
@@ -257,16 +335,16 @@ LPCWSTR CXuiStringTable::Lookup(UINT nIndex) { return L"String"; }
void CXuiStringTable::Clear() {}
HRESULT CXuiStringTable::Load(LPCWSTR szId) { return S_OK; }
-DWORD XUserAreUsersFriends( DWORD dwUserIndex, PPlayerUID pXuids, DWORD dwXuidCount, PBOOL pfResult, void *pOverlapped) { return 0; }
+DWORD XUserAreUsersFriends(DWORD dwUserIndex, PPlayerUID pXuids, DWORD dwXuidCount, PBOOL pfResult, void* pOverlapped) { return 0; }
#if defined __ORBIS__ || defined __PS3__ || defined _XBOX_ONE
#else
HRESULT XMemDecompress(
- XMEMDECOMPRESSION_CONTEXT Context,
- VOID *pDestination,
- SIZE_T *pDestSize,
- CONST VOID *pSource,
- SIZE_T SrcSize
+ XMEMDECOMPRESSION_CONTEXT Context,
+ VOID * pDestination,
+ SIZE_T * pDestSize,
+ CONST VOID * pSource,
+ SIZE_T SrcSize
)
{
memcpy(pDestination, pSource, SrcSize);
@@ -276,12 +354,12 @@ HRESULT XMemDecompress(
/*
DECOMPRESSOR_HANDLE Decompressor = (DECOMPRESSOR_HANDLE)Context;
if( Decompress(
- Decompressor, // Decompressor handle
- (void *)pSource, // Compressed data
- SrcSize, // Compressed data size
- pDestination, // Decompressed buffer
- *pDestSize, // Decompressed buffer size
- pDestSize) ) // Decompressed data size
+ Decompressor, // Decompressor handle
+ (void *)pSource, // Compressed data
+ SrcSize, // Compressed data size
+ pDestination, // Decompressed buffer
+ *pDestSize, // Decompressed buffer size
+ pDestSize) ) // Decompressed data size
{
return S_OK;
}
@@ -293,11 +371,11 @@ HRESULT XMemDecompress(
}
HRESULT XMemCompress(
- XMEMCOMPRESSION_CONTEXT Context,
- VOID *pDestination,
- SIZE_T *pDestSize,
- CONST VOID *pSource,
- SIZE_T SrcSize
+ XMEMCOMPRESSION_CONTEXT Context,
+ VOID * pDestination,
+ SIZE_T * pDestSize,
+ CONST VOID * pSource,
+ SIZE_T SrcSize
)
{
memcpy(pDestination, pSource, SrcSize);
@@ -324,10 +402,10 @@ HRESULT XMemCompress(
}
HRESULT XMemCreateCompressionContext(
- XMEMCODEC_TYPE CodecType,
- CONST VOID *pCodecParams,
- DWORD Flags,
- XMEMCOMPRESSION_CONTEXT *pContext
+ XMEMCODEC_TYPE CodecType,
+ CONST VOID * pCodecParams,
+ DWORD Flags,
+ XMEMCOMPRESSION_CONTEXT * pContext
)
{
/*
@@ -345,10 +423,10 @@ HRESULT XMemCreateCompressionContext(
}
HRESULT XMemCreateDecompressionContext(
- XMEMCODEC_TYPE CodecType,
- CONST VOID *pCodecParams,
- DWORD Flags,
- XMEMDECOMPRESSION_CONTEXT *pContext
+ XMEMCODEC_TYPE CodecType,
+ CONST VOID * pCodecParams,
+ DWORD Flags,
+ XMEMDECOMPRESSION_CONTEXT * pContext
)
{
/*
@@ -367,14 +445,14 @@ HRESULT XMemCreateDecompressionContext(
void XMemDestroyCompressionContext(XMEMCOMPRESSION_CONTEXT Context)
{
-// COMPRESSOR_HANDLE Compressor = (COMPRESSOR_HANDLE)Context;
-// CloseCompressor(Compressor);
+ // COMPRESSOR_HANDLE Compressor = (COMPRESSOR_HANDLE)Context;
+ // CloseCompressor(Compressor);
}
void XMemDestroyDecompressionContext(XMEMDECOMPRESSION_CONTEXT Context)
{
-// DECOMPRESSOR_HANDLE Decompressor = (DECOMPRESSOR_HANDLE)Context;
-// CloseDecompressor(Decompressor);
+ // DECOMPRESSOR_HANDLE Decompressor = (DECOMPRESSOR_HANDLE)Context;
+ // CloseDecompressor(Decompressor);
}
#endif
@@ -389,62 +467,62 @@ DWORD XEnableGuestSignin(BOOL fEnable) { return 0; }
/////////////////////////////////////////////// Profile library
#ifdef _WINDOWS64
-static void *profileData[4];
+static void* profileData[4];
static bool s_bProfileIsFullVersion;
-void C_4JProfile::Initialise( DWORD dwTitleID,
- DWORD dwOfferID,
- unsigned short usProfileVersion,
- UINT uiProfileValuesC,
- UINT uiProfileSettingsC,
- DWORD *pdwProfileSettingsA,
- int iGameDefinedDataSizeX4,
- unsigned int *puiGameDefinedDataChangedBitmask)
+void C_4JProfile::Initialise(DWORD dwTitleID,
+ DWORD dwOfferID,
+ unsigned short usProfileVersion,
+ UINT uiProfileValuesC,
+ UINT uiProfileSettingsC,
+ DWORD * pdwProfileSettingsA,
+ int iGameDefinedDataSizeX4,
+ unsigned int* puiGameDefinedDataChangedBitmask)
{
- for( int i = 0; i < 4; i++ )
+ for (int i = 0; i < 4; i++)
{
- profileData[i] = new byte[iGameDefinedDataSizeX4/4];
- ZeroMemory(profileData[i],sizeof(byte)*iGameDefinedDataSizeX4/4);
+ profileData[i] = new byte[iGameDefinedDataSizeX4 / 4];
+ ZeroMemory(profileData[i], sizeof(byte) * iGameDefinedDataSizeX4 / 4);
// Set some sane initial values!
- GAME_SETTINGS *pGameSettings = (GAME_SETTINGS *)profileData[i];
- pGameSettings->ucMenuSensitivity=100; //eGameSetting_Sensitivity_InMenu
- pGameSettings->ucInterfaceOpacity=80; //eGameSetting_Sensitivity_InMenu
- pGameSettings->usBitmaskValues|=0x0200; //eGameSetting_DisplaySplitscreenGamertags - on
- pGameSettings->usBitmaskValues|=0x0400; //eGameSetting_Hints - on
- pGameSettings->usBitmaskValues|=0x1000; //eGameSetting_Autosave - 2
- pGameSettings->usBitmaskValues|=0x8000; //eGameSetting_Tooltips - on
- pGameSettings->uiBitmaskValues=0L; // reset
- pGameSettings->uiBitmaskValues|=GAMESETTING_CLOUDS; //eGameSetting_Clouds - on
- pGameSettings->uiBitmaskValues|=GAMESETTING_ONLINE; //eGameSetting_GameSetting_Online - on
- pGameSettings->uiBitmaskValues|=GAMESETTING_FRIENDSOFFRIENDS; //eGameSetting_GameSetting_FriendsOfFriends - on
- pGameSettings->uiBitmaskValues|=GAMESETTING_DISPLAYUPDATEMSG; //eGameSetting_DisplayUpdateMessage (counter)
- pGameSettings->uiBitmaskValues&=~GAMESETTING_BEDROCKFOG; //eGameSetting_BedrockFog - off
- pGameSettings->uiBitmaskValues|=GAMESETTING_DISPLAYHUD; //eGameSetting_DisplayHUD - on
- pGameSettings->uiBitmaskValues|=GAMESETTING_DISPLAYHAND; //eGameSetting_DisplayHand - on
- pGameSettings->uiBitmaskValues|=GAMESETTING_CUSTOMSKINANIM; //eGameSetting_CustomSkinAnim - on
- pGameSettings->uiBitmaskValues|=GAMESETTING_DEATHMESSAGES; //eGameSetting_DeathMessages - on
- pGameSettings->uiBitmaskValues|=(GAMESETTING_UISIZE&0x00000800); // uisize 2
- pGameSettings->uiBitmaskValues|=(GAMESETTING_UISIZE_SPLITSCREEN&0x00004000); // splitscreen ui size 3
- pGameSettings->uiBitmaskValues|=GAMESETTING_ANIMATEDCHARACTER; //eGameSetting_AnimatedCharacter - on
+ GAME_SETTINGS* pGameSettings = (GAME_SETTINGS*)profileData[i];
+ pGameSettings->ucMenuSensitivity = 100; //eGameSetting_Sensitivity_InMenu
+ pGameSettings->ucInterfaceOpacity = 80; //eGameSetting_Sensitivity_InMenu
+ pGameSettings->usBitmaskValues |= 0x0200; //eGameSetting_DisplaySplitscreenGamertags - on
+ pGameSettings->usBitmaskValues |= 0x0400; //eGameSetting_Hints - on
+ pGameSettings->usBitmaskValues |= 0x1000; //eGameSetting_Autosave - 2
+ pGameSettings->usBitmaskValues |= 0x8000; //eGameSetting_Tooltips - on
+ pGameSettings->uiBitmaskValues = 0L; // reset
+ pGameSettings->uiBitmaskValues |= GAMESETTING_CLOUDS; //eGameSetting_Clouds - on
+ pGameSettings->uiBitmaskValues |= GAMESETTING_ONLINE; //eGameSetting_GameSetting_Online - on
+ pGameSettings->uiBitmaskValues |= GAMESETTING_FRIENDSOFFRIENDS; //eGameSetting_GameSetting_FriendsOfFriends - on
+ pGameSettings->uiBitmaskValues |= GAMESETTING_DISPLAYUPDATEMSG; //eGameSetting_DisplayUpdateMessage (counter)
+ pGameSettings->uiBitmaskValues &= ~GAMESETTING_BEDROCKFOG; //eGameSetting_BedrockFog - off
+ pGameSettings->uiBitmaskValues |= GAMESETTING_DISPLAYHUD; //eGameSetting_DisplayHUD - on
+ pGameSettings->uiBitmaskValues |= GAMESETTING_DISPLAYHAND; //eGameSetting_DisplayHand - on
+ pGameSettings->uiBitmaskValues |= GAMESETTING_CUSTOMSKINANIM; //eGameSetting_CustomSkinAnim - on
+ pGameSettings->uiBitmaskValues |= GAMESETTING_DEATHMESSAGES; //eGameSetting_DeathMessages - on
+ pGameSettings->uiBitmaskValues |= (GAMESETTING_UISIZE & 0x00000800); // uisize 2
+ pGameSettings->uiBitmaskValues |= (GAMESETTING_UISIZE_SPLITSCREEN & 0x00004000); // splitscreen ui size 3
+ pGameSettings->uiBitmaskValues |= GAMESETTING_ANIMATEDCHARACTER; //eGameSetting_AnimatedCharacter - on
// TU12
// favorite skins added, but only set in TU12 - set to FFs
- for(int i=0;i<MAX_FAVORITE_SKINS;i++)
+ for (int i = 0; i < MAX_FAVORITE_SKINS; i++)
{
- pGameSettings->uiFavoriteSkinA[i]=0xFFFFFFFF;
+ pGameSettings->uiFavoriteSkinA[i] = 0xFFFFFFFF;
}
- pGameSettings->ucCurrentFavoriteSkinPos=0;
+ pGameSettings->ucCurrentFavoriteSkinPos = 0;
// Added a bitmask in TU13 to enable/disable display of the Mash-up pack worlds in the saves list
pGameSettings->uiMashUpPackWorldsDisplay = 0xFFFFFFFF;
// PS3DEC13
- pGameSettings->uiBitmaskValues&=~GAMESETTING_PS3EULAREAD; //eGameSetting_PS3_EULA_Read - off
+ pGameSettings->uiBitmaskValues &= ~GAMESETTING_PS3EULAREAD; //eGameSetting_PS3_EULA_Read - off
// PS3 1.05 - added Greek
pGameSettings->ucLanguage = MINECRAFT_LANGUAGE_DEFAULT; // use the system language
// PS Vita - network mode added
- pGameSettings->uiBitmaskValues&=~GAMESETTING_PSVITANETWORKMODEADHOC; //eGameSetting_PSVita_NetworkModeAdhoc - off
+ pGameSettings->uiBitmaskValues &= ~GAMESETTING_PSVITANETWORKMODEADHOC; //eGameSetting_PSVita_NetworkModeAdhoc - off
// Tutorials for most menus, and a few other things
@@ -453,90 +531,91 @@ void C_4JProfile::Initialise( DWORD dwTitleID,
pGameSettings->ucTutorialCompletion[2] = 0xF;
// Has gone halfway through the tutorial
- pGameSettings->ucTutorialCompletion[28] |= 1<<0;
+ pGameSettings->ucTutorialCompletion[28] |= 1 << 0;
}
}
-void C_4JProfile::SetTrialTextStringTable(CXuiStringTable *pStringTable,int iAccept,int iReject) {}
-void C_4JProfile::SetTrialAwardText(eAwardType AwardType,int iTitle,int iText) {}
+void C_4JProfile::SetTrialTextStringTable(CXuiStringTable * pStringTable, int iAccept, int iReject) {}
+void C_4JProfile::SetTrialAwardText(eAwardType AwardType, int iTitle, int iText) {}
int C_4JProfile::GetLockedProfile() { return 0; }
void C_4JProfile::SetLockedProfile(int iProf) {}
-bool C_4JProfile::IsSignedIn(int iQuadrant) { return ( iQuadrant == 0); }
+bool C_4JProfile::IsSignedIn(int iQuadrant) { return (iQuadrant == 0); }
bool C_4JProfile::IsSignedInLive(int iProf) { return true; }
bool C_4JProfile::IsGuest(int iQuadrant) { return false; }
-UINT C_4JProfile::RequestSignInUI(bool bFromInvite,bool bLocalGame,bool bNoGuestsAllowed,bool bMultiplayerSignIn,bool bAddUser, int( *Func)(LPVOID,const bool, const int iPad),LPVOID lpParam,int iQuadrant) { return 0; }
-UINT C_4JProfile::DisplayOfflineProfile(int( *Func)(LPVOID,const bool, const int iPad),LPVOID lpParam,int iQuadrant) { return 0; }
-UINT C_4JProfile::RequestConvertOfflineToGuestUI(int( *Func)(LPVOID,const bool, const int iPad),LPVOID lpParam,int iQuadrant) { return 0; }
+UINT C_4JProfile::RequestSignInUI(bool bFromInvite, bool bLocalGame, bool bNoGuestsAllowed, bool bMultiplayerSignIn, bool bAddUser, int(*Func)(LPVOID, const bool, const int iPad), LPVOID lpParam, int iQuadrant) { return 0; }
+UINT C_4JProfile::DisplayOfflineProfile(int(*Func)(LPVOID, const bool, const int iPad), LPVOID lpParam, int iQuadrant) { return 0; }
+UINT C_4JProfile::RequestConvertOfflineToGuestUI(int(*Func)(LPVOID, const bool, const int iPad), LPVOID lpParam, int iQuadrant) { return 0; }
void C_4JProfile::SetPrimaryPlayerChanged(bool bVal) {}
bool C_4JProfile::QuerySigninStatus(void) { return true; }
-void C_4JProfile::GetXUID(int iPad, PlayerUID *pXuid,bool bOnlineXuid) {*pXuid = 0xe000d45248242f2e; }
-BOOL C_4JProfile::AreXUIDSEqual(PlayerUID xuid1,PlayerUID xuid2) { return false; }
+void C_4JProfile::GetXUID(int iPad, PlayerUID * pXuid, bool bOnlineXuid)
+{
+#ifdef _WINDOWS64
+ if (iPad != 0)
+ {
+ *pXuid = INVALID_XUID;
+ return;
+ }
+ if (IQNet::s_isHosting)
+ *pXuid = 0xe000d45248242f2e;
+ else
+ *pXuid = 0xe000d45248242f2e + WinsockNetLayer::GetLocalSmallId();
+#else
+ * pXuid = 0xe000d45248242f2e + iPad;
+#endif
+}
+BOOL C_4JProfile::AreXUIDSEqual(PlayerUID xuid1, PlayerUID xuid2) { return xuid1 == xuid2; }
BOOL C_4JProfile::XUIDIsGuest(PlayerUID xuid) { return false; }
bool C_4JProfile::AllowedToPlayMultiplayer(int iProf) { return true; }
#if defined(__ORBIS__)
-bool C_4JProfile::GetChatAndContentRestrictions(int iPad, bool thisQuadrantOnly, bool *pbChatRestricted,bool *pbContentRestricted,int *piAge)
+bool C_4JProfile::GetChatAndContentRestrictions(int iPad, bool thisQuadrantOnly, bool* pbChatRestricted, bool* pbContentRestricted, int* piAge)
{
- if(pbChatRestricted) *pbChatRestricted = false;
- if(pbContentRestricted) *pbContentRestricted = false;
- if(piAge) *piAge = 100;
+ if (pbChatRestricted) *pbChatRestricted = false;
+ if (pbContentRestricted) *pbContentRestricted = false;
+ if (piAge) *piAge = 100;
return true;
}
#endif
void C_4JProfile::StartTrialGame() {}
-void C_4JProfile::AllowedPlayerCreatedContent(int iPad, bool thisQuadrantOnly, BOOL *allAllowed, BOOL *friendsAllowed) {}
-BOOL C_4JProfile::CanViewPlayerCreatedContent(int iPad, bool thisQuadrantOnly, PPlayerUID pXuids, DWORD dwXuidCount ) { return true; }
-bool C_4JProfile::GetProfileAvatar(int iPad,int( *Func)(LPVOID lpParam,PBYTE pbThumbnail,DWORD dwThumbnailBytes), LPVOID lpParam) { return false; }
+void C_4JProfile::AllowedPlayerCreatedContent(int iPad, bool thisQuadrantOnly, BOOL * allAllowed, BOOL * friendsAllowed) {}
+BOOL C_4JProfile::CanViewPlayerCreatedContent(int iPad, bool thisQuadrantOnly, PPlayerUID pXuids, DWORD dwXuidCount) { return true; }
+bool C_4JProfile::GetProfileAvatar(int iPad, int(*Func)(LPVOID lpParam, PBYTE pbThumbnail, DWORD dwThumbnailBytes), LPVOID lpParam) { return false; }
void C_4JProfile::CancelProfileAvatarRequest() {}
int C_4JProfile::GetPrimaryPad() { return 0; }
void C_4JProfile::SetPrimaryPad(int iPad) {}
#ifdef _DURANGO
char fakeGamerTag[32] = "PlayerName";
-void SetFakeGamertag(char *name){ strcpy_s(fakeGamerTag, name); }
-char* C_4JProfile::GetGamertag(int iPad){ return fakeGamerTag; }
+void SetFakeGamertag(char* name) { strcpy_s(fakeGamerTag, name); }
+char* C_4JProfile::GetGamertag(int iPad) { return fakeGamerTag; }
#else
-char* C_4JProfile::GetGamertag(int iPad)
-{
- static char tags[4][16] = { "Player 1", "Player 2", "Player 3", "Player 4" };
- if(iPad >= 0 && iPad < 4) return tags[iPad];
- return tags[0];
-}
-wstring C_4JProfile::GetDisplayName(int iPad)
-{
- switch(iPad)
- {
- case 1: return L"Player 2";
- case 2: return L"Player 3";
- case 3: return L"Player 4";
- default: return L"Player 1";
- }
-}
+char* C_4JProfile::GetGamertag(int iPad) { extern char g_Win64Username[17]; return g_Win64Username; }
+wstring C_4JProfile::GetDisplayName(int iPad) { extern wchar_t g_Win64UsernameW[17]; return g_Win64UsernameW; }
#endif
bool C_4JProfile::IsFullVersion() { return s_bProfileIsFullVersion; }
-void C_4JProfile::SetSignInChangeCallback(void ( *Func)(LPVOID, bool, unsigned int),LPVOID lpParam) {}
-void C_4JProfile::SetNotificationsCallback(void ( *Func)(LPVOID, DWORD, unsigned int),LPVOID lpParam) {}
+void C_4JProfile::SetSignInChangeCallback(void (*Func)(LPVOID, bool, unsigned int), LPVOID lpParam) {}
+void C_4JProfile::SetNotificationsCallback(void (*Func)(LPVOID, DWORD, unsigned int), LPVOID lpParam) {}
bool C_4JProfile::RegionIsNorthAmerica(void) { return false; }
bool C_4JProfile::LocaleIsUSorCanada(void) { return false; }
HRESULT C_4JProfile::GetLiveConnectionStatus() { return S_OK; }
bool C_4JProfile::IsSystemUIDisplayed() { return false; }
-void C_4JProfile::SetProfileReadErrorCallback(void ( *Func)(LPVOID), LPVOID lpParam) {}
-int( *defaultOptionsCallback)(LPVOID,C_4JProfile::PROFILESETTINGS *, const int iPad) = NULL;
+void C_4JProfile::SetProfileReadErrorCallback(void (*Func)(LPVOID), LPVOID lpParam) {}
+int(*defaultOptionsCallback)(LPVOID, C_4JProfile::PROFILESETTINGS*, const int iPad) = NULL;
LPVOID lpProfileParam = NULL;
-int C_4JProfile::SetDefaultOptionsCallback(int( *Func)(LPVOID,PROFILESETTINGS *, const int iPad),LPVOID lpParam)
+int C_4JProfile::SetDefaultOptionsCallback(int(*Func)(LPVOID, PROFILESETTINGS*, const int iPad), LPVOID lpParam)
{
defaultOptionsCallback = Func;
lpProfileParam = lpParam;
return 0;
}
-int C_4JProfile::SetOldProfileVersionCallback(int( *Func)(LPVOID,unsigned char *, const unsigned short,const int),LPVOID lpParam) { return 0; }
+int C_4JProfile::SetOldProfileVersionCallback(int(*Func)(LPVOID, unsigned char*, const unsigned short, const int), LPVOID lpParam) { return 0; }
// To store the dashboard preferences for controller flipped, etc.
C_4JProfile::PROFILESETTINGS ProfileSettingsA[XUSER_MAX_COUNT];
-C_4JProfile::PROFILESETTINGS * C_4JProfile::GetDashboardProfileSettings(int iPad) { return &ProfileSettingsA[iPad]; }
+C_4JProfile::PROFILESETTINGS* C_4JProfile::GetDashboardProfileSettings(int iPad) { return &ProfileSettingsA[iPad]; }
void C_4JProfile::WriteToProfile(int iQuadrant, bool bGameDefinedDataChanged, bool bOverride5MinuteLimitOnProfileWrites) {}
void C_4JProfile::ForceQueuedProfileWrites(int iPad) {}
-void *C_4JProfile::GetGameDefinedProfileData(int iQuadrant)
+void* C_4JProfile::GetGameDefinedProfileData(int iQuadrant)
{
// 4J Stu - Don't reset the options when we call this!!
//defaultOptionsCallback(lpProfileParam, (C_4JProfile::PROFILESETTINGS *)profileData[iQuadrant], iQuadrant);
@@ -545,9 +624,10 @@ void *C_4JProfile::GetGameDefinedProfileData(int iQuadrant)
return profileData[iQuadrant];
}
void C_4JProfile::ResetProfileProcessState() {}
-void C_4JProfile::Tick( void ) {}
-void C_4JProfile::RegisterAward(int iAwardNumber,int iGamerconfigID, eAwardType eType, bool bLeaderboardAffected,
- CXuiStringTable*pStringTable, int iTitleStr, int iTextStr, int iAcceptStr, char *pszThemeName, unsigned int ulThemeSize) {}
+void C_4JProfile::Tick(void) {}
+void C_4JProfile::RegisterAward(int iAwardNumber, int iGamerconfigID, eAwardType eType, bool bLeaderboardAffected,
+ CXuiStringTable * pStringTable, int iTitleStr, int iTextStr, int iAcceptStr, char* pszThemeName, unsigned int ulThemeSize) {
+}
int C_4JProfile::GetAwardId(int iAwardNumber) { return 0; }
eAwardType C_4JProfile::GetAwardType(int iAwardNumber) { return eAwardType_Achievement; }
bool C_4JProfile::CanBeAwarded(int iQuadrant, int iAwardNumber) { return false; }
@@ -555,11 +635,11 @@ void C_4JProfile::Award(int iQuadrant, int iAwardNumber, bool bForce) {}
bool C_4JProfile::IsAwardsFlagSet(int iQuadrant, int iAward) { return false; }
void C_4JProfile::RichPresenceInit(int iPresenceCount, int iContextCount) {}
void C_4JProfile::RegisterRichPresenceContext(int iGameConfigContextID) {}
-void C_4JProfile::SetRichPresenceContextValue(int iPad,int iContextID, int iVal) {}
-void C_4JProfile::SetCurrentGameActivity(int iPad,int iNewPresence, bool bSetOthersToIdle) {}
+void C_4JProfile::SetRichPresenceContextValue(int iPad, int iContextID, int iVal) {}
+void C_4JProfile::SetCurrentGameActivity(int iPad, int iNewPresence, bool bSetOthersToIdle) {}
void C_4JProfile::DisplayFullVersionPurchase(bool bRequired, int iQuadrant, int iUpsellParam) {}
-void C_4JProfile::SetUpsellCallback(void ( *Func)(LPVOID lpParam, eUpsellType type, eUpsellResponse response, int iUserData),LPVOID lpParam) {}
-void C_4JProfile::SetDebugFullOverride(bool bVal) {s_bProfileIsFullVersion = bVal;}
+void C_4JProfile::SetUpsellCallback(void (*Func)(LPVOID lpParam, eUpsellType type, eUpsellResponse response, int iUserData), LPVOID lpParam) {}
+void C_4JProfile::SetDebugFullOverride(bool bVal) { s_bProfileIsFullVersion = bVal; }
void C_4JProfile::ShowProfileCard(int iPad, PlayerUID targetUid) {}
/////////////////////////////////////////////// Storage library
@@ -567,60 +647,60 @@ void C_4JProfile::ShowProfileCard(int iPad, PlayerUID targetUid) {}
#if 0
C4JStorage::C4JStorage() {}
void C4JStorage::Tick() {}
-C4JStorage::EMessageResult C4JStorage::RequestMessageBox(UINT uiTitle, UINT uiText, UINT *uiOptionA,UINT uiOptionC, DWORD dwPad, int( *Func)(LPVOID,int,const C4JStorage::EMessageResult),LPVOID lpParam, C4JStringTable *pStringTable, WCHAR *pwchFormatString,DWORD dwFocusButton) { return C4JStorage::EMessage_Undefined; }
-C4JStorage::EMessageResult C4JStorage::GetMessageBoxResult() { return C4JStorage::EMessage_Undefined; }
-bool C4JStorage::SetSaveDevice(int( *Func)(LPVOID,const bool),LPVOID lpParam, bool bForceResetOfSaveDevice) { return true; }
-void C4JStorage::Init(LPCWSTR pwchDefaultSaveName,char *pszSavePackName,int iMinimumSaveSize, int( *Func)(LPVOID, const ESavingMessage, int),LPVOID lpParam) {}
+C4JStorage::EMessageResult C4JStorage::RequestMessageBox(UINT uiTitle, UINT uiText, UINT * uiOptionA, UINT uiOptionC, DWORD dwPad, int(*Func)(LPVOID, int, const C4JStorage::EMessageResult), LPVOID lpParam, C4JStringTable * pStringTable, WCHAR * pwchFormatString, DWORD dwFocusButton) { return C4JStorage::EMessage_Undefined; }
+C4JStorage::EMessageResult C4JStorage::GetMessageBoxResult() { return C4JStorage::EMessage_Undefined; }
+bool C4JStorage::SetSaveDevice(int(*Func)(LPVOID, const bool), LPVOID lpParam, bool bForceResetOfSaveDevice) { return true; }
+void C4JStorage::Init(LPCWSTR pwchDefaultSaveName, char* pszSavePackName, int iMinimumSaveSize, int(*Func)(LPVOID, const ESavingMessage, int), LPVOID lpParam) {}
void C4JStorage::ResetSaveData() {}
void C4JStorage::SetDefaultSaveNameForKeyboardDisplay(LPCWSTR pwchDefaultSaveName) {}
void C4JStorage::SetSaveTitle(LPCWSTR pwchDefaultSaveName) {}
LPCWSTR C4JStorage::GetSaveTitle() { return L""; }
-bool C4JStorage::GetSaveUniqueNumber(INT *piVal) { return true; }
-bool C4JStorage::GetSaveUniqueFilename(char *pszName) { return true; }
-void C4JStorage::SetSaveUniqueFilename(char *szFilename) { }
-void C4JStorage::SetState(ESaveGameControlState eControlState,int( *Func)(LPVOID,const bool),LPVOID lpParam) {}
+bool C4JStorage::GetSaveUniqueNumber(INT * piVal) { return true; }
+bool C4JStorage::GetSaveUniqueFilename(char* pszName) { return true; }
+void C4JStorage::SetSaveUniqueFilename(char* szFilename) {}
+void C4JStorage::SetState(ESaveGameControlState eControlState, int(*Func)(LPVOID, const bool), LPVOID lpParam) {}
void C4JStorage::SetSaveDisabled(bool bDisable) {}
bool C4JStorage::GetSaveDisabled(void) { return false; }
unsigned int C4JStorage::GetSaveSize() { return 0; }
-void C4JStorage::GetSaveData(void *pvData,unsigned int *pulBytes) {}
+void C4JStorage::GetSaveData(void* pvData, unsigned int* pulBytes) {}
PVOID C4JStorage::AllocateSaveData(unsigned int ulBytes) { return new char[ulBytes]; }
-void C4JStorage::SaveSaveData(unsigned int ulBytes,PBYTE pbThumbnail,DWORD cbThumbnail,PBYTE pbTextData, DWORD dwTextLen) {}
-void C4JStorage::CopySaveDataToNewSave(PBYTE pbThumbnail,DWORD cbThumbnail,WCHAR *wchNewName,int ( *Func)(LPVOID lpParam, bool), LPVOID lpParam) {}
-void C4JStorage::SetSaveDeviceSelected(unsigned int uiPad,bool bSelected) {}
+void C4JStorage::SaveSaveData(unsigned int ulBytes, PBYTE pbThumbnail, DWORD cbThumbnail, PBYTE pbTextData, DWORD dwTextLen) {}
+void C4JStorage::CopySaveDataToNewSave(PBYTE pbThumbnail, DWORD cbThumbnail, WCHAR * wchNewName, int (*Func)(LPVOID lpParam, bool), LPVOID lpParam) {}
+void C4JStorage::SetSaveDeviceSelected(unsigned int uiPad, bool bSelected) {}
bool C4JStorage::GetSaveDeviceSelected(unsigned int iPad) { return true; }
-C4JStorage::ELoadGameStatus C4JStorage::DoesSaveExist(bool *pbExists) { return C4JStorage::ELoadGame_Idle; }
+C4JStorage::ELoadGameStatus C4JStorage::DoesSaveExist(bool* pbExists) { return C4JStorage::ELoadGame_Idle; }
bool C4JStorage::EnoughSpaceForAMinSaveGame() { return true; }
void C4JStorage::SetSaveMessageVPosition(float fY) {}
//C4JStorage::ESGIStatus C4JStorage::GetSavesInfo(int iPad,bool ( *Func)(LPVOID, int, CACHEINFOSTRUCT *, int, HRESULT),LPVOID lpParam,char *pszSavePackName) { return C4JStorage::ESGIStatus_Idle; }
-C4JStorage::ESaveGameState C4JStorage::GetSavesInfo(int iPad,int ( *Func)(LPVOID lpParam,SAVE_DETAILS *pSaveDetails,const bool),LPVOID lpParam,char *pszSavePackName) { return C4JStorage::ESaveGame_Idle; }
+C4JStorage::ESaveGameState C4JStorage::GetSavesInfo(int iPad, int (*Func)(LPVOID lpParam, SAVE_DETAILS * pSaveDetails, const bool), LPVOID lpParam, char* pszSavePackName) { return C4JStorage::ESaveGame_Idle; }
-void C4JStorage::GetSaveCacheFileInfo(DWORD dwFile,XCONTENT_DATA &xContentData) {}
-void C4JStorage::GetSaveCacheFileInfo(DWORD dwFile, PBYTE *ppbImageData, DWORD *pdwImageBytes) {}
-C4JStorage::ESaveGameState C4JStorage::LoadSaveData(PSAVE_INFO pSaveInfo,int( *Func)(LPVOID lpParam,const bool, const bool), LPVOID lpParam) {return C4JStorage::ESaveGame_Idle;}
-C4JStorage::EDeleteGameStatus C4JStorage::DeleteSaveData(PSAVE_INFO pSaveInfo,int( *Func)(LPVOID lpParam,const bool), LPVOID lpParam) { return C4JStorage::EDeleteGame_Idle; }
-PSAVE_DETAILS C4JStorage::ReturnSavesInfo() {return NULL;}
+void C4JStorage::GetSaveCacheFileInfo(DWORD dwFile, XCONTENT_DATA & xContentData) {}
+void C4JStorage::GetSaveCacheFileInfo(DWORD dwFile, PBYTE * ppbImageData, DWORD * pdwImageBytes) {}
+C4JStorage::ESaveGameState C4JStorage::LoadSaveData(PSAVE_INFO pSaveInfo, int(*Func)(LPVOID lpParam, const bool, const bool), LPVOID lpParam) { return C4JStorage::ESaveGame_Idle; }
+C4JStorage::EDeleteGameStatus C4JStorage::DeleteSaveData(PSAVE_INFO pSaveInfo, int(*Func)(LPVOID lpParam, const bool), LPVOID lpParam) { return C4JStorage::EDeleteGame_Idle; }
+PSAVE_DETAILS C4JStorage::ReturnSavesInfo() { return NULL; }
-void C4JStorage::RegisterMarketplaceCountsCallback(int ( *Func)(LPVOID lpParam, C4JStorage::DLC_TMS_DETAILS *, int), LPVOID lpParam ) {}
-void C4JStorage::SetDLCPackageRoot(char *pszDLCRoot) {}
-C4JStorage::EDLCStatus C4JStorage::GetDLCOffers(int iPad,int( *Func)(LPVOID, int, DWORD, int),LPVOID lpParam, DWORD dwOfferTypesBitmaskT) { return C4JStorage::EDLC_Idle; }
+void C4JStorage::RegisterMarketplaceCountsCallback(int (*Func)(LPVOID lpParam, C4JStorage::DLC_TMS_DETAILS*, int), LPVOID lpParam) {}
+void C4JStorage::SetDLCPackageRoot(char* pszDLCRoot) {}
+C4JStorage::EDLCStatus C4JStorage::GetDLCOffers(int iPad, int(*Func)(LPVOID, int, DWORD, int), LPVOID lpParam, DWORD dwOfferTypesBitmaskT) { return C4JStorage::EDLC_Idle; }
DWORD C4JStorage::CancelGetDLCOffers() { return 0; }
void C4JStorage::ClearDLCOffers() {}
-XMARKETPLACE_CONTENTOFFER_INFO& C4JStorage::GetOffer(DWORD dw) { static XMARKETPLACE_CONTENTOFFER_INFO retval = {0}; return retval; }
+XMARKETPLACE_CONTENTOFFER_INFO& C4JStorage::GetOffer(DWORD dw) { static XMARKETPLACE_CONTENTOFFER_INFO retval = { 0 }; return retval; }
int C4JStorage::GetOfferCount() { return 0; }
-DWORD C4JStorage::InstallOffer(int iOfferIDC,ULONGLONG *ullOfferIDA,int( *Func)(LPVOID, int, int),LPVOID lpParam, bool bTrial) { return 0; }
-DWORD C4JStorage::GetAvailableDLCCount( int iPad) { return 0; }
-XCONTENT_DATA& C4JStorage::GetDLC(DWORD dw) { static XCONTENT_DATA retval = {0}; return retval; }
-C4JStorage::EDLCStatus C4JStorage::GetInstalledDLC(int iPad,int( *Func)(LPVOID, int, int),LPVOID lpParam) { return C4JStorage::EDLC_Idle; }
-DWORD C4JStorage::MountInstalledDLC(int iPad,DWORD dwDLC,int( *Func)(LPVOID, int, DWORD,DWORD),LPVOID lpParam,LPCSTR szMountDrive) { return 0; }
+DWORD C4JStorage::InstallOffer(int iOfferIDC, ULONGLONG * ullOfferIDA, int(*Func)(LPVOID, int, int), LPVOID lpParam, bool bTrial) { return 0; }
+DWORD C4JStorage::GetAvailableDLCCount(int iPad) { return 0; }
+XCONTENT_DATA& C4JStorage::GetDLC(DWORD dw) { static XCONTENT_DATA retval = { 0 }; return retval; }
+C4JStorage::EDLCStatus C4JStorage::GetInstalledDLC(int iPad, int(*Func)(LPVOID, int, int), LPVOID lpParam) { return C4JStorage::EDLC_Idle; }
+DWORD C4JStorage::MountInstalledDLC(int iPad, DWORD dwDLC, int(*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCSTR szMountDrive) { return 0; }
DWORD C4JStorage::UnmountInstalledDLC(LPCSTR szMountDrive) { return 0; }
-C4JStorage::ETMSStatus C4JStorage::ReadTMSFile(int iQuadrant,eGlobalStorage eStorageFacility,C4JStorage::eTMS_FileType eFileType, WCHAR *pwchFilename,BYTE **ppBuffer,DWORD *pdwBufferSize,int( *Func)(LPVOID, WCHAR *,int, bool, int),LPVOID lpParam, int iAction) { return C4JStorage::ETMSStatus_Idle; }
-bool C4JStorage::WriteTMSFile(int iQuadrant,eGlobalStorage eStorageFacility,WCHAR *pwchFilename,BYTE *pBuffer,DWORD dwBufferSize) { return true; }
-bool C4JStorage::DeleteTMSFile(int iQuadrant,eGlobalStorage eStorageFacility,WCHAR *pwchFilename) { return true; }
-void C4JStorage::StoreTMSPathName(WCHAR *pwchName) {}
-unsigned int C4JStorage::CRC(unsigned char *buf, int len) { return 0; }
+C4JStorage::ETMSStatus C4JStorage::ReadTMSFile(int iQuadrant, eGlobalStorage eStorageFacility, C4JStorage::eTMS_FileType eFileType, WCHAR * pwchFilename, BYTE * *ppBuffer, DWORD * pdwBufferSize, int(*Func)(LPVOID, WCHAR*, int, bool, int), LPVOID lpParam, int iAction) { return C4JStorage::ETMSStatus_Idle; }
+bool C4JStorage::WriteTMSFile(int iQuadrant, eGlobalStorage eStorageFacility, WCHAR * pwchFilename, BYTE * pBuffer, DWORD dwBufferSize) { return true; }
+bool C4JStorage::DeleteTMSFile(int iQuadrant, eGlobalStorage eStorageFacility, WCHAR * pwchFilename) { return true; }
+void C4JStorage::StoreTMSPathName(WCHAR * pwchName) {}
+unsigned int C4JStorage::CRC(unsigned char* buf, int len) { return 0; }
struct PTMSPP_FILEDATA;
-C4JStorage::ETMSStatus C4JStorage::TMSPP_ReadFile(int iPad,C4JStorage::eGlobalStorage eStorageFacility,C4JStorage::eTMS_FILETYPEVAL eFileTypeVal,LPCSTR szFilename,int( *Func)(LPVOID,int,int,PTMSPP_FILEDATA, LPCSTR)/*=NULL*/,LPVOID lpParam/*=NULL*/, int iUserData/*=0*/) {return C4JStorage::ETMSStatus_Idle;}
+C4JStorage::ETMSStatus C4JStorage::TMSPP_ReadFile(int iPad, C4JStorage::eGlobalStorage eStorageFacility, C4JStorage::eTMS_FILETYPEVAL eFileTypeVal, LPCSTR szFilename, int(*Func)(LPVOID, int, int, PTMSPP_FILEDATA, LPCSTR)/*=NULL*/, LPVOID lpParam/*=NULL*/, int iUserData/*=0*/) { return C4JStorage::ETMSStatus_Idle; }
#endif // _WINDOWS64
#endif // __PS3__
@@ -636,8 +716,8 @@ BOOL CSentientManager::RecordHeartBeat(DWORD dwUserId) { return true; }
BOOL CSentientManager::RecordLevelStart(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers) { return true; }
BOOL CSentientManager::RecordLevelExit(DWORD dwUserId, ESen_LevelExitStatus levelExitStatus) { return true; }
BOOL CSentientManager::RecordLevelSaveOrCheckpoint(DWORD dwUserId, INT saveOrCheckPointID, INT saveSizeInBytes) { return true; }
-BOOL CSentientManager::RecordLevelResume(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers, INT saveOrCheckPointID) { return true; }
-BOOL CSentientManager::RecordPauseOrInactive(DWORD dwUserId) { return true; }
+BOOL CSentientManager::RecordLevelResume(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers, INT saveOrCheckPointID) { return true; }
+BOOL CSentientManager::RecordPauseOrInactive(DWORD dwUserId) { return true; }
BOOL CSentientManager::RecordUnpauseOrActive(DWORD dwUserId) { return true; }
BOOL CSentientManager::RecordMenuShown(DWORD dwUserId, INT menuID, INT optionalMenuSubID) { return true; }
BOOL CSentientManager::RecordAchievementUnlocked(DWORD dwUserId, INT achievementID, INT achievementGamerscore) { return true; }